12.07.2015 Views

Partie 2 : Communication interprocessus - Cours

Partie 2 : Communication interprocessus - Cours

Partie 2 : Communication interprocessus - Cours

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

INF3600+INF2610 Automne 2006<strong>Partie</strong> 8 : VxWorksExercice 1 :Le fait de donner des priorités différentes aux processus ne garantit pas qu’un processus tempsréel ayant la priorité maximale ne puisse reprendre le contrôle au moment désiré.1) Nommez un phénomène qui valide cette affirmation dont un cas est bien connu.2) Avec 3 tâches et 1 mutex, démontrez graphiquement ce phénomène et donc cette affirmation.Faites les hypothèses nécessaires.3) Donnez la définition des termes suivants (quelques lignes par définition au maximum):a. Temps de réponse aux interruptionsb. Temps de changement de contextec. Protection mémoired. Multi-tâchese. Multi-threadsf. Multi-usagers4) Est-ce que la performance d’un système d’exploitation temps-réel (RTOS) peut êtredéterminée par le nombre de changements de contexte à chaque seconde? Si oui, pourquoi? Sinon, pourquoi? Donnez une brève explication.5) Donnez deux désavantages à la méthode de désactivation de l’ordonnanceur lors de laprotection d’une zone critique de code.Exercice 21) Dans un système d’exploitation temps réel tel que VxWorks :a. Quels sont les avantages de minimiser le pas d’ordonnancement (tick)?b. Quels sont les désavantages de trop minimiser ce même pas d’ordonnancement (tick)?2) Dites lesquelles des caractéristiques suivantes se rattachent au système d’exploitationtemps réel VxWorks.1


a. garantit la réentrance des donnéesb. plusieurs tâches peuvent avoir la même prioritéc. utilise un mécanisme pour éviter l’inversion de prioritéd. a un environnement pour déverminer les applicationse. a une option qui permet d’organiser la liste des tâches en attente d’un sémaphore de deuxfaçons différentesf. contient dans son API une fonction qui, une fois exécutée, empêche la tâche qui l’a appeléed’être supprimée par une autreg. permet d’envoyer un message à une queue en tête de file (LIFO) ou à la fin (FIFO)h. est facilement portable en effectuant des modifications au code sourcei. a un mécanisme pour prévoir et contrôler l’instabilité du déclenchement des tâches (releasejitter)j. permet à l’utilisateur de modifier la fonction qui traite des délais via un hookk. les tâches se partagent les mêmes segments de code et de donnéesl. contient une fonction dans son API qui demande à une autre tâche de se supprimer lorsquece sera sécuritairem. utilise une structure appelée « bitmapped queue » pour ordonnancer ses tâchesn. supporte les sémaphores à prioritéo. est une généralité du système foreground/backgroundp. une tâche peut avoir un état « en attente », « suspendu » ou « retardée », entre autresq. possède un mécanisme qui rend une variable statique ou globale non-partagéer. supporte l’utilisation des pipelines. supporte des routines pour le watchdog timert. contient un événement équivalent à une FIFO de taille 12


Exercice 3 : Héritage de priorité, ICPP et OCPPUn ingénieur ambitieux se présente à une entrevue pour une entreprise renommée. Pendantl’entrevue, le patron lui demande de dessiner la trace d’exécution d’un système de tâches quiutilise le protocole ICPP pour contrer le phénomène d’inversion de priorité. La trace résultanteest présentée à la Figure 1.a) L’ingénieur a commis une erreur en dessinant sa trace. Identifiez cette erreur et expliquez cequi aurait dû se passer.L’entrevue se poursuivant, on demande ensuite à l’ingénieur d’analyser un système composéde six tâches, T1 à T6, soumises à un ordonnancement de type FIFO à priorité (noyaupréemptif). Dans ce système, plus la priorité est élevée, plus la tâche est prioritaire (T6 estdonc la tâche la plus prioritaire). Une parenthèse dans la colonne Séquence d’exécutionindique que la tâche possède deux mutex à la fois.Tâche priorité Temps dedépartNombre de cyclesd’exécution3Séquence d’exécution


T6 6 10 5 ED(CD)DET5 5 8 5 EAAEET4 4 4 4 ECCET3 3 2 4 EBBET2 2 2 1 ET1 1 0 7 EAAA(AB)BETableau 1 : Assignation avant la compilationb) L’ingénieur est désespéré. À partir de la spécification du Tableau 2, aidez-le en dessinant dansle cahier de réponses la trace d’exécution en considérant le protocole héritage de priorité.Donnez le temps de blocage de la tâche T5.c) Refaites b), mais en considérant cette fois le protocole OCPP. Donnez le temps de blocage dela tâche T5.Exercice 4 : Analyse du temps de réponseSoit l’ensemble de tâches périodiques suivant s’exécutant sur un processeur P1Tâche(t i )Période(T i )Nombre de cyclesd’exécution (C i )Deadline(D i )Séquence d’exécutionT4 10 3 6 E(AB)ET3 16 4 16 EAAET2 20 3 11 EBET1 30 6 30 EAAAEETableau 1 : Assignation avant la compilationOn suppose un ordonnancement de type DMA (Deadline Monotonic Assignment) de mêmeque l’utilisation du protocole ICPP pour contrer les inversions de priorités.4


a) Pour chacune des tâches, déterminez la priorité (Pi), le temps de blocage (Bi) et le jitter (Ji).b) Effectuer le test de Liu et Layland pour l’ensemble des tâches qui s’exécutent sur leprocesseur P1. Que pouvez-vous conclure?c) Faites l’analyse du temps de réponse du système en tenant compte de toutes lesinformations sur les tâches. Dites si un ordonnancement est possible ou non (et pourquoi).d) Si on ajoute les temps de changement de contexte suivants :Tâche(t i )Temps de sauvegarde ourestauration de contexteT4 0.2T3 0.3T2 0.3T1 0.2Tableau 2 : Temps de changement de contexteRefaites le test de Liu et Layland en tenant compte des changements de contexte. Que pouvezvousmaintenant conclure?e) Dans l’équation suivante du calcul du temps de réponse qui prend compte des temps dechangements de contexte, veuillez expliquer la signification des variables CS 1 i, CS 1 j et CS 2 j.Précisez à quels changements de contexte elles font référence et ce qu’elles représentent.5


Vous pouvez vous aider de cette figure d’exécution pour répondre à la question.Exercice 5: Ordonnancement dynamiqueSoit un système de tâches à ordonnancer ayant les caractéristiques suivantes :Tâche Temps d’exécution (C) Période (T) Deadline (D)T1 5/3 10 10T2 1 5 5T3 1 8 8Tableau 4 : Ensemble des tâches d’un systèmeNotez que la tâche T1 prend toujours 5 cycles pour s’exécuter lors d’une exécution impaire(première exécution, troisième exécution, etc.) et qu’elle prend toujours 3 cycles pour s’exécuterlors d’une exécution paire (deuxième exécution, quatrième exécution, etc.)a) Effectuez le test de Liu & Layland. Que pouvez-vous en conclure ?On décide de rajouter au système une quatrième tâche T4 ayant les propriétés suivantes :Tâche Temps d’exécution (C) Période (T) Deadline (D)T4 1 4 36


Tableau 5 : Caractéristiques de la tâche T4b) Représentez graphiquement l’ordonnancement du système entier (avec la tâche T4) enutilisant l’algorithme d’ordonnancement DMA (Deadline Monotonic Assignment). Dites sil’ordonnancement est possible ou non. Négligez le temps requis pour les changements decontexte.c) Représentez graphiquement l’ordonnancement du système entier en utilisant l’algorithmed’ordonnancement EDF (Earliest Deadline First). Dites si l’ordonnancement est possible ounon. Si, à un instant donné, deux tâches ont le même deadline, la priorité d’ordonnancement estdonnée à celle des deux qui occupe déjà le CPU. Si aucune des deux n’occupe le CPU, la prioritéva à celle qui a la plus petite période. Négligez le temps requis pour les changements decontexte.d) Représentez graphiquement l’ordonnancement du système entier en utilisant l’algorithmed’ordonnancement LST (Least Slack Time). Dites si l’ordonnancement est possible ou non. Si, àun instant donné, deux tâches ont le même « slack time », la priorité d’ordonnancement estdonnée à celle des deux qui occupe déjà le CPU. Si aucune des deux n’occupe le CPU, la prioritéva à celle qui a la plus petite période. Négligez le temps requis pour les changements decontexte.Exercice 6 : OCPP et héritage de prioritéSoit 6 tâches T1, T2, T3, T4, T5 et T6 ayant respectivement les priorités 6, 5, 4, 3, 2 et 1. Dansce système plus la priorité est basse, plus la tâche est prioritaire.a) À partir de la spécification de la table 3.1, complétez la trace d’exécution de la figure 3.1(page suivante) en considérant un protocole OCPP. Pour chaque coup d’horloge, indiquez s’il y alieu (en dessous de la trace) la priorité dynamique des tâches.7


TâcheNuméro de lapériode dedépartNombre de ticksd’exécution duthreadSéquence d’exécution(les parenthèses indiquentque la tâche possède deuxmutex durant un même tick)T6 6 2 EUT5 9 2T4 4 4 V(VQ)(VQ)VT3 3 3 EQQT2 2 3T1 0 7 EV(VU)(VU)(VU)(VU)VTable 3.1b) À partir de la spécification de la table 3.2, complétez la trace d’exécution de la figure 3.2(page suivante) en considérant le protocole héritage de priorité. Pour chaque coup d’horloge,indiquez s’il y a lieu (en dessous de la trace) la priorité dynamique des tâches.TâcheNuméro de lapériode dedépartNombre de ticksd’exécution duthreadSéquence d’exécution(les parenthèses indiquentque la tâche possède deuxmutex durant un même tick)T6 7 2 EUT5 9 2T4 5 4 V(VQ)(VQ)VT3 3 3 EQQT2 2 3T1 0 7 EV(VU)(VU)(VU)(VU)VTable 3.28


Exercice 7 : Analyse du temps de réponseSoit l’ensemble des tâches suivantes roulant sur un processeur V:Tâche(t i )Période(T i )Nombre de cyclesd’exécution (C i )Deadline(D i )Séquence d’exécutionT5 7 3 6 A(1)B(2)T4 x 2 x --T3 y 2 y B(2)T2 21 3 18 A(5)B(1)T1 23 1 21 A(1)Tableau 4.1 : Ensemble des tâches sur un processeur VLa dernière colonne indique que la tâche T1, par exemple, utilise le mutex A pour une durée de 1cycle puis ensuite le mutex B pour une durée de 2. Le temps pris pour sauvegarder/restaurer lecontexte est d’une durée équivalente à 0.1 cycle pour les tâches T1, T2, T4 et T5. La tâche T3utilise les registres point flottant du processeur et le temps requis pour sauvegarder/restaurer lecontexte est équivalent à 0.2 cycle.Sur un deuxième processeur, deux autres tâches périodiques S1 et S2 s’exécutent avec lescaractéristiques suivantes :Tâches Période Meilleur temps d’exécution Pire temps d’exécutionS1 19 3 6S2 20 1 5Tableau 4.2 : Caractéristiques des tâches S roulant sur un processeur WDe plus, lorsque S1 termine une période, une interruption est envoyée sur le processeur V pourdémarrer T4. De façon similaire, S2 démarre T3. Considérez les temps de réponse auxinterruptions nuls.9


Finalement, supposez un ordonnancement statique de même que l’utilisation du protocole ICPPpour contrer les inversions de priorité.a) À partir des tableaux 4.1 et 4.2 complétez le tableau 4.3 à la page suivante.Considérez que les priorités sont assignées entre 101 et 105 avec VxWorks.Tâche(t i )Période(T i )Nombre decyclesd’exécution(C i )Deadline(D i )Mutexutilisés(nombre decycles)M(t) Tempsdeblocage(B i )Temps desauvegarde/restauration decontexte (CS i )Jitter(J i )Priotité(P i )T5 7 3 6 A(1)B(2)T4 2 --T3 2 B(3)T2 21 3 18 A(2)B(4)T1 23 1 21 A(1)B(2)Tableau 4.3 : Ensemble des tâches sur un processeur V (à compléter)b) Effectuez le test de Liu and Layland en négligeant les temps de changement de contexte, puisà partir du tableau 4.3, faites l’analyse du temps de réponse du système pour la tâche la moinsprioritaires du système. Dites si un ordonnancement est possible ou non pour cette tâche.Exercice 8 :Vrai ou faux avec justificationsa. Un des avantages du mécanisme ICPP par rapport au mécanisme OCPP est qu’il permetd’éviter complètement les problèmes de «deadlock».b. Pour la conception d’un système incluant des tâches sporadiques, l’utilisation de mécanismesd’ordonnancement dynamique est préférable.10


c. Si on applique l’algorithme EDF (Earliest Deadline First) pour un système incluant 3 tâchesT1, T2 et T3 ayant pour deadlines 4, 10 et 7 ticks d’horloge respectivement, le même schémad’ordonnancement sera répété à chaque 140 ticks d’horloge.Exercice 9 : Analyse du temps d’exécution (R i ) d’une tâche iSoit l’ensemble de tâches périodiques suivant qui roule sur un processeur P 1 :Tâche (t i ) Temps d’exécution (C i ) Période (T i ) Deadline (D i )T1 2 10 10T2 1 6 6T3 9 20 20Ensemble de tâches d’un systèmea) Existe-t-il pour ces tâches un ordonnancement statique c’est-à-dire avec priorité fixe? Enutilisant les tests et/ou les méthodes de calcul pour borner R i , montrez l’existence ou non d’un telordonnancement.b) Plutôt que de démarrer périodiquement la tâche T 2 à tous les 6 ticks d’horloge, on décide de ladémarrer à partir d’une tâche T 0 périodique s’exécutant sur un autre processeur P 2 . Plusprécisément, lorsque T 0 termine sa période courante, une interruption est envoyée par P 2 à P 1 . LeISR qui s’exécute alors sur P 1 débloque T 2 (via un OSSemPost). Puis, lorsque T 2 a complété sonexécution il se rebloque (via un OSSemPend). Sachant que pour T 0 on a C 0 =1, T 0 =6 et R 0 =5 :b.1) À quel type de tâche s’apparente maintenant T 2 ? Justifiez.b.2) Avec ce changement, existe-t-il pour T 1 , T 2 et T 3 un ordonnancement statique? Montrezl’existence ou non d’un tel ordonnancement.Exercice 10 : Héritage de priorité, ICPP et OCPPSoit une application logicielle composée de 3 tâches : T 3 , T 2 et T 1 . Les caractéristiques de base deces tâches sont données au Tableau 3.1. La tâche T 3 est la tâche la plus prioritaire et la tâche T 1 la11


moins prioritaire. Dans la colonne séquence d’exécution la lettre E indique l’exécution d’unetâche pendant une période (un tick), la lettre B indique l’entrée dans la section critique B pendantune période et la lettre A indique l’entrée dans la section critique A pendant une période.Tâche (T i ) Priorité Période de départ minimale Séquence d’exécutionT3 3 4 EEBBAEET2 2 2 EAAAET1 1 0 EBBBBETableau 3.1a) Est-ce que la Figure 3.1 illustre correctement l’ordre d’exécution des trois tâches selon lespriorités assignées? Également, on remarque dans cette figure la présence d’un phénomèneindésirable en temps réel. De quel phénomène s’agit-il? Expliquez.b) Ce problème est résolu par l’utilisation d’un mécanisme d’ordonnancement plus raffiné. Latrace d’exécution des tâches selon ce mécanisme est illustrée à la Figure 3.2. En analysant cettefigure indiquez de quel mécanisme il s’agit. Expliquez.12


c) Donnez la trace d’exécution de ces tâches selon le mécanisme ICPP.d) Comparez le nombre de changements de contexte entre la situation présente au point b) etcelle du point c). Ce résultat est-il spécifique à cet ensemble de tâches ou est-il valable engénéral?e) Soit une application composée de 4 tâches T 4 à T 1 , en ordre décroissant de priorité, T 4 étant latâche la plus prioritaire et T 1 la moins prioritaire. Trois mutex M 1 , M 2 et M 3 sont utilisés danscette application. En considérant l’utilisation de l’héritage de priorité, à partir du tableau 3.2calculez le blocage maximale pour chacune des tâches. Aussi, donnez la formule que vousutilisez pour faire ces calculs.M 1 M 2 M 3T4 1 2 5T3 0 11 4T2 10 7 0T1 6 0 0Tableau 3.2Exercice 11 : OrdonnancementSoit l’ensemble de tâches à ordonnancer suivant:Tâche T i Temps d’exécution (C i ) Période (T i ) Deadline (D i )T0 2 5 413


T1 3 8 8T2 2 20 6a) Représentez graphiquement l’ordonnancement statique de ces tâches en utilisant l’assignationde priorité appropriée. Négligez le temps requis pour les changements de contexte.b) Représentez graphiquement l’ordonnancement de ces tâches en utilisant l’algorithmed’ordonnancement EDF (Earliest Deadline First). Si à un instant donné deux tâches ont le mêmedeadline, la priorité d’ordonnancement est donnée à celle des deux qui occupe déjà le CPU. Siaucune des deux n’occupe le CPU la priorité va à celle qui est prête depuis le plus longtemps.Négligez le temps requis pour les changements de contexte.14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!