Trampoline Un Syst Eme D’exploitation Temps R Eel Pour L .

3y ago
50 Views
2 Downloads
993.99 KB
80 Pages
Last View : 18d ago
Last Download : 3m ago
Upload by : Casen Newsome
Transcription

TrampolineUn système d’exploitation temps réelpour l’informatique embarquéeJean-Luc Béchennec, Mikaël Briday, Sébastien FaucouIRCCyN – UMR CNRS 6597CNRS, École Centrale de Nantes, École des Mines de Nantes, Université de NantesÉcole d’été Temps RéelRennes, 26 août 20151 / 67

Section 1Contexte, définition, architectures2 / 67

Contexte, définition, architecturesContexteDéfinitionArchitectures3 / 67

Système embarquéSystème électronique et informatique intégré à un systèmemécatronique en vue de piloter ses organes4 / 67

Principales caractéristiquesRessources matérielles limitéesMatériel adapté aux contraintes opérationnelles (thermiques,vibratoires, etc) et économiquesmicro-contrôleurTemps réelIContraintes hard, firm, softIDynamique parfois très rapide : les temps de réponse exigéspeuvent s’exprimer en centaines de micro-secondesContexte industrielINormes, standards, certification5 / 67

Architecture matérielle type : organisationCœur 0Cœur iphériquesrépliquésINTCDMAICache.MPU 0DCache.MPU 1CrossbarPeripheral LASH6 / 67

Architecture matérielle type : caractéristiquesIMono ou MulticœurIISA de type RISC 32 bitsIMicro-architecture superscalaireICache : L1 uniquement, souvent I-Cache uniquementIProtection mémoire : MPU, plus rarement MMUIPas d’assistance matérielle à la virtualisation7 / 67

Architecture fonctionnelle typeApplication ensemble de fonctions temps réel communicantes8 / 67

Architecture fonctionnelle typeApplication ensemble de fonctions temps réel communicantesFonctionsIPartie commande : régulateurs, filtres, machine à étatsIPartie système : pilotes, pile de communication,monitoring, . . .8 / 67

Architecture fonctionnelle typeApplication ensemble de fonctions temps réel communicantesTemps réelIActivations périodiques ou sporadiquesIÉchéances contraintes ou sur requêtesICriticités multiples8 / 67

Architecture fonctionnelle typeApplication ensemble de fonctions temps réel communicantesCommunication (et synchronisation)ISignaux booléens ou numériques, scalaires ou vectorielsIUtilisation de queues de messages et/ou de blackboardIRessources partagées (périphériques)8 / 67

Complexité de tèmes baséssur LinuxSystèmes baséssur un exécutifSystèmesbare metalRessources (CPU, ROM, RAM)9 / 67

Contexte, définition, architecturesContexteDéfinitionArchitectures10 / 67

Système d’exploitation temps réelSystème d’exploitation temps réel (SETR)Un système d’exploitation (SE) est qualifié de temps réel s’ilpermet de construire un système aux temps de réponsesprédictibles et compatibles avec les dynamiques del’environnement.Chemin critiqueIPrise en compte des interruptionsIOrdonnancementIChangement de contexte11 / 67

Impact sur la conceptionDéterminismeIRestriction du nombre de services en mode noyauPrédictibilitéIÉviction des algorithmes / services dont le pire cas estpathologiqueIMinimiser le pire-cas, éventuellement au détriment d’autresobjectifs : équité, flexibilité, sécurité, etc.12 / 67

Les services de baseTemps réelIOrdonnancementIIPC : synchronisation, signalisation, communicationIPrise en compte des interruptionsI(Mesure du temps : horloges, réveils, chien de garde)Tolérance aux fautesIIsolation mémoireIIsolation temporelle13 / 67

Et le reste ?Reléguée hors du noyauIPiles de communicationIPilotes de périphériquesParfois/souvent/toujours inutilesISystème de gestion de fichiersIGestion des utilisateursDifficilement temps réelIMémoire virtuelle (swapping)14 / 67

Contexte, définition, architecturesContexteDéfinitionArchitectures15 / 67

Architecture d’un système d’exploitation temps réelComme pour les GPOS, différentes architectures sontenvisageables, en fonction des contraintes du domaine applicatifIExécutifISeparation KernelIMicro-noyauIHyperviseurIetc.16 / 67

ExécutifDéfinitionUn exécutif est un petit SETR, adapté aux ressources limitéesdes micro-contrôleurs, et incluant un nombre minimal de servicesRelation avec les SETRExécutif ( SETRExemplesFreeRTOS, Trampoline17 / 67

Separation KernelSeparation Kernel, Partitioning KernelThe task of a separation kernel is to create an environmentwhich is indistinguishable from that provided by a physicallydistributed system (Rushby, 1981).Le concept de separation kernel a été développé pour des objectifsde sécurité. Le concept de partiotioning kernel en est l’adaptationau temps réelRelation avec les SETRUn partiotioning kernel est un SETR dédié aux systèmes critiquesExemplesIntegrity-178B, standard ARINC 65318 / 67

Micro-noyauMicro-noyauA concept is tolerated in the µ-kernel only if moving it outsidethe kernel [.] would prevent the implementation of the system’srequired functionality (Liedtke, 1995)IManipulations basique de l’espace d’adressageIIdentification et manipulations des threads, IPCI(aujourd’hui unifié sous la forme d’un gestionnaire decapacités)Relation avec les SETRMicro-noyau 6 SETR Micro-noyau SETR 6 Exemples (micro-noyaux temps réel)L4/Fiasco, Composite19 / 67

HyperviseurHyperviseur (pour l’informatique embarquée)Hyperviseur de type I (bare metal) orienté prédictibilité et sécurité.Technologiquement similaire aux micro-noyauxRelation avec les SETRUn hyperviseur temps réel a les caractéristiques d’un SETRExemplesPikeOS, Fiasco.OC, OKL4 Microvisor20 / 67

Section 2Trampoline : un exécutif temps réel21 / 67

Trampoline : un exécutif temps réelPrésentationProcessus de construction d’une applicationArchitecture interneTravaux autour de Trampoline22 / 67

Trampoline : un exécutif temps réelPrésentationProcessus de construction d’une applicationArchitecture interneTravaux autour de Trampoline23 / 67

TrampolineIExécutif temps réel, développé par l’équipe Systèmes TempsRéel de l’IRCCyNIModulaire et portableILicence libre (GPL) version industrialiséeIConforme OSEK/VDX OS et AUTOSAR OSINombreuses cibles dont Arduino, PosixISupport expérimental des architectures multicœurs24 / 67

Historiquen3siovern2siover2016 : Intégration hyperviseur (FUI FREENIVI)2014 : Multicœur2013 : Runtime Verificationn1siover2010 : AUTOSAR SC3&4 (FUI O4AII),tests MODISTARC & AUTOSAR2009 : Systèmede trace intégré2008 : Passe les tests de certificationOSEK, AUTOSAR SC1&2 (FUI O4A)2005 : Démarragedu développement25 / 67

Utiliser Trampoline : pourquoi ? comment ?Pourquoi ?Disposer d’un composant libre pour construire des bancs d’essaisSupport d’enseignementExpérimenter des nouveaux algorithmes / servicesComment ?Site web : http://trampoline.rts-software.orgDépôt : ptible de changer26 / 67

Trampoline : un exécutif temps réelPrésentationProcessus de construction d’une applicationArchitecture interneTravaux autour de Trampoline27 / 67

Système statiqueSystème statiqueUn système d’exploitation est statique s’il n’offre pas la possibilitéde créer des objets (tâche, ressource, boı̂te aux lettres, etc.) enligne. Il doit donc être entièrement configuré à la compilation.Le noyau d’un système statique peut êtremesure pour l’applicationtaillé surIServices à inclureIStructure de donnéesIEt plus encore : chemins d’exécution, variables, etc.28 / 67

Trampoline est un système statiqueTrampoline utilise un langage dédiéIdérivé de la norme OILIextensible (basé sur un moteur de template)description OILde l’applicationSources del’application (C)Templates deconfigurationdu systèmeSourcesC dunoyauCompilateurOILGOIL v2structures dedonnées statiques(source C)infrastructure OSsources C etassembleurcompilateurC éditeurde lienscodeexécutable(binaire)29 / 67

Exemple de descriptionALARM one second {COUNTER SystemCounter;ACTION ACTIVATETASK { TASK t0; };AUTOSTART TRUE { APPMODE std; ALARMTIME 100; CYCLETIME 100; };};TASK t0 {AUTOSTART FALSE;PRIORITY 3;ACTIVATION 1;SCHEDULE FULL;MESSAGE s00;};MESSAGE s00 {MESSAGEPROPERTY SEND STATIC INTERNAL {CDATATYPE "uint8";};NOTIFICATION NONE;};30 / 67

Exemple de template goil/* * Definition and initialization of process tables (tasks and isrs)*/CONSTP2CONST(tpl proc static, AUTOMATIC, OS APPL DATA)tpl stat proc table[TASK COUNT ISR COUNT % ! OS::NUMBER OF CORES %] {%foreach proc in PROCESSES do% &% !proc::NAME % % ![proc::KIND lowercaseString] % stat desc,%end foreachif OS::NUMBER OF CORES 1 then% &IDLE TASK task stat desc%elseloop core from 0 to OS::NUMBER OF CORES - 1 do% IDLE TASK % ! core % task stat desc%between %,%end loopend if%};31 / 67

Avantages de goil sur une APIISéparation des préoccupationsINiveau d’abstractionIPlus simple à faire évoluerIAutomatisation de la spécialisation du noyauIGénération automatique : Code, Makefile, link script32 / 67

Trampoline : un exécutif temps réelPrésentationProcessus de construction d’une applicationArchitecture interneTravaux autour de Trampoline33 / 67

SRservicesScheduleTable servicesCounterservicesGlobal /IOCservicesTask managerCounter managerTiming protectionSchedulerBSPExternal interrupthandlerSystem callhandlerContext switchmanagerMemory protectionmanager34 / 67

ArchitectureCode rvicesScheduleTable servicesCounterservicesGlobal /IOCservicesTask managerCounter managerTiming protectionSchedulerBSPExternal interrupthandlerSystem callhandlerContext switchmanagerMemory protectionmanagerDépendant de la cible (C assembleur)34 / 67

SRservicesScheduleTable servicesCounterservicesGlobal /IOCservicesTask manager3Counter managerTiming protection4Scheduler2BSPExternal interrupthandlerSystem call1handlerContext switchmanagerMemory protectionmanager34 / 67

Module System Call e utilisateurMode superviseurSystem CallHandlertpl activate task servicetpl terminate task serviceAppel duserviceChangement decontexte sinécessairetpl set event servicetpl start os serviceRetour à latâcheordonnancéeMode superviseurMode utilisateur35 / 67

Module System Call e utilisateurMode superviseurSystem CallHandlertpl activate task servicetpl terminate task serviceAppel duserviceChangement decontexte sinécessairetpl set event servicetpl start os serviceRetour à latâcheordonnancéeMode superviseurMode utilisateurUne fois passé en mode superviseur, le noyau est non préemptible.Il faut donc minimiser la durée de ce passage pour assurer laréactivité du système35 / 67

Module System Call HandlerPassage en mode superviseur (exemple sur PowerPC).global iceId SuspendOSInterruptsscblr/* service id in r0 *//* system call*//* returns*/Selon l’ABI utilisée, les paramètres et le code de retour de l’appelsystème sont passés dans des registres ou sur la pile36 / 67

Module SchedulerSchedulerAssure la manipulation de la liste des tâches prêtes grâce à quatrefonctionsItpl put new proc, tpl put preempted proc,tpl front proc, tpl remove front procImplémentationDans la v3 de Trampoline, la structure utilisée est un tas binaireIInsertion et suppression en log2 (n),IConsultation de la tête en temps constant37 / 67

Module SchedulerPolitique d’ordonnancementFP/FIFO avec seuil de préemption.En pratique, toute politique fixed job priority qui assure un ordreFIFO entre les jobs successifs d’une même tâche peut êtreimplémentéeModifier la politique d’ordonnancement1. Ajouter les informations nécessaires aux descripteurs de tâchesà l’aide des templates goil2. Adapter le calcul de la priorité dans tpl put new proc3. Adapter le protocole de synchronisation pour l’accès auxressources partagées (IPCP par défaut)38 / 67

Module Task managerTask ManagerFournit les fonctions permettant de faire évoluer l’état destâches .Utilise les fonctions du module Scheduler pour manipuler les jobsengendrés.Tâche ?L’API propose 3 types de tâchesItâche basique : pas d’appel bloquantItâche étendueIISR : similaire aux tâches basiques mais activée sur une IRQEn interne, un seul type est utilisé : tpl proc39 / 67

Module Task ManagerLe module Task Manager fait évoluer l’état des objets tpl blockreleasewaiting40 / 67

Module Task ManagerLe module Task Manager fait évoluer l’état des objets tpl procsusp.terminateactivatestartactivate,set eventrunningreadypreemptreleasewaitingactivate,set eventblockactivate,set event40 / 67

Module Task ManagerLe module Task Manager fait évoluer l’état des objets tpl procsusp.terminateactivatestartactivate,set eventrunningreadypreemptreleasewaitingactivate,set eventblockactivate,set eventIEnregistrement des activations jusqu’à une borne fixéeIEnregistrement des événements dans un vecteur de bit40 / 67

Module Task ManagerL’API du module se déduit du modèleItpl activate taskItpl preemptItpl startItpl terminateItpl blockItpl releaseItpl set event41 / 67

Module Timing ProtectionTiming protectionMet en œuvre une forme d’isolation temporelle en assurant lerespect de trois invariantsIle temps d’exécution des jobs d’une même tâche est inférieurou égal à un budget CIle temps d’exécution de chaque section critique des jobs d’unemême tâche est inférieur ou égal à un budget BIle délai entre la création de deux jobs successifs par une mêmetâche est supérieur ou égal à une borne FCes trois invariants renvoient aux attributs du modèle de tâchesporadique42 / 67

Module Timing ProtectionL’horloge c mesure le temps d’exécution du job actif de latâcheL’horloge f mesure le temps écoulé depuis la dernière activationd’un job de la tâcheactivatef Ff : 0activatef Ff : 0susp.df 1dc 0startrunningdf 1dc 1c Creadydf 1dc 0releasef Ff : 0terminatec : 0activatef Ff : 0preemptwaitingdf 1dc 0blockc : 0activatef Ff : 043 / 67

Module Timing ProtectionRecouvrement d’erreurAppel d’une fonction utilisateur qui choisit :ITuer la tâcheITuer l’OS-ApplicationIRe-démarrer l’OS-ApplicationIÉteindre le système44 / 67

Trampoline : un exécutif temps réelPrésentationProcessus de construction d’une applicationArchitecture interneTravaux autour de Trampoline45 / 67

Travaux passés et en cours dans l’équipeThèse de Dominique BertrandIDimensionnement des paramètres du module de protectiontemporelleThèse de Sylvain CotardIDéveloppement d’un service de vérification en ligneIDéveloppement d’un service de communication wait freeThèse de Toussaint TigoriIGénération de noyau spécialisé pour l’applicationThèse de Louis-Marie GivelITest de propriétés temps réel par injection de délais46 / 67

Travaux passés et en cours dans l’équipeThèse de Dominique BertrandIDimensionnement des paramètres du module de protectiontemporelleThèse de Sylvain CotardIDéveloppement d’un service de vérification en ligneIDéveloppement d’un service de communication wait freeThèse de Toussaint TigoriIGénération de noyau spécialisé pour l’applicationThèse de Louis-Marie GivelITest de propriétés temps réel par injection de délais46 / 67

Un service de vérification en ligne pour AUTOSARMécanismes de protection AUTOSAR OSAUTOSAR OS ajoute à OSEK/VDX OS un ensemble demécanismes de protectionIProtection mémoireIProtection temporelleIProtection du noyau (services et ressources matérielles)Nos travauxIProtection fonctionelle : propriétés chronologiques inter-tâchesIImplantation interne au noyau47 / 67

Exempleτ0b0s00r10τ2r20r21τ1s11b1τ1 , τ2 et τ3 sont trois tâches, b0 et b1 sont deux buffers de typeblackboard. τ2 effectue un test de cohérence entre les entrées (luesdans b0 ) et les sorties (écrites dans b1 ) de τ1Propriété à vérifier : cohérence des donnéesQuand une instance de τ2 lit une donnée, les buffers sontsynchronisés et le restent jusqu’à la terminaison de cette instance.48 / 67

Objectifτ0τ2b0r20τ1b1s11s00r10r21Détection des tion49 / 67

Who watches the watchmen ?ExigencesIMécanisme de détectionIIau moins aussi critique que le système surveilléInterne au noyau :IILimiter l’impact sur le chemin critiqueNoyau au moins aussi critique que le composant le plus critiqueVérification en ligneDomaine des méthodes formelles qui porte sur la constructionautomatisée et prouvée de moniteurs à partir de spécificationsformelles.50 / 67

Enforcer : un outil pour la génération de moniteursModèle du systèmeinitaev2cev3ASev1bev4*.enf fileEnforcerM0Code des moniteurssources *.c et *.hev5φinitaev2Spécifications(Formules LTL)cev5ev3b’ev1ev4bev3ev4φ G ( (b X c))51 / 67

Exemple : entréesτ0b0s00r10τ2r20r21τ1s11b1s11 , 21firstb1r10s00 , s11φ G ((m t2.firstb0 m t2.firstb1) (m buf .cohe U m t2.begin))52 / 67

Aperçu de la technique de calcul des moniteursÉtape no 1 – Calculer un moniteur (machine de Moore) à partirdes spécifications (Bauer et al., 2011)Input : LTL propertyφ1. Calcul du NBA qui reconnait lestraces (infinies) valides φLTL propertyφA φNon deterministicBuchï automataAφ2. Test du langage vide pour chaqueétatF φEmptiness checking(per state)Fφ3. Calcul du NFA qui reconnait lespréfixes (finis) des traces valides φNon deterministicFinite AutomataÂφà φDeterministicFinite AutomataÃφMmOutput : MonitorFinite State Machine4. Calcul d’un DFA pardéterminisation5. Calcul d’une machine de Moorepar composition des DFA etcalcul de la fonction de sortieÉtape no 2 – Composer le résultat avec un modèle du systèmepour faciliter l’identification des événements53 / 67

Exemple : résultats11 , r10s11 , r10r20q1q0r21s11r21r20s00 , r20s11 , r10 q4s00s11 , s00q2s00 , r21s00r10q3r20 , r21r20 , r21 , r1054 / 67

Intégration dans la chaı̂ne d’outils pour *.hldgcc*.ogcc*.o01100101Binarykernel hruntime verificationservice55 / 67

Injection dans TrampolineOS-Application 1 0OS-Application 2 1 2RunTime Environment (RTE)AUTOSAR OSInter OS-ApplicationCommunication (IOC)Other Basic Software (BSW)MicroControleur Abstraction Layer (MCAL)56 / 67

Injection dans TrampolineOS-Application 1 0OS-Application 2 1 2RunTime Environment (RTE)AUTOSAR OSInter OS-ApplicationCommunication (IOC)Other Basic Software (BSW)RuntimeverificationMicroControleur Abstraction Layer (MCAL)56 / 67

Injection dans TrampolineOS-Application 1 0OS-Application 2 1 2RunTime Environment (RTE)AUTOSAR OSInter OS-ApplicationCommunication (IOC)Other Basic Software (BSW)TrampolineRuntimeverificationMicroControleur Abstraction Layer (MCAL)56 / 67

Instrumentation du noyauFUNC ( tpl status , OS CODE ) t p l r e c e i v e s t a t i c i n t e r n a l u n q u e u e d m e s s a g e (CONSTP2CONST ( void , AUTOMATIC , OS CONST )rmo ,P2CONST ( tpl com data , AUTOMATIC , OS VAR ) data ){VAR ( tpl status , AUTOMATIC ) result E C OM F ILT ERE DOU T ;/* cast the base r e c e i v i n g mo to the correct type o

P riph riques r pliqu s . I Et plus encore : chemins d’ex ecution, variables, etc. 28/67. Trampoline est un syst eme statique Trampoline utilise un langage d edi e I d eriv e de la norme OIL I extensible (bas e sur un moteur de template) Sources C du noyau infrastructure OS sources C et assembleur Templates de con guration

Related Documents:

FIG Code of Points 2022‐2024 ‐ Trampoline Gymnastics - Part I CoP 2022 - 2024 page 5 of 62 Part I ‐ CODE OF POINTS Trampoline Gymnastics is composed by four categories: Individual Trampoline, Synchronized Trampoline,

responding to trampoline court, and trampoline foam pit emergencies. Foam pit bed mount is a trampoline bed installed within the foam pit, suspended above the pit floor, supporting the foam blocks. Mount / dismount platform, any surface within or adjacent to a trampoline area for standing, walking, sitting, or climbing.

TRAMPOLINE WITH ENCLOSURE MODEL: TR-12-P21-B INSTRUCTION MANUAL TR12P21BB-V03-0219 WARNING! SAFETY INFORMATION, INSTALLATION, CARE AND MAINTENANCE INSTRUCTIONS: READ THESE MATERIALS PRIOR TO ASSEMBLING AND USING THE TRAMPOLINE. To ensure your safety, please do not attempt to assemble this trampoline without reading this instruction manual .

Before installing the trampoline, check there is enough space around it. Maintain a clear space of 2.5 metres (8.2 ft) on all sides of the trampoline. Also check that the area is free from walls, structures, fences, tarmac and other hard surfaces. Ensure that there is 7.3 metres (24 feet) clearance above the trampoline. Also

become acquainted with the bungee trampoline system and guidelines as to safe and recommended operation. Please read the following statement and sign below to indicate your receipt and acknowledgment of the bungee trampoline system. I have received and read my copy of the bungee trampoline system made by Bartek s.c. PPH Training Manual.

Ce cours de premi ere ann ee a pour objectif d’introduire les principaux concepts de l’Automatique : la notion de mod ele d’un syst eme, la structure de commande a contre-r eaction et le concept de stabilit e des syst emes dynamiques et le probl eme de stabilit e 5

With a half a million mile round trip path, EME (Earth-Moon-Earth) or moonbounce is the ultimate DX. Many weak signal (CW and SSB) operators already have a station capable of limited 2m EME operation. The objective of this article is to, hopefully, inspire & motivate many hams who are already working, or wish to get started working, weak signals on 2m to try EME in order to work a lot more DX .

Another encounter attracting attention presently is the Battle of Bannockburn which, as every Scottish school pupil will know, took place some 700 years ago. September of this year will also be an important time in Scotia’s history, no matter which way the electorate throughout the country decides. In addition to all of the above, our Society celebrates its 10th Anniversary. Earlier in the .