La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Conception et Réalisation d ’un Exécutif Temps Réel

Présentations similaires


Présentation au sujet: "Conception et Réalisation d ’un Exécutif Temps Réel"— Transcription de la présentation:

1

2 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

3 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

4 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

5 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

6 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

7 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

8 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

9 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

10 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

11 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

12 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

13 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

14 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

15 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

16 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 fiablement ordonnancé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

17 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Ordonnancement RM Tâche A 2 6 Tâche B 2 6 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

18 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

19 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

20 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’interblocage et 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

21 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

22 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

23 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

24 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

25 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

26 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 Tâche périodique appartient 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

27 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

28 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

29 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

30 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

31 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

32 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

33 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

34 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

35 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

36 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

37 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
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

38 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

39 Conception & Réalisation de l'Exécutif Temps Réel BastKernel v0.0.1
Statistiques sur le source Nombre total de lignes source : La partie temps réel :…………… % La partie Include :……………… % 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


Télécharger ppt "Conception et Réalisation d ’un Exécutif Temps Réel"

Présentations similaires


Annonces Google