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 - p
n 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 p
n 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.