1 Chapitre 10 Mémoire virtuelle httpw3uqocaluigi Virtuelle est une ressource dordinateur qui nest pas offerte directement par le matériel elle est créée par le logiciel ID: 552443
Download Presentation The PPT/PDF document "Chap 10" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Chap 10
1
Chapitre 10
Mémoire virtuelle
http://w3.uqo.ca/luigi/
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 …Slide2
Chap 10
2
Mémoire Virtuelle
Pagination sur demande
Problèmes de performanceRemplacement de pages: algorithmesAllocation de cadres de mémoireEmballementEnsemble de travailSlide3
Chap 10
3
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 pagesAdresses physiques et adresses logiquesTemps moyen d’accès à la mémoireRécriture ou non de pages sur mém secondaireAlgorithmes de remplacement pages:OPT, LRU, FIFO, HorlogeFonctionnement, comparaisonÉcroulement, causesEnsemble de travail (working set)Relation entre la mémoire allouée à un proc et le nombre d’interruptionsRelation entre la dimension de pages et le nombre d’interruptionsPrépagination, post-nettoyageEffets de l’organisation d’un programme sur l’efficacité de la paginationSlide4
Ce que nous avons vu
Les mécanismes de la segmentation et pagination permettent d’obtenir une bonne utilisation de la mémoireLa fragmentation est presque éliminéeLes processus peuvent être éparpillés où il y a de l’espace en mémoirePar l’entremise de différents tableaux d’adresses de baseLa protection et le partage d’informations peuvent être obtenus par extension des mêmes mécanismesChap 10
4Slide5
Chap 10
5
La mémoire virtuelle est une application du concept de hiérarchie de mémoire
Des concepts semblables s’appliquent aux mécanismes de la mémoire
cacheCependant pour cache les mécanismes sont de matériel
Mécanismes cache
Méc. mém. virtuelle
RAM
(flash ou SSD)Slide6
Dorénavant: MP, MS
MP = mémoire principale, mémoire vive, mémoire physique, RAM termes équivalentsMS = 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 MPUn transfert de données entre MP et MS est une opération d’E/SChap 10
6Slide7
Chap 10
7
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 MPLes autres parties peuvent être sur MS, prêtes à être amenées en MP sur demande Mécanisme de va-et-vient ou swappingCeci rend possible l’exécution de programmes beaucoup plus grands que la MPRéalisant une mémoire virtuelle qui peut être beaucoup plus grande que la MPSlide8
Chap 10
8
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
swappingSlide9
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 physiqueL’idée de l’adresse virtuelle est la même que celle de l’adresse logiqueavec l’extension que l’adresse virtuelle peut contenir plus de bits que ceux nécessaires pour adresser la mémoire physiqueChap 10
9Slide10
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édentChap 10
10
MP
MSSlide11
Chap 10
11
Mémoire virtuelle:
résultat d’un mécanisme qui combine
la MP et la MS
Tableau de pages
v
i
MP
MS
Tableau de pagesSlide12
Le principe
de localitéJustification pratique du concept de mémoire virtuelleChap 10
12Slide13
Chap 10
13
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éSlide14
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 casUne partie de sa mémoire logiquePour l’instant ce proc a besoin de seulement ? cadres de mémoireChap 10
14
Progr
.
Donn.
Mém virtuelle d’un proc.Slide15
Chap 10
15
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 utilisée et on voit seulement les pages 18-34)
Temps
AdressesSlide16
Implémentation de la
Mémoire VirtuelleChap 10
16Slide17
Analogie …
Un groupe de personnes mange sur une table plus petite que le comptoir de cuisineOn mettra sur la table quelques plats au début, puis on ajoutera des plats au fur et à mesure qu’on en demanderaIl faudra en enlever aussi …Chap 10
17Slide18
Chap 10
18
Pages en MP ou sur MS
Page A en MP
et
sur MS.
Page E
seulement
sur MS.
En ce moment, ce proc a besoin de seulement ? pages de MP pour exécuter
mém. secondaire
MS
MPSlide19
Chap 10
19
Nouveau format du tableau des pages
(la même idée peut être appliquée aux tableaux de segments)
Adresse de la
page
Bit
valide
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
Au début, bit valide = 0 pour toutes les pagesSlide20
Chap 10
20
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 se préoccuper 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 physiqueSlide21
Chap 10
21
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+registreSlide22
Chap 10
22
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.Slide23
Chap 10
23
Mémoire virtuelle:
le mécanisme de va-et-vient
Tableau de pages
MS
MP
Tabl
. pagesSlide24
Chap 10
24
Exécution d’un Processus
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
défaut de pagination, page
faultSlide25
Chap 10
25
Exécution d’un
défaut de page: va-et-vient plus en détail
Mémoire virtuelle
Une instruction ‘load M’ fait référence à une page en MS
MS
M
interruptionSlide26
Chap 10
26
Séquence d’événements pour défaut de page
Trappe au SE: page demandée
pas en MPProcessus est mis ‘en attente’Sauvegarder registres et état du proc dans PCBUn autre proc peut maintenant gagner l ’UCTSE détermine si la page demandée peut être accedéesinon: faute de segmentation, terminaison du processus et trouve la position de la page sur MSutilisant le descripteur de la page dans le tableau des pageslit la page de MS dans un cadre de MP (supposons qu`il y en a!)Slide27
Chap 10
27
Séquence d’événements pour défaut de page
(ctn.)
La lecture de la page se termine et l’UCT est interrompuesauvegarder les registres etc. du proc exécutantSE met à jour le contenu du tableau des pages du proc. qui a causé le défaut de pageCe processus devient prêt=readyÀ un certain point, il retournera à exécuterla 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 »)Slide28
Algorithmes de
remplacement de pagesChap 10
28Slide29
Chap 10
29
La MP est pleine mais nous avons besoin d`une page pas en MP
MP
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 cette figure en tous ses détails
Processus 1
Processus 2Slide30
Chap 10
30
La page
victime... On a la page A en MP, elle doit être remplacée par la page B
MP
MS
La page A contenue dans le cadre f est écrite en MS. Le cadre f devient libre.
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.
La page B est amenée en MP dans le cadre f
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 seul proc, ce qui n’est pas nécessairement le cas
A
B
A
BSlide31
Chap 10
31
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 MPsinon, sa copie sur MS est encore fidèleBit de modif sur chaque descripteur de page indique si la page a été changéeDonc 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
XSlide32
Chap 10
32
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 MPla 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...Slide33
Chap 10
33
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...Slide34
Analogie
La table sur laquelle un groupe mange est pleine, mais on demande un nouveaux platFaut en enleverQuoi enlever?OPT: Le plat dont personne n’aura besoin dans un futur prochainDifficile ou impossible à savoir?LRU: Le plat moins récemment utiliséDifficile: Il faut se préoccuper de tracer l’utilisationFIFO: 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écemmentAlgorithme CLOCK, à voirChap 10
34Slide35
Chap 10
35
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 termeMais ils doivent être efficaces Slide36
Chap 10
36
Critères d’efficacité
Il est intolérable d’exécuter un programme chaque fois qu’une opération de mémoire est exécutée
Ceci impliquerait des accès additionnels de mémoireLes opérations qui doivent être faites à chaque accès de mémoire doivent être câblées dans le matérielCependant un programme peut être exécuté chaque fois qu’il y a une faute de paginationSlide37
Chap 10
37
Explication et évaluation des algorithmes
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: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2L’évaluation sera faite sur la base de cet exemple, évidemment pas suffisant pour en tirer des conclusions généralesSlide38
Quelques algorithmes possibles en principe
Nous avons les pages: 1,2,3,4,5Pour la séquence suivante d’accès à pages:2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2, 1Nous sommes au point marqué et toutes les pages déjà utilisées sont en MPLa 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
38Slide39
Chap 10
39
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)Slide40
Chap 10
40
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
Algorithmes pour la politique de remplacementSlide41
Chap 10
41
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éeSlide42
Chap 10
42
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 algorithmesSlide43
Chap 10
43
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
approximationsSlide44
Chap 10
44
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 applicationMais: Une page fréquemment utilisée est souvent la plus vielle, elle sera remplacée par FIFO!Slide45
Chap 10
45
Comparaison de FIFO avec LRU
(Stallings)
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:
LRU = 3+4, FIFO = 3+6 Slide46
Chap 10
46
Implantation de FIFO
Facilement implantable en utilisant un tampon circulaire de cadres de mémoire
Qui a besoin d’être mis à jour seulement à chaque défaut de pageExemple: après la trace:2 1 2 1 5 22
1
5
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!
Chaque carré
réprésente
un cadre de mémoire avec son contenuSlide47
Chap 10
47
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éatoiresSlide48
CLOCK: c’est FIFO avec correctif
Enlever la page qui a été là le plus longtempsMais ne pas l’enlever si elle a été utilisée récemmentBit ‘utilisé’ dans les cadres de mémoire pour savoir quelles pages ont été utilisées récemmentChap 10
48Slide49
Algorithme horloge CLOCK
Ajoutons un bit à chaque page, qui est mis à 1 chaque fois que la page est utilisée 1 sera représenté comme un astérisque * Cependant pour toujours trouver de la place, ce bit est mis à 0 chaque fois qu’il est consultéChap 10
49
2*
3*
1*
Après 2 3 2 1
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*
3
1
Le choix de 2 est encore mauvais par rapport à la fréquence d’utilisation passée, donc cette méthode n’es pas parfaite
…
Le pointeur
pointe à la page suivante la dernière remplacéeSlide50
Chap 10
50
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ésLes cadres forment conceptuellement un tampon circulaire Lorsqu’une page est chargée dans un cadre, un pointeur pointe sur le prochain cadre du tamponPour chaque cadre du tampon, un bit “utilisé” est mis à 1 (par le matériel) lorsque: une page y est nouvellement chargéecette 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 Slide51
Chap 10
51
Algorithme de l’horloge CLOCK: un exemple
(
Stallings).
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
Cadres 0..nSlide52
Chap 10
52
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+
5Slide53
Point délicat pour CLOCK
Pour bien comprendre cet algorithme, il est essentiel de comprendre le fonctionnement du pointeur et de l’astérisqueP.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 1er 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érisqueLe pointeur est avancé mais en faisant ceci, l’astérisque est retiré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érisqueFaisant ç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 tousLa page remplacée sera ???Chap 1053Slide54
Chap 10
54Slide55
Chap 10
55
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éSlide56
Chap 10
56
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érielLe SE regarde le bitS’il est 0, la page dans le cadre peut être remplacéeS’il est 1, il le met à 0
1
Mémoire
0
0
0
1Slide57
Noter différence
Bit ‘sale’ ‘dirty bit’ mentionné avantIndique 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 MPL’architecture Intel a les deux, et même plus compliqué …Chap 10
57Slide58
Pour comprendre bien
L’algorithme CLOCK utilise deux mécanismes Le bit ‘utilisé’Le pointeurComprendre que l’un est mis à jour par le matériel, l’autre par le logicielQuand exactement, pour chacun?Chap 10
58Slide59
Chap 10
59
Résumé des algorithmes le plus importants
OPTIMAL
Le meilleur en principe mais pas implantable, utilisé comme référenceLRU
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 conceptsSlide60
Chap 10
60
Algorithmes
compteurs
Garder un compteur pour les références à chaque pageLFU: Least Frequently Used: remplacer la pages avec le plus petit compteurMFU: Most Frequently Used: remplacer les pages bien usées pour donner une chance aux nouvellesCes algorithmes sont d’implantation dispendieuse et sont moins utilisésMise à jour de compteurs à chaque opération de mémoire!Slide61
Effets sur la fragmentation
La fragmentation interne moyenne est la moitié de la dernière pageD’un segment, s’il y a segmentationD’un processus, s’il n’y a que la paginationDonc elle sera plus petite quand on utilise des petites pagesLa fragmentation externe sera 0 s’il y a assez de processus en exécution Car toute page disponible pourra être utilisée par un des processus actifsChap 10
61Slide62
Effets sur les temps d’exécution
Chap 10
62Slide63
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 très raresAfin qu’un processus puisse être exécuté efficacement, il doit avoir une très haute localité de référenceDoit ne pas ‘sauter partout’ tout le tempsChap 1063Slide64
Chap 10
64
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,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,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 000 accès de mémoire virtuelle.
(Temps d’accès disque réaliste aujourd’hui= de 5 à 10 ms, nous avons supposé 5 ici)
Si TM=110, alors p=1 / 1 000 000
Slide65
Points de réfléxion
La formule générale est: TM = pT + (1-p)tExercice 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 écrituresUne lecture pourrait prendre 0,1ms, une écriture 1,5msRefaire les calculs mentionnés pour ce casÉvidemment nous pouvons tolérer beaucoup plus de fautes de paginationChap 10
65Slide66
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 saleSupposons que le temps de traitement de lecture sur disque soit la moitié du temps de lecture-écritureComment refaire les calculs de temps moyen d’accès dans ce casNotre calcul d’avant supposait que la page sortante devait être écrite, était toujours ‘sale’Chap 10
66Slide67
Matériaux supplémentaires
Chap 10
67Slide68
Chap 10
68
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 fondBonne implémentation du principe de localité, cependant…La pile doit être mise à jour chaque fois qu’une page est utiliséeInefficace, pas pratiqueSlide69
Chap 10
69
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, CLOCKSlide70
Chap 10
70
Situation considérée normaleSlide71
Chap 10
71
Anomalie de Belady (FIFO)
Cas d’intérêt théorique: + de mémoire, + de fautes (v. livre)Slide72
Chap 10
72
Le Chapitre 10 continue…Slide73
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 à jourNous 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 complexesVoir ‘cohérence de cache’ ou ‘cache coherence’ Chap 10
73Slide74
Algorithmes de remplacements pages:
Exemples additionnelsV. Planches du manuel de Silberschatzhttp://codex.cs.yale.edu/avi/os-book/OS9/slide-dir/Chap 1074Slide75
Chap 10
75
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 faultsSlide76
Chap 10
76
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 performsSlide77
Chap 10
77
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?Slide78
Chap 10
78
Second-Chance (clock) Page-Replacement AlgorithmSlide79
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 1079