# Mesures sur un système conversationnel

Claude Bétourné, Sacha Krakowiak

► To cite this version:

Claude Bétourné, Sacha Krakowiak. Mesures sur un système conversationnel. [Rapport de recherche] IRIA-RR-046, IRIA. 1974, pp.16. hal-04715912

HAL Id: hal-04715912

https://inria.hal.science/hal-04715912v1

Submitted on 1 Oct 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
RIA
laboria

laboratoire de recherche
en informatique
et automatique

Mesures sur un système
conversationnel

C.Betourné,S.Krakowiak

Institut de Recherche
d'Informatique
et d'Automatique

Domaine de Voluceau
Rocquencourt
78150 - Le Chesnay
Tél. 954.90.20

Rapport de Recherche n° 46

Janvier 1974
MESURES SUR UN SYSTEME CONVERSATIONNEL

C. Bétourné, S. Krakowiak

Ce rapport présente quelques résultats de mesures obtenus à l'I.R.I.A. sur le système interactif ESOPE au cours de séances réelles d'exploitation. Les mesures portent sur l'utilisation des ressources (mémoire, unité centrale), sur le temps consacré aux diverses activités du système, sur la gestion des files d'attente d'usagers, et enfin sur le comportement des usagers (utilisation de la mémoire virtuelle, temps de réflexion). L'intérêt de ce travail est de fournir des ordres de grandeur pour les divers paramètres mesurés, en vue d'une utilisation dans le traitement de modèles de systèmes analogues au système étudié.

SOME MEASUREMENT RESULTS FOR AN INTERACTIVE SYSTEM

This report presents the results of some measurements which were performed at I.R.I.A. on the system ESOPE, over a series of conversational sessions. These results refer to memory and CPU utilization, the distribution of time among various types of activities, the management of internal user queues, and the behaviour of users (virtual storage utilization, think time). The main interest of this work is to provide numerical estimates for these various quantities, which may be used in models of systems of the same kind as the one under study.
MESURES SUR UN SYSTEME CONVERSATIONNEL

C. Bétourné*, S. Krakowiak**

IRIA/LABORIA

On présente quelques résultats obtenus sur le système interactif ESOPE de l'IRIA, au cours d'une exploitation réelle. L'intérêt essentiel de ce travail est d'illustrer la notion de mesure sur un système et de fournir des ordres de grandeur réutilisables pour des modèles analytiques ou de simulation.

# 1. PRESENTATION DU SYSTEME

## 1.1 Caractéristiques générales

Le système ESOPE utilise un 10070 CII, pourvu d'une mémoire paginée alimentée page par page à partir de disques. La charge du système est uniquement constituée d'utilisateurs travaillant en mode conversationnel à partir des terminaux. Pour le système, chacun d'eux est un "usager" possédant sa mémoire virtuelle propre. Les interpréteurs sont réentrants, ce qui permet le partage des pages de code entre usagers.

Un usager passe par divers "états", en fonction des ressources qui lui sont allouées ou retirées (fig. 1) ; les usagers dans le même état sont réunis dans une file d'attente.

<figure><img src="image_2.png" /><figcaption>Figure 1 Diagramme de transition entre états d'un usager.</figcaption></figure>

<footnote>* adresse actuelle : UER d'Informatique, Université de Toulouse III</footnote>

<footnote>** adresse actuelle : Laboratoire d'Informatique, Université de Grenoble I.</footnote>
L'usager est dit oisif lorsqu'il frappe sa demande ou reçoit la réponse. Après envoi d'un retour-chariot, signifiant la fin du message, l'usager oisif devient prêt, c'est-à-dire candidat pour l'entrée en mémoire. Un usager admis en mémoire est dit courant ; la condition d'admission est que la mémoire allouable doit pouvoir contenir tous les "working sets" estimés des usagers courants. Les usagers courants sont initialement éligibles, c'est-à-dire prêts à recevoir l'unité centrale ; l'usager élu perd l'unité centrale :

- lorsque l'exécution d'une commande est terminée (retour à l'état oisif)

- en fin de quantum ou de temps de résidence (retour à l'état éligible ou prêt)

- lors d'un défaut de page (transition dans l'état suspendu, jusqu'à ce que la page soit chargée).

Le cycle d'une interaction comprend un temps de réflexion (durée de l'état oisif), suivi d'un temps de réponse (durée totale des états prêt et courant).

Les pages de mémoire sont allouées dynamiquement ; on distingue, parmi les pages allouables, les pages libres dont le contenu peut être perdu, une copie existant sur disque, et les pages quasi-libres, dont le contenu a été modifié depuis le chargement et doit être sauvé avant réutilisation de la page. L'allocateur alloue les pages libres avant les pages quasi-libres. Les pages libres et quasi-libres sont chaînées dans deux files d'attente.

## 1.2 Programmation des mesures

Les mesures sont obtenues uniquement par programmes, incorporés dans le moniteur. Les statistiques portent sur les ressources (utilisation des pages, de l'unité centrale), les usagers (files d'attente), les interpréteurs (temps de réponse), temps d'exécution des interactions) et sur diverses parties du système (fréquence d'utilisation et durée d'exécution des primitives, des programmes d'interruption).
Les intervalles de temps se calculent simplement en notant 1'heure du système. La technique suivante est utilisée lorsque seule la somme des intervalles de temps est à mémoriser : l'ordinateur possède des horloges qui déclenchent périodiquement des interruptions ; une interruption est acquittée en une seule instruction MTW qui ajoute + 1 à un compteur adressé indirectement par un pointeur ; la somme d'une suite d'intervalles se construit donc "toute seule", à la seule condition de mettre à jour le pointeur sur le compteur à chaque fois que débute un autre intervalle ; une même horloge peut remplir plusieurs compteurs correspondant à des intervalles disjoints, si l'on modifie dynamiquement la valeur du pointeur. Cette technique a été employée pour mesurer les diverses phases d'activité de l'unité centrale (pourcentage de temps en oisiveté, en attente de page, en gestion, avec un usager élu).

## 1.3 Conditions des expériences

Le système a été exploité pendant 20 séances d'environ 1h30 chacune, avec une charge de 10 à 15 terminaux. Les utilisateurs étaient des stagiaires en analyse numérique, programmant en PL/1 et possédant une expérience variable du système et du langage.

Les mesures ont été réalisées séance par séance. Les résultats donnés ici se rapportent tous, sauf indication contraire, à la même séance. Ils ont été prélevés sur une durée totale de fonctionnement de 2h50.

# 2. RESULTATS DE MESURE

Les grandeurs mesurées peuvent être classées en deux groupes, suivant qu'elles caractérisent le fonctionnement interne du système (allocation de ressources, gestion des usagers) ou le comportement des utilisateurs et des programmes.

## 2.1 Caractéristiques du système

### 2.11 Gestion de la mémoire

Le tableau I donne quelques résultats globaux sur l'utilisation et le transfert des pages physiques. On constate que seule 1 page de données privées sur 10 environ n'est pas modifiée entre son allocation à un usager et sa libération. On constate également que 28 % des trans-
ferts entre mémoire et disque sont des vidages, et que la taille moyenne d'une demande de transfert est de 1,35 pages. La plupart des requêtes de transfert portent donc sur une ou deux pages (la demande de chargement d'une page pouvant entraîner le vidage sur disque du contenu de la page dont elle prend la place).

<table><caption>Tableau I. Utilisation des pages physiques</caption><thead><tr><td></td><td>Nombre moyen par seconde</td></tr></thead><tbody><tr><td>Pages de données libérées intactes</td><td>3,7</td></tr><tr><td>Pages de données libérées modifiées</td><td>28,8</td></tr><tr><td>Pages chargées</td><td>4,7</td></tr><tr><td>Pages vidées</td><td>1,8</td></tr><tr><td>Pages transférées</td><td>6,5</td></tr><tr><td>Demandes de transfert</td><td>4,8</td></tr></tbody></table>

La mémoire allouable comporte environ 200 pages. La figure 2 montre les histogrammes des files de pages libres et quasi-libres. On constate que, le plus souvent, il n'y a aucune page libre : les deux histogrammes présentent en outre des fréquences élevées autour de 50 pages (pour les quasi-libres), qui semblent devoir être attribuées aux libérations de pages "par paquets" lorsqu'un usager passe dans l'état oisif. La taille de 50 pages correspond environ à la taille du code réentrant de l'interpréteur PL/1.
## 2.12 Utilisation de l'unité centrale

Le tableau II donne la répartition du temps de l'unité centrale entre les diverses activités du système.

<table><caption>Tableau II. Répartition du temps de l'unité centrale</caption><thead><tr><th></th><th>%</th></tr></thead><tbody><tr><td>Exécution des processus du moniteur</td><td>5</td></tr><tr><td>Système oisif (pas d'usager courant)</td><td>61</td></tr><tr><td>Attente de page</td><td>27</td></tr><tr><td>Exécution des processus des usagers</td><td>4,5</td></tr><tr><td>Traitement des interruptions</td><td>2</td></tr><tr><td>Mesure (interruptions des horloges)</td><td>0.5</td></tr></tbody></table>

La fraction importante de temps d'oisiveté est due à l'absence de travail de fond. Le temps d'attente de page constitue la composante principale du temps de réponse.
Le tableau III montre la durée moyenne des diverses activités ; le moniteur intervient à chaque fois que l'usager élu perd l'unité centrale.

<table><caption>Tableau III. Durée moyenne des différents états du système</caption><thead><tr><th></th><th>durée moyenne<br>en ms</th></tr></thead><tbody><tr><td>Intervention du<br>moniteur</td><td>2,2</td></tr><tr><td>Oisiveté</td><td>1740</td></tr><tr><td>Attente de page</td><td>40</td></tr><tr><td>Activité d'un<br>usager</td><td>5,2</td></tr></tbody></table>

Le temps d'attente de page est du même ordre que la durée d'un transfert (les requêtes comportant une ou deux pages). Le temps d'activité d'un usager est essentiellement limité par les défauts de page ; la valeur du quantum (50 ms) ne semble intervenir qu'exceptionnellement.

Le tableau IV donne la fréquence des interruptions et déroutements, dont la durée de traitement figure dans le tableau V.

<table><caption>Tableau IV. Fréquence de quelques événements</caption><thead><tr><th></th><th>Nombre moyen<br>par seconde</th></tr></thead><tbody><tr><td>Interruption<br>d'Entrée/Sortie<br>(sauf terminaux)</td><td>12,2</td></tr><tr><td>Interruptions<br>des terminaux</td><td>22,4</td></tr><tr><td>Déroutements pour<br>défaut de page</td><td>23,7</td></tr></tbody></table>
<table><caption>Tableau V. Durée moyenne de quelques opérations</caption><thead><tr><th></th><th></th><th>μs</th></tr></thead><tbody><tr><td rowspan="2">Traitement des Interruptions</td><td>Entrée/Sortie</td><td>350</td></tr><tr><td>Terminaux</td><td>75</td></tr><tr><td rowspan="2">Déroutement pour défaut de page</td><td>Analyse</td><td>260</td></tr><tr><td>Traitement</td><td>500</td></tr><tr><td rowspan="2">Exécution des primitives sur sémaphore</td><td>P</td><td>115</td></tr><tr><td>V</td><td>110</td></tr></tbody></table>

N.B. Dans ce tableau, on désigne par "analyse" du déroutement la phase de calcul de l'adresse ayant provoqué le déroutement (cette adresse n'est pas fournie par le mécanisme câblé du 10070) et par "traitement" les opérations ultérieures (suivant le cas, récupération de la page en mémoire ou préparation du chargement de la page manquante).

## 2.13 Gestion des usagers

La figure 3 montre les histogrammes des files d'usagers courants, (C) oisif (O), et prêts (P). On constate que les files C et P sont le plus souvent vides et que la fréquence des usagers courants suit environ une distribution géométrique (il est 2 fois moins fréquent d'avoir 2 usagers courants qu'un seul, etc). La figure 4 montre comment évolue la composition des files en cas de surcharge. Le cas a) correspond à un fonctionnement normal. Dans le cas b), on a réduit de 32 pages la taille de mémoire physique et, en outre, augmenté la dispersion des références du traducteur utilisé (85 pages distinctes par interaction au lieu de 55). On constate l'augmentation du degré de multi-programmation (2 à 4 usagers courants le plus souvent), et la file P joue alors son rôle régulateur.

## 2.2 Caractéristiques des programmes et des utilisateurs

### 2.21 Utilisation de la mémoire virtuelle

La figure 5 montre la fréquence des défauts de pages pour l'exécution de deux programmes : le compilateur-interpréteur CPL/l et l'interpréteur de commandes du système. Cette fréquence est cumulée pour tous les usagers. Tout défaut de page ne donne pas lieu à un chargement, la page manquante pouvant être "récupérée" en mémoire si elle n'a pas été réallouée. Les pages les plus fréquemment utilisées sont des candidats évidents pour le préchargement.
2.22 Comportement des programmes et des utilisateurs

Le tableau VI donne, pour l'interpréteur CPL/1 et l'interpréteur de commandes du système, quelques caractéristiques d'utilisation.

<table><thead><tr><th></th><th>CPL/1</th><th>Interpréteur de commandes</th></tr></thead><tbody><tr><td>Nombre de défauts de page</td><td>55,3</td><td>8,6</td></tr><tr><td>Temps d'UC (ms)</td><td>141</td><td>31</td></tr><tr><td>Temps de réflexion (s)</td><td>14,3</td><td>19,4</td></tr><tr><td>Temps de réponse (s)</td><td>1,5</td><td>0,3</td></tr></tbody></table>
### 3. CONCLUSION

De nombreux types de mesures ont été présentés, mais beaucoup d'autres études sont possibles : utilisation des disques, influence du partage de l'information, fréquence d'emploi des primitives...

Le caractère aléatoire et très dispersé des grandeurs mesurées est à relever ; bien souvent la moyenne donne une information nettement insuffisante. Bien entendu les fluctuations importantes sont des sources de difficultés pour estimer la précision des résultats, leur reproductibilité et leur validité.

Il n'est sans doute pas inutile de signaler ici quelques obstacles rencontrés lors de l'implantation de mesures dans le système ESOPE : Une difficulté sérieuse provient du manque d'uniformité dans le traitement des données et des événements. Par exemple il serait facile de mesurer systématiquement toutes les files d'attente si elles étaient programmées toutes de la même façon et manipulées au moyen d'un même jeu de procédures ; il suffirait en effet d'inclure les points de mesure dans les procédures ; en réalité les diverses files sont traitées différemment, ce qui implique autant de méthodes de mesures.

Une autre difficulté est la structure trop complexe de certains programmes qui possèdent plusieurs sorties et trop de branchements de type *goto* ; dans ce cas il faut répéter les instructions de mesure en divers endroits, en prenant garde que la mesure soit bien enregistrée dans tous les cas possibles. Il ne faut pas oublier que la finalité des mesures est l'amélioration du système ; cet aspect n'est pas abordé ici. Des mesures systématiques impliquent en outre des programmes de test et un simulateur de charge conversationnelle permettant de réaliser des expériences dans des conditions reproductibles. Les résultats présentés ici donnent une première idée du fonctionnement du système et pourraient servir à des séries de mesures plus complètes et plus systématiques.
<figure><img src="image_3.png" /><figcaption>Figure 2. Histogramme des files de pages non allouées</figcaption></figure>

On a porté en ordonnée le temps total pendant lequel on observe un nombre donné de pages dans la file d'attente.

<figure><img src="image_4.png" /></figure>
<figure><img src="image_5.png" /><figcaption>Figure 3. Histogrammes des files d'usagers</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>Figure 4. Effet de la charge sur l'occupation des files d'attente</figcaption></figure>
<figure><img src="image_7.png" /></figure>
<figure><img src="image_8.png" /><figcaption>Figure 6. Distribution du temps d'unité centrale par interaction (PL/1 conversationnel)</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>Figure 7. Distribution du temps de réponse (PL/1 conversationnel)</figcaption></figure>
<figure><img src="image_10.png" /><figcaption>Figure 8. Distribution du temps de réflexion (PL/1 conversationnel)</figcaption></figure>