À toute personne désirant approfondir ses connaissances sur les algorithmes de remplacement de pages. Ce logiciel vise plus directement les étudiants du cours INF3600 - Systèmes d'exploitation qui pourront grâce à ce simulateur générer des cas précis qui aideront à clarifier la matière théorique du cours, en plus de permettre de voir les grandes différences d'efficacité des divers algorithmes. L'utilisateur pourra ainsi évaluer et critiquer l'efficacité des méthodes et juger de leur pertinence.
Lorsque le simulateur est lancé, on peut remarquer deux onglets dans la fenêtre. Ces deux onglets représentent les deux modes de simulation qui sont offerts.
Commençons par regarder le mode avec entrée de données conventionnelle. On remarque dans un premier temps deux cases d'entrée de données ainsi que la première colonne d'un tableau. Ensuite, à la droite, une boîte où l'on peut choisir l'algorithme de remplacement voulu. Une case supplémentaire est présente dans le cas de l'algorithme NRU pour spécifier le moment où le bit R doit être réinitialiser. Ces cinq champs de données constituent les seuls entrées de données nécessaires à la simulation. Lorsque ces informations sont remplies, la simulation est prête à débuter.
Voyons maintenant ces champs plus en détails:
Longueur de la séquence de départ : C'est la longueur de la
séquence à entrer. Le tableau immédiatement à droite prendra la taille
entrée dans ce champ. Si la taille spécifiée est de 0, le tableau
n'aura qu'une seule colonne et s'agrandira au fur et à mesure de
l'entrée des données.
Nombre de cadres mémoire : C'est le nombre de cadre que l'on
désire inclure dans la simulation
Le tableau : Ce tableau possède une colonne pour chaque temps
de simulation. Le nombre de colonne du tableau varie en fonction du
nombre entrée dans le champ longueur. La première case doit contenir le
contenu du cadre à rechercher en mémoire. La case du bas n'est utilisée
que pour l'algorithme NRU (ignorée dans les autres cas). Elle indiquera
si l'accès mémoire est une lecture (L) ou une écriture (E).
Algorithme désiré : On doit ici spécifier l'algorithme à
utiliser pour la simulation. À noter qu'il est impossible d'avoir une
simulation de Belady avec une séquence entrée manuellement (de longueur
"0")
Réinitialisation du bit R : Le nombre d'unité de temps après
lequel on réinitialise le bit R dans l'algorithme NRU. Pour tous les
autres algorithmes, cette boîte n'apparaît pas. Dans un système réel,
c'est l'interruption d'horloge qui réinitialise ces bits, en général
tous les 20ms.
.
Il est possible de demander des détails pour bien comprendre ce qui se
passe pendant la simulation (pourquoi une page a été choisie par rapport
à une autre). Pour ce faire, une case à cocher "Détails" est présente
dans le bas de la fenêtre. Lorsque la case est cochée, une nouvelle
section apparaît dans le tableau pour chaque cadre mémoire, affichant
les détails de ce cadre au temps courant. Dépendamment de l'algorithme
choisi (à droite), les informations fournies sont différentes. Seules les
informations utiles sont affichées, en plus du temps d'insertion de la
page qui apparaît pour tous les algorithmes. On retrouve la légende des
abréviations immédiatement sous la case à cocher "Détails".
Une fois les informations bien entrées, deux options sont possibles
quant au déroulement de la simulation. Les références aux pages peuvent
être faites pas-à-pas ou encore d'un seul coup. La simulation pas-à-pas
permet de bien suivre les étapes de simulation, contrairement à la
simulation complète qui affiche directement le résultat. Par contre, peu
importe le déroulement choisi, un retour en arrière est possible, par
exemple, revenir en arrière pour modifier une référence et voir les
différences dans les résultats. Cette fonctionnalité est détaillée dans
la section "Résultats". Il est à noter que la
simulation pas-à-pas est évidemment impossible si l'algorithme choisi
est celui de Belady.
L'autre type de simulation disponible est un mode statistique. Cette
simulation permet de comparer l'efficacité des différents algorithmes de
remplacement de page entre eux, en faisant varier quelques paramètres.
Regardons ces paramètres :
Longueur de la séquence : La longueur de la séquence de
références aux pages mémoire à générer.
Nombre de cadres mémoire : Le nombre de cadres mémoire à
considérer dans la simulation.
Nombre de pages différentes : Le nombre de pages différentes
qu'il est possible de référer. Ce paramètre est en relation directe avec
le type de distribution, concernant l'accès aléatoire aux pages.
Accès aléatoire aux pages : Ce paramètre détermine la manière
dont les pages différentes, dont le nombre a été décrit ci-haut, seront
référées. Une distribution uniforme, par exemple, indiquera que toutes
les pages différentes seront accédées pêle-mêle. À l'opposé, une
distribution normale accédera plus souvent a certaines pages qu'à
d'autres, en relation avec l'écart-type
spécifié. Il est à noter qu'un système réel conventionnel ne correspond
à ni l'une ni l'autre de ces distributions.
Dans un premier temps, regardons les résultats obtenus avec l'entrée d'une séquence, nous regarderons par la suite les résultats avec le mode statistique.
Au dessous du tableau de la séquence, on retrouve le résultat de la
simulation. Tous les cadres mémoires sont décris dans le temps, en
montrant leur contenu pour chaque étape de simulation. Les endroits où
se produisent les défauts de page sont mis en évidence en rouge, tandis
que les références complétées avec succès sont simplement mises en
gras. Les défauts de page sont comptabilisés dans le bas de la page.
On remarque que la table de séquence devient grisée au fur et à mesure de l'avancement de la simulation (si elle est effectuée pas-à-pas). Il est possible de cliquer sur une des cases grisées pour revenir en arrière dans la simulation. Si une de ces cases est sélectionnée, la simulation revient à ce point et le nombre contenu dans la case devient bleu pour indiquer que la simulation est arrêtée à cet endroit. Les cases suivantes (non simulées) redeviennent blanches, et les cases précédentes restent inchangées (grisées).
Voyons maintenant les résultats à partir d'une simulation statistique :
Lorsque la simulation est complétée, les résultats (le nombre de
défauts de page pour chaque algorithme) sont inscrits dans le bas
de la fenêtre. En rouge, on retrouve le nombre de défauts de page
engendré par la simulation. Si la simulation a été tentée à 10
reprises, comme c'est le cas dans la figure montrée, c'est la moyenne
des nombres de défauts de pages calculés pour chacune des simulations qui
est affichée. Cette moyenne est accompagnée d'un écart-type qui montre
la régularité des résultats sur 10 simulations.
Un bouton supplémentaire est disponible. Cette option permet de
générer une série de points correspondants aux résultats obtenus avec
une variation du nombre de cadres mémoire passant de 1 à 25. La série
de points est placée de manière à générer automatiquement un graphique
sur MatLab. Le graphique obtenu montre la variation du nombre de
défauts de page en fonction du nombre de cadres.
Lorsque l'on choisi la répartition des accès aléatoires aux pages
dans le mode statistique, on peut choisir une distribution normale en
spécifiant un écart-type. Cet écart-type représente en fait la
dispersion des accès aléatoires. Plus l'écart-type est grand, plus la
dispersion est grande, plus il est petit, moins la dispersion sera
grande. Dans les cas limite, un écart-type de 0 signifierait que la même
page est référé sur toute la séquence ne provoquant ainsi qu'un seul
défaut de page lors de l'arrivée la première requête. À l'inverse, un
écart-type d'une valeur infinie reviendrait à poser une distribution
totalement uniforme.
L'option de sauvegarde permet de conserver la séquence de références
entrées dans un fichier binaire. Grâce à cette particularité, il est
possible de reprendre la séquence d'une simulation antérieur et de ne
modifier que quelques éléments pour comparer, par exemple, les
différences entre celles-ci, sans à avoir à réorganiser toute la
simulation à partir de zéro.
Les options d'écriture et de lecture de fichier ne sont offerte
que dans la version autonome (fichier .jar) du simulateur. Cette
limitation est imposée pour des raisons de sécurité par la machine
virtuelle java (celle qui s'occupe d'exécuter les applets java). En
effet, personne n'aimerait qu'un programmeur malveillant s'amuse avec
des fichiers sur son ordinateur via Internet. Pour cette raison, il est
impossible (à moins de conditions particulières) d'effectuer des
écritures et des lectures de fichier via un applet Java. Cette
limitation se fait donc ressentir dans la version "Applet" du simulateur.