Chapitre 1 Introduction aux systèmes embarqués et temps réel 1 1. Notions et caractéristiques des systèmes embarqués Domaines d application des systèmes embarqués Domaines «traditionnels» -Avionique - Robotique - Automobile - Militaire Domaines «nouveaux» - Jeux et loisirs - Téléphonie, Internet mobile - Implants (santé, sécurité ) - Domotique, - immeubles intelligents, - Villes intelligentes - Vêtements 2 1
Exemple typique de système embarqué 3 Exemples de systèmes embarqués 4 2
Tendances du marché Logiciel : - Beaucoup de fournisseurs - Pas de fournisseur dominant - Problèmes de compatibilité : Posix 1003.1c 1c et 1b Matériel : - Processeurs essentiellement Motorola - Cartes à puce - Périphériques d E/S (mesures ) : très diversifiés 5 Définitions 1. Un système embarqué (SE) est un système informatisé spécialisé qui constitue une partie intégrante d un système plus large ou une machine. Typiquement, c est un système sur un seul processeur et dont les programmes sont stockés en ROM. A priori, tous les systèmes qui ont des interfaces digitales (i.e. montre, caméra, voiture ) peuvent être considérés comme des SE. Certains SE ont un système d exploitation et d autres non car toute leur logique peut être implantée en un seul programme. 2. Un système embarqué est une combinaison de logiciel et matériel, avec des capacités fixes ou programmables, qui est spécialement conçu pour un type d application particulier. Les distributeurs automatiques de boissons, les automobiles, les équipements médicaux, les caméras, les avions, les jouets, les téléphones portables et les PDA sont des exemples de systèmes qui abritent des SE. Les SE programmables sont dotés d interfaces de programmation et leur programmation est une activité spécialisée. 3. Un système embarqué est une composante primordiale d un système (i.e. un avion, une voiture ) dont l objectif est de commander, contrôler et superviser ce système. Embedded : Enfoui / Embarqué 6 3
Principales caractéristiques - Encombrement mémoire (mémoire limitée, pas de disque en général) - Consommation d énergie (batterie : point faible des SE) - Poids et volume - Autonomie - Mobilité - Communication (attention : la communication affecte la batterie) - Contraintes de temps réel - Contraintes de sécurité - Coût de produits en relation avec le secteur cible 7 Besoins Intégration massive de composants embarqués répartis pour bâtir la société de l information : téléphones cellulaires PDA machines programmables automobile - appareils médicaux photo/vidéo/hifi électroménager avionique - spatial jouets Outils théoriques et pratiques pour l intégration permettant de prendre en compte tous ces critères à la fois - Fonctionnalité - Qualité : Robustesse et Performances - Contraintes matérielles (poids, encombrement,.. ) - Coût global, consommation électrique - Délai de mise sur le marché Construire des systèmes de fonctionnalité et qualité déterminée et garantie, à coût acceptable, est un défi technologique et scientifique majeur. 8 4
Aspects à considérer Techniques : Conception conjointe (Matériel, Logiciel, Environnement) Économiques : Optimisation par rapport au marché, entre coût et qualité Multi-compétence : Combinaison de compétences en logiciel, contrôle, réseaux, ingénierie en électronique, IHM, automatique, médecine, mécanique Défis à considérer Hétérogénéité : Construire des systèmes complexes par intégration de composants hétérogènes (mécanismes de communication, vitesse de fonctionnement, granularité des calculs, variété des médias ) Complexité : L effort de développement augmente exponentiellement avec le nombre de composants intégrés. D où Doù la nécessité de remplacer les méthodes de validation a posteriori par des méthodes de validation incrémentale. Développer des outils théoriques et techniques pour la validation incrémentale. Intelligence : Moyen d améliorer la qualité (robustesse et la performance) de système : Auto-diagnostic, Auto-configuration, Adaptabilité à l environnement, Evaluation des risques 9 Développement de SE Niveaux d abstraction 10 5
Intégration de technologies Méthodes et outils Programmation et Middleware Réseau OS SoC 11 Compétences pour la conception et développement de SE Domaine métier : médical, loisirs, transport Ingénierie : électricité, électronique, chimie, mécanique, robotique,, informatique Sciences : mathématiques, statistiques, probabilités,recherche opérationnelle Informatique Algorithmique Programmation Architectures (CPU, mémoires, périphériques) Gestion de l énergie des processeurs et périphériques Génie logiciel, co-design, méthodes formelles, automates Evaluation de performances, test, simulation, vérification Systèmes d exploitation ti (ordonnancement ) Sécurité et robustesse Réseaux, mobilité Capteurs et actionneurs Vision par ordinateur, caméra 12 6
2. Notions et caractéristiques des systèmes temps réel La gestion du temps dans un OS classique (temps partagé) Un système d'exploitation (OS) classique, c.-à-d. orienté temps partagé, doit organiser et optimiser l'utilisation des ressources de façon à ce que l'accès à ces ressources soit équitable. Un OS n'a donc pour seule contrainte de temps que celle d'un temps de réponse satisfaisant pour les utilisateurs avec lesquels il dialogue. Les traitements qu'on lui soumet sont effectués en parallèle au fil de l'allocation des quanta de temps aux diverses applications. Un OS est capable de dater les événements qui surviennent au cours du déroulement de l'application! : mise à jour d'un fichier, envoi d'un message, etc. Il permet aussi de suspendre un traitement pendant un certain délai, d'en lancer un à une certaine date... En aucun cas, un OS classique ne garantit que les résultats seront obtenus pour une date précise, surtout si ces résultats sont le fruit d'un traitement déclenché par un événement EXTERIEUR (émission d'un signal par un périphérique quelconque, ) 13 Définitions «Intervalle de temps compatible avec le rythme réel d arrivée des données et à l intérieur duquel un ordinateur peut effectuer les traitements nécessaires» Le petit Robert. «Temps réel signifie l aptitude d un système d exploitation de fournir le niveau de service requis au bout d un temps de réponse borné». Posix 1003.1b Un système temps réel est un système informatique qui doit répondre à des stimuli fournis par un environnement externe afin de le contrôler. Un STR est un système dont la correction dépend non seulement de la justesse des calculs mais aussi du temps auquel est fourni la réponse (contraintes temporelles). Un résultat hors délai et un résultat faux. Attention : Ne pas confondre temps réel et rapidité Temps réel veut dire prédictibilité et non rapidité. 14 7
Classification Temps réel dur ( hard real-time ) : le non respect des contraintes temporelles entraîne la faute du système e.g. contrôle de trafic aérien, système de conduite de missile,... Temps réel souple ( soft real-time ) : le respect des échéances est important mais le non respect des échéance n a pas de graves conséquences e.g. système d'acquisition de données pour affichage Temps réel ferme ( firm real-time ) : temps réel souple, mais si l échéance est dépassée le résultat obtenu n a plus de valeur (et est donc écarté) e.g. projection vidéo 15 Capteurs Actionneurs Environnement Système de contrôle 16 8
Domaines d applications Installations industrielles (chimique, nucléaire, automobile, ) Contrôle et régulation de trafic en milieu urbain Systèmes embarqués (voitures, trains,...) Télécommunications Avionique et aérospatial Domaine militaire Multimédia et Web (téléconférences, télé-achat, ) Domotique, Jeux Médecine, Télé-médecine Réalité virtuelle, Travail coopératif Autres Cours Module ASTRE 17 Z. MAMMERI IRIT - UPS - Toulouse Exemple simple et éclairant (1) On dispose de deux systèmes : -Système Cool, avec : processeur à vitesse 1 ; surcoût système de 1 ; ordonnancement EDF (Earliest Deadline First) -Système Speedy, avec : processeur à vitesse 10 ; surcoût système de 0 ; ordonnancement à l'ancienneté (FIFO) Donc Speedy est 10 fois plus rapide et infiniment plus efficace que Cool On considère une application composée de deux tâches non préemptibles : -Tâche T1 envoie des commandes périodiques pour entretenir la commande moteur du véhicule sa durée est de 270 sur Cool et de 27 sur Speedy ; son délai critique de 320 -Tâche T2 réagit à une commande du volant ; sa durée est de 15 sur Cool et de 1,5 sur Speedy ; son délai critique est de 21. A l instant t=0, la tâche T1 est déclenchée pour son exécution périodique. Cependant, au même instant, T2 est demandée en réaction à un événement. Les tâches T1 et T2 sont de même importance pour la conduite du véhicule 18 9
Exemple simple et éclairant (2) Surcoût Exécution de T2 d abord À cause de son échéance T1 T2 0 Eé Exécution de 15 u.t Exécution de 270 u.t 16 17 287 320 Exécution sur le processeur Cool T2 respecte son échéance T2 ne respecte pas son échéance Exécution en FIFO 0 Exécution de 27 u.t 21 27 28,5 Exécution sur le processeur Speedy 19 Sources des contraintes de temps (1) Origines externes Caractéristiques physiques (vitesse, durée de réaction chimique, ) Caractéristiques liées aux lois de commande du système physique Qualité de service requise en terme de délai de réponse tolérable (qualité audio/vidéo) Perception sensorielle et le temps de réaction de l homme Contraintes à caractère commercial Autres Connaissance des aspects physiques nécessaire 20 10
Origines internes Choix de conception Sources des contraintes de temps (2) architecture centralisée ou répartie (données, traitements, contrôle) actions périodiques (avec les périodes adéquates) ou apériodiques choix d une structure d application (interface entre composants, ) autres Choix d architecture matérielle et logicielle processeurs avec des vitesses particulières système d exploitation (intégrant des algorithmes d ordonnancement) réseau avec des débits et des temps de réponse donnés autres 21 Expression des contraintes de temps (1) Expression à l aide du temps quantifié (temps physique) Temps absolu un instant (date) une fenêtre temporelle (intervalle de temps) Temps relatif une durée (délai, période), minimale, maximale, moyenne 22 11
Expression des contraintes de temps (2) Expression sur les événements Contraintes sur la durée de vie d un événement Contraintes sur les instants et l ordre d occurrence d événements é Expression sur les données Durée de validité (ou contrainte de fraîcheur) Contraintes de production Contraintes de corrélation 23 Expression des contraintes de temps (4) Expression sur les actions (opérations) Période Instant au plus tôt/tard, pour démarrer une action Instant au plus tard/tôt, pour finir une action Temps maximum d exécution (ou échéance relative) Temps maximal d attente d une ressource Temps minimal/maximal d utilisation d une ressource Temps minimum d exécution affecté à une action Précédence entre actions 24 12
Quelques ordres de grandeur Domaines d applications Processus chimique Fabrication Robotique Systèmes vocaux Systèmes radar Ordre de grandeur des CT en heure en minute en 10 ms en ms en ms 25 Principes et concepts de base (1) Application temps réel = Ensemble de tâches qui coopèrent Les tâches accèdent à des ressources communes Les tâches s échangent séchangentdes messages via un réseau Les tâches doivent respecter différentes contraintes : - Cohérence des ressources partagées - Tolérance aux fautes -Sécurité - Temps de réponse Les tâches s exécutent sur 1 ou n processeurs Système temps réel vs Application temps réel Les deux notions sont souvent confondues 26 13
Exemple d application temps réel et embarquée (1) Tâches critiques : - Contrôle airbag, contrôle ABS - Contrôle injection-moteur - Contrôle pneumatique Tâches non critiques Contrôle climatisation Contrôle vitres Radio 27 Exemple d application temps réel et embarquée (2) Tâches contrôle de vol Tâches gestion de cabine Tâches de Maintenance 28 14
Eléments constituant le temps de réponse d une tâche Temps d exécution (Worst Case Execution Time) Temps d attente de ressources Temps d attente des E/S Temps dus au système d exploitation et difficilement calculables Temps de latence des interruptions (délai entre l arrivée d une IT et le début de sa prise en compte effective) Temps de préemption (délai de sélection de la tâche à exécuter) Latence de l ordonnancement (délai entre la réception de l IT et l entrée dans la tâche de l utilisateur) t Temps de commutation de contexte de tâche Latence de sémaphore (délai entre la libération d un sémaphore et la réactivation de la tâche bloquée derrière ce sémaphore) 29 Exemple de temps de réponse à un événement - On considère deux threads Th1 et Th2. Th1 est le plus prioritaire. - A l instant t0, Th1 lance une E/S. - Le dessin ci-dessous schématise la suite des événements : Th1 se met en attente de l E/S Th2 devient actif Fin de l E/S Le driver fait Passer Th1 à prêt Th2 est préempté Th1 devient actif Th1 sort de l appel système (E/S) t0 t1 t2 t3 t4 t5 t6 Temps d élection et changement de contexte Latence d IT Temps de préemption Temps de changement de contexte Durée de retour de l appel système Durée de l opération d E/S 30 15
Principes et concepts de base (2) Problèmes à gérer - Problèmes de l informatique classique - Concurrence en présence de contraintes de temps - Communication - Tolérance aux fautes -Sécurité L ordonnancement joue un rôle fondamental 31 Langages de développement (1) Besoins Expression des contraintes de temps Expression et gestion du parallélisme spécification et gestion de périphérique de bas niveau (E/S de base) Modularité Interfaces avec d autres langages 3 familles de langages Langages assembleurs Langages séquentiels liés à des librairies système Langages concurrents de haut niveau Langages synchrones (Lustre, Esterel ) : déterminisme garanti Langages asynchrones (SDL, UML, Java ) : difficulté de garantir le déterminisme 32 16
Langages de développement (2) Langages assembleurs Historiquement, ces langages furent longtemps les seuls à être utilisés dans le contexte des STR Dépendant par nature de l'architecture cible (matériel et système d'exploitation) Aucune abstraction possible et grande difficulté de développement, de maintenance et d'évolution Langages à proscrire sauf pour l'implémentation de petites fonctionnalités très spécifiques et apportant t une grande amélioration des performances Langages séquentiels liés à des librairies système Les plus connus sont le C, le C++, Fortran Apportent un plus grand pouvoir d'abstraction et une certaine indépendance du matériel Mais, doivent faire appel à des librairies systèmes spécifiques pour la manipulations des processus Ils posent le problème de la standardisation des appels systèmes mais sont quelques fois le seul choix possible à cause de la spécificité d'une cible et des outils de développement sur celle-ci. Langages concurrents de haut niveau Langages généralistes incluant de plus la notion de tâches et des primitives de synchronisation Haut pouvoir d'abstraction, indépendance des architecture et des systèmes cibles Parmi ces langages, Ada et Java sont des plus aboutis Ces langages sont à privilégier lorsque d'autres contraintes ne rendent pas leur choix impossible 33 Exécutifs temps réel (1) (RTOS : Real-Time Operating Systems) Exécutif = Noyau de système d exploitation Caractéristiques d un exécutif temps réel comportement de l OS prédictible * Ordonnancement de tâches prédictible * Gestion de ressources prédictible dédié à une application spécifique (système embarqué) plus spécialisé qu'un système d'exploitation code de taille plus petite qu'un système classique taille mémoire réduite (services optimisés et ceux non utilisés supprimés) surcoût du système minimal (changement de contexte) nombre élevé d IT utilisables par les tâches facilité d insertion et retrait de périphériques 34 17
Exécutifs temps réel (2) Applications Applications Middleware Drivers RTOS Middleware Système d exploitation Drivers STR fondés sur un RTOS STR utilisant un OS conventionnel (approche peu efficace, non recommandée) 35 Exemples de Système d'exploitation temps réel Produits commerciaux - Lynx-OS : système Unix à base de thread noyau - compatible avec Linux www.lynuxworks.com/ - QNX : système Unix www.qnx.com/ - Windows CE : système Microsoft temps réel www.microsoft.com/technet/prodtechnol/wce/plan/realtime.mspx - VxWorks et psos : Exécutif de Wind river www.windriver.com/products/device_technologies/os/vxworks5/ - Nucleus Real-Time Operating System www.mentor.com/proyducts/embedded_software/nucleus_rtos/index.cfm / / / Open sources extensions de Lunix - RT-Linux : www.fsmlabs.com/rtlinuxpro.html -KURT:www.ittc.ku.edu/kurt -RTAI:www.aero.polimi.it/rtai/news/index.html 36 18
Standards POSIX pour le temps réel POSIX = Portable Operating System Interface for unix Objectifs : Définir une interface standard entre les applications et l OS pour rendre les applications (TRE) portables Services proposés - Threads, ordonnancement, synchronisation - Gestion du temps - Files de messages, signaux -E/S asynchrones - Gestion de la mémoire POSIX 1003.1 : interface de base d accès à l OS. POSIX 1003.1b (appelé aussi 1003.4) 1993 : Extensions temps réel (ordonnancement à priorité, signaux TR, horloges et timers, sémaphores, messages, E/S asynchrones ) POSIX 1003.1c (appelé aussi 1003.4) 1993 : Extensions de threads (création/destruction de threads, synchronisation et ordonnancement de threads ) Beaucoup d implantations de POSIX sont disponibles : Lynx, VxWorks, RTEMS 37 Architecture logiciel d un système TRE N oyau temps réel Horloge temps réel Gestion du temps Gestion des événements Primitives IT Gestion des interruptions Ordonnanceur Tâches utilisateur Requête Activation Tâche i Tâche j Tâche k 38 19
Niveaux simplifiés pour un STRE Espace Utilisateur RT RT NonRT User User User process process process Appels système Ordonnancement de processus Espace Système NonRT RT RT Kernel Kernel kernel task task task Données IT Hardware 39 Exemple de tâches temps réel (en langage FlowC) GetData Filter COEF IN DATA DATA OUT La tâche GetData mesure une température à partir de l environnement et envoie la valeur mesurée à la tâche Filter. Une mesure est effectuée toutes t les 10 ms. Quand N mesures ont été effectuées, la moyenne des N mesures est envoyée à Filter. La tâche Filter lit N mesures et les ignore et lit ensuite la moyenne des mesures, multiplie cette moyenne par c (dont la valeur est lue à partir de COEF) et envoie la valeur obtenue à l environnement via le port OUT. 40 20
Exemple de tâches temps réel (en langage FlowC) Process GetData (InPort IN, OutPort DATA) { float mesure, somme; int i; While(1) { somme = 0; for (i=0; i< N; i++) { READ(IN, mesure,1); somme+= mesure ; WRITE(DATA, mesure, 1) DELAY(10) } WRITE(DATA, somme/n,1) }} Process Filter (InPort DATA, InPort COEF, OutPort OUT) { float c, d; int j; c = 1; j = 0; While(1) { SELECT(DATA, COEF) { CASE DATA: READ(DATA, d, 1); if (j==n) {j=0; d=d*c; WRITE(OUT, d,1); } else j++; CASE COEF: READ(COEF, c, 1); break ; }}} 41 21