Vous êtes sur la page 1sur 44

Mmoire virtuelle

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

Algorithmes de remplacement pages:


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

La mmoire virtuelle est une application du concept de hirarchie de mmoire

Cest intressant de savoir que des concepts trs semblables sappliquent aux mcanismes de la mmoire cache
Cependant

dans ce cas les mcanismes sont surtout de matriel


Mcanismes cache

RAM

Mc. mm. virtuelle

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

Mcanisme de va-et-vient ou swapping

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

De la pagination et segmentation la mmoire virtuelle

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

Localit et mmoire virtuelle

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

Pages en RAM ou sur disque

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

Bit Adresse de la prsent page

Au dbut, bit prsent = 0 pour toutes les pages


9

Avantages du chargement partiel

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

Espace d adressage logique > > esp. d adressage physique

10

Mmoire Virtuelle: Pourrait tre norme!

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

Mmoire Virtuelle (Cont.)

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

Mmoire va-et-vient, swap memory

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

Mmoire virtuelle: le mcanisme de va-et-vient

Tableau de pages

13

Excution dun Processus

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

Excution dune dfaut de page: va-et-vient plus en dtail

15

Squence dvnements pour dfaut de page


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

sinon: terminaison du processus dans le descripteur de la page

et trouve la position de la page sur disque

lire la page de disque dans un cadre de mmoire libre (supposons qu`il y en a!)

excuter les ops disque ncessaires pour lire la page

16

Squence dvnements pour dfaut de page (ctn.)

L unit disque a complt le transfert et interrompt lUCT

sauvegarder les registres etc. du proc excutant

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

la page dsire tant en mmoire, il pourra maintenant continuer

17

Temps moyen daccs la mmoire


Supposons que: accs en mmoire: 100 nanosecs temps de traitement de dfaut de pagination: 25 millisecs = 25,000,000 nanosecs p: probabilit de ne pas trouver une page en mmoire (dfaut) Temps moyen daccs mmoire:

(1-p) x 100 + p x 25,000,000

(pas de dfaut + dfaut)

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`:

p.ex. cadres contenant le noyau du SE, tampons d E/S...


21

Bit de modification , dirty bit

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,

sa copie sur disque est encore fidle

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

Algorithmes de remplacement pages

Choisir la victime de faon minimiser le taux de dfaut de pages


pas

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

Critres dvaluation des algorithmes

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

Explication et valuation des algorithmes

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

Attention: les squences dutilisation pages ne sont pas alatoires...

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

Algorithmes pour la politique de remplacement

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

Algorithmes pour la politique de remplacement


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

Note sur le comptage des dfauts de page

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

leur nombre est le mme pour tous les algorithmes

29

Implmentation problmatique de LRU

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!)

Dautres algorithmes sont utiliss:

LRU approximations
30

Premier arriv, premier sorti (FIFO)

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...

Simple mettre en application

Mais: Une page frquemment utilise est souvent la plus vielle, elle sera remplace par FIFO!

31

Comparaison de FIFO avec LRU

(Stallings)

Contrairement FIFO, LRU reconnat que les pages 2 and 5 sont utilises frquemment La performance de FIFO est moins bonne:
dans

ce cas, LRU = 3+4, FIFO = 3+6


32

Problme conceptuel avec FIFO

Les premires pages amenes en mmoire sont souvent utiles pendant toute lexcution dun processus!
variables

globales, programme principal, etc.

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

Lalgorithme de lhorloge (deuxime chance)

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

Algorithme de lhorloge: un exemple (Stallings).

La page 727 est charge dans le cadre 4. La proch. victime est 5, puis 8.

35

Comparaison: Horloge, FIFO et LRU

(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

Matriel additionnel pour lalgo CLOCK

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

Comparaison: Horloge, FIFO et LRU

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

Pas grosse diffrence en pratique (Stallings)

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

Utilisation dune pile (stack)

Quand une page est utilise, est mise au sommet de la pile.


donc la page la plus rcemment utilise est toujours au sommet, la moins rcemment utilise est toujours au fond

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.

ex. FIFO, mais pas LRU, OPT, CLOCK

42

Situation considre normale

43

Anomalie de Belady (FIFO)

Cas dintrt thorique: + de mmoire, + de fautes (v. livre)

44