cours_STR_chapitre1.pdf
Document Details
Uploaded by Deleted User
Full Transcript
Cours systèmes temps réel Chapitre 1- Introduction aux Systèmes Temps réel Par. Mariem TURKI Contact : [email protected] LISI3 AU 2024/2025...
Cours systèmes temps réel Chapitre 1- Introduction aux Systèmes Temps réel Par. Mariem TURKI Contact : [email protected] LISI3 AU 2024/2025 1 Plan 1) Introduction 2) Domaines d’application des STR 3) Contraintes de temps des STR 4) Développement d’applications TR 5) Conclusion 2 Introduction ▪ Un système embarqué est un système informatique dont les moyens de calcul sont embarqués sur le procédé contrôlé. → Contraintes : - Encombrement (Poids, taille, forme) - ressources limitées - Consommation d’énergie (embarquée ou ambiante) - Coût 3 Introduction ▪ Généralement, il existe deux principaux modèles de programmation pour les systèmes embarqués : Le modèle à boucle infinie (également appelé systèmes foreground/background ou super-loops) Le modèle basé sur un système d'exploitation Introduction ▪ Le modèle à boucle infinie est très souvent utilisé pour les petits systèmes embarqués à base de microcontrôleurs Arrière plan : une boucle infinie principale (instructions séquentielles + appels de fonctions) Premier plan : les ISRs (Interrupt Service Routines) : déclenchés par des événements matériels ▪ La temps de réponse pire cas d’une "tâche" dépend du temps nécessaire pour l’exécution des autres « tâches » de la boucle infinie → Système non déterministe Introduction ▪ Programmation des systèmes embarqués avec RTOS Introduction ▪ Un système d'exploitation temps réel est un système d'exploitation multitâche destiné aux applications temps réel ▪ Possédant des fonctionnalités spécifiques permettant : d’avoir un code organisé en tâches (facile à manipuler) de respecter les échéances des tâches d’avoir un comportement déterministe du système (en terme de temps de réponse des tâches) La notion du « temps réel » Un système embarqué est dit temps réel si « l’exactitude des applications ne dépend pas seulement du résultat mais aussi du temps auquel ce résultat est produit » on parle alors de: ▪ Exactitude logique (logical correctness ): sorties adéquates en fonction des entrées, assurant le comportement désiré pour le système suite à des événements et aux données Communiquées ▪ Exactitude temporelle (timeliness ): Les sorties sont présentes au bon moment (ce n’est pas rapidité, mais plutôt la satisfaction des contraintes temporelles) « Même la bonne réponse est fausse si elle arrive trop tard » « Arriver à l’heure ≠ Aller vite » 8 La notion du « temps réel » ▪ L’échèle du temps peut varier selon les applications: La microseconde dans un radar La seconde dans une interface homme machine La minute dans une chaine de fabrication L’heure pour une réaction chimique. Des mois et des années pour les systèmes de navigation de sonde spatiale 9 Les Contraintes Temporelles ▪ La satisfaction de la notion temps réel implique le respect de l’échéance (deadline) relative à chaque application « On appelle échéance une contrainte temps à laquelle doit au plus tard se produire un événement » ▪ Les systèmes temps réel peuvent être classés par rapport à leur tolérance aux échéances : o STR mou ou lâche o STR strict ou dur o STR ferme o STR multi-critique 10 Les Contraintes Temporelles ▪ Système temps réel dur ou strict (hard real time): La réponse du système dans les délais est vitale. L’absence de réponse est catastrophique (plus qu’une réponse incorrecte) ▪ Exemples : fonctions critiques avionique, véhicules spatiaux, automobile, transport ferroviaire… 11 Les Contraintes Temporelles ▪ Système Temps réel ferme (firm real time): La réponse du système dans les délais est essentielle. Le résultat ne sert plus a rien une fois le deadline passe. ▪ les fautes temporelles sont autorisées dans une certaine limite, par exemple une erreur toutes les trois exécutions au plus. ▪ Exemple: Décodage vidéo, téléphonie 12 Les Contraintes Temporelles ▪ Système temps réel relatif ou mou (soft real time) :La réponse du système après les délais réduit progressivement sont intérêt. Les pénalités ne sont pas catastrophiques. ▪ En cas du non respect des contraintes temporelles, la performance du système est dégradée ▪ Exemples : distributeur de billets, jeux vidéo... 13 Les Contraintes Temporelles ▪ Système Temps Réel multi-critiques: les sous-systèmes composant le système sont caractérisés par des degrés de criticité. Par exemple en avionique civile, la DO-178C caractérise les sous-systèmes par un niveau de criticité appelé DAL (Design Assurance Level), allant de niveau A (Ex. : commande de vol), catastrophique en cas de défaillance, à niveau E (Ex. : divertissement en vol), sans effet sur la sécurité. 14 Domaines d’application des STR ▪ Les STR sont de plus en plus présents dans: o Systèmes de transport (automobile, avion, train, fusée) o Robot de production, contrôleurs industriels (Industrie 4.0) o Systèmes d’acquisition et de surveillance (les drones) o Système de vidéoconférence o Domotique (Electroménager) o Systèmes personnels (Téléphonie mobile) o Les objets connectés 15 Caractéristiques d’un STR ▪ Le déterminisme: La réponse d’un STR doit être connue à l’avance mais aussi la même à chaque fois il reçoit les même paramètres. ▪ La prévisibilité (prédictibilité) : Les performances de l’application doivent être définies dans tous les cas possibles de façon à assurer le respect des contraintes de temps. ▪ La fiabilité: Capacité d’un système à réaliser et maintenir ses fonctionnalités dans des conditions normales d’utilisation. En temps réel, la fiabilité concerne le respect des contraintes temps réel. On peut également vouloir que le système reste fiable même si certaines pannes sont apparues, on parle alors de tolérance aux fautes. Sureté de fonctionnement 16 Caractéristiques d’un STR ▪ Sureté de fonctionnement nécessaire puisque: 1ère réalité: Même les grands experts peuvent faire des erreurs. 17 Caractéristiques d’un STR ▪ Sureté de fonctionnement nécessaire puisque: 2ème réalité: Un système peut fonctionner sans pour autant être stable et ‘robuste’. 18 Caractéristiques d’un STR ▪ Sureté de fonctionnement nécessaire puisque: 3ème réalité: Même dans les endroits où on s’y attend le moins on remarque des défaillances des systèmes temps réel. Lieu: Heathrow Aeroport 19 Caractéristiques d’un STR ▪ Sureté de fonctionnement nécessaire puisque: 3ème réalité: Même dans les endroits où on s’y attend le moins on remarque des défaillances des systèmes temps réel. Lieu: Aéroport de Madrid 20 Domaines mis en jeu ▪ Le développement des système embarqués temps réel met en jeu 3 domaines différents: o Electronique : Processeurs dédiés, FPGA.. o Automatique : régulation, loi de commande. o Informatique 21 Architecture d'un système temps réel ▪ Architecture en couche à 3 niveaux 22 OS Temps Réel ▪ Il s’agit d’un système d’exploitation de petite taille dédié aux applications de contrôle-commande. ▪ La caractéristique fondamentale est son déterminisme d’exécution avec des paramètres temporels fixés (temps de prise en compte d’une interruption, changement de contexte entre deux tâches, etc.). ▪ Les principales fonctions d’un noyau temps réel peuvent être scindées en trois groupes : Gestion des E/S (gestion des interruptions, gestion des interfaces d’E/S, gestion des réseaux de communications…) ; Ordonnancement des tâches (orchestration, surveillance, traitement des surcharges…) ; Relations entre les tâches (synchronisation, communication, accès à une ressource critique en exclusion mutuelle..) 23 OS Temps Réel ▪ Les tâches sont les unités actives du système ; le noyau temps réel n’est actif que lors de son appel. ▪ Une tâche activée appelle le noyau temps réel par une requête. ▪ Les différentes requêtes sont servies par des modules du noyau temps réel appelées primitives. ▪ La tache est réactivée selon l’algorithme d’ordonnancement utilisé ▪ Le noyau temps réel centralise toutes les demandes d’activation des tâches et gère des tables lui permettant de comparer les priorités et l’état de ces tâches, ainsi que l’état d’occupation des ressources. ▪ La décision d’activation d’une tâche étant prise, le noyau temps réel lance les modules de programmes correspondant à cette tâche et lui alloue les ressources disponibles. ▪ La tâche activée occupe un processeur jusqu’à la fin de son 24 exécution OS Temps Réel ▪ Noyau Temps Réel Vs Noyau classique Noyau Temps Réel Noyau classique Efficacité de l’algorithme Politiques d’ordonnancement des activités d’ordonnancement avec une complexité basées sur le partage équitable du limitée ; processeur : affectation identique du temps processeur à tous les processus Respect des contraintes de temps (échéances…). Ces contraintes Gestion non optimisée des interruptions temporelles se traduisent plus en termes (scrolling) de choix d’une activité à exécuter à un instant donné plutôt que de rapidité Gestion des temporisateurs ou de d’exécution de toutes les activités ; l’horloge pas assez fine (plusieurs ms) ; Prédictibilité Capacité à supporter les surcharges ; 25 OS Temps Réel ▪ RTOS ou Noyau ou Exécutif? Les noyaux temps réel assurent la gestion des taches (ordonnancement, outils de synchronisation et de communication, gestion des interruption) et de la mémoire. Ils sont appelés micronoyaux quand ils ont une empreinte mémoire faible. Un exécutif temps réel est une surcouche du noyau: il offre les services nécessaires à l’utilisation des E/S, du réseau, des fichiers…Souvent, ces services sont modulaires et il est possible de configurer un exécutif en fonction de l’architecture cible Un système d’exploitation temps réel est un système complet reposant sur un exécutif temps réel qui contient des moyens pour l’opérateur de dialoguer avec le système d’exploitation(fenêtres ou 26 shell) OS Temps Réel ▪ Le marché des RTOS Exécutif temps réel du marché : VxWorks, QNX, LynxOS, Chorus, Nucleus RTOS, WindowsCE Exécutifs libres: MicroC/OS-II, FreeRTOS, RTEMS Exécutifs dédiés : TinyOS (OS pour les réseaux de capteurs sans fil, architecture à composants), NXC (pour le robot lego® NXT) Le linux n’est pas TR mais peut être modifié 27 pour être TR → (PREEMPT-RT, Xenomai) OS Temps Réel ▪ Ordonnancement hors- ligne/ en-ligne Hors-ligne : La séquence d’exécution est calculée (et programmée) avant l’exécution effective. L’ordonnanceur est en réalité un simple séquenceur (ce n’est pas multi-tâches) → Pratique pour un faible nombre de tâches connues et périodiques. En-ligne : Les décisions d’ordonnancement sont prises pendant l’exécution → besoin d’une politique d’ordonnancement (gérée par un algorithme). Ces ordonnanceurs sont ensuite classifiés en deux groupes : préemptif et non-préemptif 28 OS Temps Réel ▪ Ordonnancement préemptif/ Non préemptif Non préemptif: La tâche courante continue de s’exécuter tant qu’elle ne rend pas la main explicitement. Les interruptions ne peuvent pas modifier la configuration d’exécution des tâches Préemptif: Le système a la possibilité d’interrompre la tâche en cours afin de forcer un ré-ordonnancement. 29