Chapitre 10 Mémoire virtuelle Virtuelle est une ressource d’ordinateur qui n’est pas offerte directement par le matériel, elle est créée par le logiciel voir: machines virtuelles, mémoire virtuelle … http://w3.uqo.ca/luigi/ Chap 10
Mémoire Virtuelle Pagination sur demande Problèmes de performance Remplacement de pages: algorithmes Allocation de cadres de mémoire Emballement Ensemble de travail Chap 10
Concepts importants du Chap. 10 Localité des références Mémoire virtuelle implémentée par va-et-vient des pages, mécanismes, défauts de pages Adresses physiques et adresses logiques Temps moyen d’accès à la mémoire Récriture ou non de pages sur mém secondaire Algorithmes de remplacement pages: OPT, LRU, FIFO, Horloge Fonctionnement, comparaison Écroulement, causes Ensemble de travail (working set) Relation entre la mémoire allouée à un proc et le nombre d’interruptions Relation entre la dimension de pages et le nombre d’interruptions Prépagination, post-nettoyage Effets de l’organisation d’un programme sur l’efficacité de la pagination Chap 10
Ce que nous avons vu Les mécanismes de la segmentation et pagination permettent d’obtenir une bonne utilisation de la mémoire Les processus peuvent être éparpillés où il y a de l’espace en mémoire Par l’entremise de différents tableaux d’adresses de base La protection et le partage d’informations peuvent être obtenus par extension des mêmes mécanismes Chap 10
La mémoire virtuelle est une application du concept de hiérarchie de mémoire Des concepts très semblables s’appliquent aux mécanismes de la mémoire cache Cependant dans ce cas les mécanismes sont de matériel Mécanismes cache RAM Méc. mém. virtuelle (flash ou SSD) Chap 10
Dorénavant: MP, MS MP = mémoire principale, mémoire vive, mémoire physique, RAM termes équivalents MS = mémoire secondaire qui, selon les technologies, peut être disque ou flash ou SSD (solid state disk) L’UCT peut directement opérer seulement en MP Un transfert de données entre MP et MS est une opération d’E/S Chap 10
La mémoire virtuelle Afin qu’un programme soit exécuté, il ne doit pas nécessairement être tout en MP! Seulement les parties qui sont en exécution ont besoin d’être en MP Les autres parties peuvent être sur MS, prêtes à être amenées en MP sur demande Mécanisme de va-et-vient ou swapping Ceci rend possible l’exécution de programmes beaucoup plus grands que la MP Réalisant une mémoire virtuelle qui peut être beaucoup plus grande que la MP Chap 10
De la pagination et segmentation à la mémoire virtuelle Un processus est constitué de morceaux (pages ou segments) qui ne sont pas nécessairement contigus en MP Et peuvent être souvent déplacés Adresses logiques sont traduites en adresses physiques au moment de l’exécution Donc: les morceaux d’un processus n’ont pas besoin d’être tous en MP durant l’exécution L’exécution peut continuer à condition que la prochaine instruction (ou donnée) est dans un morceau se trouvant en MP La somme des mémoires logiques des procs en exécution peut donc excéder la MP disponible Une image de toute la mémoire logique des processus est gardée en MS (disque ou flash) d’où les pages manquantes pourront être prises au besoin Mécanisme de va-et-vien ou swapping Chap 10
Mémoire/adresse logique et mémoire/adresse virtuelle L’idée de la mémoire virtuelle est la même que celle de la mémoire logique, avec l’extension que la mémoire virtuelle n’a pas besoin d’être entièrement en mémoire physique L’idée de l’adresse virtuelle est la même que celle de l’adresse logique avec l’extension que l’adresse virtuelle peut contenir plus de bits que ceux nécessaires pour adresser la mémoire physique Chap 10
Le concept de ‘permutation de mémoire’ d’il y a longtemps était basé sur la même idée: pas tout doit être en MP en même temps Chap 10
Mémoire virtuelle: résultat d’un mécanisme qui combine la MP et les MS Tableau de pages Tableau de pages MS MP Chap 10
Le principe de localité Justification pratique du concept de mémoire virtuelle Chap 10
Localité et mémoire virtuelle 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é Chap 10
Exemple de localité de référence Processus qui exécute une boucle sur une structure de données: Pendant l’exec de la boucle, il utilisera toujours les mêmes pages ? pages dans ce cas Une partie de sa mémoire logique Pour l’instant ce proc a besoin de seulement ? cadres de mémoire Progr. Donn. Mém virtuelle d’un proc. Chap 10
Visualisation de la localité des références Ce processus consiste en 34 pages mais peut exécuter efficacement avec moins de 34 cadres de MP car il n’a jamais besoin de tous ses pages en même temps (Note: chaque point noir représente une position de mémoire visitée et on voit seulement les pages 18-34) Adresses Temps Chap 10
Implémentation de la Mémoire Virtuelle Chap 10
Analogie … Un groupe de personnes mange sur une petite table qui a moins de capacité que le réfrigérateur On mettra sur la table quelques plats au début, puis on ajoutera des plats au fur et à mesure qu’on en demandera Il faudra en enlever aussi … Chap 10
Pages en MP ou sur MS MP MS Page A en MP et sur MS. Page E seulement sur MS.. mém. secondaire En ce moment, ce proc a besoin de seulement ? pages de MP pour exécuter Chap 10
Nouveau format du tableau des pages (la même idée peut être appliquée aux tableaux de segments) bit valide 1 si en MP 0 si en MS Si la page est en MP ceci est une adr. de MP sinon elle est une adresse de MS Bit valide Adresse de la page Au début, bit valide = 0 pour toutes les pages Chap 10
Avantages du chargement partiel Plus de processus peuvent être maintenus en exécution Car seules quelques pièces sont chargées en MP pour chaque processus L’usager est content, car il peut exécuter plusieurs processus et faire référence à des grosses données sans avoir peur de remplir la MP Avec plus de processus en MP, il aura probablement plus de processus dans l’état prêt, meilleure utilisation d’UCT Plusieurs pages ou segments rarement utilisés n’auront peut être pas besoin d`être chargés du tout Il est maintenant possible d’exécuter un ensemble de processus lorsque leur taille excède celle de la MP Il est possible d’utiliser plus de bits pour l’adresse logique que le nombre de bits requis pour adresser la MP Espace d ’adressage virtuel > > esp. d ’adressage physique Chap 10
Mémoire Virtuelle: Pourrait Être Énorme! Ex: 16 bits sont nécessaires pour adresser une MP de 64KB En utilisant des pages de 1KB, 10 bits sont requis pour le décalage Ceci laisserait 6 bits pour le numéro de page si toutes les pages doivent rentrer dans 64KB Mais pour l’adresse virtuelle nous pouvons utiliser un nombre de bits qui excède 6, car toutes les pages ne doivent pas être en MP simultanément Dans quelques architectures, ces bits peuvent être inclus dans des registres Adresse logique=adresse dans l’instruction+registre Chap 10
Mémoire Virtuelle Pour une meilleure performance, la mémoire virtuelle se trouve souvent dans une région de MS qui est n’est pas gérée par le système de fichiers Mémoire va-et-vient, swap memory Ou souvent disque flash ou SSD (Solid State Disk) La traduction de l’adresse virtuelle en adresse physique est effectuée en utilisant les mécanismes étudiés dans le chapitre précédent. Chap 10
Mémoire virtuelle: le mécanisme de va-et-vient Tableau de pages Tabl. pages MS MP Chap 10
Exécution d’un Processus Le SE charge la MP de quelques pièces (seulement) du programme (incluant la 1ère instruction) Chaque entrée de la table de pages (ou segments) possède un bit valide qui indique si la page ou segment se trouve en MP L’ensemble résident (résident set) sont les pages du processus se trouvant en MP Une interruption est générée lorsque l’adresse logique réfère à une pièce qui n’est pas dans l’ensemble résident défaut de pagination, page fault Chap 10
Exécution d’un défaut de page: va-et-vient plus en détail MS M Mémoire virtuelle Une instruction ‘load M’ fait référence à une page en MS Chap 10
Séquence d’événements pour défaut de page Trappe au SE: page demandée pas en MP Processus est mis ‘en attente’ 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 MS dans le descripteur de la page lire la page de MS dans un cadre de MP (supposons qu`il y en a!) exécuter les ops nécessaires pour lire la page Chap 10
Séquence d’événements pour défaut de page (ctn.) La MS 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 Il s’agit d’un événement essentiellement semblable à une E/S, mais probablement ils sera traité différemment par le SE (ajout d’un état: « en attente de pages ») Chap 10
Temps moyen d’accès à la mémoire virtuelle Supposons que: accès en MP: 100 nanosecs temps de traitement de défaut de page: 20 millisecs = 20,000,000 nanosecs (inclut le temps de écriture et lecture MS, disons disque) p: probabilité de ne pas trouver une page en MP (quantité entre 0 et 1) Temps moyen d’accès mémoire virtuelle en msec: TM= p x 20,000,000 + (1-p) x 100 (défaut + pas de 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é (v. manuel). 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 000 000 accès de mémoire virtuelle. (Temps d’accès disque réaliste aujourd’hui= autour de 10ms) Si TM=110, alors p=1 / 2 000 000 Chap 10
Pour l’exécution efficace d’un processus Étant donné l’énorme différence entre temps d’exécution d’opérations en mémoire centrale et temps d’exécution d’opérations en mémoire secondaire, les fautes de pagination doivent être extrêmement rares Afin qu’un processus puisse être exécuté efficacement, il doit avoir une très haute localité de référence Doit ne pas ‘sauter partout’ tout le temps Chap 10
Points de réfléxion La formule générale est: TM=pT + (1-p)t Exercice 1: Faire le calcul pour les données à la page précédente (résoudre l’équation pour p, etc.) Exercice 2: Étant donné p, T et t, déterminer le ralentissement, etc. Exercice 3: Les mémoires secondaires flash ou SSD ont la particularité que les lectures sont beaucoup plus rapides que les écritures Une lecture pourrait prendre 0,1ms, une écriture 1,5ms Refaire les calculs mentionnés pour ce cas Évidemment nous pouvons tolérer beaucoup plus de fautes de pagination Chap 10
Algorithmes de remplacement de pages Chap 10
La MP est pleine mais nous avons besoin d`une page pas en MP MS La page qui contient la var M doit être amenée en MP pour pouvoir exécuter l’instruction load M Chap 10
La page victime... la page 0 est ôtée de la mémoire et devient invalide, la page f est mise à sa place en mémoire et devient valide MS MP Chap 10
Remplacement de pages Quoi faire si un processus demande une nouvelle page et il n’y a pas de cadres libres en MP? Il faudra choisir une page déjà en MP, appartenant au même ou à un autre processus, qu’il est possible d ’enlever de la MP la victime! Un cadre de MP sera donc rendu disponible Évidemment, plusieurs cadres de MP ne peuvent pas être `victimisés`: p.ex. cadres contenant le noyau du SE, tampons d ’E/S... Chap 10
Bit de modification, dirty bit La ‘victime’ doit-elle être récrite en MS? Seulement si elle a été changée depuis qu`elle a été amenée en MP sinon, sa copie sur MS est encore fidèle Bit de modif sur chaque descripteur de page indique si la page a été changée Donc pour calculer le coût en temps d’une référence à la mémoire virtuelle il faut aussi considérer la probabilité qu’une page soit ‘propre’ et le temps de récriture dans ce cas X Chap 10
Point de réflexion Exercice. Nous savons que seulement les pages ‘sales’ ont besoin d’être récrites en MS. Supposons que nous connaissons la probabilité m qu’une page soit sale Supposons que le temps de traitement de lecture sur disque soit la moitié du temps de lecture-écriture Comment refaire les calculs de temps moyen d’accès dans ce cas Notre calcul d’avant supposait que la page sortante devait être écrite, était toujours ‘sale’ Aussi, cette technique est relié au problème de ‘cohérence du cache’ qui sera mentionné plus tard Chap 10
Algorithmes de remplacement 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... Chap 10
Analogie La table sur laquelle un groupe mange est pleine, mais on demande un nouveaux plat Faut en enlever Quoi enlever? OPT: Le plat dont personne n’aura besoin dans un futur prochain Difficile ou impossible à savoir? LRU: Le plat moins récemment utilisé Difficile: Il faut se préoccuper de tracer l’utilisation FIFO: Le plat qui a été plus longtemps sur la table (le plus « vieux ») Facile, mais donc enlever le pain, l’eau, le sel? Solution de compromis: enlever le plat le plus vieux à moins qu’il n’ait été utilisé récemment Algorithme CLOCK, à voir Chap 10
Critères d’évaluation des algorithmes 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 ils doivent être efficaces Chap 10
Critères d’efficacité Il est intolérable d’exécuter un programme en mémoire chaque fois qu’une opération de mémoire est exécutée Ceci impliquerait des accès additionnels de mémoire Les opérations qui doivent être faites à chaque accès de mémoire doivent être câblées dans le matériel Cependant un programme peut être exécuté chaque fois qu’il y a une faute de pagination Chap 10
Explication et évaluation des algorithmes Nous allons expliquer et évaluer les algorithmes en utilisant la chaîne de référence pages suivante (livre de Stallings): 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 Chap 10
Quelques algorithmes possibles en principe Pour la séquence suivante d’accès à pages: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2, 1 Nous sommes au point marqué et toutes les pages déjà accédées sont en MP La MP est pleine, la page 4 doit être amenée en MP, faut donc remplacer une page Quelle est la page: qui sera utilisée le plus tard possible dans le futur (OPT)? qui a été utilisée dans le passé le plus lointain (LRU)? qui a été le plus longtemps en mémoire (FIFO)? Chap 10
Algorithmes pour la politique de remplacement L’algorithme optimal (OPT) choisit pour page à remplacer celle qui sera référencée le plus tard possible dans le futur produit le + petit nombre de défauts de page impossible à réaliser (car il faut connaître le futur) mais sert de point de comparaison pour les autres algorithmes: Ordre chronologique d’utilisation (LRU) Ordre chronologique de chargement (FIFO) Deuxième chance ou Horloge (Clock) Chap 10
Algorithmes pour la politique de remplacement 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 la plus petite chance d’être utilisée Performance pratique presque aussi bonne que l’algo. OPT Chap 10
Comparaison OPT-LRU Exemple: Un processus de 5 pages s’ìl n`y a que 3 pages de MP disponibles. Dans cet exemple, OPT occasionne 3+3 défauts, LRU 3+4. Stallings LRU avait ôté la page 3 ne sachant pas qu’elle sera bientôt demandée Chap 10
Note sur le comptage des défauts de page Lorsque la MP 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 Chap 10
Implémentation problématique de 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 comparaison à 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 Chap 10
Premier arrivé, premier sorti (FIFO) Idée: une page qui a été longtemps en mémoire a eu sa chance d ’exécuter Lorsque la mémoire est pleine, la plus vieille page est remplacée. Donc: “first-in, first-out” Simple à mettre en application Mais: Une page fréquemment utilisée est souvent la plus vielle, elle sera remplacée par FIFO! Chap 10
Comparaison de FIFO avec LRU (Stallings) Contrairement à FIFO, LRU reconnaît que les pages 2 and 5 sont en cours d’utilisation Dans ce cas, la performance de FIFO est moins bonne: LRU = 3+4, FIFO = 3+6 Chap 10
Implantation de FIFO Facilement implantable en utilisant un tampon circulaire de cadres de mémoire Qui ne doit être mis à jour que à chaque défaut de page Exemple: après la trace: 2 1 2 1 5 2 La page 2, qui a été en mémoire le plus longtemps, est la prochaine victime, puis 1, puis 5 Cependant ceci est un mauvais choix car 2 est très utilisée! 2 5 1 Chap 10
Problème conceptuel avec FIFO Les premières pages amenées en MP 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 Chap 10
CLOCK: c’est FIFO avec correctif Enlever la page qui a été là le plus longtemps Mais ne pas l’enlever si elle a été utilisée récemment Bit ‘utilisé’ dans les cadres de mémoire pour savoir quelles pages ont été utilisées récemment Chap 10
Algorithme CLOCK Après 2 3 2 1 Après 2 3 2 1 5 2* 5* 1* 3* 1 3 Ajoutons un bit à chaque page, qui est mis à 1 chaque fois que la page est utilisée 1 est un astérisque * ci-dessous Cependant pour toujours trouver de la place, ce bit est mis à 0 chaque fois qu’il est consulté Après 2 3 2 1 Après 2 3 2 1 5 Au début, 2 n’est pas sélectionnée car elle a été utilisée, mais faisant le tour, tous les bits sont tournés à 0 2* 5* 1* 3* 1 3 Le pointeur pointe à la page suivante la dernière remplacée Le choix de 2 est encore mauvais par rapport à la fréquence d’utilisation passée, donc cette méthode n’es pas parfaite … Chap 10
L’algorithme de l’horloge CLOCK 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és 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 cette page est lue ou écrite ou exécuté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 tourné à 0 Chap 10
Algorithme de l’horloge CLOCK: un exemple (Stallings). Les pages sont en ordre FIFO La page 727 est chargée dans le cadre 4. La proch. victime est 5, si elle n’est pas utilisée dans l’entretemps Chap 10
Comparaison: Horloge, FIFO et LRU (Stallings) Astérisque indique que le bit utilisé est 1 L’horloge protège du remplacement les pages récemment utilisées en mettant à 1 le bit “utilisé” à chaque référence Fautes: LRU = 3+4, FIFO = 3+6, Horloge = 3+5 Chap 10
Détail sur le fonctionnement de l’horloge CLOCK Tous les bits étaient à 1. Nous avons fait tout le tour et donc nous avons changé le bit de tous les cadres à 0. Le premier cadre est remplacé et son bit devient 1 (utilisé!) Le pointeur pointe toujours au cadre suivant le cadre remplacé Chap 10
Matériel additionnel pour l’algo CLOCK Chaque cadre de MP a un bit ‘utilisé’ (use) Quand le contenu du cadre est utilisé, le bit est mis à 1 par le matériel Le SE regarde le bit S’il est 0, la page dans le cadre peut être remplacée S’il est 1, il le met à 0 1 1 Mémoire Chap 10
Noter différence Bit ‘sale’ ‘dirty bit’ mentionné avant Bit ‘utilisé’ Indique si la page a été modifiée=écrite après son entrée en MP Bit ‘utilisé’ Indique si la page a été lue ou écrite après son entrée en MP L’architecture Intel a les deux, et même plus compliqué … Chap 10
Pour comprendre bien L’algorithme CLOCK utilise deux mécanismes Le bit ‘utilisé’ Le pointeur Comprendre que l’un est mis à jour par le matériel, l’autre par le logiciel Quand exactement, pour chacun? Chap 10
Résumé des algorithmes le plus importants OPTIMAL Le meilleur en principe mais pas implantable, utilisé comme référence LRU Excellent en principe, mais demande du matériel dispendieux FIFO Facile à implanter, mais peut écarter des pages très utilisées Horloge CLOCK Modification de FIFO vers LRU: évite d’écarter des pages récemment utilisées Les algorithmes utilisés en pratique sont des variations et combinaisons de ces concepts Chap 10
Algorithmes compteurs Garder un compteur pour les références à chaque page LFU: Least Frequently Used: remplacer la pages avec le plus petit compteur MFU: Most Frequently Used: remplacer les pages bien usées pour donner une chance aux nouvelles Ces algorithmes sont d’implantation dispendieuse et sont moins utilisés Mise à jour de compteurs à chaque opération de mémoire! Chap 10
Matériaux supplémentaires Chap 10
Utilisation d’une pile (stack) Quand une page est utilisée, est mise au sommet de la pile. donc la page la plus récemment utilisée est toujours au sommet, la moins récemment utilisée est toujours au fond Bonne implémentation du principe de localité, cependant… La pile doit être mise à jour chaque fois qu’une page est utilisée Inefficace, pas pratique Chap 10
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 Chap 10
Situation considérée normale Chap 10
Anomalie de Belady (FIFO) Cas d’intérêt théorique: + de mémoire, + de fautes (v. livre) Chap 10
Le Chapitre 10 continue… Chap 10
Le problème de la Cohérence Quand une variable peut être stockée à plusieurs niveaux d’une hiérarchie de mémoire, nous avons le problème de la cohérence: S’assurer que quand on obtient la valeur de cette variable, n’importe à quel niveau qu’on la trouve, elle soit toujours à jour Nous avons vu comment ce problème est résolu dans le cas de mémoire virtuelle récriture de la dernière valeur de MP à MS D’autres méthodes ont été développées pour des cas plus complexes Voir ‘cohérence de cache’ ou ‘cache coherence’ Chap 10
Algorithmes de remplacements pages: Exemples additionnels V. Planches du manuel de Silberschatz http://codex.cs.yale.edu/avi/os-book/OS9/slide-dir/ Chap 10
First-In-First-Out (FIFO) Algorithm Reference string: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1 3 frames (3 pages can be in memory at a time per process) Can vary by reference string: consider 1,2,3,4,1,2,5,1,2,3,4,5 Adding more frames can cause more page faults! Belady’s Anomaly How to track ages of pages? Just use a FIFO queue 15 page faults Chap 10
Optimal Algorithm Replace page that will not be used for longest period of time 9 is optimal for the example How do you know this? Can’t read the future Used for measuring how well your algorithm performs Chap 10
Least Recently Used (LRU) Algorithm Use past knowledge rather than future Replace page that has not been used in the most amount of time Associate time of last use with each page 12 faults – better than FIFO but worse than OPT Generally good algorithm and frequently used But how to implement? Chap 10
Second-Chance (clock) Page-Replacement Algorithm Chap 10
Question Quelle est la différence entre les concepts de mémoire virtuelle et mémoire logique? La mémoire virtuelle est un mécanisme: si on veut exécuter plusieurs processus tels que la somme de leurs mémoires logiques excède la taille de la mémoire physique, alors on a besoin de la mémoire virtuelle. Chap 10