Académique Documents
Professionnel Documents
Culture Documents
Cours N6
Mmoire Virtuelle
Pagination sur demande Problmes de performance Remplacement de pages: algorithmes Allocation de cadres de mmoire Emballement Ensemble de travail
Concepts importants
Localit des rfrences Mmoire virtuelle implmente par va-et-vient des pages, mcanismes, dfauts de pages Adresses physiques et adresses logiques Temps moyen daccs la mmoire
Rcriture ou non de pages sur mm secondaire OPT, LRU, FIFO, Horloge Fonctionnement, comparaison
croulement, causes Ensemble de travail (working set) Relation entre la mmoire alloue un proc et le nombre dinterruptions Relation entre la dimension de pages et le nombre dinterruptions Prpagination, post-nettoyage Effets de lorganisation dun programme sur lefficacit de la pagination
Cest intressant de savoir que des concepts trs semblables sappliquent aux mcanismes de la mmoire cache
Cependant
RAM
La mmoire virtuelle
fin quun programme soit excut, il ne doit pas ncessairement tre tout en mmoire centrale! Seulement les parties qui sont en excution ont besoin dtre en mmoire centrale Les autres parties peuvent tre sur disque, prtes tre amenes en mmoire centrale sur demande
Ceci rend possible lexcution de programmes beaucoup plus grands que la mmoire physique
Nous avons une mmoire virtuelle qui est plus grande que la mmoire physique
Un processus est constitu de pices (pages ou segments) ne ncessitant pas doccuper une rgion contigu de la mmoire principale Rfrences la mmoire sont traduites en adresses physiques au moment dexcution Un processus peut tre dplac diffrentes rgions de la mmoire, aussi mmoire disque! Donc: toutes les pices dun processus ne ncessitent pas dtre en mmoire principale durant lexcution Lexcution peut continuer condition que la prochaine instruction (ou donne) est dans une pice se trouvant en mmoire principale
La somme des mmoires logiques des procs en excution peut donc excder la mmoire physique disponible
Le concept de base de la mmoire virtuelle Une image de tout lespace dadressage du processus est garde en mmoire secondaire (normal. disque) do les pages manquantes pourront tre prises au besoin Mcanisme de va-et-vien ou swapping
Principe de localit des rfrences: les rfrences la mmoire dans un processus tendent se regrouper Donc: seule quelques pices dun processus seront utilises durant une petite priode de temps (pices: pages ou segments) Il y a une bonne chance de deviner quelles seront les pices demandes dans un avenir rapproch
Nouveau format du tableau des pages (la mme ide peut tre
applique aux tableaux de segments)
bit prsent 1 si en mm. princ., 0 si en mm second.
Si la page est en mm. princ., ceci est une adr. de mm. principale sinon elle est une adresse de mmoire secondaire
Plus de processus peuvent tre maintenus en excution en mmoire Car seules quelques pices sont charges par chaque processus Lusager est content, car il peut excuter plusieurs processus et faire rfrence des gros donnes sans avoir peur de remplir la mmoire centrale Avec plus de processus en mmoire principale, il est plus probable davoir un processus dans ltat prt, bonne utilisation dUCT Plusieurs pages ou segments rarement utiliss nauront peut tre pas besoin d`tre chargs du tout Il est maintenant possible dexcuter un processus lorsque sa taille excde celle de la mmoire principale Il est possible dutiliser plus de bits pour ladresse logique que le nombre de bits requis pour adresser la mmoire principale
10
Ex: 16 bits sont ncessaires pour adresser une mmoire physique de 64KB En utilisant des pages de 1KB, 10 bits sont requis pour les dcalages Pour le numro de page de ladresse logique nous pouvons utiliser un nombre de bits qui excde 6, car toutes les pages ne doivent pas tre en mmoire simultanment Donc la limite de la mmoire virtuelle est le nombre de bits qui peuvent tre rservs pour l adresse
Dans quelques architectures, ces bits peuvent tre inclus dans des registres
La mmoire logique est donc appele mmoire virtuelle Est maintenue en mmoire secondaire Les pices sont amenes en mmoire principale seulement lorsque si ncessaire
11
Pour une meilleure performance, la mmoire virtuelle se trouve souvent dans une rgion du disque qui est nest pas gre par le systme de fichiers
La mmoire physique est celle qui est rfrence par une adresse physique Se trouve dans la RAM ou cache La traduction de ladresse logique en adresse physique est effectue en utilisant les mcanismes tudis dans le chapitre prcdent.
12
Tableau de pages
13
Le SE charge la mmoire principale de quelques pices (seulement) du programme (incluant le point de dpart) Chaque entre de la table de pages (ou segments) possde un bit prsent qui est mis 1 seulement si le morceau correspondant est en mmoire principale Lensemble rsident (rsident set) est la portion du processus se trouvant en mmoire principale Une interruption est gnre lorsque ladresse logique rfre une pice qui nest pas dans lensemble rsident dfaut de pagination, page fault
14
15
Trappe au SE: page demande pas en RAM Sauvegarder registres et tat du proc dans PCB Un autre proc peut maintenant gagner l UCT SE dtermine que la page demande est lgale
lire la page de disque dans un cadre de mmoire libre (supposons qu`il y en a!)
16
SE met jour le contenu du tableau des pages du proc. qui a caus le dfaut de page Ce processus devient prt=ready un certain point, il retournera excuter
17
En utilisant la mme formule, nous pouvons dterminer quel est le nombre de dfauts que nous pouvons tolrer, si un certain niveau de performance est dsir (v. livre).
P.ex. avec ces params, si le ralentissement cause de pagination ne peut pas excder 10%, 1 seul dfaut de pagination peut tre tolr pour chaque 2,500,000 accs de mmoire.
18
Quand le RAM est plein mais nous avons besoin d`une page pas en RAM
19
La page victime...
20
Remplacement de pages
Quoi faire si un processus demande une nouvelle page et il ny a pas de cadres libres en RAM? Il faudra choisir une page dj en mmoire principale, appartenant au mme ou un autre processus, quil est possible d enlever de la mmoire principale
la victime!
Un cadre de mmoire sera donc rendu disponible videmment, plusieurs cadres de mmoire ne peuvent pas tre `victimiss`:
La victime doit-elle tre rcrite en mmoire secondaire? Seulement si elle a t change depuis qu`elle a t amene en mmoire principale
sinon,
Bit de modif sur chaque descripteur de page indique si la page a t change Donc pour calculer le cot en temps dune rfrence la mmoire il faut aussi considrer la probabilit quune page soit sale et le temps de rcriture dans ce cas
22
vident!!!
Page dont nous n`aurons pas besoin dans le futur? impossible savoir! Page pas souvent utilise? Page qui a t dj longtemps en mmoire?? etc. nous verrons...
23
Les algorithmes de choix de pages remplacer doivent tre conus de faon minimiser le taux de dfaut de pages long terme Mais il ne peuvent pas impliquer des temps de systme excessifs, p.ex. mise jour de tableaux en mmoire pour chaque accs de mmoire Ni devraient-ils impliquer l`utilisation de matriel dispendieux
24
Nous allons expliquer et valuer les algorithmes en utilisant la chane de rfrence pages suivante (prise du livre de Stallings):
2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2
Localit de rfrence
Ces rfrences proviendront de plusieurs processus Lvaluation sera faite sur la base de cet exemple, videmment pas suffisant pour en tirer des conclusions gnrales
25
Lalgorithme optimal (OPT) choisit pour page remplacer celle qui sera rfrence le plus tardivement
produit
le + petit nombre de dfauts de page impossible raliser (car il faut connatre le futur) mais sert de norme de comparaison pour les autres algorithmes:
Ordre
chronologique dutilisation (LRU) Ordre chronologique de chargement (FIFO) Deuxime chance ou Horloge (Clock)
26
Ordre chronologique dutilisation (LRU) Remplace la page dont la dernire rfrence remonte au temps le plus lointain (le pass utilis pour prdire le futur) En raison de la localit des rfrences, il Stallings sagit de la page qui a le moins de chance dtre rfrence performance presque aussi bonne que lalgo. OPT
27
Comparaison OPT-LRU
Exemple: Un processus de 5 pages sl n`y a que 3 pages physiques disponibles. Dans cet exemple, OPT occasionne 3+3 dfauts, LRU 3+4.
Stallings
28
Lorsque la mmoire principale est vide, chaque nouvelle page que nous ajoutons est le rsultat dun dfaut de page Mais pour mieux comparer les algorithmes, il est utile de garder spars ces dfauts initiaux
car
29
Chaque page peut tre marque (dans le descripteur dans la table de pages) du temps de la dernire rfrence: besoin de matriel supplmentaire. La page LRU est celle avec la + petite valeur de temps (ncessit dune recherche chaque dfaut de page) Ou sinon on pourrait utiliser une liste de pages dans lordre d utilisation: perte de temps maintenir et consulter cette liste (elle change
chaque rfrence de mmoire!)
LRU approximations
30
Logique: une page qui a t longtemps en mmoire a eu sa chance d excuter Les cadres forment conceptuellement un tampon circulaire, dbutant la plus vieille page
Lorsque la mmoire est pleine, la plus vieille page est remplace. Donc: first-in, first-out tampon consult et mis jour seulement aux dfauts de pages...
Mais: Une page frquemment utilise est souvent la plus vielle, elle sera remplace par FIFO!
31
(Stallings)
Contrairement FIFO, LRU reconnat que les pages 2 and 5 sont utilises frquemment La performance de FIFO est moins bonne:
dans
Les premires pages amenes en mmoire sont souvent utiles pendant toute lexcution dun processus!
variables
Ce qui montre un problme avec notre faon de comparer les mthodes sur la base d une squence alatoire:
les
rfrences aux pages dans un programme rel ne seront pas vraiment alatoires
33
Semblable FIFO, mais les cadres qui viennent dtre utiliss (bit=1) ne sont pas touchs (deuxime chance)
Les cadres forment conceptuellement un tampon circulaire Lorsquune page est charge 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 matriel) lorsque: une page y est nouvellement charge sa page est utilise Le prochain cadre du tampon tre remplac sera le premier rencontr qui aura son bit utilis = 0. Durant cette recherche, tout bit utilis = 1 rencontr sera mis 0
34
La page 727 est charge dans le cadre 4. La proch. victime est 5, puis 8.
35
(Stallings)
Astrisque indique que le bit utilis est mis 1 Lhorloge protge du remplacement les pages frquemment utilises en mettant 1 le bit utilis chaque rfrence LRU = 3+4, FIFO = 3+6, Horloge = 3+5
36
Chaque bloc de mmoire a un bit touch (use) Quand le contenu du bloc est utilis, le bit est mis 1 par le matriel Le SE regarde le bit
Sil est 0, la page est utilise Sil est 1, il le met 0
Mmoire
37
Les simulations montrent que lhorloge est presque aussi performant que LRU variantes de l`horloge ont t implantes dans des systmes rels Lorsque les pages candidates au remplacement sont locales au processus souffrant du dfaut de page et que le nombre de cadres allou est fixe, les expriences montrent que: Si peu (6 8) de cadres sont alloues, le nombre de dfaut de pages produit par FIFO est presque double de celui produit par LRU, et celui de CLOCK est entre les deux Ce facteur sapproche de 1 lorsque plusieurs (plus de 12) cadres sont allous.
Cependant le cas rel est de milliers et millions de pages et cadres, donc la diffrence n`est pas trop importante en pratique... On peut tranquillement utiliser LRU
38
39
Algorithmes compteurs
Garder un compteur pour les rfrences chaque page LFU: Least Frequently Used: remplacer la pages avec le plus petit compteur MFU: Most Frequently Used: remplacer les pages bien uses pour donner une chance aux nouvelles Ces algorithmes sont dimplantation dispendieuse et ne sont pas beaucoup utiliss
40
Bonne implmentation du principe de localit, cependant La pile doit tre implante par matriel, car nous ne pouvons pas tolrer lexcution dun programme chaque fois quune page est utilise Donc pas pratique
41
Anomalie de Belady
Pour quelques algorithmes, dans quelques cas il pourrait avoir plus de dfauts avec plus de mmoire!
p.
42
43
44