Chapitre 10 Mmoire virtuelle Virtuelle est une ressource

  • Slides: 79
Download presentation
Chapitre 10 Mémoire virtuelle Virtuelle est une ressource d’ordinateur qui n’est pas offerte directement

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 Chap 10 voir: machines virtuelles, mémoire http: //w 3. uqo. ca/luigi/ virtuelle … 1

Mémoire Virtuelle n n n Chap 10 Pagination sur demande Problèmes de performance Remplacement

Mémoire Virtuelle n n n Chap 10 Pagination sur demande Problèmes de performance Remplacement de pages: algorithmes Allocation de cadres de mémoire Emballement Ensemble de travail 2

Concepts importants du Chap. 10 n n Localité des références Mémoire virtuelle implémentée par

Concepts importants du Chap. 10 n n 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 u n Algorithmes de remplacement pages: u u n n n Chap 10 Récriture ou non de pages sur mém secondaire 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 3

Ce que nous avons vu n Les mécanismes de la segmentation et pagination permettent

Ce que nous avons vu n Les mécanismes de la segmentation et pagination permettent d’obtenir une bonne utilisation de la mémoire u La fragmentation est presque éliminée n Les processus peuvent être éparpillés où il y a de l’espace en mémoire u Par l’entremise de différents tableaux d’adresses de base n Chap 10 La protection et le partage d’informations peuvent être obtenus par extension des mêmes mécanismes 4

La mémoire virtuelle est une application du concept de hiérarchie de mémoire n Des

La mémoire virtuelle est une application du concept de hiérarchie de mémoire n Des concepts semblables s’appliquent aux mécanismes de la mémoire cache u Cependant pour cache les mécanismes sont de matériel Mécanismes cache Méc. mém. virtuelle Chap 10 RAM (flash ou SSD) 5

Dorénavant: MP, MS n MP = mémoire principale, mémoire vive, mémoire physique, RAM u

Dorénavant: MP, MS n MP = mémoire principale, mémoire vive, mémoire physique, RAM u termes équivalents n MS = mémoire secondaire qui, selon les technologies, peut être disque ou flash ou SSD (solid state disk) u L’UCT peut directement opérer seulement en MP u Un transfert de données entre MP et MS est une opération d’E/S Chap 10 6

La mémoire virtuelle n n n Afin qu’un programme soit exécuté, il ne doit

La mémoire virtuelle n n n 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 u n Ceci rend possible l’exécution de programmes beaucoup plus grands que la MP u Chap 10 Mécanisme de va-et-vient ou swapping Réalisant une mémoire virtuelle qui peut être beaucoup plus grande que la MP 7

De la pagination et segmentation à la mémoire virtuelle n n n Chap 10

De la pagination et segmentation à la mémoire virtuelle n n n Chap 10 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 u 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 u Mécanisme de va-et-vien ou swapping 8

Mémoire/adresse logique et mémoire/adresse virtuelle n L’idée de la mémoire virtuelle est la même

Mémoire/adresse logique et mémoire/adresse virtuelle n L’idée de la mémoire virtuelle est la même que celle de la mémoire logique, u avec l’extension que la mémoire virtuelle n’a pas besoin d’être entièrement en mémoire physique n L’idée de l’adresse virtuelle est la même que celle de l’adresse logique u avec l’extension que l’adresse virtuelle peut contenir plus de bits que ceux nécessaires pour adresser la mémoire physique Chap 10 9

Le concept de ‘permutation de mémoire’ d’il y a longtemps était basé sur la

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 voir ‘recouvrement’ ou ‘overlay’ dans le chap précédent Chap 10 MP MS 10

Mémoire virtuelle: résultat d’un mécanisme qui combine la MP et la MS v i

Mémoire virtuelle: résultat d’un mécanisme qui combine la MP et la MS v i Tableau de pages MP Chap 10 MS 11

Le principe de localité Justification pratique du concept de mémoire virtuelle Chap 10 12

Le principe de localité Justification pratique du concept de mémoire virtuelle Chap 10 12

Localité et mémoire virtuelle n n n Chap 10 Principe de localité des références:

Localité et mémoire virtuelle n n n Chap 10 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é 13

Exemple de localité de référence n Progr. n Processus qui exécute une boucle sur

Exemple de localité de référence n Progr. n 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 u n Donn. n Chap 10 Mém virtuelle d’un proc. ? pages dans ce cas Une partie de sa mémoire logique Pour l’instant ce proc a besoin de seulement ? cadres de mémoire 14

Visualisation de la localité des références Adresses Ce processus consiste en 34 pages mais

Visualisation de la localité des références Adresses 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 utilisée et on voit seulement les pages 18 -34) Temps Chap 10 15

Implémentation de la Mémoire Virtuelle Chap 10 16

Implémentation de la Mémoire Virtuelle Chap 10 16

Analogie … n n n Chap 10 Un groupe de personnes mange sur une

Analogie … n n n Chap 10 Un groupe de personnes mange sur une table plus petite que le comptoir de cuisine 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 … 17

Pages en MP ou sur MS MP Page A en MP et sur MS.

Pages en MP ou sur MS MP Page A en MP et sur MS. MS Page E seulement sur MS. En ce moment, ce proc a besoin de seulement ? pages de MP pour exécuter Chap 10 mém. secondaire 18

Nouveau format du tableau des pages (la même idée peut être appliquée aux tableaux

Nouveau format du tableau des pages (la même idée peut être appliquée aux tableaux de segments) Si la page est en MP ceci est une adr. de MP Adresse de la Bit valide page bit valide 1 si en MP 0 si en MS sinon elle est une adresse de MS Au début, bit valide = 0 pour toutes les pages Chap 10 19

Avantages du chargement partiel n n Plus de processus peuvent être maintenus en exécution

Avantages du chargement partiel n n Plus de processus peuvent être maintenus en exécution Car seules quelques pièces sont chargées en MP pour chaque processus u L’usager est content, car il peut exécuter plusieurs processus et faire référence à des grosses données sans se préoccuper de remplir la MP u 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 u Il est possible d’utiliser plus de bits pour l’adresse logique le nombre de bits requis pour adresser la MP u Chap 10 Espace d ’adressage virtuel > > esp. d ’adressage physique 20

Mémoire Virtuelle: Pourrait Être Énorme! n n Chap 10 Ex: 16 bits sont nécessaires

Mémoire Virtuelle: Pourrait Être Énorme! n n Chap 10 Ex: 16 bits sont nécessaires pour adresser une MP de 64 KB En utilisant des pages de 1 KB, 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 64 KB 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 u Dans quelques architectures, ces bits peuvent être inclus dans des registres u Adresse logique=adresse dans l’instruction+registre 21

Mémoire Virtuelle n Pour une meilleure performance, la mémoire virtuelle se trouve souvent dans

Mémoire Virtuelle n 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 u Ou souvent disque flash ou SSD (Solid State Disk) u n Chap 10 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. 22

Mémoire virtuelle: le mécanisme de va-etvient Tableau de pages Tabl. pages Chap 10 MS

Mémoire virtuelle: le mécanisme de va-etvient Tableau de pages Tabl. pages Chap 10 MS MP 23

Exécution d’un Processus n n Chap 10 Au début, le SE charge la MP

Exécution d’un Processus n n Chap 10 Au début, 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 u défaut de pagination, page fault 24

Exécution d’un défaut de page: va-et-vient plus en détail interruptio n M MS Mémoire

Exécution d’un défaut de page: va-et-vient plus en détail interruptio n M MS Mémoire virtuelle Chap 10 Une instruction ‘load M’ fait référence à une 25

Séquence d’événements pour défaut de page n n n Chap 10 Trappe au SE:

Séquence d’événements pour défaut de page n n n Chap 10 Trappe au SE: page demandée pas en MP u 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 peut être accedée u sinon: faute de segmentation, terminaison du processus et trouve la position de la page sur MS u utilisant le descripteur de la page dans le tableau des pages lit la page de MS dans un cadre de MP (supposons qu`il y en a!) 26

Séquence d’événements pour défaut de page (ctn. ) n La lecture de la page

Séquence d’événements pour défaut de page (ctn. ) n La lecture de la page se termine et l’UCT est interrompue u n n n 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 u Chap 10 sauvegarder les registres etc. du proc exécutant 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 » ) 27

Algorithmes de remplacement de pages Chap 10 28

Algorithmes de remplacement de pages Chap 10 28

La MP est pleine mais nous avons besoin d`une page pas en MP Processus

La MP est pleine mais nous avons besoin d`une page pas en MP Processus 1 MP Processus 2 Chap 10 MS La page qui contient l’adresse M doit être amenée en MP pour pouvoir exécuter l’instruction Load M Exercice: bien comprendre 29 cette figure en tous ses

La page victime. . . On a la page A en MP, elle doit

La page victime. . . On a la page A en MP, elle doit être remplacée par la page B A A B B 1. La page A contenue dans le cadre f est écrite en MS. Le cadre f devient libre. 2. Dans le tableau des pages du proc on marque: page A invalide. Il y avait là l’adresse f, on le remplace par une valeur nulle, 0. 3. La page B est amenée en MP dans le cadre f 4. Dans le tableau des pages, le numéro de cadre de la page B devient f et la page devient valide NB: On a supposé que les pages A et B sont contigües dans la mém virtuelle d’un Chap 10 seul proc, ce qui n’est pas nécessairement MS MP 30

Bit de modification, dirty bit n n La ‘victime’ doit-elle être récrite en MS?

Bit de modification, dirty bit n n 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 u 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 31

Remplacement de pages n n Chap 10 Quoi faire si un processus demande une

Remplacement de pages n n Chap 10 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 u la victime! Un cadre de MP sera donc rendu disponible Évidemment, plusieurs cadres de MP ne peuvent pas être `victimisés`: u p. ex. cadres contenant le noyau du SE, tampons d ’E/S. . . 32

Algorithmes de remplacement pages n Choisir la victime de façon à minimiser le taux

Algorithmes de remplacement pages n Choisir la victime de façon à minimiser le taux de défaut de pages u pas évident!!! n n Chap 10 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. . . 33

Analogie n n La table sur laquelle un groupe mange est pleine, mais on

Analogie n n La table sur laquelle un groupe mange est pleine, mais on demande un nouveaux plat u Faut en enlever Quoi enlever? u OPT: Le plat dont personne n’aura besoin dans un futur prochain F u LRU: Le plat moins récemment utilisé F u 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 F Chap 10 Difficile: Il faut se préoccuper de tracer l’utilisation FIFO: Le plat qui a été plus longtemps sur la table (le plus « vieux » ) F u Difficile ou impossible à savoir? Algorithme CLOCK, à voir 34

Critères d’évaluation des algorithmes n Les algorithmes de choix de pages à remplacer doivent

Critères d’évaluation des algorithmes n Les algorithmes de choix de pages à remplacer doivent être conçus de façon à minimiser le taux de défaut de pages à long terme u Mais ils doivent être efficaces Chap 10 35

Critères d’efficacité n Il est intolérable d’exécuter un programme chaque fois qu’une opération de

Critères d’efficacité n Il est intolérable d’exécuter un programme chaque fois qu’une opération de mémoire est exécutée u Ceci impliquerait des accès additionnels de mémoire u Les opérations qui doivent être faites à chaque accès de mémoire doivent être câblées dans le matériel n Chap 10 Cependant un programme peut être exécuté chaque fois qu’il y a une faute de pagination 36

Explication et évaluation des algorithmes n n Nous allons expliquer et évaluer les algorithmes

Explication et évaluation des algorithmes n n Nous allons expliquer et évaluer les algorithmes Supposant qu’il y a un seul processus, paginé mais pas segmenté, qui fait les demandes de pages suivantes: u 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2 n Chap 10 L’évaluation sera faite sur la base de cet exemple, évidemment pas suffisant pour en tirer des conclusions générales 37

Quelques algorithmes possibles en principe n n Chap 10 Nous avons les pages: 1,

Quelques algorithmes possibles en principe n n Chap 10 Nous avons les pages: 1, 2, 3, 4, 5 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 u toutes les pages déjà utilisées sont en MP u La MP est pleine, u la page 4 doit être amenée en MP, u faut donc remplacer une page Quelle est la page: u qui sera utilisée le plus tard possible dans le futur (OPT)? u qui a été utilisée dans le passé le plus lointain (LRU)? u qui a été le plus longtemps en mémoire (FIFO)? 38

Algorithmes pour la politique de remplacement n L’algorithme optimal (OPT) choisit pour page à

Algorithmes pour la politique de remplacement n L’algorithme optimal (OPT) choisit pour page à remplacer celle qui sera référencée le plus tard possible dans le futur u produit le + petit nombre de défauts de page u impossible à réaliser (car il faut connaître le futur) mais sert de point de comparaison pour les autres algorithmes: F Ordre chronologique d’utilisation (LRU) F Ordre chronologique de chargement (FIFO) F Deuxième chance ou Horloge (Clock) Chap 10 39

Algorithmes pour la politique de remplacement n n Chap 10 Ordre chronologique d’utilisation (LRU)

Algorithmes pour la politique de remplacement n n Chap 10 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) u 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 u Performance pratique presque aussi bonne que l’algo. OPT 40

Comparaison OPT-LRU n n Stallings Chap 10 Exemple: Un processus de 5 pages s’ìl

Comparaison OPT-LRU n n Stallings Chap 10 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. LRU avait ôté la page 3 ne sachant pas qu’elle sera bientôt dema 41

Note sur le comptage des défauts de page n n Lorsque la MP est

Note sur le comptage des défauts de page n n 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 u car leur nombre est le même pour tous les algorithmes Chap 10 42

Implémentation problématique de LRU n Chaque page peut être marquée (dans le descripteur dans

Implémentation problématique de LRU n Chaque page peut être marquée (dans le descripteur dans la table de pages) du temps de la dernière référence: u n n 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!) n D’autres algorithmes sont utilisés: u Chap 10 LRU approximations 43

Premier arrivé, premier sorti (FIFO) n n Chap 10 Idée: une page qui a

Premier arrivé, premier sorti (FIFO) n n Chap 10 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! 44

Comparaison de FIFO avec LRU (Stallings) n n n 5 doit entrer: LRU remplace

Comparaison de FIFO avec LRU (Stallings) n n n 5 doit entrer: LRU remplace 3, FIFO remplace 2 Contrairement à FIFO, LRU reconnaît que les pages 2 and 5 sont en cours d’utilisation La performance de FIFO est moins bonne: u LRU = 3+4, FIFO = 3+6 Chap 10 45

Implantation de FIFO n Facilement implantable en utilisant un tampon circulaire de cadres de

Implantation de FIFO n Facilement implantable en utilisant un tampon circulaire de cadres de mémoire u Qui a besoin d’être mis à jour seulement à chaque défaut de page n Exemple: après la trace: u 2 1 5 2 2 5 Chap 10 1 La page 2, qui a été en mémoire le plus longtemps, est la prochaine victime, puis 1, puis 5 Cependant ceci est un Chaque carré réprésente un cadre mauvais choix car 2 est de mémoire avec son contenu très utilisée! 46

Problème conceptuel avec FIFO n Les premières pages amenées en MP sont souvent utiles

Problème conceptuel avec FIFO n Les premières pages amenées en MP sont souvent utiles pendant toute l’exécution d’un processus! u variables globales, programme principal, etc. n Ce qui montre un problème avec notre façon de comparer les méthodes sur la base d ’une séquence aléatoire: u les références aux pages dans un programme réel ne seront pas vraiment aléatoires Chap 10 47

CLOCK: c’est FIFO avec correctif n n n Chap 10 Enlever la page qui

CLOCK: c’est FIFO avec correctif n n n Chap 10 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 48

Algorithme horloge CLOCK n Ajoutons un bit à chaque page, qui est mis à

Algorithme horloge CLOCK n Ajoutons un bit à chaque page, qui est mis à 1 chaque fois que la page est utilisée u 1 sera représenté comme un astérisque * u Cependant pour toujours trouver de la place, ce bit est mis à 0 chaque fois qu’il est consulté Après 2 3 2 1 2* 1* Le pointeur pointe à la page suivante la dernière Chap 10 3* 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 Après 2 3 2 1 5 5* 1 3 Le choix de 2 est encore mauvais par rapport à la fréquence d’utilisation passée, donc cette méthode 49

L’algorithme de l’horloge CLOCK n n Semblable à FIFO, mais il tient compte de

L’algorithme de l’horloge CLOCK n n 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 u 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: u une page y est nouvellement chargée u 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. u Durant cette recherche, tout bit “utilisé=1 rencontré sera tourné à 0 u n u Chap 10 50

Algorithme de l’horloge CLOCK: un exemple (Stallings). Cadres 0. . n La page 727

Algorithme de l’horloge CLOCK: un exemple (Stallings). Cadres 0. . n La page 727 est chargée dans le cadre 4, remplaçant la page 556. La proch. victime est la page 13 dans cadre 5, si elle n’est pas utilisée dans l’entretemps Chap 10 51

Comparaison: Horloge, FIFO et LRU (Stallings) n n Chap 10 n Astérisque indique le

Comparaison: Horloge, FIFO et LRU (Stallings) n n Chap 10 n Astérisque indique 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 52

Point délicat pour CLOCK n n n Pour bien comprendre cet algorithme, il est

Point délicat pour CLOCK n n n Pour bien comprendre cet algorithme, il est essentiel de comprendre le fonctionnement du pointeur et de l’astérisque P. ex. ci-dessous après la référence à 2, le bloc contenant 2 reçoit l’astérisque. Ce bloc a aussi le pointeur, car il est le 1 er bloc à considérer pour une demande de page Quand la page 5 est demandée, elle ne peut pas être affectée à ce bloc-là, car il a l’astérisque Le pointeur est avancé mais en faisant ceci, l’astérisque est retiré u n n Chap 10 Rappel: le pointeur est toujours dans le bloc suivant le dernier bloc affecté La page 5 est mise dans le 3ème bloc avec l’astérisque Faisant ça, le pointeur est de nouveau avancé La proch fois, le pointeur passe à travers tous les blocs, les trouvant tous avec astérisque, et les enlève tous La page remplacée sera ? ? ?

Chap 10 54

Chap 10 54

Détail sur le fonctionnement de l’horloge CLOCK Tous les bits étaient à 1. Nous

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. Chap 10 Le premier cadre est remplacé et son bit devient 1 (utilisé!) 55

Matériel additionnel pour l’algo CLOCK n n n Chaque cadre de MP a un

Matériel additionnel pour l’algo CLOCK n n n 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 1 0 0 S’il est 0, la page dans le cadre peut être remplacée u S’il est 1, il le met à 0 u 0 1 Mémoire Chap 10 56

Noter différence n Bit ‘sale’ ‘dirty bit’ mentionné avant u Indique si la page

Noter différence n Bit ‘sale’ ‘dirty bit’ mentionné avant u Indique si la page a été modifiée=écrite après son entrée en MP n Bit ‘utilisé’ u Indique si la page a été lue ou écrite après son entrée en MP n Chap 10 L’architecture Intel a les deux, et même plus compliqué … 57

Pour comprendre bien n L’algorithme CLOCK utilise deux mécanismes u Le bit ‘utilisé’ u

Pour comprendre bien n L’algorithme CLOCK utilise deux mécanismes u Le bit ‘utilisé’ u Le pointeur F Comprendre que l’un est mis à jour par le matériel, l’autre par le logiciel • Quand exactement, pour chacun? Chap 10 58

Résumé des algorithmes le plus importants OPTIMAL Le meilleur en principe mais pas implantable,

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 59

Algorithmes compteurs n n Garder un compteur pour les références à chaque page LFU:

Algorithmes compteurs n n 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 u Chap 10 Mise à jour de compteurs à chaque opération de mémoire! 60

Effets sur la fragmentation n La fragmentation interne moyenne est la moitié de la

Effets sur la fragmentation n La fragmentation interne moyenne est la moitié de la dernière page u D’un segment, s’il y a segmentation u D’un processus, s’il n’y a que la pagination u Donc elle sera plus petite quand on utilise des petites pages n La fragmentation externe sera 0 s’il y a assez de processus en exécution u Car toute page disponible pourra être utilisée par un des processus actifs Chap 10 61

Effets sur les temps d’exécution Chap 10 62

Effets sur les temps d’exécution Chap 10 62

Pour l’exécution efficace d’un processus n n Étant donné l’énorme différence entre temps d’exécution

Pour l’exécution efficace d’un processus n n É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 très rares Afin qu’un processus puisse être exécuté efficacement, il doit avoir une très haute localité de référence u Doit Chap 10 ne pas ‘sauter partout’ tout le temps 63

Temps moyen d’accès à la mémoire virtuelle Supposons que: • accès en MP: 100

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: 10 millisecs = 10, 000 nanosecs (inclut le temps lecture et écriture 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 10, 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é 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 1 000 accès de mémoire virtuelle. Si TM=110, alors p=1 / 1 000 Chap 10 (Temps d’accès disque réaliste aujourd’hui= de 5 à 10 ms, nous avons supposé 5 ici) 64

Points de réfléxion n n La formule générale est: TM = p. T +

Points de réfléxion n n La formule générale est: TM = p. T + (1 -p)t Exercice 1: Faire le calcul pour les données à la page précédente u n n (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 u Une lecture pourrait prendre 0, 1 ms, une écriture 1, 5 ms u Refaire les calculs mentionnés pour ce cas F Chap 10 Évidemment nous pouvons tolérer beaucoup plus de fautes de pagination 65

Point de réflexion n Exercice. Nous savons que seulement les pages ‘sales’ ont besoin

Point de réflexion n Exercice. Nous savons que seulement les pages ‘sales’ ont besoin d’être récrites en MS. u Supposons que nous connaissons la probabilité m qu’une page soit sale u Supposons que le temps de traitement de lecture sur disque soit la moitié du temps de lecture-écriture u Comment refaire les calculs de temps moyen d’accès dans ce cas F Chap 10 Notre calcul d’avant supposait que la page sortante devait être écrite, était toujours ‘sale’ 66

Matériaux supplémentaires Chap 10 67

Matériaux supplémentaires Chap 10 67

Utilisation d’une pile (stack) n Quand une page est utilisée, est mise au sommet

Utilisation d’une pile (stack) n Quand une page est utilisée, est mise au sommet de la pile. u donc la page la plus récemment utilisée est toujours au sommet, u la moins récemment utilisée est toujours au fond n n Bonne implémentation du principe de localité, cependant… La pile doit être mise à jour chaque fois qu’une page est utilisée u Inefficace, pas pratique Chap 10 68

Anomalie de Belady n Pour quelques algorithmes, dans quelques cas il pourrait avoir plus

Anomalie de Belady n Pour quelques algorithmes, dans quelques cas il pourrait avoir plus de défauts avec plus de mémoire! u p. ex. FIFO, mais pas LRU, OPT, CLOCK Chap 10 69

Situation considérée normale Chap 10 70

Situation considérée normale Chap 10 70

Anomalie de Belady (FIFO) Chap 10 Cas d’intérêt théorique: + de mémoire, + de

Anomalie de Belady (FIFO) Chap 10 Cas d’intérêt théorique: + de mémoire, + de fautes 71

Le Chapitre 10 continue… Chap 10 72

Le Chapitre 10 continue… Chap 10 72

Le problème de la Cohérence n Quand une variable peut être stockée à plusieurs

Le problème de la Cohérence n 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: u S’assurer que quand on obtient la valeur de cette variable, n’importe à quel niveau qu’on la trouve, elle soit toujours à jour F 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 F D’autres méthodes ont été développées pour des cas plus complexes • Voir ‘cohérence de cache’ ou ‘cache coherence’ Chap 10 73

Algorithmes de remplacements pages: Exemples additionnels V. Planches du manuel de Silberschatz http: //codex.

Algorithmes de remplacements pages: Exemples additionnels V. Planches du manuel de Silberschatz http: //codex. cs. yale. edu/avi/os-book/OS 9/slide-dir/ Chap 10 74

First-In-First-Out (FIFO) Algorithm n Reference string: 7, 0, 1, 2, 0, 3, 0, 4,

First-In-First-Out (FIFO) Algorithm n Reference string: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 n 3 frames (3 pages can be in memory at a time per process) 15 page faults n Can vary by reference string: consider 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 l Adding more frames can cause more page faults! 4 Belady’s Anomaly n How to track ages of pages? l Chap 10 Just use a FIFO queue 75

Optimal Algorithm n Replace page that will not be used for longest period of

Optimal Algorithm n Replace page that will not be used for longest period of time l 9 is optimal for the example n How do you know this? l Can’t read the future n Used for measuring how well your algorithm performs Chap 10 76

Least Recently Used (LRU) Algorithm n Use past knowledge rather than future n Replace

Least Recently Used (LRU) Algorithm n Use past knowledge rather than future n Replace page that has not been used in the most amount of time n Associate time of last use with each page n 12 faults – better than FIFO but worse than OPT n Generally good algorithm and frequently used n But how to implement? Chap 10 77

Second-Chance (clock) Page-Replacement Algorithm Chap 10 78

Second-Chance (clock) Page-Replacement Algorithm Chap 10 78

Question n Quelle est la différence entre les concepts de mémoire virtuelle et mémoire

Question n Quelle est la différence entre les concepts de mémoire virtuelle et mémoire logique? u 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 79