Systèmes Temps Réel ING4 Semestre 2 Responsable Pédagogique : Jackson FRANCOMME Volumes horaires SE Equipe d enseignants : Sandrine MERCIER Franck BIMBARD CM TD TP Projet Evaluation 18 20 36 / 2 Langue : français Crédits ECTS : Total Objectifs : Pré requis : Principes de fonctionnement des systèmes multitâches et temps Réel Conception d un système multitâche temps réel o Gestion des ressources partagées o Echange de données entre tâches o Ordonnancement des tâches indépendantes et dépendantes dans un système temps réel. Langage de programmation de haut niveau : langage C Fonctionnement d un système à base de microprocesseur Commande de base du système d exploitation UNIX/LINUX Principe d une interruption.
Sommaire du cours : CM0 : Présentation des systèmes Temps Réel embarqués o Domaines d applications o Principaux Systèmes d Exploitations Temps Réel o OS pour Automobiles et OSEK/VDX o Solutions UNIX o Démarche de conception d un système Temps Réel CM1 : Systèmes multitâches et Temps Réel o Définitions o Exemples d applications o Structure de noyau o Spécificités d une tâche o Mécanismes de préemption o Les ordonnancements de base o Gestion des tâches o Gestion du temps CM2 : UNIX/LINUX et le Temps Réel o Programmation en C sous LINUX : Norme POSIX o Système de fichiers o Appels système o Entrées/sorties Les types de fichiers Notion de descripteurs E/S standards Primitives de bases o Gestion des erreurs. o Création et recouvrement de processus o Gestion des signaux Envoi et réception Masquage et blocage Exemples CM3 : Services d un noyau multitâche o Programmation concurrente o Partage des ressources o Mécanismes de protection et exclusion mutuelle o Sémaphores et mutex o Gestion des sémaphores sous UNIX o Interblocage et famine CM4 Communication Interprocessus o Description des mécanismes de communication et de synchronisation entre tâches o Applications sous LINUX Communication par tube anonyme et nommé Communication par file de message Communication par mémoire partagée. CM5 : Vers la maîtrise du temps o Introduction Propriété de ponctualité Modèle d une tâche Mesures de performance o Ordonnancement statique avec tâches indépendantes Attribution arbitraire Ordonnancement monotone par taux : Rate Monotonic (RM) o Critères d ordonnançabilité et test de terminaison Deadline Monotonic (DM) o Critère d ordonnançabilité FIFO o Ordonnancement dynamique avec tâches indépendantes Earliest Deadline First (EDF) Least Laxity First (LLF) Maximum Urgency First (MUF)
o Algorithmes pour la prise en compte de tâches apériodiques Traitement en arrière plan («background processing») Les serveurs de tâches Traitement par scrutation («polling») Le serveur sporadique («sporadic server») Algorithme «Slack Stealer») et la méthode d ordonnancement conjoint Cas des tâches apériodiques à contraintes strictes o Interaction entre tâches : problèmes liés à l exclusion mutuelle L inversion de priorité Les solutions Héritage simple Plafond de priorité Exemple : Description détaillée du bug de la mission Mars Pathfinder o Ordonnancement des tâches dépendantes Tâches avec contraintes de précédence Contraintes de précédences et «Rate Monotonic» Contraintes de précédences et «Earliest Deadline» Tâches partageant des ressources critiques o Conclusion Déroulement :
Travaux dirigés : TD1 : Etude de stratégie d ordonnancement de base liée à l exécutif temps réel A6RMTR. TD1 : Ordonnancement Ordonnancement sur noyau préemptif / non préemptif Comparaison de diverses stratégies d ordonnancement TD2 : Systèmes multitâches Exclusion mutuelle et synchronisation entre tâches. Variables Sémaphores pour l Accès d'une Ressource Partageable : Visualisation en " Temps Processeur " Tâches Parallèles en " Temps Humain " Synchronisation entre Plusieurs Tâches avec Variable Sémaphore, Variable Evènement, Boîte à lettres et Mécanisme de Rendez-vous L exclusion mutuelle : Le Dîner des philosophes TD4 : Ordonnancement dynamique. Analyse «Rate Monotonic» Analyse «Deadline Monitonic» Analyse «Earliest Deadline First» Analyse avec inversion de priorité TD5 : Ordonnancement en présence de tâches apériodiques Ordonnancement de tâches apériodiques à contraintes strictes Ordonnancement de tâches apériodiques à contraintes relatives TD6 : Ordonnancement des tâches dépendantes Ordonnancement avec contrainte de précédence Ordonnancement avec ressources critiques TD7 : Etude des fonctions principales UNIX/LINUX Identificateurs de processus Les états logiques d un processus Création de processus Signaux Recouvrement et passage de paramètres TD8 : Synchronisation de processus sous UNIX/LINUX à l aide de signaux Déroutement signaux Gestionnaire d exceptions Mise en évidence de l effet de la primitive «alarm( )» Synchronisation entre processus fils et processus père à l aide de signaux TD9 : Communication entre processus sous UNIX/LINUX Communication par tube anonyme Communication par mémoire partagée sans exclusion mutuelle Les variables sémaphores Réalisation d un rendez-vous entre deux processus par variables sémaphores. Communication par mémoire partagée avec exclusion mutuelle par variable sémaphore
Travaux pratiques : La première série de TP est dédiée à l apprentissage des mécanismes de bases des systèmes multitâches sur un plateforme munie du système d exploitation Linux/Unix (Sandrine MERCIER). TP1 : Gestion de processus Manipulations de bases : Sur identificateurs Les différents états d un processus Création de processus Création de processus multiples : famille et générations Réalisation d un Shell simplifié Recouvrements TP2 : Tubes anonymes et tubes nommés Manipulations de base Création, destruction Comportements en fonction du nombre des lecteurs et écrivains. Réalisation d un Shell simplifié - suite Mise en œuvre d un tube TP3 : Déroutement de signaux et synchronisation de processus sous Linux Gestion des signaux sous Linux Réalisation d un «Time Out» Test de présence d un processus. Synchronisation entre processus père et fils. TP4 : Les IPC (Inter Process Communication) sous Linux Communication par mémoire partagée sans exclusion mutuelle avec exclusion mutuelle Mécanisme de «Rendez-vous» par variables sémaphores. La deuxième série de TP permet l implémentation d une application multitâche embarquée sur un microcontrôleur PIC utilisant le micro-noyau Salvo (Franck BIMBARD). TP5 : Découverte des microcontrôleurs PIC de Microchip : Architecture des microcontrôleurs PIC et plus particulièrement les PIC16F84A La carte de développement PIC Les entrées /sorties PIC16F84A Mise en œuvre du timer Interruption en langage C Chien de garde «Watchdog» Prise en main des outils informatiques MPLAB et PICC pour la programmation en langage C, la compilation puis la simulation Création d un projet sous MPLAB Simulation d un projet avec MPLAB Téléchargement du programme sur la cible avec IC-Prog TP6 : Initiation au RTOS Salvo Migration du PIC16F84A vers le PIC16F628 Création d une application multitâche Initialisation de l ordonnanceur Création de tâches Sémaphores à compte / binaire Communication par messages Gestion des délais TP7 : Conception d une application multitâche (Mini projet) Mise en œuvre des fonctionnalités de Salvo pour une application réalisant un réveil. Projet : /
Conférences : / Evaluation : Devoir surveillé de durée 2 heure Bibliographie : Supports de cours : Polycopié rédigé par mes soins Documents conseillés : cf. site web http://francomme.fr.fm Ouvrages de références : F. Cottet & al., Ordonnancement temps réel, cours et exercices corrigés, Hermes sciences, 2000. Christian Bonnet et Isabelle Demeure, Introduction aux systèmes temps réel, Hermes, Collection pédagogique de télécommunications. J. M. Rifflet, La programmation sous Unix, 3ième édition, Ediscience International, 1995. Webographie : Sites principaux : http://francomme.fr.fm (rubrique systèmes temps réel)