Module Systèmes d’exploitation BTS Génie Informatqiue École Normale Supérieure Tétouan Département Informatique Module Systèmes d’exploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III 2008-2009 Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Revue Quelle partie du matériel transforme les adresses logiques en adresses physiques? Comment on appel l’événement quand une Trap est fait au SE parce qu’une page n’est pas en mémoire? Quel problème est-ce que les tables de pages multiniveaux résoudrent? Dans un Répertoire de page actives (RPA – TLB), quel genre de mémoire doit on avoir pour accélérer les recherches? Pour un système avec une mémoire très, très grande, quelle est notre solution pour remplacer les tables de pages qui seraient effarantes? The MMU A Page Fault The solve the problem of a page table that gets too large. The memory is known as associative memory. It compares your key to all entries simultaneously and outputs the one entry that matches that key, if any. The solution to the overwhelming size of the page table is the Inverted Page Table where we track only the physical addresses mapped to their virtual counterparts. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Synopsis Introduction Remplacement de pages Algorithme optimal (OPT) Algorithme NRU Algorithme LRU Algorithme PAPS Algorithme de deuxième chance Algorithme d’horloge (facultatif) Comparaison des algorithmes Anomalie de Belady Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Introduction On se rappel: la pagination suit un ensemble de règles: Elle permet à un programme d’être chargé en mémoire une page à la fois Il y a un genre de table qui identifie quelle page est chargée dans quel cadre Quand une page est demandée et qu’elle n’est pas en mémoire physique, un défaut de page se produit Le SE doit maintenant charger la page dans la mémoire. Si il n’y a pas de cadre libre, une page doit être évincée de la mémoire. Quelle page est choisit pour être évincée? Évincée = renvoyée = écartée = exclue = éliminée Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Introduction Séquence d’événements pour défaut de page Le déroutement provoque la sauvegarde du pointeur d’instruction, et l’appel à la routine d’interruption associé; La routine d’interruption en assembleur sauvegarde les registres et appelle la routine de traitement du système d’exploitation; Le système analyse l’adresse ayant provoqué le défaut de page et détermine la page manquante. Dans le cas où l’accès à la page manquante provoquerait une violation de protection, un signal est envoyé au processus. Sinon, s’il n’existe pas de page en mémoire libre, l’algorithme de remplacement sélectionne une page. Si celle-ci a été modifiée, le système démarre sa recopie sur disque et endort le processus courant en attente de la fin de l’écriture; S’il existe une page mémoire libre, ou lorsque le processus a été réveillé par la terminaison de l’écriture de la page à remplacer, le système démarre le chargement de la nouvelle page à remplacer, le système démarre le chargement de la nouvelle page et endort le processus courant en attente de la fin de la lecture; Lorsque le processus est réveillé par la fin de la lecture, le système met à jour la table des pages du processus; La routine d’interruption remet l’instruction fautive dans son état original, positionne la valeur de retour du pointeur d’instruction de façon à la réexécuter, restaure les valeurs des registres, et retourne. Exécution d’une défaut de page: va-et-vient plus en détail Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Introduction Séquence d’événements pour défaut de page Deuxième explication!!! Trappe au SE: page demandée pas en RAM Sauvegarder registres et état du proc dans PCB Un autre proc peut maintenant gagner l ’UCT SE détermine si la page demandée est légale sinon: terminaison du processus et trouve la position de la page sur disque dans le descripteur de la page lire la page de disque dans un cadre de mémoire libre (supposons qu`il y en a!) exécuter les ops disque nécessaires pour lire la page L ’unité disque a complété le transfert et interrompt l’UCT sauvegarder les registres etc. du proc exécutant SE met à jour le contenu du tableau des pages du proc. qui a causé le défaut de page Ce processus devient prêt=ready À un certain point, il retournera à exécuter la page désirée étant en mémoire, il pourra maintenant continuer Exécution d’une défaut de page: va-et-vient plus en détail Enseigant : AAMMOU Souhaib
Introduction Temps moyen d’accès à la mémoire Module Systèmes d'exploitation BTS Génie Informatqiue Introduction Temps moyen d’accès à la mémoire Supposons que: accès en mémoire: 100 nanosecs temps de traitement de défaut de page: 25 millisecs = 25,000,000 nanosecs p: probabilité de ne pas trouver une page en mémoire (défaut) (quantité entre 0 et 1) Alors Temps moyen d’accès mémoire: (1-p) x 100 + p x 25,000,000 (pas de défaut + défaut) En utilisant la même formule, nous pouvons déterminer quel est le nombre de défauts que nous pouvons tolérer, si un certain niveau de performance est désiré. P.ex. avec ces params, si le ralentissement à cause de pagination ne peut pas excéder 10%, 1 seul défaut de pagination peut être toléré pour chaque 2,500,000 accès de mémoire. Temps d’accès disque réaliste aujourd’hui= autour de 10ms Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Remplacement de pages Quoi faire si un processus demande une nouvelle page et il n’y a pas de cadres libres en RAM? Il faudra choisir une page déjà en mémoire principale, appartenant au même ou à un autre processus, qu’il est possible d ’enlever de la mémoire principale la victime! Un cadre de mémoire sera donc rendu disponible Évidemment, plusieurs cadres de mémoire ne peuvent pas être "victimisé": p.ex. cadres contenant le noyau du SE, tampons d ’E/S... Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Remplacement de pages Choisir la victime de façon à minimiser le taux de défaut de pages pas évident!!! Page dont nous n`aurons pas besoin dans le futur? impossible à savoir! Page pas souvent utilisée? Page qui a été déjà longtemps en mémoire? etc. nous verrons... Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Remplacement de pages Les algorithmes de choix de pages à remplacer doivent être conçus de façon à minimiser le taux de défaut de pages à long terme. Mais il ne peuvent pas impliquer des temps de système excessifs, p.ex. mise à jour de tableaux en mémoire pour chaque accès de mémoire. Ni l`utilisation de matériel dispendieux. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Remplacement de pages Il existe un ensemble d’algorithmes qui peuvent être utilisés pour choisir quelle page va être la meilleure candidate pour l’éviction Considérations: Les pages qui vont avoir été modifié doivent être écrites sur le disque avant l’éviction L’utilisation de l’information d’état tel que les bits d’utilisations (used) et de modifications (dirty) vont être utiles pour prendre cette décision Ces algorithmes sont applicables à d’autres domaines de recherche: caches, serveurs Web, etc... Obviously, we could choose a page at random, but we want good performance out of our system. By evicting a page at random we might find that we need that very page on our next memory reference. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Remplacement de pages Nous allons expliquer et évaluer les algorithmes en utilisant la chaîne de référence pages suivante: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2 Attention: les séquences d’utilisation pages ne sont pas aléatoires... Localité de référence Ces références proviendront de plusieurs processus L’évaluation sera faite sur la base de cet exemple, évidemment pas suffisant pour en tirer des conclusions générales Principe de localité des références: les références à la mémoire dans un processus tendent à se regrouper Donc: seule quelques pièces d’un processus seront utilisées durant une petite période de temps (pièces: pages ou segments) Il y a une bonne chance de “deviner” quelles seront les pièces demandées dans un avenir rapproché Enseigant : AAMMOU Souhaib
Algorithme optimal (OPT) Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme optimal (OPT) L’algorithme de remplacement de pages optimal Un algorithme théorique qui représente la décision absolue, sans aucun doute, le meilleur choix pour remplacer une page Étiqueté chaque cadre de page avec le nombre d’instructions jusqu’à ce qu’on ait besoin de ce cadre Remplace la page avec l’étiquette le plus haut. Essentiellement on évince la page qui serait la dernière à être utilisée, basé sur les pages en mémoire à l’instant de la décision I say to kick out the page that won’t be needed for the longest time based on the pages in memory at the moment of decision since the page you load in may not be needed ever again...but you can’t evict it yet, can you? Enseigant : AAMMOU Souhaib
Algorithme optimal (OPT) Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme optimal (OPT) Est-ce que nous pouvons implémenter cet algorithme? Absolument pas. Si nous pouvions déterminer quand chaque page est requise dans le futur basé sur l’état courrant, nous pourrions résoudre le problème de la halte (halting problem)! De plus, les entrées des utilisateurs veulent dire que le futur est imprédictible! Cependant, si un programme est utilisé pour un ensemble particulier d’E/S, il est possible de tracer quelles pages sont requises et dans quel ordre Cet enregistrement peut être utilisé pour des tests de performance pour comparer comment près nos algorithmes réalisables sont de l’algorithme optimal Then, if an algorithm we test for a particular system/program type comes within 1% of the optimal algorithm we know that no matter how much effort is put into improving the algorithm, the maximum gain we can hope for is a mere 1%. Time to go on to something else. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme NRU L’algorithme de remplacement de pages Non Récemment Utilisée (NRU) Cet algorithme utilise les bits de modification et d’utilisation (référence) pour déterminer la meilleure candidate pour le remplacement. Le matériel doit mettre à jour ces bits à chaque modification ou référence. Ces bits seront seulement effacées par le SE La bit d’utilisation (référence) sera remis à zéro périodiquement, par exemple chaque interruption de l’horloge. La bit de modification ne peut pas être remise à zéro jusqu’à ce que la page soit écrite sur le disque. ie: if the page is referenced, the hardware sets the “used” bit. If the page is written to, the hardware sets the “used’ and “dirty” bits. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme NRU Quand un défaut de page arrive, le SE inspecte touts les cadres de pages et les divisent en quatre classes : Class 0: non référencée, non modifiée. Class 1: non référencée, modifiée Class 2: référencée, non modifiée Class 3: référencée, modifié Une page est choisit aléatoirement dans la classe la plus basse (qui a le plus petit numéro) et est remplacée. Perhaps I should of utilized the terms “referenced” and “modified” so it doesn’t read “used and dirty” Ask them how we get a class 1 page? In other words, how do we have a page that we’ve never used/referenced, but yet it has been modified? Comes about when the clock interrupt causes the OS to clear the used bit. The dirty bit is never cleared until the page is written to the disk though. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme NRU L’idée implicite est qu’il est mieux de remplacer une page modifiée qui n’a pas été utilisée (référencée) dernièrement (~20 msec) qu’une page non modifiée qui est en grande utilisation Est-ce vraie? Avantages: facile à comprendre et implémenter Désavantages: performance n’est clairement pas optimal, mais adéquate pour plusieurs systèmes. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme LRU Ordre chronologique d’utilisation (LRU) Remplace la page dont la dernière référence remonte au temps le plus lointain (le passé utilisé pour prédire le futur) En raison de la localité des références, il s’agit de la page qui a le moins de chance d’être référencée performance presque aussi bonne que l’algo. OPT Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme LRU Exemple: Un processus de 5 pages s’ìl n`y a que 3 pages physiques disponibles. Dans cet exemple, OPT occasionne 3+3 défauts, LRU 3+4. Note sur le comptage des défauts de page Lorsque la mémoire principale est vide, chaque nouvelle page que nous ajoutons est le résultat d’un défaut de page Mais pour mieux comparer les algorithmes, il est utile de garder séparés ces défauts initiaux car leur nombre est le même pour tous les algorithmes Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme LRU Chaque page peut être marquée (dans le descripteur dans la table de pages) du temps de la dernière référence: besoin de matériel supplémentaire. La page LRU est celle avec la + petite valeur de temps (nécessité d’une recherche à chaque défaut de page) On pourrait penser à utiliser une liste de pages dans l’ordre d ’utilisation: perte de temps à maintenir et consulter cette liste (elle change à chaque référence de mémoire!) D’autres algorithmes sont utilisés: LRU approximations Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme PAPS Premier arrivé, premier sortie PAPS (FIFO) Facile à implémenter. Garde une liste de toutes les page en mémoire en ordre quelles sont arrivées Sur un défaut de page, la page la plus vielle est enlevée et une nouvelle page est ajoutée à la fin de la liste Avantage: Très facile à implémenter Désavantage: Aucune façon de déterminer si la page qui est enlevée est en grande utilisation. L’âge peut être une indication mais n’est pas nécessairement la meilleure indication de l’utilisation d’une page. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme PAPS Logique: une page qui a été longtemps en mémoire a eu sa chance d ’exécuter Les cadres forment conceptuellement un tampon circulaire, débutant à la plus vieille page Lorsque la mémoire est pleine, la plus vieille page est remplacée. Donc: “first-in, first-out” Simple à mettre en application tampon consulté et mis à jour seulement aux défauts de pages... Mais: Une page fréquemment utilisée est souvent la plus vielle, elle sera remplacée par FIFO! Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme PAPS Contrairement à FIFO, LRU reconnaît que les pages 2 and 5 sont utilisées fréquemment La performance de FIFO est moins bonne: dans ce cas, LRU = 3+4, FIFO = 3+6 Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme PAPS Les premières pages amenées en mémoire sont souvent utiles pendant toute l’exécution d’un processus! variables globales, programme principal, etc. Ce qui montre un problème avec notre façon de comparer les méthodes sur la base d ’une séquence aléatoire: les références aux pages dans un programme réel ne seront pas vraiment aléatoires Enseigant : AAMMOU Souhaib
Algorithme de deuxième chance Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme de deuxième chance Algorithme de deuxième chance Cet algorithme est une modification du PAPS (FIFO) pour le rendre possiblement plus raisonnable Avant de remplacer la page la plus vielle, on vérifie la bit d’utilisation Si la page est en utilisation, même si elle est vielle, elle se voit donner une deuxième chance et son entrée est déplacée vers la fin de la liste, ce qui a pour effet de la rendre comme une nouvelle page. Son bit d’utilisation est remise à zéro à ce moment La recherche continue de cette façon jusqu’à ce qu’une veille page qui n’a pas été utilisé est trouvé. Ask them what happens if all pages were in use. Since the used bit is cleared when the page is moved to the end of the list, we will effectively cycle the entire list and then take the original oldest page. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme d’horloge Algorithme de remplacement de pages de l’horloge L’algorithme de la deuxième chance peut être lent parce qu’il déplace constamment les pages dans la liste chaînée pour garder les pages dans le bon ordre. Une meilleur approche est de garder les entrées de pages dans une liste circulaire (on peut penser à une sorte d’horloge). Une main pointe à la page la plus vielle. Cette main n’est rien de plus qu’un pointeur à une entrée dans la liste de pages en mémoire Pas en sujet d’examen. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Algorithme d’horloge Semblable à FIFO, mais il tient compte de l’utilisation récente de pages Les cadres qui viennent d’être utilisés (bit=1) ne sont pas remplacées (deuxième chance) Les cadres forment conceptuellement un tampon circulaire Lorsqu’une page est chargée dans un cadre, un pointeur pointe sur le prochain cadre du tampon Pour chaque cadre du tampon, un bit “utilisé” est mis à 1 (par le matériel) lorsque: une page y est nouvellement chargée sa page est utilisée Le prochain cadre du tampon à être remplacé sera le premier rencontré qui aura son bit “utilisé” = 0. Durant cette recherche, tout bit “utilisé” = 1 rencontré sera mis à 0 Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue La page 727 est chargée dans le cadre 4. La proch. victime est 5, puis 8. Enseigant : AAMMOU Souhaib
Comparaison: Horloge, FIFO et LRU Module Systèmes d'exploitation BTS Génie Informatqiue Comparaison: Horloge, FIFO et LRU Astérisque indique que le bit utilisé est 1 L’horloge protège du remplacement les pages fréquemment utilisées en mettant à 1 le bit “utilisé” à chaque référence LRU = 3+4, FIFO = 3+6, Horloge = 3+5 Enseigant : AAMMOU Souhaib
Comparaison: Horloge, FIFO et LRU Module Systèmes d'exploitation BTS Génie Informatqiue Comparaison: Horloge, FIFO et LRU Les simulations montrent que l’horloge est presque aussi performant que LRU variantes de l`horloge ont été implantées dans des systèmes réels Lorsque les pages candidates au remplacement sont locales au processus souffrant du défaut de page et que le nombre de cadres alloué est fixe, les expériences montrent que: Si peu (6 à 8) de cadres sont alloués, le nombre de défaut de pages produit par FIFO est presque double de celui produit par LRU, et celui de CLOCK est entre les deux Ce facteur s’approche de 1 lorsque plusieurs (plus de 12) cadres sont alloués. Cependant le cas réel est de milliers et millions de pages et cadres, donc la différence n`est pas trop importante en pratique... On peut tranquillement utiliser LRU Enseigant : AAMMOU Souhaib
Comparaison: Horloge, FIFO et LRU Module Systèmes d'exploitation BTS Génie Informatqiue Comparaison: Horloge, FIFO et LRU Pas grosse différence en pratique… (Stallings) Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Anomalie de Belady Pour quelques algorithmes, dans quelques cas il pourrait avoir plus de défauts avec plus de mémoire! p. ex. FIFO, mais pas LRU, OPT, CLOCK Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Anomalie de Belady Situation considérée normale Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Anomalie de Belady Cas d’intérêt théorique: + de mémoire, + de fautes Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Anomalie de Belady Il est couramment admis que plus on dispose de pages mémoire et moins on aura de défauts de page. Un contre-exemple à cette idée reçue a été fourni par Belady et ses co-auteurs. Si l’on a cinq pages virtuelles que l’on accède selon la séquence 012301401234, on aura neuf défauts de page avec trois pages mémoire, et dix défauts avec quatre pages mémoire. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Quiz Time! Questions? What algorithms did we see today? Optimal PRA Not Recently Used FIFO Second Chance Clock Least Recently Used What are three ways of implementing Least Recently Used? A linked list A counter of instructions stored for each page table entry A hardware matrix of n x n bits where n is the number of page frames Enseigant : AAMMOU Souhaib