4.13. Multiprogrammation et pagination

La figure suivante a été présentée dans le chapitre 14:

A- Expliquez ce dessin (1/2 page).
Pour la suite, on pourra approcher ces courbes par la formule suivante:
taux_cpu = 1 - pn ,
où p est le taux d'attente pour entrées-sorties d'un processus, et n le nombre de processus. On ne vous demande pas de justifier cette formule.
B- On dispose d'une machine équipée d'un système de page à la demande. L'espace mémoire centrale disponible pour les processus est de 800 Ko. Un défaut de page entraîne le blocage du processus en attente de page pendant en moyenne 50 millisecondes.
Les caractéristiques moyennes des programmes de l'installation sont les suivantes:
- Lorsqu'un programme est exécuté seul, dans 800 Ko de mémoire, il n'y a pas de défaut de page, il utilise 40 secondes d'unité centrale, et attend ses entrées-sorties pendant 60 secondes.
- Lorsqu'il est exécuté dans un espace mémoire réduit, les nombres de défauts de page sont les suivants:
espace mémoire
100 Ko
200 Ko
400 Ko
défauts de page
10000
2500
1000
B.1- On répartit équitablement l'espace mémoire centrale disponible entre 2, puis 4, et ensuite 8 processus. Donner dans chaque cas le taux d'attente pour entrées-sorties, et en déduire le taux d'activité du processeur.
B.2- Même question que B.1. si on remplace le disque utilisé pour la pagination (et seulement lui) par un disque plus performant permettant de réduire de 50 à 20 millisecondes le temps d'attente de page.
B.3- Quels commentaires cela vous suggère-t-il, selon que vous preniez le point de vue de l'utilisateur, ou le point de vue du chef d'exploitation?
Solution de l’exercice 4.13

4.13.1. Question A

La multiprogrammation est un concept qui a été introduit pour améliorer l'efficacité de l'utilisation du processeur. En effet, l'exécution d'un programme est une suite de périodes de traitement et d'attente d'entrées-sorties. Lorsque le programme est seul en mémoire, le processeur n'a rien à faire pendant ces attentes d'entrées-sorties. Si plusieurs programmes sont présents en mémoire au même moment, ces attentes pour l'un des programmes peuvent être récupérées pour les autres. Ainsi avec 5 programmes en mémoire, tels que chacun passe 20 % du temps en traitement et 80 % en attente d'entrées-sorties, on peut espérer théoriquement une activité du processeur proche de 100 % répartie entre les 5 programmes. En fait les périodes de traitement et d'attente de ces programmes ne sont pas constantes dans le temps, et la valeur de 80 % d'attente est une valeur moyenne. Lorsqu'on combine ces 5 programmes il y a amélioration, mais pas situation idéale. La figure montre quel est le taux d'activité du processeur obtenu en fonction du nombre de processus mis en mémoire simultanément, pour différentes valeurs du taux d'attente d'entrées-sorties de ces programmes. Par exemple, en prenant 5 programmes qui attendent en moyenne 80 % du temps après des entrées-sorties, la figure indique que, dans ce cas, le taux d'activité du processeur n'est que d'environ 70 %.
Information complémentaire: La formule taux_cpu = 1 - pn se justifie de la façon suivante: le taux_cpu est en fait la probabilité qu'au moins un programme ne soit pas en attente; la formule découle alors du fait que pn est la probabilité que tous les n programmes soient en attente.

4.13.2. Question B

4.13.2.1. Question B.1

Lorsqu'on répartit équitablement l'espace mémoire centrale disponible entre n processus, cela signifie que chaque processus s'exécute avec 800/n Ko de mémoire. Il s'ensuit donc des défauts de page pour chacun de ces processus, et donc une augmentation du taux d'attente de ces processus pour entrées-sorties. Les résultats des calculs sont résumés dans le tableau suivant:
Nombre
espace
défauts de page
temps
taux
processus
mémoire
nombre
attente
E/S
total
attente
taux_cpu
1
800 Ko
0
0
60 sec
100 sec
60 %
40 %
2
400 Ko
1000
50 sec
110 sec
150 sec
73 %
47 %
4
200 Ko
2500
125 sec
185 sec
225 sec
82 %
55 %
8
100 Ko
10000
500 sec
560 sec
600 sec
93 %
44 %

4.13.2.2. Question B.2

La conséquence du remplacement du disque de pagination par un disque à 20 ms., est de diminuer les temps d'attente pour défauts de page des programmes. Il s'ensuit une diminution du temps d'entrées-sorties, et donc une amélioration des taux d'attente de chaque processus, et enfin du taux_cpu. Les résultats des calculs sont résumés dans le tableau suivant:
Nombre
espace
défauts de page
temps
taux
processus
mémoire
nombre
attente
E/S
total
attente
taux_cpu
1
800 Ko
0
0
60 sec
100 sec
60 %
40 %
2
400 Ko
1000
20 sec
80 sec
120 sec
67 %
55 %
4
200 Ko
2500
50 sec
110 sec
150 sec
73 %
72 %
8
100 Ko
10000
200 sec
260 sec
300 sec
87 %
66 %

4.13.2.3. Question B.3

Prenons d'abord le point de vue du chef d'exploitation. Dans chacun des cas, il constate que le meilleur taux d'activité du processeur est obtenu avec 4 programmes présents simultanément en mémoire. Par rapport à la monoprogrammation qui donne un taux d'activité du processeur de 40 %, la rentabilité de son système passe à 55 % dans le cas de disques à 50 ms., et à 72 % s'il dispose de disques de pagination à 20 ms. Il ne devrait pas s'étonner que la rentabilité diminue avec 8 programmes simultanés, car cela indique simplement que les programmes n'ont plus assez d'espace mémoire pour s'exécuter sans trop de défauts de page. Il y a début d'écroulement.
Le point de vue de l'utilisateur ne sera pas aussi favorable dans une première approche. En effet, il constate que son programme devait rester 100 secondes en mémoire dans le cas de la monoprogrammation, alors qu'il doit rester au moins 225 secondes en B.1, et 150 en B.2. Expérimentalement il constatera que ces deux derniers temps seront en fait plus grands. En effet, les 4 programmes ont besoin de 160 secondes de processeur au total; le taux_cpu étant alors de 55 % dans le cas B.1, la durée totale d'exécution de ces 4 programmes est de 290 secondes (160/0.55). Dans le cas B.2, le taux_cpu passant à 72 %, la durée totale d'exécution sera alors de 222 secondes (160/0.72). Dans chaque cas, le temps de réponse se dégrade donc. Dans une deuxième approche, il constatera que si les 4 programmes sont pour lui, l'amélioration est assez sensible, puisque les 4 programmes demandent 400 secondes en monoprogrammation! Il ne pourra alors que féliciter le chef d'exploitation d'avoir amélioré ainsi les temps de réponse globaux.