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

Des systèmes classiques aux systèmes temps réels Objectif : Nous revenons sur les principaux mécanismes mis en œuvre dans un système classique. Certains.

Présentations similaires


Présentation au sujet: "Des systèmes classiques aux systèmes temps réels Objectif : Nous revenons sur les principaux mécanismes mis en œuvre dans un système classique. Certains."— Transcription de la présentation:

1 Des systèmes classiques aux systèmes temps réels Objectif : Nous revenons sur les principaux mécanismes mis en œuvre dans un système classique. Certains sont utilisés par les systèmes temps réels ; d'autres doivent être abandonnés car ils ne permettent pas la prise en compte de contraintes temporelles.

2 Plan Services d'un système élémentaire Services multitâches Gestion du processeur Gestion des interruptions et multitâches Partage des ressources et exclusion mutuelle

3 Vue d'un ordinateur classique CPU Mémoire principale Mémoire principale Stockage Secondaire Stockage Secondaire Périphérique E/S Périphérique E/S Bus Unité de contrôle Registres Unité Arithmétique et Logique

4 Les services de base qu'un OS offre : Exécution d'un programme dans le processeur Échange avec l'extérieur Gestion mémoire Partage des ressources Gestion du temps Nous allons étudier ces services en étudiants leurs limites vis à vis de la prise en compte des contraintes de temps réel. Dans la suite, nous détaillons uniquement l'exécution du programme dans le processeur en étudiant les limites vis à vis de la prise en compte de contraintes temps réel.

5 Services d'un système élémentaire Interaction par scrutation cyclique Interaction par Interruption Limites des approches précédentes Nous allons voir l'interaction entre le programme et le monde extérieur. C'est à dire comment le programme réagit à un événement à des instants qu'il ne maîtrise pas.

6 Les interaction par scrutation cyclique Le programme va interroger (ou scruter) ses périphériques régulièrement. faire vérifier capteur tant que (données non disponibles) lire capteurs traiter les données démarrer les réactions faire vérifier les actionneurs tant que actions effectuées jusqu'à arrêt du système

7 Les interactions par interruptions Le programme est averti de la survenue d'un événement. Une interruption interrompt le cours du programme et lui permet de reprendre le programme là où il a été interrompu. Programme de scrutation : traitement différé faire faire vérifier les capteurs tant que (état = données disponibles) lire données mémorisées remettre à zéro état des capteurs Jusquà arrêt du système Gestionnaire d'interruption : Prise en compte immédiate Interruption : lire et mémoriser les données positionner (état capteur = données disponibles) acquitter linterruption

8 Les interactions Avantages : Simple à programmer s'il y a peu des périphériques Le temps de réaction d'un système est simple à déterminer. Il s'agit du temps de traitement d'une boucle. On peut s'avoir si le système satisfait les contraintes de temps.

9 Limitations des approches précédentes Inconvénients : Va à l'encontre des pratiques du génie logiciel. Le programme mal structuré devient rapidement illisible et impossible à maintenir. Un nouveau périphérique demande la remise en cause de l'existant. Une grande partie du temps processeur est consacrée à autre chose qu'à l'application.

10 Exemple : Soit un programme émettant des caractères sur une liaison série à 9600 bauds via un UART. Il possède 2 séries de registres pour transférer et recevoir des caractères. L'UART cause des interruptions différentes pour l'émission et l'arrivée des caractères. L'UART émet un caractère tout les millisecondes environ. L'ordinateur ne peut émettre le caractère suivant que quand l'UART est prêt. Il perd donc beaucoup de temps à tester par scrutation s'il est autorisé à émettre le caractère suivant ou pas.

11 Exemple suite Pour émettre un caractère, le programme se bloque en faisant appel à l'opération (Attendre). L'UART répond par une interruption (TxReady) lorsqu'il est prêt. Le gestionnaire d'interruption effectue l'opération (Signaler) et le programme suspendu peut rependre le processeur et réémettre un caractère immédiatement. Il faut noter que pendant la milli-seconde qui s'est écoulée entre (Attendre) et l'interruption, d'autres programmes pourraient effectuer un travail utile. C'est pour mieux répondre à ce besoin qu'on a introduit la notion de tâche.

12 Plan Services d'un système élémentaire Services multitâches Gestion du processeur Partage des ressources et exclusion mutuelle

13 Introduction à la notion de tâches Le traitement d'un événement externe est partagé entre un traitement immédiat effectué par le gestionnaire d'interruption et le traitement différé confié à une tâche (c'est à dire un code séquentiel dédié à une tâche). Plusieurs tâches peuvent s'exécuter concurremment, on peut donc récupérer les temps morts. C'est cette récupération qui fait tout l'intérêt des modèles multitâches.

14 Système Multitâches Un programme seul n'occupe pas la capacité totale d'un processeur en particulier lors des E/S. L'idée : une exécution concurrente pour récupérer les temps morts. Le système d'exploitation va gérer l'exécution concurrente des programmes.

15 Plan Services d'un système élémentaire Services multitâches Gestion du processeur Partage des ressources et exclusion mutuelle

16 La gestion du processeur Tâches Gestion multitâches Politiques d'ordonnancement classiques Limites de ces mécanismes pour le temps réel

17 Les tâches : Définitions Un programme est composé d'une suite d'instructions qui agissent sur un ensemble de données : objet statique Processus : lorsque l'on déclenche l'exécution d'un programme, il devient un objet dynamique géré par l'OS. Le contexte d'un processus est l'ensemble des informations qui caractérisent son exécution (Registres, son nom, état …) Un processus est dit lourd lorsque le contexte est volumineux. Un processus est légers lorsqu'il s'exécutent avec d'autre processus au sein d'un même contexte.

18 États d'une tâche opérationnelle Courant En_attente Prêt Blocage Réveil Préemption Allocation Tâche Active

19 Etat pour un noyau temps réel Prête Exécutée Bloquée Endormie Créée Existante Existante non initialilsée Suppression Initialisation Attente blocante Préemption Election Attente d'une durée Réveil Arrivée evt

20 L'ordonnancement La partie du système qui fait évoluer les états des tâches et qui alloue le processeur aux tâches s'appelle l'ordonnanceur (Scheduler). L'OS manipule les tâches aux travers de structures de données appelées descripteurs de tâches (task control block).

21 L'ordonnancement Liste des tâches prêtes Liste des tâches en attente Tâche courante Liste des tâches prêtes Liste des tâches en attente Tâche courante Contexte T1 état = PRET Contexte T1 état = PRET Contexte T2 état = PRET Contexte T2 état = PRET Contexte T3 état = PRET Contexte T3 état = PRET Code T1 Code T2 Code T3 T4 état = Attente T4 état = Attente T6 état=Courant T6 état=Courant T5 état= Attente T5 état= Attente

22 Les politiques d'ordonnancement classiques Ordonnancement préemptif Un ordonnancement est dit « avec réquisition » ou préemptif si le processus courant peut être désalloué par décision de l'ordonnanceur. Dans le cas d'un système préemptif, une interruption peut survenir en n'importe quel point du déroulement d'une tâche et provoquer une préemption.

23 Modèle de tâches IDDepartCDTEtatC_restante PDeadline T12355 Période d'activationT Borne sur le temps d'exécution C Arrivée Depart Délai critique relatif à TD

24 Modèle de tâches IDDepartCDTEtatC_restante PDeadline T12345

25 Lois d'ordonnancement classique Premier arrivé, premier servi Le tour de rôle ou tourniquet Lordonnancement par priorité

26 Exemple : FIFO T1 T2 T3 nop T1 T2 T3 IDPrCDepart Critère ID croissant T1260 T2130 T3240

27 Robin IDRobin CDepart Critère RR croissant T1160 T2130 T T1T2T3T1T2T3T1T2T3T1T3T1 nop T1 T2 T3

28 Robin avec priorité IDRobin CDepart Critère Robin et 2 critère RR T1131 T2230 T3230

29 Robin + incrément de priorité IDDepartCRobin T1101 T2111 T322 T423 T523

30 Exemple : Priorité IDPrCDepart Critère Pr croissant T1260 T2130 T T2 T1 T3 nop T1 T2 T3

31 Ordonnancement avec interactions entre les tâches Tâche 1 (prio=2) T1.1 Attendre1s T1.2 Signaler (tache2,evt) T1.3 Tâche 2 (prio=1) T2.1 Attendre(evt) T2.2 Tâche1 Tâche2 Tâche de fond* T1.1T1.2T1.3 T2.2T2.1 1s Attendre evt * fournit le minimum d'exécution sous forme d'une boucle infinie.

32 Limitations de ces mécanismes pour le temps réel Un exécutif temps réel multitâches offre une politique d'ordonnancement préemptive basée sur les priorités. Lapplication est testée pour contrôler le bon respect des contraintes temporelles. Limites : Affecter des priorités n'est pas toujours une garantie de maîtrise des contraintes temporelles (variables partagées).

33 Plan Services d'un système élémentaire Services multitâches Gestion du processeur Partage des ressources et exclusion mutuelle

34 Partages des ressources et exclusion mutuelle. Une application temps réel est découpée en tâches. Ces tâches mettent en œuvre des algorithmes portant sur un ensemble de ressources qui peuvent être partagées. Problème T1 LireA A=A+10 EcrireA T1 LireA A=A+10 EcrireA T2 LireA A=A+30 EcrireA T2 LireA A=A+30 EcrireA Si T2 préempte T1 suite à une interruption : LireA A=A+30 EcrireA A=A+10 EcrireA

35 Des solutions Les problèmes viennent du fait que l'exécution des séquences est intérrompue On appelle séquence atomique, une suite d'opérations exécutées par un système qui permet de passer d'un état cohérent du système à un autre état cohérent sans possibilité d'interruption. On appelle section critique, une séquence d'opérations qu'il faut effectuer de façon atomique. Les sections critiques portant sur des ressources communes doivent être exécutées en exclusion mutuelle. Solutions : Masquage et sémaphore.

36 Les sémaphores binaires Un sémaphore est une entité logique gérée par le système d'exploitation associé de manière univoque à une ressource. Deux primitives P et V permettent de manipuler le sémaphore P : Compteur = Compteur-1 si compteur<0 mettre la T en fille d'attente sinon accorder la ressource V : Compteur = Compteur+1 si compteur <=0 sortir une tâche de la fille d'attente

37 Exemple T1 P(s) I=I+J; V(s) T2 P(s) I=I-k; V(s) Lire I dans R1 Lire J dans R2 additionner R1 à R2 … Le sémaphore S est initialisé à 1.

38 Listes des mécanismes sémaphores pour le temps réel A partir du moment où une tâche a acquis une ressource (passé le P), toutes les tâches parvenant à un P sur le même sémaphore resteront bloquées, quelle que soit leur priorité. Ces cas de blocage posent un problème car il existe des cas où l'on ne sait pas donner de bornes temporelles à ce type de situation.

39 Conclusion L'exclusion mutuelle, la communication et la synchronisation sont des problèmes généraux à prendre en compte dès que plusieurs tâches s'exécutent concurremment dans un système. Le maintien de la cohérence des données et des codes du système conduit les tâches à utiliser des services qui génèrent des mises en file d'attente. Un système qui attribue des priorités aux tâches, ne peut plus assurer qu'une tâche de plus faible priorité ne bloque pas une tâche de plus forte priorité.

40 Nous allons identifier et présenter les mécanismes spécifiques qui permettent de prévoir avec plus d'exactitude le comportement temporel d'un système.


Télécharger ppt "Des systèmes classiques aux systèmes temps réels Objectif : Nous revenons sur les principaux mécanismes mis en œuvre dans un système classique. Certains."

Présentations similaires


Annonces Google