4.4. Exécution de processus en multiprogrammation

On considère un système monoprocesseur dans lequel les processus partagent un disque comme seule ressource (autre que le processeur). Cette ressource n'est accessible qu'en accès exclusif et non requérable, c'est-à-dire qu'une commande disque lancée pour le compte d'un processus se termine normalement avant de pouvoir en lancer une autre. Un processus peut être en exécution, en attente d'entrée-sortie ou en attente du processeur.
A- Expliquer le schéma suivant représentant les états possibles d'un processus et les transitions entre ces états. Expliquer pourquoi certaines transitions ne sont pas possibles.

B- En fait l'état bloqué se divise en deux états : attente de la ressource disque et attente de la fin d'exécution de l'opération. Les demandes d'entrées-sorties sont gérées à l'ancienneté, et l'allocation du processeur est faite selon la priorité affectée au processus, et représentée par une valeur entière. Le processus prioritaire est celui qui a la plus grande valeur et si deux processus ont même priorité, c’est le plus ancien dans la file d’attente des processus prêts.
Nous considérons les 4 processus dont le comportement est le suivant (la priorité au démarrage est indiquée entre parenthèses) :
P1	(100)	Calcul pendant 40 ms 
			Lecture disque pendant 50 ms
			Calcul pendant 30 ms
			Lecture disque pendant 40 ms
			Calcul pendant 20 ms
P2	(99)	Calcul pendant 30 ms 
			Lecture disque pendant 80 ms
			Calcul pendant 80 ms
			Lecture disque pendant 20 ms
			Calcul pendant 10 ms
P3	(98)	Calcul pendant 40 ms
			Lecture disque pendant 40 ms
			Calcul pendant 10 ms
P4	(97)	Calcul pendant 80 ms 
B.1- Les 4 processus sont lancés en même temps et gardent leur priorité initiale pendant toute leur exécution. Établir le chronogramme des 4 processus sur le diagramme suivant. Vous noircirez les cases correspondant à l'état du processus, comme cela a été fait pour le début du processus P1, à titre d'exemple.
P1
P2
P3
P4
B.2- Les 4 processus sont lancés en même temps, mais leur priorité est variable. Chaque fois qu'un processus quelconque quitte l'état bloqué, on recalcule la priorité de chaque processus selon la formule suivante :
Priorité Nouvelle = Priorité Initiale - (Temps processeur utilisé) / 10
Établir le chronogramme des 4 processus sur le diagramme suivant.
P1
P2
P3
P4
C- Donner le temps total de l’exécution de ces 4 processus dans les trois cas suivants :
C1 L'activation des 4 processus est demandée à l'instant initial et ils s'exécutent en monoprogrammation dans l'ordre P1, P2, P3 puis P4,
C2 Gestion de B.1,
C3 Gestion de B.2.
D- Comparer les temps de réponse moyens dans les trois cas C1, C2, C3
E- Donner le taux d’utilisation du processeur dans les 3 cas C1, C2 et C3
Solution de l'exercice 4.4

4.4.1. Question A.

Un processus peut se trouver dans différents états, suivant qu'il dispose de tout ou partie des ressources dont il a besoin pour s'exécuter. On distingue la ressource processeur de l'ensemble des autres ressources. En effet, s'il manque une ressource autre que le processeur, celui-ci ne peut faire évoluer le processus et il est donc inutile que cette ressource chère lui soit allouée. Lorsqu'il manque à un processus une ressource autre que le processeur, il est dans l'état bloqué. Lorsqu'un processus a toutes ses ressources à l'exception du processeur, il est dans l'état prêt. Enfin lorsqu'un processus a toutes ses ressources, y compris le processeur, il est dans l'état actif. L'allocation du processeur consiste à choisir un processus dans l'état prêt, et à lui allouer le processeur, le faisant passer dans l'état actif (transition 3). Un processus actif peut perdre le processeur, et repasser dans l'état prêt lorsque le système désire allouer le processeur à un autre processus (transition 2). Lorsqu'un processus actif demande une ressource qui n'est pas disponible, il passe dans l'état bloqué, et le processeur lui est retiré (transition 1). Lorsque la ressource demandée par un processus devient disponible, elle peut lui être allouée; le processus a alors toutes ses ressources sauf la ressource processeur et passe donc dans l'état prêt (transition 4).
Le processus est dans l'état bloqué lorsqu'il n'a pas toutes ses ressources, à l'exception de la ressource processeur. Pour passer dans cet état, il faut qu'il lui manque une ressource, soit parce qu'on la lui a retiré, ce qui n'est pas prévu ici, soit parce qu'il exprime un nouveau besoin, ce qui implique qu'il dispose du processeur pour exprimer ce besoin, c'est-à-dire qu'il soit actif. En conséquence, la seule transition vers l'état bloqué ne peut venir que de l'état actif. Par ailleurs, un processus quitte l'état bloqué lorsqu'il a toutes ses ressources pour s'exécuter, à l'exception de la ressource processeur, ce qui interdit la transition directe de bloqué à actif.

4.4.2. Question B.

4.4.2.1. Question B.1.

Le chronogramme d'exécution des 4 processus est donné ci-après. Les 4 processus sont initialement prêts. P1 ayant la priorité la plus grande est le premier processus actif jusqu'au temps 40, où son entrée-sortie est lancée, pour une durée de 50, c'est-à-dire jusqu'en 90. P2 devient alors actif. Au temps 70, P2 est bloqué en attente du disque et P3 devient actif.
Au temps 90, la demande d'entrée-sortie de P1 se termine et celui-ci redevient prêt. La priorité de P1 étant maximale, P1 redevient donc actif. En même temps, le disque étant libre, l'entrée-sortie de P2 est lancée, pour une durée de 80, c'est-à-dire jusqu'en 170. Au temps 120, P1 se bloque en attente du disque. P3, de priorité maximale, redevient actif jusqu'au temps 140, où il se bloque en attente du disque (derrière P1). P4 étant le seul processus prêt devient actif.
P1
P2
P3
P4
Au temps 170, l'entrée-sortie de P2 se termine, permettant à ce processus de redevenir prêt, en même temps que l'entrée-sortie suivante de la file, c'est-à-dire celle de P1, est lancée, pour une durée de 40, c'est-à-dire jusqu'en 210. La priorité de P2 étant maximale, P2 devient actif.
Au temps 210, l'entrée-sortie de P1 se termine permettant à ce processus de redevenir prêt, en même temps que l'entrée-sortie de P3 est lancée, pour une durée de 20, c'est-à-dire jusqu'en 230. La priorité de P1 étant maximale, P1 redevient actif jusqu'à son achèvement au temps 230.
Au temps 230, l'entrée-sortie de P3 se termine permettant à ce processus de redevenir prêt. La priorité de P2 étant maximale, P2 redevient actif jusqu'au temps 270, où son entrée-sortie est lancée, pour une durée de 20, c'est-à-dire jusqu'en 290. P3 devient actif jusqu'à son achèvement en 280. P4 étant seul processus prêt devient actif.
Au temps 290, l'entrée-sortie de P2 se termine permettant à ce processus de redevenir prêt. La priorité de P2 étant maximale, P2 redevient actif jusqu'à son achèvement en 300. P4, seul processus restant, redevient actif jusqu'à son achèvement en 340.

4.4.2.2. Question B.2.

Le chronogramme d'exécution des 4 processus est donné ci-après. Le début est similaire au cas précédent. Les 4 processus sont initialement prêts. P1 ayant la priorité la plus grande est le premier processus actif jusqu'au temps 40, où son entrée-sortie est lancée, pour une durée de 50, c'est-à-dire jusqu'en 90. P2 devient alors actif. Au temps 70, P2 est bloqué en attente du disque et P3 devient actif.
Au temps 90, la demande d'entrée-sortie de P1 se termine et celui-ci redevient prêt. La priorité de P1 est alors 100-4=96, celle de P3 est 98-2=96 et celle de P4 est 97. P4 devient donc actif. En même temps, le disque étant libre, l'entrée-sortie de P2 est lancée, pour une durée de 80, c'est-à-dire jusqu'en 170.
Au temps 170, d'une part P4 est achevé, d'autre part l'entrée-sortie de P2 se termine, et P2 redevient prêt. La priorité de P2 est alors 99-3=96. Les 3 processus P1, P2, P3 ont la même priorité, mais P3 est le plus ancien de la file; il devient actif, jusqu'au temps 190, où son entrée-sortie est lancée, pour une durée de 40, c'est-à-dire jusqu'en 230. Les deux processus prêts ayant même priorité (96) le plus ancien de la file, c'est-à-dire P1, devient actif. Au temps 220, P1 se bloque en attente du disque et P2, seul processus prêt, devient actif.
Au temps 230, l'entrée-sortie de P3 se termine, permettant le lancement de celle de P1, pour une durée de 40, c'est-à-dire jusqu'en 270. P3 redevient actif avec la priorité 98-4=94. La priorité de P2 à ce moment est 99-4=95. Le processus P2 reste actif.
Au temps 270, l'entrée-sortie de P1 se termine et P1 redevient actif. La priorité de P1 est alors 100-7=93, celle de P2 est 99-8=91 et celle de P3 est 98-4=94. P3 devient actif jusqu'à son achèvement en 280. P1 étant alors le plus prioritaire devient actif jusqu'à son achèvement au temps 300. P2 restant seul peut achever ses activités.
P1
P2
P3
P4

4.4.3. Question C.

En monoprogrammation, le temps total est la somme des temps processeurs et entrées-sorties de chaque processus. Or P1 dure 180 ms, P2 dure 220 ms, P3 dure 90 ms et P4 dure 80 ms. Le temps total d'exécution dans le cas C1 est donc de 570 ms.
Dans le cas B1 où l'allocation processeur est à priorité fixe, on constate que le dernier processus à se terminer est P4, donnant une durée totale de 340 ms.
Dans le cas B2 où l'allocation processeur est à priorité variable, on constate que le dernier processus à se terminer est P2, donnant une durée totale de 360 ms.

4.4.4. Question D.

Le temps de réponse pour un processus est le temps qui sépare le moment où le processus est fourni au système du moment de la fin de son exécution. Dans nos hypothèses, les 4 processus sont toujours fournis à l'instant 0, mais ils se terminent plus ou moins tôt.


C1
C2
C3
P1
180
230
300
P2
400
300
360
P3
490
280
280
P4
570
340
170
moyenne
410
288
278
Constatons sur ce tableau que le temps de réponse moyen est plus fort dans le cas C1 que dans les autres cas. Notons que le temps de réponse pour P4 est nettement amélioré dans la gestion à priorité variable par rapport à la gestion à priorité fixe, au détriment des temps de réponse de P1 et P2.

4.4.5. Question E.

Le taux d'utilisation processeur est le rapport entre la durée d'utilisation effective du processeur par l'un des processus et la durée totale d'exécution. Le temps total d'utilisation du processeur étant de 340 ms, on voit donc que le cas C1 donne un taux d'occupation du processeur de 60%, le cas C2 un taux de 100% et le cas C3 un taux de 94%.
En analysant les chronogrammes, on constate que le cas C2 permet d'obtenir un taux d'occupation de 100% du processeur parce que le processus P4 qui ne fait aucune entrée-sortie a la priorité la plus faible. Il sert donc de "bouche-trou". L'inconvénient est immédiat : c'est l'allongement du temps de réponse pour ce processus.