Applications Embarquées Critiques Jean-Marc Pierson pierson@irit.fr Cours DL Jean-Marc Pierson Applications Embarquées Critiques (1/50)
Applications Embarquées Critiques: Plan Caractéristiques générales, contraintes et contexte Sûreté de fonctionnement, Performances, Systèmes d exploitation? RTOSs Outils: JavaRT, CorbaRT Jean-Marc Pierson Applications Embarquées Critiques (2/50)
Système embarqué On doit pouvoir être assuré du comportement: (et rassuré par son comportement) Fiabilité: probabilité que le système fonctionne correctement à un instant t s il fonctionnait à t=0 Maintenance: probabilité que le système fonctionne correctement après une erreur Sûreté: Pas de conséquence dramatique Sécurité: communication authentifiée et confidentielle Il est souvent dédié à un domaine applicatif. Sa durée de vie varie de quelques mois (mobiles) à plusieurs décennies (avionique). Il possède des interface de communication spécifiques. Jean-Marc Pierson Applications Embarquées Critiques (3/50)
Contraintes Un SE doit être efficace en: Energie (ressource limitée) Performance (réactivité) Taille (mémoire code + exécution) Prix (quoique...) Choix/compromis souvent nécessaire. Jean-Marc Pierson Applications Embarquées Critiques (4/50)
Critique ou pas? Un système embarqué est dit critique si le fait de ne pas pouvoir en dépendre peut avoir des conséquences graves. ("dependability") Le resepct de la sûreté de fonctionnement est un élément clé d un SE critique. Nécessité de prendre la mesure des risques au plus tôt, dès la conception. Notion de prédictibilité, de pires cas. Exemples: Justesse des résultats (confiance) Réactivité dans le temps (senseurs avec énergie manquante) Réactivité dans les temps (délai non respecté)... Jean-Marc Pierson Applications Embarquées Critiques (5/50)
Sûreté de fonctionnement Nécessité de gérer à la fois le temps de conception (durée de vie en rapport) et la sûreté du SE. Méthodes formelles de vérification de programme: Coûteux en temps, dédié à des projets pas trop grands, ou des parties de projet. Un challenge : la certification (standards, procédure de certification, organismes de certification). Exemples: système Coq. preuves de programme. langage B. modélisation par réseau de Petri, automates. Jean-Marc Pierson Applications Embarquées Critiques (6/50)
Paradigmes de conception dédiés design for cost design for performance design for safety Jean-Marc Pierson Applications Embarquées Critiques (7/50)
Contraintes temporelles (temps-réel) Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Un système temps-réel doit réagir aux stimuli de son environnement dans un délai temporel imposé par l environnement, l application Ex: système de freinage, automatisme, procédés industriels... Pour un système temps-réel, il ne suffit pas de fournir des résultats corrects, il faut aussi les fournir en temps et en heure -> Résultats corrects au sens temporel. Des résultats corrects mais tardifs sont faux. Jean-Marc Pierson Applications Embarquées Critiques (8/50)
Temps réel dur et mou Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Dur (Hard real-time): une contrainte est dite "dure", si son non respect résulterait en une catastrophe (Kopetz 1997). Temps de réponse garanti, pas de mesure statistiques. Pour s assurer du temps réel dur, il "suffit" de s assurer que toutes les deadlines dures sont respectées. Connaissance a priori de la charge du système (peu de variabilité, système sous-chargé, comportement périodique). Lâche (Soft real-time): toutes les autres contraintes temporelles. Le but est alors de minimiser les retards, le nombre de deadlines ratés,.. avec des systèmes variants grandement. Jean-Marc Pierson Applications Embarquées Critiques (9/50)
Temps réel et Performance Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Un système temps réel n est PAS un système plus rapide! Par exemple, un Unix RT sera 10% plus lent. Ceci est dû à la préemptibilité du système temps réel, qui peut s interrompre plus souvent car tout (ou presque) est pré-emptible: les sections critiques sont réduites a minima. Les utilisateurs veulent des tâches qui se terminent dans les temps. Et pas au plus vite! Commencer plus vite ne garantit pas de finir plus vite: dû au contention, conflits d accès, dépendances entre tâches. L échelle de temps peut varier grandement. Un senseur de température peut "rater" un échantillon toutes les microsecondes, mais envoyer un missile au mauvais endroit (plusieurs secondes) ou ne pas maîtriser une réaction chimique (de l ordre de l heure par exemple) peut être ennuyeux... Jean-Marc Pierson Applications Embarquées Critiques (10/50)
Prédictabilité et respects des délais Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais La prédictibilité est presque impossible à assurer. Pour respecter les délais, deux méthodes : sur dimensionner les ressources: RAM, CPU, BW. Pb sur sur-dimensionnement car il est adhoc (dépend de la chance?), basée sur des pire cas (peu fréquents), coûte cher en ressources. Et peu s avérer inefficace. faire une gestion de ressources dirigée par le respect des délais. L important est de finir les tâches à temps, pas de les commencer. Jean-Marc Pierson Applications Embarquées Critiques (11/50)
Aller vite n est pas toujours le mieux! Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Jean-Marc Pierson Applications Embarquées Critiques (12/50)
Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Sur-dimensionnement est mauvais : meilleur CPU Jean-Marc Pierson Applications Embarquées Critiques (13/50)
Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Sur-dimensionnement est mauvais: plus de proc. Jean-Marc Pierson Applications Embarquées Critiques (14/50)
Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Sur-dimensionnement est mauvais: plus de proc. Jean-Marc Pierson Applications Embarquées Critiques (15/50)
Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Sur-dimensionnement est mauvais : meilleurs CPUs Jean-Marc Pierson Applications Embarquées Critiques (16/50)
Performances et Systèmes Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Systèmes non temps-réel : les situations considérées importantes sont les plus fréquentes. Système temps-réel dur : les situations les plus contraintes sont considérées, même si peu fréquentes, sans regarder l impact en termes de performances globales ou de coût. Système temps-réel lâche : les situations considérées importantes sont celles avec des exceptions avec grand stress (situations d urgence, pannes inattendues): les cas pire sont difficiles à imaginer. les surcharges fréquentes, l adaptivité est la règle. Des pratiques comme par exemple l utilisation de caches peut s avérer contre-productif (en cas de miss), la gestion des exceptions sans sortie d urgence peut être catastrophique,... Jean-Marc Pierson Applications Embarquées Critiques (17/50)
Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Gestion de ressources dirigée par les délais L important est de finir les tâches à temps, pas de les commencer. Besoins: Définir des contraintes de temps pour l achèvement des tâches Définir des politiques d ordonnancement pour le choix de la tâche à exécuter, basées sur le respect des contraintes de temps et la prédiction de ce respect. Notions de Deadline dur : si la tâche se termine après le deadline, son résultat est inutile (considéré même faux) Mais un deadline peut être dépassé, sans que ce soit catastrophique! Calcul du retard, et optimisation pour l ordonnancement du nombre de retards, du pourcentage de non-respect, du retard moyen, du retard maximum... Jean-Marc Pierson Applications Embarquées Critiques (18/50)
Fonction d utilité des tâches Surdimensionner? Performances et Systèmes Gestion de ressources dirigée par les délais Possibilité d ajouter la notion de fonction d utilité d une tâche: une tâche finie perd de son utilité avec le retard, en gagne si elle est en avance. Pour un hard deadline, la fonction vaut 0 ou 1, mais sinon peut varier continuellement entre ces deux valeurs. Puis on fait une optimisation de l utilité des tâches, selon leur importance. Jean-Marc Pierson Applications Embarquées Critiques (19/50)
Déroulement d un projet 1 Spécifications des besoins 2 Choix d une architecture matérielle (processeurs, cartes,...) Puissance de calcul nécessaire (en nombre d instructions/s) Besoins en consommation et en entrée/sortie Choix a priori dans 75% des cas : énergie, prix, besoins spécifiques, domaines d application, culture d entreprise... 3 Choix d un langages de programmation et d un système d exploitation Plus de 70 SE Disponibilité / plateforme : processeur? drivers? Domaine d application, Coût, Documentation, Pérennité... 4 Choix d un environnement de développement : compilo, débugger, profiler, simulateur. Ex: Eclipse. 5 Conception : lien entre plateforme et l application, intégration, optimisation. Jean-Marc Pierson Applications Embarquées Critiques (20/50)
Langages de spécification et de modélisation SART : analyse fonctionnelle descendante Textuel Matlab, StateMate : automates et lois de contrôle Automatique discrete et continue UML (paradigme objet peu répandu), profils UML (MARTE) Méthodes et langages formels (B, Coq) Langages de conception UML, codesign (HW-SW), ADL et Composants multitâche approches synchrones, langages dédiés (Esterel, Signal, Lustre) Ingénierie dirigée par les modèles (IDM) Model Driven Engineering (MDE) Modèles, métamodèles (concepts), transformation de modèles Jean-Marc Pierson Applications Embarquées Critiques (21/50)
- 2 Langages d action Assembleur, C, avec des contraintes d utilisation Java, «XX Java» (JavaCard, RealTimeJava, EmbeddedJava) Systèmes d exploitation Exécutif «maison» propriétaire Système temps réel RTOS ( VxWorks) Système généraliste spécialisé (RTLinux) Machines virtuelles (EmbeddedJava, Real-TimeJava) Environnements de développement Spécifique à la carte et au langage éditeur, compilateur, éditeur de lien et mapping mémoire spécifiques Mise au point instrumentation du code (printf sur LCD, led,?) émission sur un port série debug via la liaison JTAG (Joint Test Action Group) Jean-Marc Pierson Applications Embarquées Critiques (22/50)
- 3 IHM limité, spécifique ou inexistant Communication bus(vme), liaison série réseaux de terrain ( I2C, CAN, TTP, FlexRay, FIP, ARINC, AFDX) réseaux sans fil (irda, Bluetooth) protocoles classiques ( socket, TCP/IP ) Vérification / validation preuves, test exhaustif, simulation ordonnancement, logique temporelle simulation réaliste certification de code (avionique) ou de compilateur règles d écriture relecture du code tests et preuves Jean-Marc Pierson Applications Embarquées Critiques (23/50)
Processeurs généralistes Microprocesseurs programmables Mémoire programmable, registres et ALU généralistes Avantages: mise sur le marché rapide, coûts faibles de développements, fit 4 all Exemples: Pentium, AMD, ARM,... Jean-Marc Pierson Applications Embarquées Critiques (24/50)
Processeurs Dédiés Conçu pour exécuter (bien) UN seul programme Pas de mémoire programmable, contient uniquement le nécessaire pour le programme cible Avantages: Rapide, peu gourmand en ressources, faible encombrement Jean-Marc Pierson Applications Embarquées Critiques (25/50)
Processeurs Spécifiques applications Optimisé pour des classes d applications ayant des caractéristiques communes Mémoire programmable, registres, ALU spécialisé pour les foncions de la classe Avantages: compromis entre les deux précédents Jean-Marc Pierson Applications Embarquées Critiques (26/50)
Co-Design Conception du matériel et du logiciel simultanément Matériel spécialisé : ASIC, FPGA, SoC, MP-SoC ASIC: Application Specific Integrated Circuit. Par rapport à VLSI, conception de quelques couches seulement de circuits. Mais encore long. FPGA: Field-Programmable Gate Array. SoC: System on Chip MP SoC: Multi-Processor System on Chip Jean-Marc Pierson Applications Embarquées Critiques (27/50)
FPGA Caractéristiques, contraintes, criticité Circuits composés de nombreuses portes logiques élémentaires librement assemblables. Connexions des portes par programmation, afin de réaliser la ou les fonctions numériques voulues. Avantages: une même puce peut être utilisée dans de nombreux systèmes électroniques différents ; disponibilité immédiate; et possibilité de valider les sorties / entrées > vérification / validation du code possible plus facilement ; validation des ASIC et SoC avant production Mais: coût, taille, consommation Exemple: FPGA Xilinx: 400000 portes logiques, 50 MHz Jean-Marc Pierson Applications Embarquées Critiques (28/50)
SoC Caractéristiques, contraintes, criticité Intégration de plusieurs composants d un système sur une seule puce: CPU/microcontroller/DSP, ALU, horloge, mémoire (RAM, ROM, EEPROM, flash), carte graphique, périphériques externes (USB, Ethernet,...), interfaces analogiques... Logiciels contrôlant l accès aux composants. Mise au point par émulation sur FPGA. Raccourci les temps de conception des systèmes. Exemple: AMD Geode Jean-Marc Pierson Applications Embarquées Critiques (29/50)
RTOS ou pas? La plupart des SE n ont pas de système d exploitation: Accès directs aux E/S, au bus mémoire (pas de MMU), écriture en langages de bas niveau (Assembleur, C). Sinon... un SE temps réel ou pas? Jean-Marc Pierson Applications Embarquées Critiques (30/50)
Système d exploitation à noyau monolithique: Linux Non modulaire, pb de maintenabilité, évolutivité? Jean-Marc Pierson Applications Embarquées Critiques (31/50)
Micro Noyau Fonctions limités à la gestion mémoire et la gestion processus, et communications interprocessus, plus le temps. Jean-Marc Pierson Applications Embarquées Critiques (32/50)
Micro Noyau temps réel et hybride Accès aux deux aspects. Ex: LinuxRT, VxWorks Il en existe des dizaines! Diffèrent selon : l applicatif, le coût, la taille Jean-Marc Pierson Applications Embarquées Critiques (33/50)
Les objets du temps réel Le processus : regroupement d objets temps réel, espace mémoire Les objets programmables : la tâche ou le thread, les routines d interruption, l alarme Les objets de communication : le sémaphore (synchronisation, exclusion mutuelle), l événement (synchronisation), la boîte aux lettres (échange synchronisé d informations), le canal ou pipe (échange synchronisé d informations entre processus) Jean-Marc Pierson Applications Embarquées Critiques (34/50)
Langages: JavaRT Java possède de grands avantages pour les appli. embarquées (critiques) : Contrôle de types, à la compilation et à l exécution Gestion des exceptions Gestion de la mémoire, avec ramasse-miette. (objet = null) Support des threads et de la concurrence. (par signaux: join, interrupt ; ou par moniteur : synchronized, wait, notify) Et pour le temps réel Gestion des priorités des threads (setpriority(n)) Gestion de l inversion de priorité Et plus dans Real Time Specifications for Java (RTJS 1.1) Jean-Marc Pierson Applications Embarquées Critiques (35/50)
Java: Synchronisation par mutex, rappel Jean-Marc Pierson Applications Embarquées Critiques (36/50)
Java: Ordonnancement des Threads, rappel Jean-Marc Pierson Applications Embarquées Critiques (37/50)
Real Time Specifications for Java Ordonnanceur d objets adapté au temps réel, avec des moyens de le changer Gestion de zones mémoire non gérées par le ramasse-miette, et de zones mémoire immortelles Gestion des files d attente des threads Priorités de threads plus hautes que le ramasse-miette : non préemptible Gestion de l heure et des timers (notamment temps écoulé, alarmes ponctuelle et périodique) Notion d évènements et d exceptions asynchrones (événements internes et externes venant de l OS) Jean-Marc Pierson Applications Embarquées Critiques (38/50)
Java : Mémoire et Ramasse-miette Facheuse habitude : le ramasse-miette dans Java se met en route quand il veut, il a une priorité > autres threads. Dans RTSJ : les threads de priorité > 10 ne sont pas pré-emptables par le ramasse-miettes plusieurs types de mémoires : seule la HeapMemory (le tas) est récupérable par le ramasse-miette. définition de zones ou la mémoire n est pas ramassée (donc pas de préemption) : en particulier ScopedMemory et ImmortalMemory ScopedMemory : taille fixe ; libérée quand aucun thread ne l utilise plus ; libération en bloc de la zone ; deux types de ScopedMemory : VTMemory et LTMemory, selon contraintes de temps d allocation : prévision possible pour LTMemory ; ImmortalMemory : jamais libérée. Jean-Marc Pierson Applications Embarquées Critiques (39/50)
Java : ScopedMemory et ImmortalMemory rt = new RealTimeThread() { public void run() { Vector v1 = new Vector(); ScopedMemory sm1 = new ScopedMemory(n); sm1.enter(); Vector v2 = new Vector(); ScopedMemory sm2 = new ScopedMemory(n); Vector v3 = new Vector(); } } MemoryArea area = ImmortalMemory.instance(); area.enter(); rt.start(); // Ici v1 est dans area, v2 est dans sm1 (et sm1 est dans area), v3 est dans sm2 qui est dans sm1 Jean-Marc Pierson Applications Embarquées Critiques (40/50)
Java : Thread Deux types de threads temps réel : Temps réel lâche : peut accéder au tas, priorité < ramasse-miettes RealTimeThread Temps réel dur: Sans accès au tas, non préemptable par le ramasse-miettes, mémoire pré-réservée NoHeapRealTimeThread Une sous-classe de la précédente Jean-Marc Pierson Applications Embarquées Critiques (41/50)
Java : Ordonnanceur temps réel Classe Scheduler. Son rôle : Vérification de la faisabilité (respect des contraintes) Organisation/séquencement de l exécution Une sous-classe : PriorityScheduler préemptif priorité fixe (28 niveaux) round-robin gestion de l inversion de priorité Jean-Marc Pierson Applications Embarquées Critiques (42/50)
Java : Ordonnanceur temps réel Méthode : setscheduler( Scheduler sc, SchedulingParameters s, ReleaseParameters r, MemoryParamaters m, ProcessingGroupParameters g) Avec : sc : un scheduler, par exemple un PriorityScheduler s : paramètre d ordonnancement (gestion des priorités, de l importance des tâches) r : caractéristique de la tâche : périodicité, deadline, pire temps, handler pour les dépassements de deadlines. m : gestion de la mémoire : taille maximum utilisée, taille maxi de la mmoire permanente, vitesse d allocation g : pour grouper les tâches hiérarchiquement. Date de début, période, pire temps, deadline Jean-Marc Pierson Applications Embarquées Critiques (43/50)
Java : Ordonnanceur temps réel, exemple Jean-Marc Pierson Applications Embarquées Critiques (44/50)
Java : Ordonnanceur temps réel, exemple, suite Jean-Marc Pierson Applications Embarquées Critiques (45/50)
Java : Inversion de priorité : le problème La synchronisation peut engendrer des inversions de priorités : des processus moins prioritaires passent avant! Jean-Marc Pierson Applications Embarquées Critiques (46/50)
Java : Inversion de priorité : solutions dans RTSJ Solution: l héritage de priorité. Lorsqu une tâche acquière un mutex, elle acquière momentanément la plus haute priorité des tâches en attente. Pas possible de T2 préempte T3! Mais les threads avec priorités basses non-rt sont bloquées par le ramasse-miette. Solution au problème par deux types de files d attente: WaitFreeWriteQueue et WaitFreeReadQueue... Jean-Marc Pierson Applications Embarquées Critiques (47/50)
Outils: CorbaRT Par rapport à Corba, CorbaRT ajoute les spécifications suivantes : Gestion des ressources de l infrastructure de communication. Garantie de la qualité de la communication, par exemple en utilisant les paramètres QoS d ATM ou en choisissant une connexion plutôt qu une autre Exploitation de l ordonnancement des systèmes d exploitation (à chaque bout de la comm.) pour garantir la priorité des applications (et donc gestion des threads) Expression des besoins en termes de ressources et de priorités à l ORB Outils pour la gestion globale de la synchronisation, des exclusions mutuelles, de l ordonnancement des threads dans le système global pour respecter les contraintes de délai Jean-Marc Pierson Applications Embarquées Critiques (48/50)
Conclusion Juste une introduction au domaine...... à découvrir sans modération avec : Des compétences architectures, conception, programmation, systèmes Un intérêt pour les challenges de performances, d espace mémoire, de respect du temps, la sûreté de fonctionnement. Jean-Marc Pierson Applications Embarquées Critiques (49/50)
Références Cette présentation est issue de multiples lectures, en particulier les cours trouvés en ligne ou par mail: E. Jensen, http://www.real-time.org F. Armand, http://www.pps.jussieu.fr/ armand/m2_sem/ F. Simono-Lion, http://www.loria.fr/ simonot H. Cassé, http://www.irit.fr J-P Babau, http://www.lisyc.univ-brest.fr/pages_perso/babau/ Wikipedia, www.wikipedia.fr Jean-Marc Pierson Applications Embarquées Critiques (50/50)