GEF 435 Principes des systèmes d’exploitation Modélisation des Algorithmes de remplacement de pages (Tanenbaum 4.5)
Revue Comment est-ce que l’algorithme de remplacement de page de l’horloge de l’ensemble de travail diffère de l’algorithme de l’horloge? Clock is an implementation of second chance and evicts the first page it finds that doesn’t have its used bit set WSClock clears used bits and updates the page frame’s time of last use, evicting pages only if they are outside of the working set of the process
Synopsis Anomalie de Belady Classes des algorithmes La chaîne des distances Prédiction des taux de défauts de page
Pourquoi la modélisation Au courrant des années beaucoup de travail a été fait pour essayer de modéliser les ARP On voulait savoir quel genre de performance les algorithmes pouvaient obtenir Savoir lesquels sont performants sous certaines conditions Savoir quelle genre de gain en performance on pouvait obtenir si on ajoutait de la mémoire Déterminer le taux de défauts de page Il est difficile de créer un cas pour tester tout les algorithmes La modélisation permet de visualiser les performances pour des cas simple
Anomalie de Belady Est-ce toujours mieux d’avoir plus de cadres pour être capable de réduire le nombre de défaut de page? Intuitivement, oui cela semble correct En 1969 un groupe a découvert un contre-exemple où l’ARP du PAPS pourrait générer plus de défauts de page avec quatre cadres qu’avec trois cadres!!! Cette découverte a rendu beaucoup d’académiques fous… et a avancé la théorie qui supporte les algorithmes de pagination et leurs propriétés To show them how this makes sense intuitively, you can describe a system with an increasing amount of memory but a constant set of virtual pages addressed. Many more page frames, intuitively, should result in far fewer page faults.
Anomalie de Belady The columns show which pages are currently in memory. A ‘P’ is drawn whenever a page is reference that is not in memory. Remember, the PRA being used here is FIFO, so referencing a page in memory causes no reordering whatsoever.
Classes d’algorithmes On considère un seul processus Ce processus va générer un ensemble de demandes pour des pages virtuelles. Ceci s’appel une chaîne des références Un système de pagination peut être caractérisé à partir de trois items: La chaîne des références pour le processus en exécution L’algorithme de remplacement de pages Le nombre de cadres en mémoire, m A single process means we have a single, deterministic reference string.
Classes d’algorithmes En utilisant cette information, les propriétés d’un modèle peuvent être étudiées en analysant la façon dont les pages sont gardées en mémoire On maintien un tableau, M, qui trace l’état de la mémoire. Le tableau a n entrées, qui correspondent au nombre de pages virtuelles Le tableau a une partie supérieure qui contient m entrées qui représente les pages en mémoire, et une partie inférieure de n-m entrées, qui représente les pages qui ont étés chargées en mémoire, mais qui ont étés permutées au disque
Classes d’algorithmes Les entrées sont arrangées dans cette liste de la même façon qu’elles le seraient avec les algorithmes L’algorithme ici est le MRU. Chaque fois qu’une page n’est pas en mémoire, un défaut de page est indiqué avec un “P” Note that since there are as many entries in the array as there are virtual pages that no page will ever be pushed out of the array Point out the top part (m) and the bottom part (n-m). The top are pages in memory and the bottom is pages swapped to disk. Just like LRU, as a page is used it is moved to the “head of the list” Pages swapped out are put at the “top” of the bottom section and slid downward from that position. This example shows Least Recently Used algorithm. It can be used to represent other models, such as FIFO
Classes d’algorithmes Notez comment pour cet exemple avec MRU que l’ensemble des pages en mémoire pour 4 cadres de mémoire serait aussi présent dans les cadres si on avait 5 cadres de page. Il y aurait une page additionnel en mémoire, mais l’ensemble des pages en mémoire pour m cadres de page est aussi en mémoire pour m+1 cadres de page Les algorithmes qui rencontrent ce critère sont appelés algorithmes de pile. Ces algorithmes ne souffrent pas de l’anomalie de Belady Mathématiquement ces algorithmes ont la propriété M(m,r)M(m+1, r) ie: the pages in memory (M) in the top section(m) at the r point of a reference string are a subset of the top part of memory when it is one larger at the same point in the reference string Neither LRU nor the optimal algorithm suffer from Belady’s anomaly.
La chaîne des distances Les algorithmes de pile sont importants parce qu’ ils permettent une analyse mathématique des ARPs Une mesure intéressante est comment loin à partir du dessus de la pile une page est, quand elle est utilisée Ceci s’appel la chaîne de distances Donc si la distance moyenne d’une page par rapport au dessus de la pile est 3, on sait que si on a 4 cadres ou plus cela va résulter en moins de défauts de page.
La chaîne des distances Les pages qui ne sont pas encore chargées ont une distance infinie En comptant la fréquence des occurrences de chaque chaîne de distances (et un peu de mathématique) on obtiens une fonction de densité de probabilités Note that the distance string is counted from the frame before it was moved to the top (duh!)
La chaîne des distances Ces deux graphes sont deux fonctions de densité de probabilités hypothétiques Celui de gauche montre que la plus part des entrées dans la chaîne sont entre 1 et k. Avec k cadres de page, très peu de défauts de page vont se produire Celui de gauche n’est pas aussi bon. La seule façon de prévenir des défauts de page ici est d’avoir autant de cadres que de pages virtuelles
Prédiction des taux de défauts de page La chaîne des distances nous donne aussi une façon facile de prédire les taux de défauts de page pour une chaîne de références avec des mémoires de différentes grandeur Essentiellement on obtiens un compte, C, du nombre de fois que chaque nombre dans la chaîne des distances apparaît C1 = 4 C2 = 2 C3 = 1 C4 = 4 C5 = 2 C6 = 2 C7 = 1 C = 8 Ensuite on calcule un autre vecteur, F, où chaque entrée Fx est égale à la somme Cx+1 à C Mathématiquement F est : So, each entry, Cx is the number of times that x appeared in the distance string
Prédiction des taux de défauts de page Donc une mémoire avec un cadre résulte en 20 défauts de page, deux cadres en 18, trois en 13, etc... Note that the book has an error in this section While this is only directly applicable to our specific reference string, it should be obvious that if the string is representative of the way in which pages are called (and a larger sample is collected) that it could be used for testing of a system It is highly related to the probability density function.
Questions? Quiz Time! What did Belady’s anomaly show? It showed that some algorithms might generate more page faults when the number of page frames was increased. This was not expected. What is the class of algorithms called that do not exhibit Belady’s anomaly? Stack algorithms What is the distance string? It represents, for each page reference, how far down the stack that page was when it was required.