430 likes | 714 Views
Conception et Réalisation d ’un Exécutif Temps Réel. Le temps réel. Exécutif temps réel. Le temps réel. Définition. Un système temps réel doit garantir des résultats justes, dans des laps de temps limités appelés: échéance s . Le temps réel.
E N D
Conception et Réalisation d ’un Exécutif Temps Réel Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Le temps réel. • Exécutif temps réel. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Le temps réel • Définition Un système temps réel doit garantir des résultats justes, dans des laps de temps limités appelés: échéances. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Le temps réel Classement par contraintes temporelles : • A contraintes strictes : On ne tolère pas le dépassement de l’échéance (ex: la commande du moteur d ’un avion). • A contraintes relatives : tolèrent le dépassement de l’échéance (ex: système de visualisation). • A contraintes mixtes : comprennent des programmes à contraintes strictes et relatives. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Le temps réel Où trouve-t-on les systèmes temps réel ? • Industrie, centrales nucléaires... • Militaire, avionique, aéronautique... • Automobile, distributeurs automatiques, ... Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Le temps réel • Structure générale d’un système temps réel Procédé Actionneurs Capteurs Système de contrôle Tâches Exécutif temps réel Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Exécutif temps réel Actionneurs Capteurs Gestion d ’interruptions Tâches périodiques Ordonnanceur (sélecteur de tâches) Tâches apériodiques Primitives Horloge temps réel Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Exécutif temps réel • Caractéristiques temporelles: • Date de réveil : ri • Durée d’exécution (capacité) : Ci • Période : Pi • Délai critique : Di Gestion d ’interruptions Tâches périodiques Ordonnanceur (sélecteur de tâches) Tâches apériodiques Primitives Horloge temps réel Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Exécutif temps réel • Caractéristiques temporelles: • Durée d’exécution (capacité) : Ci • Délai critique : Di • Utilisées pour gérer les alarmes, exceptions... Gestion d ’interruptions Tâches périodiques Ordonnanceur (sélecteur de tâches) Tâches apériodiques Primitives Horloge temps réel Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Exécutif temps réel • Préemptif / non préemptif • Hors ligne / en ligne • Conduit par la priorité (fixe ou dynamique) • Intègre des protocoles d’allocation de ressources Gestion d ’interruptions Tâches périodiques Ordonnanceur (sélecteur de tâches) Tâches apériodiques Primitives Horloge temps réel Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Exécutif temps réel • Communications, synchronisation et d’exclusion mutuelle Gestion d ’interruptions Tâches périodiques Ordonnanceur (sélecteur de tâches) Tâches apériodiques Primitives Horloge temps réel Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Exécutif temps réel • Signaler l’arrivée des signaux périodiques et apériodiques Gestion d ’interruptions Tâches périodiques Ordonnanceur (sélecteur de tâches) Tâches apériodiques Primitives Horloge temps réel Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Exécutif temps réel • Délivrer un signal périodique, pour gérer les tâches périodiques Gestion d ’interruptions Tâches périodiques Ordonnanceur (sélecteur de tâches) Tâches apériodiques Primitives Horloge temps réel Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Ordonnancement temps réel • Ordonnancement à priorités fixes Algorithme du Rate Monotonic (RM) Une tâche de plus petite période attribuer la plus grande priorité Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Ordonnancement RM • Condition d ’ordonnançabilité (faisabilité)1 • Théorème du Rate Monotonic (RM) [LL73] Toute configuration de n tâches périodiques à échéance sur requête2 est fiablementordonnancée par RM si : å (Ci / Pi ) £ n (21/n – 1) 1- La condition est suffisante mais pas nécessaire. 2- Tâche à échéance sur requête, signifie que Pi=Di Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Ordonnancement RM Tâche A 6 2 Tâche B 6 2 Et pourtantå (Ci / Pi ) =2/4 + 2/4=1£n (21/n – 1)=0,828 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Ordonnancement temps réel • Ordonnancement des apériodiques • On Utilise généralement une tâche périodique dite serveur, pour ordonnancer les tâches apériodiques • Suivant une politique propre au serveur (FIFO …) et indépendamment de celle des périodiques. • Sont exécutées durant la capacité d’exécution du serveur Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Serveur ajournable Signal apériodique Tâche A 2 6 Tâche Serveur 6 9 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Protocole d ’allocation de ressources • Protocole à priorité plafond • Evitement des situations d’interblocageet d’inversion de priorités • Déterminer et borner le temps d’attente aux ressources • Les bornes Bi sont déterminées par l ’algorithme K. Tindell & H. Hansson et rajoutées au test RM. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Exemples d ’exécutifs temps réel • RTAI (Linux temps réel) • Développé à l’école polytechnique d’aérospatiale de Milan (Pr.Paolo Mantegazza) • Open source, et actuellement, utilisé dans le milieu industriel et systèmes embarqués, Exemple: Projet français CLEOPATRE. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Exemples d ’exécutifs temps réel • VxWorks (Unix temps réel) • Produit commercialisé par la société : Wind River • Le plus utilisé dans l ’industrie, et les systèmes embarqués (Satellite CNES, navette spatiale américaine Pathfinder ...). Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Conception de notre exécutif • Objectifs • Créer un noyau temps réel, simple dans ses mécanismes de base. • Aspect pédagogique. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Conception de notre exécutif • A qui s’adresse t-il ? • Aux étudiants et enseignants. • Aux développeurs d ’applications temps réel. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Conception de notre exécutif • Que va t-il prendre en charge ? Assurer la gestion des tâches périodiques et apériodiques. Ordonnancer les tâches périodiques avec la politique du Rate Monotonic (RM). Synchronisation par sémaphores binaires, combinés au protocole à priorité plafond. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Conception de notre exécutif File d’attente des tâches périodiques prêtes. File des sémaphores associés aux tâches. Toujours associé Susceptible d’avoir appartient Tâche périodique Tâche apériodique Sémaphore Serveur ajournable géré par arrive gère en FIFO File de gestion de sémaphores. Pile des tâches apériodiques. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Conception de notre exécutif • Etats d ’une tâche périodiques (hormis serveur) PRET En exécution Entrée en SC Sortie de la SC SEM Attente d ’une ressource Obtention de la ressource Attente Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Conception de notre exécutif • Etats du serveur PRET Absence d ’apériodiques Arrivée d ’une apériodique Suspendu Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Réalisation de l ’exécutif • Choix de l ’architecture matérielle Utilisation du système informatique IBM PC basé sur la technologie Pentium (586) d’Intel. • Environnement et langages de programmation Utilisation du langage assemblage Masm et d’un compilateur C++ de Borland Environnent Win32 (Windows de Microsoft) Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Réalisation de l ’exécutif • Les parties à réaliser (noyau monolithique) La Partie Démarrage: Boot, Partie 16-bit, Partie 32-bit. La partie temps réel:gestion des tâches, ordonnancement, faisabilité ... Les services utilisateur: API pour la gestion du temps, des tâches, sémaphores ... Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Réalisation de l ’exécutif • Le BOOT (Zone d ’amorce) • Permet de charger une partie de notre noyau et de lui léguer la main • Le programmer en assembleur • Se tient sur le premier secteur disque (512 octets) Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Réalisation de l ’exécutif • La partie 16-bit (mode réel du Pentium) • Détection du matériel: - La CPU, quantité de mémoire RAM, les disques • Chargement de la partie 32-bit • Passage en mode 32-bit (protégé) et léguer le contrôle à la partie 32-bit chargée. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Réalisation de l ’exécutif • La partie 32-bit (mode protégé du Pentium) • Mise en place du mécanisme d ’interruptions: - La table IDT, PIC8259A,... • Exécuter le module d ’application temps réel, écrit par l ’utilisateur. Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Réalisation de l ’exécutif • La partie temps réel • Implanter des fonctions pour : gestion des tâches (creer_tache(…) , etc) gestion des sémaphores (creer_semaphore( ), etc) ordonnancement (schedule_tr( ) , etc) Test de faisabilité RM (faisabilite( ) , etc) • Réécrire les primitives de Dijkstra : P(s) et V(s) en vue d ’implémenter le PCP Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Réalisation de l ’exécutif • Les services utilisateur (API) • Implanter des fonctions pour : Mesurer le temps d ’exécution de chaque routine Pouvoir afficher sur écran des messages, en temps réel Manipuler les tâches et les sémaphores Manipuler le temps (horloge temps réel) Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Réalisation de l ’exécutif • Représentation de notre noyau sur disque Boot:secteur 0 Partie 32-bit: secteur 18-.. Partie 16-bit: secteur 1-17 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Réalisation de l ’exécutif • Représentation de notre noyau en mémoire RAM Boot:0x7C000 Partie 16-bit: 0x20100 Partie 32-bit: 0x100000 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Performances obtenues • Sur AMD 800Mhz, • En présence de 20 tâches périodiques Temps d’ordonnancement ……………….18µs Pour signaler une apériodique ……………6µs Les primitives P(s) et V(s) ………………...4µs Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Statistiques sur le source • Nombre total de lignes source : 4007 • La partie temps réel :……………..28.50% • La partie Include :………………..21.20% • La partie 32-bit :………………….21.03% • La partie 16-bit :………………….16.37% • La partie utils :…………………….9.48% • La partie boot :…………………….3.39% Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1