Systèmes temps réel Embarqués STRE
Transcription
Systèmes temps réel Embarqués STRE
STR Embarqués STR Embarqués STRE Plan Systèmes temps réel Embarqués 1. Présentation des systèmes temps réel embarqués (STRE) a. rappels sur les systèmes temps réel b. contraintes des systèmes embarqués c. les STRE 2. Structure et fonctionnement des STRE a. Exécutif ou système b. Ordonnancement c. Entrées/sorties Bertrand Dupouy 3. Développement d'applications embarquées 4. Les STRE disponibles 5. Perspectives ©ENST 8/06/10 80 ©ENST 8/06/10 81 STR Embarqués STR Embarqués STRE Plan 1. Présentation des systèmes temps réel embarqués (STRE) a. rappels sur les systèmes temps réel b. contraintes des systèmes embarqués c. les STRE 2. Structure et fonctionnement des STRE a. Exécutif ou système b. Ordonnancement c. Entrées/sorties 3. Développement d'applications embarquées 4. Les STRE disponibles 5. Perspectives ©ENST 8/06/10 82 ©ENST 8/06/10 83 STR Embarqués STR Embarqués La plateforme embarquée (1) Définition Des système embarqués • Compromis matériel/logiciel : • Leur place : - seules les fonctions simples et pérennes sont réalisées en matériel, Environnement contrôlé Capteur/Emetteur Système de commande Noyau temps réel Ordonnancement Communications Langage de programmation - tendance aux processeurs généralistes puissants et aux réalisations logicielles, - Le matériel assure la performance, le logiciel apporte portabilité, flexibilité… • Exemple de matériels embarqués : - processeur + E/S simples : carte à puce, • STRE : mise en œuvre conjointe de matériel et de logiciel pour gérer un dispositif qui n’est pas un ordinateur et qui interagit avec le monde extérieur (qui est donc sous contraintes temporelles), - processeur + réseau : routeur, • Système d’exploitation et logiciels applicatifs sont « immergés » dans l’architecture matérielle et ne sont pas aussi visibles que sur un PC classique, c’est pour cette raison que l’on parle de: - processeur + capteurs/émetteurs sophistiqués : robots, contrôle de processus, - système enfoui (embedded system), - informatique diffuse (pervasive computing) : l’informatique est présente partout, mais on ne la remarque pas, - processeur + réseau sans fil + E/S simples : téléphone portable, • Remarque sur les processeurs embarqués : - grande capacité d'E/S, - un problème : le rapport Mips/Watt, hot RISC (sur les stations) et cold RISC (embarqués) ©ENST 8/06/10 84 ©ENST 8/06/10 85 STR Embarqués STR Embarqués La plateforme embarquée (2) • Contraintes spécifiques au niveau matériel : o faible encombrement, faible poids, faible consommation, o robustesse: résistance aux vibrations, chocs, température, … o processeur : réserve d’énergie limitée (par le coût, par le poids) ; la consommation d’énergie sera peut être à prendre en compte par l’ordonnanceur (energy aware scheduling) , o mémoire : faible espace d’adressage (small footprint) , o disque : souvent absent (disk on RAM) • Contraintes spécifiques au niveau logiciel: o sûreté de fonctionnement (capacité à accorder une confiance justifiée au service), o résistance aux pannes (la panne d’un composant ne remet pas en cause la vie du système), o développement en environnement croisé (cross compilation), ©ENST 8/06/10 86 ©ENST 8/06/10 87 STR Embarqués STR Embarqués Système temps réel embarqué : Contraintes temporelles Système temps réel embarqué : Ressources limitées • Le STRE reçoit des stimuli via ses capteurs et répond en actionnant les périphériques adéquats. Ces interactions avec le monde extérieur se font de plusieurs manières : • Comme le STR, le STR embarqué (STRE) doit être prédictible dans les domaines temporel (échéances) et logique (sûreté, vivacité...) - synchrone, (scrutation : clock based system), - asynchrone, (interruption : sensor based system), • Notion de qualité de la réponse : - moins précise, plus rapidement, - 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, - importance des interruptions qui indiquent l’occurrence d'une échéance, et en particulier son dépassement. Que doit-on faire dans ce cas : arrêter le système, juste la tâche fautive, passer dans un mode dégradé ? • le STRE a des contraintes supplémentaires: - émettre des signaux ou répondre à des stimuli externes (capteurs) dans une fenêtre de temps limitée (respect des échéances, déterminisme temporel), - périodiques (déclenchement à fréquence fixe), - se satisfaire de ressources limitées (espace mémoire, puissance processeur, énergie, ...), donc utiliser des algorithmes économes en 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é • Les tâches qui gèrent ces événements sont : - sporadiques (fréquence de déclenchement variable mais bornée) Remarque : le ressources. ©ENST 8/06/10 88 ©ENST 8/06/10 critère du WCET conduit à la sous-utilisation des 89 STR Embarqués STR Embarqués Système temps réel embarqué : spécificités (1) • En plus de ceux fournis par les STR, les STRE devront offrir les services suivants : • Gestion des entrées-sorties : - gestion déterministe du temps, mise à disposition de timers haute résolution, • Gestion de l’énergie : • Gestion des pannes : - interventions de maintenance difficiles ou impossibles, ce qui implique : o un haut niveau de disponibilité, o des mécanismes de reprise en cas d'erreur, - assurer une faible consommation : les algorithmes utilisés par les STR ne pourront pas toujours être implantés par les STRE. Cette gestion peut se traiter dynamiquement soit au niveau matériel soit au niveau de l'ordonnancement, • Gestion de la mémoire : - au niveau temporel : allocation des blocs mémoire en temps prédictible (cf. RTSJ), - au niveau espace d’adressage : prise en compte des contraintes de faible encombrement. Les STRE proposent également des facilités pour dimensionner précisément l’espace d’adressage d’une application, • Gestion du disque : - implantation des file systems en RAM (système de fichier en mémoire flash), ©ENST 8/06/10 Système temps réel embarqué : spécificités (2) 90 o des possibilités de fonctionnement en mode dégradé, • Méthodes de développement : - développement en environnement croisé ; mise au point difficile, on attend des outils de trace et de mesure, • Adaptabilité : - adaptabilité à la variation de configuration logicielle (cf. les managers de RTEMS), - adaptabilité aux différentes configurations matérielle : o notion de HAL (Hardware Layer) ou de BSP (Board Support Package) : une couche qui sépare du noyau les sections de code spécifiques au processeur. Au-delà de cette couche, le système d’exploitation est indépendant du processeur sur lequel il s'exécute, ©ENST 8/06/10 91 STR Embarqués STR Embarqués 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 : o taille mémoire du code, des données, o dégradation des performances en fonction des restrictions de ressources, 1. Présentation des systèmes temps réel embarqués (STRE) a. rappels sur les systèmes temps réel b. contraintes des systèmes embarqués c. les STRE • Exemples : - les garbage collectors des machines Java doivent être repensés pour les JVM embarquées, 2. Structure et fonctionnement des STRE 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 interruptions qui indiquent la proximité d'une échéance ou bien qu'on l'a manquée. c. Entrées/sorties 3. Développement d'applications embarquées 4. Les STRE disponibles 5. Perspectives ©ENST 8/06/10 92 ©ENST 8/06/10 93 STR Embarqués STR Embarqués Quel système pour les applications embarquées ? Exécutif TR Ou système TR ? • Exécutif temps réel, moniteur temps réel (par exemple, RTEMS): • Système dédié ou généraliste ? - Le construire en tant que tel (cf. cours STR !!!), - Le construire en le dérivant d'un système classique (UNIX ou autre), pour cela, il faut : Niveau système : - Il est de très petite taille, parce que modulable en fonction de l’application, - gestion mémoire très simple donc efficace en terme de temps, o réduire sa taille ! o donner des outils déterministes pour la gestion du temps (alarmes, signaux), o modifier l'ordonnancement (et la synchronisation) pour respecter les contraintes temporelles, o gestion des ressources prédictible (exemple : allocation mémoire), - pas d'interface utilisateur, le couple écran/clavier n’est plus le périphérique privilégié, • Système temps réel (par exemple, Linux) : - système chargé en entier en mémoire, il reste en mémoire et permet l’exécution successive de plusieurs applications, - mais il est plus volumineux qu’un exécutif, - plus portable ( ?), souvent compatible POSIX, Niveau interface avec le matériel: o outils pour ajouter simplement des pilotes de périphériques, ©ENST 8/06/10 - recompilé avec l'application, se présente sous forme d’une bibliothèque, « linkée » avec l'application. On recharge l’ensemble [application+système] à chaque fois qu’on relance l’application. 94 - utilisation plus souple (interface du type shell…), mais est-ce toujours nécessaire ? ©ENST 8/06/10 95 STR Embarqués STR Embarqués Comment choisir le système (ou l’exécutif)? Résumé : Evolution des systèmes embarqués • De la simple boucle de gestion des interruptions (années 70) à la notion de système et de BSP (board support package ) : Structure des années 70 : • Exemple de critères de choix : - sur quelle cible (BSP et processeur) va être déployée l’application ? - quels langages de programmation sont disponibles ? - taille mémoire nécessaire en RAM et en ROM (footprint), - pilotes de périphériques disponibles, facilité de leur écriture, Boucle : tests de variables d’état et exécution de fonctions approriées. Mise à jour de ces variables par les procédures de gestion des interruptions à bas niveau (ISR, Interrupt Service Routines). Ces procédures sont écrites en assembleur. Structure des systèmes embarqués actuels : - outils offerts par la chaîne de développement croisée, Application écrite en langage de haut niveau - disponibilité ou non du code source, support technique, maturité, Intergiciel (exemple : RT CORBA) Bibiliothèques (exemple : POSIX threads), couches réseau (exemple : IP stack), … Noyau temps réel embarqué (exemple : RTEMS). Ordonnancement, synchronisation, gestion mémoire Processeur et carte électronique spécifique (BSP, Board Support Package ; HAL, Hardware Layer) Matériel piloté (exemple : robot, téléphone portable, …). ©ENST 8/06/10 96 ©ENST 8/06/10 97 STR Embarqués STR Embarqués Peut-on se passer du STRE ? • On va maintenant voir pourquoi la gestion directe des évènements, sans système d’exploitation proprement dit, n’est satisfaisante que dans les cas les plus simples. - On envisagera successivement : Peut-on se passer du STRE ? 1-La boucle de scrutation des évènements • La solution la plus simple est la boucle de scrutation de l’ensemble des périphériques : - C’est une suite de tests qui vérifie l’état de chaque périphérique : o La boucle de scrutation, o Si cet état a changé, alors exécution d’une action, o L’ exécutif cyclique, o Sinon : rien - Inconvénients : o La suite définit un ordre, donc une priorité implicite, sur les traitements, o Pas de gestion des interruptions : le dialogue avec les périphériques se fait à l’initiative de l’application (alors que l’objectif peut être : event driven !), o Polling (attente active) ©ENST 8/06/10 98 ©ENST 8/06/10 99 STR Embarqués STR Embarqués Peut-on se passer du STRE ? 2- Amélioration : Exécutif cyclique Peut-on se passer du STRE ? 3 - Exécutif cyclique « time driven » • Exécutif cyclique élémentaire: - Si les traitements sont longs, la simple boucle de scrutation ne suffit pas, on associe une « tâche « à chaque test (cf. dispatcher vs scheduler), - Remarque : pas de problème de concurrence entre tâches : chacune se termine avant que l’on passe à la suivante, - Inconvénients : o La boucle doit être (comme précédemment) exécutée à une fréquence permettant le traitement de tous les événements, - Fonctionnement dérivé de celui de l’exécutif cyclique : o Un timer lance les tâches, o Chacune est exécutée en totalité avant de passer à la suivante, o La dernière doit se terminer avant la prochaine interruption timer, o Pour gérer plus finement des événements à fréquences différentes, on peut exécuter certaines tâches plusieurs fois dans un cycle (cycle majeur et cycle mineur), o Toujours pas de gestion des interruptions : le dialogue avec les périphériques est à l’initiative de l’application (la boucle !), - On essaie d’exécuter les tâches aussi vite et fréquemment que possible, mais : o Le respect des échéances importe plus que la rapidité du traitement, o Les interruptions ne sont toujours pas gérées, ©ENST 8/06/10 100 ©ENST 8/06/10 101 STR Embarqués STR Embarqués Peut-on se passer du STRE ? 4- Exécutif cyclique : limitations Domaines d’application Des systèmes embarqués • Les domaines traditionnels : • Bilan : - spatial, avionique (systèmes temps réel répartis embarqués), - Simple à implémenter : exécution de traitements à fréquences régulières, - Pas de gestion des interruptions. Les périphériques (sauf le timer !) sont gérés en polling, l’initiative n’est pas donnée aux stimuli externes, - Pas de contrôle du temps d’exécution des tâches (revient à faire FCFS), - contrôle de processus industriels (chimie, nucléaire, …), • Les nouveaux domaines: - automobile, - médical, - Comment gérer le temps : o découper en sous tâches (pb de partage de données), - électronique grand public (jeux), téléphonie mobile, - systèmes embarqués temps réel répartis à grande échelle (digital city,…), o quantum , o déclenchement de chaque tâche par un timer , ©ENST 8/06/10 - robotique, 102 - informatique diffuse (pervasive computing, ubiquitous computing), wearable computer, domotique, objets intelligents (smart objects), immeubles intelligents… ©ENST 8/06/10 103 STR Embarqués STR Embarqués L’informatique diffuse Le marché (1) • Tendances : • L’informatique diffuse, omniprésente (pervasive computing, ubiquitous computing, Weiser 1993) : - l’informatique disparaît, mais elle est partout, invisible pour 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 ? - Ce marché devient un marché de masse, - Standardisation (POSIX temps réel, embedded Linux, RTSJ), - interconnexion des équipements par des réseaux sans fil, • 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 : - contraintes soft real time(multimédia), - Pas de fournisseur dominant (31% de systèmes dits "propriétaires"), - gestion de l’énergie, gestion de la localisation (par rapport au réseau et/ou localisation physique ?) , - Microsoft, Sun, IBM sont marginaux, - configuration dynamique de réseaux sans fil (réseaux ad hoc), - information contextuelle information), ©ENST 8/06/10 (validité 104 seulement locale d’une ©ENST 8/06/10 105 STR Embarqués STR Embarqués Le marché (2) STRE Plan • Type des marchés : Secteur Scientifique, aérospatilae, militaire Transports Industrie Bureau Maturité Forte Contraintes Performance, fiabilité Tendances Réduction des coûts (économie d'échelle) Ergonomie, réseau Réseau Standardisation, puissance puissance Moyenne Fiabilité, coût Forte Fiabilité, coût Forte Performance, coût Télecomm. Forte Performance, Fiabilité Gd public Faible Performance, Internet coût Commerce elec. Faible Fiabilité, coût, Commerce en ligne sécurité 1 Présentation des systèmes temps réel embarqués (STRE) a. rappels sur les systèmes temps réel b. contraintes des systèmes embarqués c. les STRE 2 Structure et fonctionnement des STRE a. Exécutif ou système b. Ordonnancement : précisions c. Entrées/sorties 3 Développement d'applications embarquées 4 Les STRE disponibles 5 Perspectives ©ENST 8/06/10 106 ©ENST 8/06/10 107 STR Embarqués STR Embarqués Rappels sur la préemption Rappels : Objectifs du STRE • Préemption: - les tâches peuvent être interrompues par des facteurs qui leurs sont étrangers, • Une application TR embarquée doit répondre à des stimuli extérieurs : - dans un certaine fenêtre de temps, - même dans le pire cas, - dans un contexte de ressources (très) réduites, - exemple : un événement externe peut réactiver une plus prioritaire que la courante, il faut alors : o sauvegarder le contexte de la tâche courante, o créer ou restaurer le contexte de la tâche à démarrer, • Problèmes liés : • … en assurant le respect des échéances pour les tâches critiques, Attention : une tâche de faible importance peut avoir de fortes contraintes de temps, et une tâche de forte importance peut avoir de faibles contraintes de temps), - quelles tâches peut-on préempter (notion de priorité) ? - gestion fine du contexte, - 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 si la charge augmente (gracefull degrade) l'objectif n'est PAS le rendement, ©ENST 8/06/10 108 o files de messages, sémaphores, … ©ENST 8/06/10 109 , STR Embarqués STR Embarqués Gestion des Priorités Ordonnancement Et changement de contexte • 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 la criticité (la tâche dont l’exécution est la plus importante n’est pas forcément celle dont la période est la plus courte) - priorité fixe (RMS) ou variable (EDF) o copie de registres o informations sur la pile : adresse, taille, utilisation o informations sur la consommation des ressources o état du processus o sémaphore sur lequel il est bloqué o les messages qui lui ont été envoyés ©ENST 8/06/10 110 ©ENST 8/06/10 111 STR Embarqués STR Embarqués Mécanisme Du changement de contexte (1) • Choisir un des processus qui sont dans l’état PRET (READY) ou le processus CURRENT : - rôle du scheduler (qui peut être une fonction sched ()) • Le scheduler : - choisit le plus prioritaire des processus READY ou le CURRENT - fait éventuellement passer le CURRENT en READY - remarque : Le changement de contexte : La fonction où on ne revient jamais • La fonction ctxswitch: - change les pointeurs de pile, etc, - sauve les registres, - restaure le contexte du processus réordonnancé, - ATTENTION : dès que le compteur ordinal est restauré, on part dans le code du processus réordonnancé : on ne revient pas de la fonction ctxswitch qui fait le changement de contexte !!!! o toutes les fonctions du système coopérent pour gérer l’état des processus : l’état est modifié par les sémaphores, les interruptions, … qui appelle ensuite sched () - fait passer le processus choisi en CURRENT - appelle une fonction du type ctxswitch ©ENST 8/06/10 112 ©ENST 8/06/10 113 STR Embarqués STR Embarqués Le changement de contexte : Changement de contexte Et ordonnancement • 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… - les processus appellent sched () pour faire la changement de contexte après avoir chois le processus à activer, donc : o tous les processus suspendus reviennent dans sched ()après l’appel à ctxswitch o c’est le retour de sched ()qui les renvoie dans la fonction qui a appelé sched() ©ENST 8/06/10 114 ©ENST 8/06/10 115 STR Embarqués STR Embarqués Le processus null ou idle, Gestion de la concurrence : Les sémaphores • Opération P : • le rôle de sched ()est seulement de choisir un processus parmi les READY et CURRENT : - elle ne créé PAS de processus, - elle ne vérifie pas si la liste des READY est vide, - conséquence : il doit toujours y avoir au moins un processus dans l’état READY : le null process - si le compteur passe négatif : o faire passer le processus de CURRENT à BLOCKED, o indique le numéro du sémaphore dans l’entrée de la process table associée au processus o appel à sched() • Opération V : - si le compteur passe négatif ou nul : o choisir un READY, processus et le faire passer de BLOCKED à o appel à sched() ©ENST 8/06/10 116 ©ENST 8/06/10 117 STR Embarqués STR Embarqués Rappel sur l’ordonnancement de tâches dépendantes (ici, EDF) Rappel sur l’ordonnancement de tâches dépendantes (EDF) • Si une tâche (ex : gestion de la direction d’un véhicule) attend un résultat fourni par une autre (ex : détecteur de choc), on parle de tâches dépendantes, • Exemple pour trois tâches T1, T2 et T3 dont on donne ci-dessous le graphe de dépendance : • Modification des paramètres pour prendre en compte les dépendances entre tâche EDF : - chaque tâche doit avoir une échéance dont la date est antérieure à celle des tâches qui dépendent d’elle. L’échéance Di de Ti devient : D*i = min { Di, min{ D*j - C j } }, pour j tel que Ti précède Tj • Rappel des formules : D*i = min { Di, min{ D*j - C j } }, pour j tel que Ti précède Tj - une tâche ne peut être activée que si toutes ses précédentes ont été activées. Donc la date de réveil d’une tâche doit être supérieure à celle de ses précédentes à laquelle a été ajoutée la durée d’activation. La date de réveil ri de Ti devient : r*i = max { ri, max{ r*j + C j } }, ©ENST 8/06/10 pour j tel que Tj précède Ti r*i = max { ri, max{ r*j + C j } }, pour j tel que Tj précède Ti • Si la dépendance est une communication par message, on ajoute le délai ! ij dû à la durée de la transmission et la date de réveil devient : r*= max { r, max{ r*+ C+ ! j } , pour j tel que Tj précède Ti 118 ©ENST 8/06/10 119 STR Embarqués STR Embarqués Gestion des interruptions • On associe à chaque interruption une fonction de traitement (vecteur d’interruption, ISR) : - Attention au partage de données Gestion Des interruptions • Tables des vecteurs, priorités, masquage, traitement •Horloges - 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 ? - périodiquement : tous les n tics d’horloge, - préemption, o sert à gérer des alarmes (quantum, échéance), utilisation d’une liste du type delta - time of day clock (consulté à sa demande par le système) 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 ©ENST 8/06/10 120 ©ENST 8/06/10 121 STR Embarqués STR Embarqués Les entrées-sorties dans un STRE • Elément déterminant d'un STRE : la gestion des entrées-sorties : - lire (périph. , données, échéance) Spécificité des systèmes embarqués : Gestion de lʼénergie • Les dispositifs embarqués sont souvent contraints par la ressource énergie (les batteries ont une capacité limitée) : - à quel niveau gérer l’énergie : système, application, matériel ? • On doit pouvoir gérer les e/s comme on gère les processus : - satisfaire la plus prioritaire d'abord, - annuler une demande lorsque son échéance est dépassée, - réordonner les demandes si une plus prioritaire arrive, • Le système peut prendre en charge cette gestion, car il a une vue globale : - ordonnancement prenant en compte la gestion de l’énergie • Plusieurs stratégies : • Si les tâches partagent des ressources (capteurs/émetteurs, accès au réseau) : - transition (passage d’un état à un autre), exemple : mise en veille du processeur - utiliser des algorithmes d’ordonnancement entre tâches dépendantes, - adaptation (changement de technologie), exemple : remplacer un disque par de la mémoire flash - utiliser PCP ou PIP pour accéder aux sémaphores gérant les ressources, - modification de la charge d’un composant, par exemple : utiliser des caches (mémoire, disque) ce qui modifie les stratégies de gestion des disques , • Attention aux mécanismes matériels : -entrées-sorties exécutées par le processeur, -entrées-sorties indépendantes du processeur (DMA), ©ENST 8/06/10 122 • Le matériel propose des outils : mise en veille, réduction de fréquence, ©ENST 8/06/10 123 STR Embarqués STR Embarqués STRE Plan 1. Présentation des systèmes temps réel embarqués (STRE) a. rappels sur les systèmes temps réel b. contraintes des systèmes embarqués c. les STRE 2. Structure et fonctionnement des STRE a. Exécutif ou système b. Ordonnancement c. Entrées/sorties 3. Développement d'applications embarquées 4. Les STRE disponibles 5. Perspectives ©ENST 8/06/10 124 ©ENST 8/06/10 125 STR Embarqués STR Embarqués Environnement de développement Environnement de développement • Cycle de mise au point : • Développement en environnement croisé : compilateur croisé et outils associés, suivi de mise au point à distance ( remote debugging), Edition de sources • Les développements ne se font plus en assembleur, le langage de haut niveau peut prendre en main les problèmes proches du matériel, Compilation croisée et éditions de liens Téléchargement • Utilisation de plus en plus courante de logiciels du type gnu (gcc, gdb) Moniteur Exécution et mise au point • Style de programmation spécifique (pas d'allocation dynamique de ressources, gestion de timers, écriture de pilotes d’E/S, ...) Système + application EPROM, Flash RAM Host (hôte) Target (cible) 1. téléchargement ROM RAM Processeur A Outils dedéveloppement croisé 2. Exécution/mise au point Processeur B • Le moniteur sert à démarrer (« booter ») la carte : il initialise les registres de base du processeur, et gère au moins une ligne série pour le téléchargement. Moniteur en ROM Pas d'écran Pas de disque ©ENST 8/06/10 126 ©ENST 8/06/10 127 STR Embarqués STR Embarqués Environnement de développement Exemples • RTEMS et ppcboot : • Plate-forme logicielle de base : - un STRE (ex : RTEMS), Target (cible) - un ou plusieurs compilateurs croisés (ex : gcc sur PC-Linux générant du code pour Motorola PowerPC) et des outils de développement croisés (les bibliothèques C), ROM RAM - un moniteur (ex : ppcboot) et des protocoles de communication pour le téléchargement et la mise au point (ex : tftp), • On rappelle ci-dessous la place du BSP qui isole le système de la configuration matérielle : Pilotes Processeur de base Carte particulière Matériel Outils dedéveloppement croisé 2. Exécution/mise au point Processeur A Processeur B Moniteur en ROM Pas d'écran Pas de disque • Embedded Linux (< 500K octets avec TCP-IP), et mise au point avec remote gdb : Bibliothèque, threads, etc Systéme Host (hôte) 1. téléchargement Hôte : PC sous Linux Cible : plateforme PowerPC BSP MPC860 RAM Interface Ethernet • Pour réduire les coûts Port série - simulateurs, 1. téléchargement BDM Port parallèle 2. accès nfs Interface Ethernet 3. Exécution/mise au point - plate-forme de développement propriétaires, - outils free software, ©ENST 8/06/10 128 ©ENST 8/06/10 129 Port série COM1 STR Embarqués STR Embarqués Du côté du matériel • A vérifier du côté architecture matérielle : Quelques critères Pour la conception • Qualité de la réponse aux stimuli externes, - gestion des interruptions, - moins précise, plus rapidement, - gestion de la mémoire (inhiber la pagination,…), - exacte, moins rapidement, - fonctionnement des horloges, - combien d'échéances peut-on manquer ? - fonctionnement des caches (données, instructions, peut on les verrouiller, les geler, …) • Choix des algorithmes : - ils devront se satisfaire de ressources limitées (mémoire, vitesse, énergie, ...), - ordonnancement approprié -> RMS , EDF, … - E/S à échéance -> gestion d’alarmes et de timers, ©ENST 8/06/10 130 ©ENST 8/06/10 131 STR Embarqués STR Embarqués STRE Facteurs intervenant dans la gestion du temps (rappels) • Facteurs matériels d’indéterminisme dans la gestion mémoire : - pagination (en général inhibée en embarqué), - fonctionnement des mémoires caches, • Facteurs matériels d’indéterminisme dans la gestion du processeur : - pipe-line, - superscalaire, VLIW… • • Attention au partage des ressources : - pb. de concurrence (inversion de priorité), Attention à la gestion des entrées-sorties à bas niveau: - priorités, échéances, interruptions - attention au bon typage des variables (cf. volatile en C pour l’accès aux registres des périphériques), ©ENST 8/06/10 132 Plan 1. Présentation des systèmes temps réel embarqués (STRE) a. rappels sur les systèmes temps réel b. contraintes des systèmes embarqués c. les STRE 2. Structure et fonctionnement des STRE a. Exécutif ou système b. Ordonnancement c. Entrées/sorties 3. Développement d'applications embarquées 4. Les STRE disponibles 5. Perspectives ©ENST 8/06/10 133 STR Embarqués STR Embarqués Quelques STR embarqués ... Quelques systèmes Embarqués : • Propriétaires : - LynxOS de Lynx, 4% du marché, QNX, 5% du marché, - iRMX, produit par Intel pour 8086, 5% du marché, • Parmi les systèmes temps réel portés sur de nombreuses plateformes, citons : - pSOS (ISI) et VRTX (Microtec) pour 68xxx, 9% du marché, - RTEMS, - VxWorks, 286 Ko, de WindRiver (terminaux X, Mars Pathfinder), 11% du marché, - Linux (RTLinux), • 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, - VRTX, produit par Hunter et Ready pour 68xxx, 8% du marché, - Mobilinux, - Symbian pour les téléphones portables, • JVM : la version RTSJ, - 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 : - RTEMS de OAR, implémenté en C et Ada, porté sur de très nombreux processeurs et BSP, • Dans le monde des systèmes embarqués sur les mobiles, mais non temps réel : Microsoft Mobile Windows et la JVM J2ME. - eCos de Red Hat, - Linux embarqués variés (RT-Linux, Linux-RK) • universitaires : Spring, ARTS, Mars, TinyOS … ©ENST 8/06/10 134 ©ENST 8/06/10 135 STR Embarqués STR Embarqués Quelques systèmes embarqués: RTEMS • RTEMS (Real-Time Executive for Multiprocessor Systems) de OAR (On-Line Applications Research Corporation) http://www.rtems.com : - temps réel dur, porté sur de très nombreuses plateformes matérielles, - exécution déterministe : elle ne varie pas en fonction du nombre d’objets présents sur le système, temps de latence dû aux interruptions prédictible, - ordonnancement préemptif, basé sur les priorités, RMS fourni, - système est configurable : seules sont chargées les fonctionnalités (tâches, sémaphores, timers, …) nécessaires à une application donnée (notion de manager), on optimise ainsi les performances en vitesse et on minimise l’espace d’adressage utilisé, - possibilité d’intégrer des services spécifiques par la mise en œuvre d’extensions (pour insérer des traces, etc) - implémenté en C et Ada, API POSIX, versions pour Motorola PPC, M68xxx, Intel ix86, i960,MIPS, SPARC, … ©ENST 8/06/10 136 Quelques systèmes embarqués : Linux temps réel • RT Linux (Real time Linux), http://www.rtlinuxfree.com et RTAI (Real Time Application Interface for Linux), http://www.rtai.org) : - Construits à partir du système temps partagé Linux, qui présente les handicaps suivants : o Il existe dans le noyau de longues sections pendant l’exécution desquelles les événements externes sont masqués. Il peut être préempté lorsqu’il effectue un appel système ou lorsqu’il exécute le code relatif à une interruption. Pas d’approche temps réel pour gérer les périphériques, support partiel de l’interface POSIX temps réel. • Deux pour rendre Linux temps réel : - applications de patches sur le noyau pour y placer des points de préemption, - insertion d’un second noyau entre Linux et le matériel (approche adoptée par RTAI), • Mobilinux (http://www.mobilinux.com), construit sur le noyau Linux préemptible de Montavista. Il se satisfait d’une empreinte mémoire réduite, propose un protocole publish/subscribe, et offre une gestion dynamique de l’énergie (DPM : dynamic power management) ainsi que des outils de mesure et de trace. ©ENST 8/06/10 137 STR Embarqués STR Embarqués Quelques systèmes embarqués (sur mobiles ): Symbian • Symbian, http://www.symbian.com : - construit au dessus de EKA2 qui est un noyau mono utilisateur, multitâches, préemptif, peu consommateur de mémoire et d’énergie. Priorités préemptives, synchro. PIP, Quelques systèmes Embarqués : ARINC 653 • 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 STRE dans une perspective de haute disponibilité : - 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 programmes d’une application du point de vue mémoire mais aussi du point de vue temporel : chaque partition dispose de son propre espace d’adressage et de créneaux de temps. Elle ne peut empiéter ni sur les créneaux temporels ni sur l’espace mémoire des autres partitions. - appels système en temps borné, timer haute résolution, latence pour le traitement des interruptions est de 0,5ms à 1ms. Symbian ne fait pas d’hypothèse sur le MMU du processeur et propose plusieurs modèles de mémoire. - outils de communication entre threads, de gestion des interruptions, d’écriture de pilotes, des moyens pour le contrôle gestion de l’énergie et la définition du HAL. La gestion de la sécurité et des fichiers est également prévue. - Gestion de pile GSM. - ordonnancement cyclique : une partition peut être activée une ou plusieurs fois par cycle. A l’intérieur d’une partition différentes tâches peuvent être ordonnancées de façon périodique ou non, la norme attend un ordonnancement par priorité et préemptif. - 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. ©ENST 8/06/10 138 ©ENST 8/06/10 139 STR Embarqués STR Embarqués Quelques systèmes embarqués: RTSJ Quelques systèmes embarqués sur les mobiles : Windows Mobile • RTSJ, Real-Time Specification for Java est une spécification de fonctionnalités temps réel pour les JVM (http://www.rtj.org) : - Les apports de cette spécification sont orientés vers le déterminisme temporel : o L’ordonnancement doit être préemptif, avec une gestion FIFO des threads ayant la même priorité, la JVM ne peut changer la priorité d’un thread que dans le cas de l’inversion de priorité, o Gestion des threads au niveau utilisateur : ! caractérisation fine des threads temps réel en précisant leur coût, leur échéance et leur période, • Windows Mobile (http://www.microsoft.com/windowsmobile) : - Windows Mobile 5.0 de Microsoft n’est pas temps réel mais propose la technologie push qui permet de recevoir des mails le plus tôt possible. Une technologie qui a fait le succès de RIM (Research In Motion, http://www.rim.com) et Blackberry (http://www.blackberry.com) : 3 millions d'utilisateurs dans le monde, - possibilité de stockage des informations utilisateur en mémoire 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. ©ENST 8/06/10 140 ©ENST 8/06/10 141 STR Embarqués STR Embarqués 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, 1. Présentation des systèmes temps réel embarqués (STRE) a. rappels sur les systèmes temps réel - Systèmes embarqués distribués à grande échelle : quel middleware (RT CORBA, …) ? b. contraintes des systèmes embarqués • Ordonnancement : notions de partitions (ARINC 653), ordonnancement dynamique et adaptable (flexible scheduling, power aware scheduling), c. les STRE • Gestion mémoire déterministe (cf les outils RTSJ), 2. Structure et fonctionnement des STRE a. Exécutif ou système • Gestion de l’énergie : par l’ordonnancement, par le matériel, à la compilation ? • Compilateurs , exemple : impact de la compilation sur la gestion de l’énergie : b. Ordonnancement 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 ©ENST 8/06/10 142 ©ENST 8/06/10 143 STR Embarqués Perspectives : matériel • Chaque composant doit avoir des performances déterministes : - caches performants et prédictibles, - bus (cf. CAN, TTP) et réseau (cf. TDMA, IP ?), - préférer des pipe-lines uniques aux architectures superscalaires, • Loi de Moore : les performances technologiques des composants sont multipliées par deux tous les un à trois ans, mais le stockage de l’énergie ne suit pas cette loi… • Prendre en compte la gestion de l’énergie, l’encombrement, la fiabilité, ©ENST 8/06/10 144