Chapitre 10 Mémoire virtuelle

Slides:



Advertisements
Présentations similaires
CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
Advertisements

Page de garde Validation d ’APEF.
Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction ● Déterminer l'image d'un nombre par une.
Chap 101 Chapitre 10 Mémoire virtuelle / Virtuel est quelque chose qui n’est pas dans le matériel, elle est créée par le logiciel.
1 Structures d’ordinateurs (matériel) Chapitre 2
Chap. 141 Chapitre 14 (Seul. 14.1, 14.2, 14.4, 14.5) Structure de mémoire disques
TP 1 BIS Programmation structurée à l’aide de fonctions (FC) et de bloc fonctionnels (FB)
Comment utiliser le débogueur de Visual Studio /8/2015 INF145 1 Créé par Julien Galarneau Allaire, révisé par Eric Thé S.E.G.
Volée 1316 S3 Cours No 2_3 : Le nombre en 1-2H. Les fonctions du nombre  Dénombrer, énumérer, décrire une collection. Aspect cardinal  Dater, classer,
Les PREF, DEC, et jauges outils En tournage, puis en fraisage En fraisage directement P roductique M écanique U sinage Tâche principale : La mise en œuvre.
Calcul de probabilités
La technologie des mémoires
Valeurs de toutes les différences observables sous H0
Threads et Lightweight Processes
Histoire Science humaine qui étudie le passé pour comprendre le présent et s’orienter vers le futur.
Gestion de mémoire: objectifs
Utilisation de Windows
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Première partie : La droite de budget
LES TABLEAUX EN JAVA.
CCNP Routage Chapitre 4 - Questionnaire N°1
SNMP - Comment calculer l'utilisation de la Bande passante
Algorithmique demander jeu du pendu.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Analyse Technique (5) Le stochastique.
L’Instruction de Test Alternatif
Formation en Photovoltaïque
Javadoc et débogueur Semaine 03 Version A16.
Architecture de machines Le microprocesseur
Principes de programmation (suite)
Activités algorithmiques
Algorithmique & Langage C
STRATÉGIES ET INSTRUMENTS D´ÉVALUATION
Semaine #4 INF130 par Frédérick Henri.
Algorithmique & Langage C IUT GEII S1 Notes de cours (deuxième partie)
Documentation technique (Linux)
Notion De Gestion De Bases De Données
1.2 dénombrement cours 2.
Rapport sur l'état d'avancement
Chapter 12: Structures de données
DATA WEARHOUSE 1ère année LA: Technologies systèmes d’information
Réseaux de neurones appliqués à la reconnaissance de caractères
Formation sur les bases de données relationnelles.
Structure de mémoire disques
Exercice : le jeu. Vous devez concevoir l’algorithme permettant de jouer avec votre calculatrice : elle détermine au hasard un nombre caché entier entre.
B - Inventaire permanent
Adaptive Neuro Fuzzy Inference System (ANFIS)
Assembleur, Compilateur et Éditeur de Liens
Efficacité des algorithmes
Architecture matérielle des ordinateurs
Lois de Probabilité Discrètes
7 Contraintes d’intégrité en SQL
Difficultés d’apprentissage
Le code de Huffman: est une méthode de compression statistique de données qui permet de réduire la longueur du codage d'un alphabet. Le code de Huffman.
Présentation 4 : Sondage stratifié
MATHÉMATIQUES FINANCIÈRES I
Un Mécanisme d‘Adaptation Guidé par le Contexte en Utilisant une Représentation par Objets Manuele Kirsch Pinheiro Laboratoire LSR – IMAG, Équipe SIGMA.
Reconnaissance de formes: lettres/chiffres
NUMÉRATION POSITIONNELLE / PRINCIPE DE GROUPEMENT
Logiciel de présentation
Tris Simples/Rapides.
Les différents modes de démarrage de Windows
Threads et Lightweight Processes
Chapter 11: Récursivité Java Software Solutions Second Edition
Les 6 aspects de la pensée historique
Construire une séance de
Type Tableau Partie 1 : Vecteurs
La loi des signes.
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

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