a) Avec l’ordonnancement Rate Monotonic les priorités des processus suivent l’ordre inverse des périodes : P1 est prioritaire sur P2, lui-même prioritaire sur P P3 8 2P2 6 2P1 Détail de l’exécutionPériode Ti Capacité CiProcessus : utilise la ressource R: n’utilise pas la ressource R Exercice 1. La période d’étude est la période pour le comportement de l’ensemble des trois processus, elle est égale au ppcm(T1, T2, T3) = ppcm(6, 8, 12) = 24.
b) Pour éviter le problème d’inversion de priorité, à l’instant t = 7, lorsque P1 se met en attente de la ressource occupée par P3, P3 prend la priorité de P1. Par conséquent, à l’instant t = 8, P3 est plus prioritaire que P2 et continue à s’exécuter. L’exécution de P2 se trouve repoussée à l’instant t = 10, après P1. : inversion de priorité, P2 est exécuté avant P1 La séquence obtenue avec cet ordonnancement, prenant en compte l’accès en exclusion mutuelle à la ressource et la non- préemption pour cet accès, est : P2 P3 P1 : demande de ressource R, mise en attente de P1
Pour éviter le problème d’inversion de priorité, à l’instant t = 7, lorsque P1 se met en attente de la ressource occupée par P3, P3 prend la priorité de P1. Par conséquent, à l’instant t = 8, P3 est plus prioritaire que P2 et continue à s’exécuter. L’exécution de P2 se trouve repoussée à l’instant t = 10, après P1. changements P2 P3 P1 : demande de la ressource R, mise en attente de P1 : mise en attente de P2 pour héritage de priorité : héritage par P3 de la priorité de P1
a) L’exécution de P1 commence avant celle de P2. La date de début de P2 arrive pendant que P1 utilise R1 seulement. - Avec l’algorithme du banquier, P2 étant prioritaire sur P1, P1 est préempté. (Note: la ressource processeur est partagée et la préemption est utilisée pour cette ressource; les ressources R1 et R2 sont accédées chacune en exclusion mutuelle et la préemption n’est pas autorisée.) P2 P1 Détail de l’exécutionProcessus : utilise les ressources R1 et R2 : n’utilise pas de ressource Exercice 2. On choisit des durées pour détailler l’exécution de P1 et de P2 : utilise la ressource R2 : utilise la ressource R1
A t = 4, l’allocation de R2 est refusée à P2 par l’algorithme du banquier car le banquier prend en compte la demande additionnelle de R2 par le processus P1. - Avec le protocole de la priorité plafonnée, R1 et R2 reçoivent la priorité de P2. : P2, prioritaire sur P1, le préempte P2 P1 : P1 utilise R1 et donc reçoit la priorité de P2, il n’est donc pas préempté par P2 à t = 2. Ceci dure tant que P1 utilise R1 ou R2. : P2, prioritaire sur P1, le préempte P2 P1 : demande de ressource R2, refusée
Note : pour les deux ordonnancements, les ressources sont bien utilisées dans le même et unique ordre, celui qui ne conduit pas à un blocage mutuel. - L’algorithme du banquier active P2 dès qu’il est prêt, et donc avant qu’il ne demande R2. La priorité plafonnée ne l’active qu’après la libération des deux ressources. Il y a une commutation de tâches de plus avec l’algorithme du banquier. b) Avec une architecture multiprocesseur, - L’algorithme du banquier continue à assurer l’évitement des blocages : le banquier n’accorde pas à P2 la ressource R2 demandée P2 P1 - Dans le protocole de la priorité plafonnée, P1 et P2 ont la même priorité et sont donc exécutées concurremment. Un blocage peut alors se produire. Suspens …
: attente pour la ressource R P2 P1 Il y a blocage avec les valeurs des durées choisies pour l’exemple. Le protocole de la priorité plafonnée a des propriétés valides pour un système monoprocesseur qui ne se maintiennent pas lorsque l’on passe à un système multiprocesseur. Note : S’il y a des processus de priorités intermédiaires entre P1 et P2, l’héritage de priorité est bien mis en place par l’algorithme de priorité plafonnée. Par contre, avec l’algorithme du banquier, P1 n’hérite pas de la priorité de P2 quand ce processus se voit refuser R2. L’inversion de priorité peut alors se produire. : attente pour la ressource R2