STRE
Plan
STRE
Plan
• Système d’exploitation et logiciels applicatifs sont « immergés » dans - processeur + capteurs/émetteurs sophistiqués : robots, contrôle de
l’architecture matérielle et ne sont pas aussi visibles que sur un PC processus,
classique, c’est pour cette raison que l’on parle de:
- système enfoui (embedded system), • Remarque sur les processeurs embarqués :
- informatique diffuse (pervasive computing) : l’informatique est - grande capacité d'E/S,
présente partout, mais on ne la remarque pas,
- un problème : le rapport Mips/Watt, hot RISC (sur les stations) et
cold RISC (embarqués)
• Le STRE reçoit des stimuli via ses capteurs et répond en actionnant les • Comme le STR, le STR embarqué (STRE) doit être prédictible dans les
périphériques adéquats. Ces interactions avec le monde extérieur se domaines temporel (échéances) et logique (sûreté, vivacité...)
font de plusieurs manières :
• Notion de qualité de la réponse :
- synchrone, (scrutation : clock based system),
- moins précise, plus rapidement,
- asynchrone, (interruption : sensor based system),
- exacte, moins rapidement,
- combien d'échéances peut-on manquer ?
• Le STRE doit offrir une bonne réactivité à ces événements extérieurs :
- gestion déterministe des interruptions et des timers,
• le STRE a des contraintes supplémentaires:
- importance des interruptions qui indiquent l’occurrence d'une
- émettre des signaux ou répondre à des stimuli externes (capteurs)
échéance, et en particulier son dépassement. Que doit-on faire
dans une fenêtre de temps limitée (respect des échéances,
dans ce cas : arrêter le système, juste la tâche fautive, passer dans
déterminisme temporel),
un mode dégradé ?
- se satisfaire de ressources limitées (espace mémoire, puissance
• Les tâches qui gèrent ces événements sont :
processeur, énergie, ...), donc utiliser des algorithmes économes en
- périodiques (déclenchement à fréquence fixe), consommation de mémoire, énergie, cpu,
- apériodiques (fréquence de déclenchement variable) , - sécurité, reprise en cas d'erreur, fonctionnement en mode dégradé
- sporadiques (fréquence de déclenchement variable mais bornée)
Remarque : le critère du WCET conduit à la sous-utilisation des
ressources.
Conséquences : STRE
Plan
• Conséquences de ces nouvelles contraintes :
- les algorithmes utilisés dans les STR ne peuvent pas toujours être
implantés à cause d'une trop grande consommation de ressources :
1. Présentation des systèmes temps réel embarqués (STRE)
o taille mémoire du code, des données,
a. rappels sur les systèmes temps réel
o dégradation des performances en fonction des restrictions de
b. contraintes des systèmes embarqués
ressources,
c. les STRE
• Exemples :
2. Structure et fonctionnement des STRE
- les garbage collectors des machines Java doivent être repensés
pour les JVM embarquées, a. Exécutif ou système
- gestion des file systems en RAM, b. Ordonnancement
- que faire si une échéance n'est pas respectée ? Importance des c. Entrées/sorties
interruptions qui indiquent la proximité d'une échéance ou bien qu'on
l'a manquée. 3. Développement d'applications embarquées
4. Les STRE disponibles
5. Perspectives
Niveau interface avec le matériel: - plus portable ( ?), souvent compatible POSIX,
o outils pour ajouter simplement des pilotes de périphériques, - utilisation plus souple (interface du type shell…), mais est-ce
toujours nécessaire ?
• Tendances :
• L’informatique diffuse, omniprésente (pervasive computing, ubiquitous - Ce marché devient un marché de masse,
computing, Weiser 1993) :
- Standardisation (POSIX temps réel, embedded Linux, RTSJ),
- l’informatique disparaît, mais elle est partout, invisible pour
- interconnexion des équipements par des réseaux sans fil,
l’utilisateur elle entretient avec lui des liens permanents,
- mise en œuvre possible grâce aux réseaux sans fil : tous les objets
de la vie courante auront-ils une adresse IP ? • Marché atomisé :
- Pas d'offre globale (on compose soi-même sa configuration tant au
niveau matériel que logiciel),
• Rôle des systèmes embarqués dans ce contexte :
- Pas de fournisseur dominant (31% de systèmes dits
- contraintes soft real time(multimédia),
"propriétaires"),
- gestion de l’énergie, gestion de la localisation (par rapport au réseau
- Microsoft, Sun, IBM sont marginaux,
et/ou localisation physique ?) ,
- configuration dynamique de réseaux sans fil (réseaux ad hoc),
- information contextuelle (validité seulement locale d’une
information),
Plan
• Type des marchés :
Secteur Maturité Contraintes Tendances
1 Présentation des systèmes temps réel embarqués (STRE)
Scientifique, Forte Performance, Réduction des coûts
aérospatilae, fiabilité (économie a. rappels sur les systèmes temps réel
militaire d'échelle)
b. contraintes des systèmes embarqués
Transports Moyenne Fiabilité, coût Ergonomie, réseau
Industrie Forte Fiabilité, coût Réseau c. les STRE
Bureau Forte Performance, Standardisation, 2 Structure et fonctionnement des STRE
coût puissance
Télecomm. Forte Performance, puissance a. Exécutif ou système
Fiabilité
b. Ordonnancement : précisions
Gd public Faible Performance, Internet
coût c. Entrées/sorties
Commerce elec. Faible Fiabilité, coût, Commerce en ligne
3 Développement d'applications embarquées
sécurité
4 Les STRE disponibles
5 Perspectives
• Une application TR embarquée doit répondre à des stimuli extérieurs : - exemple : un événement externe peut réactiver une plus prioritaire
que la courante, il faut alors :
- dans un certaine fenêtre de temps,
o sauvegarder le contexte de la tâche courante,
- même dans le pire cas,
o créer ou restaurer le contexte de la tâche à démarrer,
- dans un contexte de ressources (très) réduites,
• Problèmes liés :
• … en assurant le respect des échéances pour les tâches critiques,
- quelles tâches peut-on préempter (notion de priorité) ?
Attention : une tâche de faible importance peut avoir de fortes
contraintes de temps, et une tâche de forte importance peut avoir de - gestion fine du contexte,
faibles contraintes de temps), - gestion des données partagées :
o entre tâches, entre tâches et ISR ,
• il faut exécuter au moins un sous-ensemble minimal des tâches même o files de messages, sémaphores, …
si la charge augmente (gracefull degrade) l'objectif n'est PAS le
rendement,
• La « process table »
• Comment gérer les priorités :
- une entrée par tâche
- la priorité doit-elle refléter :
- chaque entrée contient (ou permet de retrouver) :
o la période (respect des échéances)
o copie de registres
o la criticité (la tâche dont l’exécution est la plus importante n’est
o informations sur la pile : adresse, taille, utilisation
pas forcément celle dont la période est la plus courte)
o informations sur la consommation des ressources
- priorité fixe (RMS) ou variable (EDF)
o état du processus
o sémaphore sur lequel il est bloqué
o les messages qui lui ont été envoyés
• Choisir un des processus qui sont dans l’état PRET (READY) ou le • La fonction ctxswitch:
processus CURRENT :
- change les pointeurs de pile, etc,
- rôle du scheduler (qui peut être une fonction sched ())
- sauve les registres,
• Le scheduler :
- restaure le contexte du processus réordonnancé,
- choisit le plus prioritaire des processus READY ou le CURRENT
- ATTENTION : dès que le compteur ordinal est restauré, on part
- fait éventuellement passer le CURRENT en READY dans le code du processus réordonnancé : on ne revient pas de la
- remarque : fonction ctxswitch qui fait le changement de contexte !!!!
• Quelques détails
- la valeur sauvée pour le CO par ctxswitch est sa propre
adresse de retour:
o c’est celle où devrait revenir ctxswitch si elle était une
fonction ordinaire… mais elle est appelée par un processus A,
elle donne la main à un processus B, qui devra repasser le
contrôle, non pas a ctxswitch, mais à A…
• Opération P :
- si le compteur passe négatif :
• le rôle de sched ()est seulement de choisir un processus parmi les
READY et CURRENT : o faire passer le processus de CURRENT à BLOCKED,
- elle ne créé PAS de processus, o indique le numéro du sémaphore dans l’entrée de la process
table associée au processus
- elle ne vérifie pas si la liste des READY est vide,
o appel à sched()
- conséquence : il doit toujours y avoir au moins un processus dans l’état
READY : le null process
• Opération V :
- si le compteur passe négatif ou nul :
o choisir un processus et le faire passer de BLOCKED à
READY,
o appel à sched()
• Si une tâche (ex : gestion de la direction d’un véhicule) attend un • Exemple pour trois tâches T1, T2 et T3 dont on donne ci-dessous le
résultat fourni par une autre (ex : détecteur de choc), on parle de graphe de dépendance :
tâches dépendantes,
Gestion Gestion
des interruptions Des interruptions
• On associe à chaque interruption une fonction de traitement (vecteur • Tables des vecteurs, priorités, masquage, traitement
d’interruption, ISR) : •Horloges
- Attention au partage de données - real time clock (interrompt le processeur)
o bufferisation , o envoie une interruption à chaque tick
o quand passer les données aux tâches ? o ne gère pas de compteur, le décompte des interruptions doit
être fait par le système
• Quand activer ou inhiber les interruptions ? o sert à gérer des alarmes (quantum, échéance), utilisation
d’une liste du type delta
- périodiquement : tous les n tics d’horloge,
- time of day clock (consulté à sa demande par le système)
- préemption,
o mise à jour d’un compteur qui sera éventuellement lu par le
système ou les applications
• Entrées sorties :
- initialisation des vecteurs (bas niveau),
- écriture du pilote et des fonctions de haut niveau
STRE
Plan
Environnement Environnement
de développement de développement
Environnement Exemples
de développement
Facteurs STRE
intervenant dans la
gestion du temps Plan
(rappels)
- attention au bon typage des variables (cf. volatile en C pour l’accès 5. Perspectives
aux registres des périphériques),
• Propriétaires :
- LynxOS de Lynx, 4% du marché, QNX, 5% du marché,
• Parmi les systèmes temps réel portés sur de nombreuses plateformes,
- iRMX, produit par Intel pour 8086, 5% du marché, citons :
- pSOS (ISI) et VRTX (Microtec) pour 68xxx, 9% du marché, - RTEMS,
- VxWorks, 286 Ko, de WindRiver (terminaux X, Mars Pathfinder), - Linux (RTLinux),
11% du marché,
• Dans le domaine des systèmes dédiés à la téléphonie mobile :
- Windows CE (version réduite de NT, pas temps réel, 4Mo RAM),
sur Intel et MIPS, - Symbian,
- JavaCard (24 à 64 Ko de ROM, 512o à 2Ko de RAM) • ARINC 653, orienté avionique, est représentatif des recherches
actuelles en haute disponibilité.
• free software :
• Dans le monde des systèmes embarqués sur les mobiles, mais non
- RTEMS de OAR, implémenté en C et Ada, porté sur de très temps réel : Microsoft Mobile Windows et la JVM J2ME.
nombreux processeurs et BSP,
- eCos de Red Hat,
- Linux embarqués variés (RT-Linux, Linux-RK)
• universitaires : Spring, ARTS, Mars, TinyOS …
• Symbian, http://www.symbian.com : • ARINC 653 ( Aeronautical Radio Inc, http://www.arinc.com) est une
spécification pour l’avionique qui décrit l’interface que doit proposer un
- construit au dessus de EKA2 qui est un noyau mono utilisateur, STRE dans une perspective de haute disponibilité :
multitâches, préemptif, peu consommateur de mémoire et d’énergie.
Priorités préemptives, synchro. PIP, - indépendance de l’exécution des tâches de criticités différentes en
introduisant la notion de partition. Une partition isole les données et
- appels système en temps borné, timer haute résolution, latence programmes d’une application du point de vue mémoire mais aussi
pour le traitement des interruptions est de 0,5ms à 1ms. Symbian ne du point de vue temporel : chaque partition dispose de son propre
fait pas d’hypothèse sur le MMU du processeur et propose espace d’adressage et de créneaux de temps. Elle ne peut empiéter
plusieurs modèles de mémoire. ni sur les créneaux temporels ni sur l’espace mémoire des autres
partitions.
- outils de communication entre threads, de gestion des interruptions,
d’écriture de pilotes, des moyens pour le contrôle gestion de - ordonnancement cyclique : une partition peut être activée une ou
l’énergie et la définition du HAL. La gestion de la sécurité et des plusieurs fois par cycle. A l’intérieur d’une partition différentes tâches
fichiers est également prévue. peuvent être ordonnancées de façon périodique ou non, la norme
attend un ordonnancement par priorité et préemptif.
- Gestion de pile GSM.
- La communication entre partitions se fait par messages, les
messages sont reçus et émis par les applications sur des ports, le
support de communication est géré par le système, les applications
ne voient que les ports.
- Les services fournis par le système sont aussi isolés dans une
partition spécifique. Traitement des pannes par l’implantation du
Health Monitor.
o L’ordonnancement doit être préemptif, avec une gestion FIFO - Windows Mobile 5.0 de Microsoft n’est pas temps réel mais
des threads ayant la même priorité, la JVM ne peut changer la propose la technologie push qui permet de recevoir des mails le plus
priorité d’un thread que dans le cas de l’inversion de priorité, tôt possible. Une technologie qui a fait le succès de RIM (Research
In Motion, http://www.rim.com) et Blackberry
o Gestion des threads au niveau utilisateur : (http://www.blackberry.com) : 3 millions d'utilisateurs dans le monde,
! caractérisation fine des threads temps réel en précisant - possibilité de stockage des informations utilisateur en mémoire
leur coût, leur échéance et leur période, persistante.
! création de threads de priorité supérieure à celle du
garbage collector.
! service de contrôle d’admission : on peut demander le
calcul de l’ordonnançabilité d’un jeu de threads.
• RTSJ propose aussi des outils pour construire des ordonnancements
RMS, EDF ou LLF, pour créer des zones de mémoire qui ne sont pas
gérées par le garbage collector, et met à disposition des timers haute
résolution déterministes ainsi que des méthodes pour la gestion des
événements asynchrones.
STRE Perspectives :
logiciel
Plan
• Les systèmes : du plus petit au plus grand :
- Systèmes miniatures pour les réseaux de capteurs (micro
systèmes) : TinyOS de Berkeley,
- Systèmes embarqués distribués à grande échelle : quel middleware
1. Présentation des systèmes temps réel embarqués (STRE)
(RT CORBA, …) ?
a. rappels sur les systèmes temps réel
• Ordonnancement : notions de partitions (ARINC 653), ordonnancement
b. contraintes des systèmes embarqués dynamique et adaptable (flexible scheduling, power aware scheduling),
2. Structure et fonctionnement des STRE • Gestion de l’énergie : par l’ordonnancement, par le matériel, à la
compilation ?
a. Exécutif ou système
• Compilateurs , exemple : impact de la compilation sur la gestion de
b. Ordonnancement l’énergie :
c. Entrées/sorties - réduction du nombre d’instructions (+)
3. Développement d'applications embarquées - unrolling des boucles (-)
4. Les STRE disponibles
5. Perspectives
Perspectives :
matériel