1.1. Évolution des performances

[d'après Brinch Hansen (73) complété par Krakowiak (85)] Le but de cet exercice est de mettre en évidence, sur un système simplifié à l'extrême, l'influence de l'évolution historique des systèmes d'exploitation sur quelques grandeurs caractéristiques de leurs performances.
On considère un ordinateur dont les organes périphériques sont un lecteur de cartes (1000 cartes/minute) et une imprimante (1000 lignes/minutes). Un “travail moyen” est ainsi défini:
- lire 300 cartes,
- utiliser le processeur pendant 1 minute,
- imprimer 500 lignes.
On suppose que tous les travaux soumis par les usagers ont des caractéristiques identiques à celles de ce travail moyen. On définit deux mesures des performances du système:
- le débit moyen D des travaux: nombre de travaux exécutés en une heure.
- le rendement η de l'unité centrale: fraction du temps total d'utilisation de l'unité centrale pendant lequel elle exécute du travail utile (autre que la gestion des périphériques).
A- On suppose d'abord que les périphériques sont gérés par l'unité centrale. Calculer η et D dans les hypothèses de fonctionnement suivantes:
A.1- Le système est exploité en porte ouverte; la durée d'une session est limitée à 15 minutes. On suppose qu'un usager a besoin de 4 minutes pour corriger son programme au vu des résultats, et faire une nouvelle soumission.
A.2- Le système est exploité avec un moniteur d'enchaînement séquentiel des travaux.
B- On suppose maintenant que les périphériques sont gérés par un ordinateur séparé, qui constitue une bande magnétique d'entrée à partir des cartes et liste sur imprimante le contenu d'une bande magnétique de sortie. L'ordinateur est alimenté par la bande magnétique d'entrée et produit la bande de sortie; on néglige la durée de lecture et d'écriture des bandes. Le temps de transfert des bandes d'un ordinateur à l'autre est de 5 minutes dans chaque sens; on suppose qu'une bande regroupe une fournée de 50 travaux (voir schéma).

B.1- On suppose que le rythme de soumission des travaux est suffisant pour occuper l'ordinateur central à plein temps. Calculer les valeurs de η et D.
B.2- Établir la planification de la construction des trains de travaux et calculer le temps d'attente moyen d'un usager (temps entre la soumission du travail et la réception des résultats). On admettra que les travaux arrivent à un rythme régulier, que le temps de construction d'une fournée (préparation du train de cartes) est de 10 minutes et que le temps de distribution des résultats d'une fournée (découpage et tri des listings) est de 10 minutes également.
C- Les périphériques sont maintenant gérés par un canal d'entrée-sortie. Le système est monoprogrammé, et le moniteur d'enchaînement permet à l'unité centrale d'exécuter le traitement d'un travail parallèlement à la lecture du suivant et à l'impression du précédent. Calculer dans ces conditions η et D. Même question si le travail moyen lit 1200 cartes et imprime 1500 lignes pour 1 minute de l'unité centrale.
D- Les entrées-sorties sont maintenant gérées avec tampons sur disque (spoule de lecture et d'impression). Le travail moyen est celui défini en 3 (1200 cartes, 1 minute et 1500 lignes).
D.1- On suppose qu'une carte et une ligne d'impression occupent respectivement 80 et 100 octets. Quelle est la taille minimale nécessaire des tampons de lecture et d'impression sur disque pour que l'unité centrale soit utilisée à son rendement maximal? Quel est alors le débit des travaux?
D.2- Le rythme d'arrivée des travaux et la taille du tampon de lecture sont ceux calculés en D.1, et la taille du tampon d'impression sur disque est de 2 Méga-octets. Quel est le rendement de l'unité centrale?
Solution de l’exercice 1.1

1.1.1. Question A

Notons que le temps de lecture de 300 cartes est de 0.3 mn, et le temps d'impression de 500 lignes est de 0.5 mn.

1.1.1.1. Question A.1

Le temps pour faire un passage est donc de 0.3 + 1 + 0.5 = 1.8 minutes. Comme entre deux passages l'usager a besoin de 4 mn pour corriger, le nombre de passages pour 15 minutes est au plus n tel que 1.8 * n + 4 * (n - 1) ≤ 15. En prenant n = 3, la durée de sa session sera de 13.4 mn. Il s'ensuit que η = 3 / 15 = 0.2, et D = 3 * 4 = 12

1.1.1.2. Question A.2

Lorsque le système est exploité avec un moniteur d'enchaînement des travaux, le temps de passage est le même, mais il n'y a pas d'attente entre deux passages. Il s'ensuit que D = 60 / 1.8 = 33, et η = 33 / 60 = 0.55.

1.1.2. Question B

1.1.2.1. Question B.1

Le débit maximum est limité à 60 travaux à l'heure, par l'unité de traitement. Le débit maximum d'entrée des cartes, est de 60 / 0.3 = 200 travaux à l'heure. Le débit maximum d'impression est de 60 / 0.5 = 120 travaux à l'heure. D'où D = 60, et η = 60 / 60 = 1.0. Ces valeurs ne pourront en fait être atteintes que si la planification est correcte.

1.1.2.2. Question B.2

La planification doit tenir compte du fait que l'opérateur ne peut faire qu'une chose à la fois, comme d'ailleurs l'ordinateur d'entrées sorties. Par ailleurs elle doit respecter l'ordre suivant pour un train:
1 préparation du train de cartes 10 minutes
2 lecture de 50 travaux. 15 minutes
3 transfert de la bande vers l'ordinateur central, 5 minutes
4 exécution de ces 50 travaux, 50 minutes
5 transfert de la bande d'impression 5 minutes
6 impression des 50 travaux 25 minutes
7 distribution des résultats 10 minutes
L'opération 4 du train n est effectuée en même temps que les opérations suivantes, dans l'ordre:
5 étape n - 1
6 étape n - 1 et 1 de l'étape n + 1
7 étape n - 1 et 2 étape n + 1
  1. étape n + 1

Il s'ensuit que le temps d'attente moyen est:
10 + 15 + 5 + 50 + 5 + 25 + 10 = 120 soit 2 heures.

1.1.3. Question C

La lecture du travail n + 1 demande 0.3 mn, ce qui est inférieur au temps de traitement, qui est de 1 mn. L'impression du travail n - 1 demande 0.5 mn, ce qui est encore inférieur au temps de traitement. D'où D = 60, et η = 1.0.
Si on a 1200 cartes à lire, le temps de lecture du travail n + 1 devient de 1.2mn, ce qui est cette fois supérieur au temps de traitement. De même, si on a 1500 lignes, le temps d'écriture du travail n - 1 devient 1.5mn, ce qui est également supérieur au temps de traitement. Le plus grand des 3 est le temps d'impression. On a donc D = 60 / 1.5 = 40, et η = 40 / 60 = 0.67.

1.1.4. Question D

1.1.4.1. Question D.1

L'unité centrale doit attendre d'avoir un travail complet pour s'exécuter. Comme c'est l'unité la plus rapide (cf. C), il faut faire en sorte que le lecteur travaille à sa vitesse maximum, sans être ralenti par l'unité centrale, qui n'aurait pas vidé le tampon de lecture. Comme on ne peut préjuger de la façon dont elle vide ce tampon, on doit considérer qu'elle libère l'espace occupé par les cartes d'un travail lorsque ce travail est terminé. Pendant ce temps, le lecteur peut lire 1000 cartes, il faut donc un tampon d'au moins 1000 + 1200 = 2200 cartes, soit 176000 octets. Pour que l'unité centrale ne soit pas freinée par l'impression, il faut qu'il y ait toujours au moins un tampon de 1500 lignes disponible au début d'un travail, c'est à dire toutes les 1.2 minutes, puisque c'est le temps mis pour lire un travail. Dans ce cas, puisque l'impression n'a pu libérer que 1200 lignes du tampon pendant ce temps, il faut que le tampon augmente de 300 lignes toutes les 1.2 minutes! Il faut un tampon infini. Le débit cependant reste limité au débit de l'imprimante.

Si on essaie maintenant de faire en sorte que seule l'impression ne soit pas ralentie, il faut qu'à la fin de l'impression du travail n, le traitement du travail n+1 soit terminé. Il faut donc qu'il ait commencé au plus tard 1 minute avant, et qu'il n'ait pas été ralenti par manque de place dans le tampon d'impression. Au moment du début d'un travail, il faut donc qu'il y ait 1000 + 1500 lignes disponibles dans le tampon, qui doit donc faire 250000 octets. Notons que dans ce cas, le tampon de lecture peut être diminué, puisque l'unité centrale étant inactive pendant 0.5 minutes, il faut simplement que 700 cartes aient été lues à ce moment, c'est-à-dire lorsque le traitement libère les 1200 cartes dont il avait besoin. Le tampon de lecture doit alors faire 1900 cartes, soit 152000 octets.

1.1.4.2. Question D.2

Avec un rythme maximal d'arrivée des travaux en entrée, c'est-à-dire, saturant le lecteur de cartes, et donc un tampon d'entrée de 176000 octets, l'unité centrale pourra effectuer un travail toutes les 1.2 minutes, tant que le tampon de sortie ne sera pas saturé. A chaque fois, 300 lignes supplémentaires resteront à imprimer. Comme le tampon de sortie peut contenir 20000 lignes, après 66 travaux, il sera saturé. On peut donc en conclure que pendant les 79 premières minutes, le rendement η = 1 / 1.2 = 0.83. Il passera alors à 1 / 1.5 = 0.67 tant que le rythme d'arrivée se maintiendra à une moyenne de 40 par heure. Il restera alors 20 minutes d'impression, pendant lesquelles le rendement sera nul.
Il faut noter que ceci montre que ces tampons ont un second rôle qui est d'amortir les variations du rythme d'arrivée des travaux, ainsi que les variations de leur comportement.