Vous êtes sur la page 1sur 51

5 - Gestion de la mmoire"

F. Boyer, UJF-Laboratoire Lig" Fabienne.Boyer@imag.fr !

!
!! Cours conu partir de!
"! Cours de E. Berthelot! #! http://www.iie.cnam.fr/%~EBerthelot/! "! Cours de A. Sylberschatz!

#!

www.sciences.univ-nantes.fr/info/perso/permanents/ attiogbe/SYSTEME/CoursSysteme.html!

"! Cours de A. Griffaut! #! http://dept-info.labri.fr/~griffault/Enseignement/SE/ Cours! "! Cours de H. Bouzour, D. Donsez! #! http://www-adele.imag.fr/~donsez/cours/#se! !

! !
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

1!

Problmatique!
!
!! La mmoire centrale est une ressource requise par

tout processus!

!
"! Un programme doit tre charg dans la mmoire centrale pour tre excut! Demarrer_processus(p) ! Allouer(taille(p))! Terminer_processus(p) ! Liberer(zone_alloue_ (p))! "! Un processus a gnralement besoin de mmoire dynamique! !

!! Problmatique!
"! Grer le partage de la mmoire centrale entre diffrents processus! "! Grer lallocation dynamique de mmoire!

!
F. Boyer, UJF!

! !

Cours de Systmes dExploitation RICM4!

2!

Hirarchies de mmoire !

!! Registres! !! Caches!
"! L1 on chip (Ko)! "! L2 en multi-curs (Mo)!

!! Mmoire centrale!
"! Go!

!! Mmoires secondaire!
"! To!

!
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

3!

Fonctions attendues!
!! Principe de partage de la ressource mmoire!
"! Fournir une mmoire logique chaque processus (2 K)! "! Grer les translations entre les mmoires logiques et la mmoire physique (liaisons d'adresses)!
0! 0!

! ! !

2 N -1! Mmoire physique! Mmoires logiques!


F. Boyer, UJF!

2 K-1!

Cours de Systmes dExploitation RICM4!

4!

Fonctions attendues !

!
!! Mmoire physique :!
"! Suite contigu de mots (8, 16, 32, 64 bits selon processeur)! "! Adressage direct alatoire! !

!! Mmoire logique :!
"! Espace logiquement contigu! "! Adressage direct alatoire de mots ! "! Taille maximum = 2 K 1 (k = la capacit dadressage)!

!
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

5!

Fonctions attendues!

!
!! Mise en uvre des mmoires logiques au dessus de

la mmoire physique!
"! Swapping (partage de la mmoire dans le temps)! "! Dcoupage (partitionnement)! "! Multiplexage! !

!! Protection des espaces logiques!


!

!
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

6!

Fonctions attendues !
!
!! Adresse physique !
"! Index dun mot dans la mmoire physique!

!
!! Adresse logique !
"! Index dun mot dans la mmoire logique!

!
!! Liaison dadresses !
"! Transformation dune adresse logique en une adresse physique!

!! La liaison peut avoir lieu diffrents moments!


"! la compilation, au chargement ou lexcution! "! Le moment de la liaison dadresses, ainsi que le type dadresses sont dpendants des caractristiques du matriel!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

7!

Liaison d'adresses !

!! Machine avec registre de base!


"! Adresses logiques relatives au dbut du programme! "! RB contient l'adresse physique du premier mot du programme! "! RB est mis jour lors de chaque commutation!

A. Sylberschatz!
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

8!

Liaison d'adresses !

!! Machines avec registre d'tendue!


"! RE permet de contrler que les accs sont limits la zone alloue au processus en cours! "! Utile pour la protection !

A. Sylberschatz!
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

9!

Liaison d'adresses !
!! Machines avec MMU!
"! Dispositif physique rapide!

A. Sylberschatz!
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

10!

Swapping / Va et vient !

!! Swapping: technique utilise en cas de

multiprogrammation / temps partag! !


!! Sorte de partage de la mmoire dans le temps!

!
!! La mmoire centrale ne peut pas contenir tous les

processus en cours d'excution! !


!! On doit pouvoir vider des processus en mmoire

secondaire lorsque ceux-ci ne sont pas actifs!


!
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

11!

Les diffrentes techniques de partitionnement de la mmoire centrale !

!! Fonction attendue :!
"! Allouer-zone (t : taille) ! adresse! "! Librer-zone (a : adresse, t : taille)!

!! Objectifs : !
"! Optimiser lutilisation de la mmoire (limiter la fragmentation)! "! Optimiser les algorithmes dallocation / libration!

!! Techniques :!
"! Zones contigus de taille xes ! "! Zones contigus de taille variables! "! Zones non contigus de taille xe (systmes pagins)! "! Zones non contigus de taille variable (systmes segments)! !
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

12!

Allocation en zones contigus de taille xe !

Zones de tailles xes statiquement:!


! ! OS!

P1!

P2!

P3!

reprsentation de la mmoire centrale!

!! Le systme alloue P1, P2 et P3 des zones mmoires de tailles

suprieure ou gale leur demande !!Choix des tailles des zones : en fonction dobservations

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

13!

Allocation en zones contigus de taille xe (implantation) !


20! 12! 6! 4!

-!Tableau de listes chanes de zones libres! -!Allouer-zone( t: taille) :!

!allocation dune zone de taille la plus proche de t! mise jour de la liste chane!
-!Librer-zone (a : adresse, t : taille) :!

mise jour de la liste chane!


F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

14!

Allocation en zones contigus de taille xe (conclusion)!

!! Algorithmes dallocation / libration rapides (si peu de

recouvrements)

!! Zones de tailles identiques : !! Fragmentation interne si taille(processus) << taille(zone) !! Gestion de recouvrement si taille(processus) >> taille(zone) !! Zones de tailles diffrentes : !! Fragmentation interne si mauvais dcoupage initial

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

15!

Allocation en zones contigus de tailles variables !

Nombre variable de zones de tailles variables!


!

OS!

P1!

P2!

P3!

P0!

reprsentation de la mmoire centrale!

!! Le systme alloue P0, P1, P2 et P3 des zones

mmoires de tailles gale leur demande ! !! Taille des zones alloues = tailles demandes par les processus! !
! !

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

16!

Allocation en zones contigus de taille variable (Implantations) !


-!

-!

Liste chaine (ordonne) des zones libres! -! (+) Pas de mmoire supplmentaire! -! (-) Temps daccs aux blocs libres dune taille # k pour allocation / libration! -! (-) Libration : calcul dadresses pour fusionner! ! Vecteur de bits! -! (+) clatement / fusion automatiques! -! (-) recherche de k bits conscutifs! -! (-) Taille du vecteur peut tre importante!
!
l! l! l! 0! 0! 0! 0! 0! l! l! 0!

!
l!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

17!

Allocation en zones contigus de taille variable (stratgies dallocation) !


!! First-Fit: liste non ordonne, ou ordonne par adresse! !! Best-Fit: liste ordonne par tailles croissantes! !! Worst-Fit: liste ordonne par tailles dcroissantes! !! Exemple:!

exprime en nombre de blocs!


!! ! !!

!On suppose que chaque processus demande une zone de taille

!! !

Etat courant: P1: 2 blocs, P2: 1 bloc, P3: 3 blocs, P5: 1 bloc!

!!

P1! P1!

P1! P1!

P2!

P3! P3!

P3! P3!

P3! P3!

P5! P5!

P2 libre 1 bloc! !

P4 demande 1 bloc! !

P1!

P1!

P3!

P3!

P3! BF!

P5!

FF/WF!
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

18!

Allocation en zones contigus de taille variable (conclusion) !

!! En gnral, First-Fit et Best-Fit meilleurs que Worst-

Fit.!
!! Globalement :!

(+) Simplicit! (+) Pas de fragmentation interne! (-) Fragmentation externe ! (-) Temps de gestion des fusions / clatements!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

19!

Allocation en zones contigus de tailles variables contrles ! Zones de tailles variables contrles!
! OS! P1! P2! P3!
reprsentation de la mmoire centrale!

Objectif = acclrer les temps de gestion des fusions / clatements en utilisant une gestion par subdivision
!!Allocation : si aucun bloc libre de taille approximativement gale

la taille demande, clater un bloc libre en deux sous-blocs de tailles contraintes


!!Libration : fusionner ventuellement le bloc libr avec le(s)

bloc(s) contigu(s) algorithmes


F. Boyer, UJF!

!!Rgles dclatement et rgles de fusionnement ! diffrents


Cours de Systmes dExploitation RICM4!
20!

Allocation en zones contigus de tailles variables contrles !

Algorithme Buddy: ! clatement dun bloc en deux sous-blocs de taille gale! (blocs siamois) : 2 k = 2 k-1 + 2 k-1! !
32! 48! (B1)! 56!

(B2)! 64!

2 n-1! Origine o!
o+2 n-1!

2 n-2!

2 n-3!

2 n-3!
o+2n!

o+2 n-1+2n-2!

Adresse du siamois( bloc de taille 2 k et d'adresse a) = a XOR 2 k! ! 48 XOR 8 = 56!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

21!

Allocation en zones contigus de tailles variables contrles ! o! 2 n! o! 2 n-1! o! 2 n-1! o! 2 n-1!


F. Boyer, UJF!

o+2n!

o+2 n-1!

o+2n!

2 n-1!
o+2 n-1! o+2n!

2 n-2!
o+2 n-1!

2 n-2!
o+2n!

o+2 n-1+2n-2!

2 n-2!

2 n-3!

2 n-3!
22!

Cours de Systmes dExploitation RICM4!

Algorithme buddy !

!! Allocation et libration rapides (pas de parcours, le calcul dadresse

du bloc prcdent / suivant est direct)

!! Fragmentation interne limite (tailles arrondies une puissance de 2) !! Fragmentation externe (limite)

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

23!

Allocation en zones contigus (remarques gnrales) !

!! Fragmentation externe! !! Quelque soit lalgorithme utilis, il est possible que la

place libre devienne insufsante :!


"! Librer une zone en renvoyant en mmoire secondaire les donnes quelle contient! "! Rorganiser entirement lespace mmoire (compactage)! "! Utiliser un ramasse-miettes dans le cas ou des blocs allous ont pu devenir inaccessibles!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

24!

Allocation en zones non contigus de taille xe (pagination) !

!! Mmoire logique (image mmoire) dun processus

trononne en zones non contigus de taille xe (pages)!


!! Objectif : pas de fragmentation externe et

fragmentation interne minimale (dernire page)! ! ! !


p0! p1!

Mmoire logique de Pi (suite de pages)

pn!

b0!

b1!

Mmoire physique (suite de blocs)


Cours de Systmes dExploitation RICM4!

bk!

F. Boyer, UJF!

25!

Allocation en zones non contigus de taille xe (pagination) !


!! Accs

adresse logique x!

! Comment savoir o est x dans la mmoire physique ?! ! ! Adresse logique x!

! ! !

p0!

p1!

pn!

Mmoire logique de Pi

b0!

b1!

Mmoire physique

bk!

!! Dterminer quelle page est associe l'adresse x (pi)! !! Dterminer quel endroit se trouve x dans la page (dplacement)! !! Dterminer dans quel bloc est charge cette page (bj)!

F. Boyer, UJF!

! !

Cours de Systmes dExploitation RICM4!

26!

Pagination : adressage !

Dcomposition d'une adresse logique ! !!Mmoire logique de 2 m octets ! !!Pages de 2 n octets ! !!Adresses sur m bits! ! !
No page sur m-n bits de poids fort! Dplacement sur n bits faibles!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

27!

Pagination : partage de la mmoire entre diffrents processus !

p0!

p1!

pn !

Pi:
p0! p1!

b1! b2!

b4!

b5! b5!

!
pm !

Pj:

Mmoires logiques des processus (suites de pages)!

p2,i
b0! b1!

p2,j
b2!

p3,i Mmoire physique(suite de blocs)


bk!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

28!

Pagination : implantation !
p0! p1!

Pi: Pj:

b1! b2!

b4!

b5! b5!
Table globale

! !

Table des pages de Pi ! bloc! page! 2! 1! 3! 5! 4! 5! bloc! 0! 1! 2! 3! 4! 5!

proc! cr! j! i! i! i! i,j! x! x!

mod! x!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

29!

Pagination : implantation de la table des pages !

!! Par un ensemble de registres spcialiss changs

chaque commutation de processus (solution rapide)! !


!! En mmoire avec un registre pointeur de la table des

pages (solution lente)!


!! En utilisant des registres associatifs (cache

dadresses hardware)! !

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

30!

Implantation de la table des pages !

A. Sylberschatz! F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

31!

Implantation de la table des pages avec TLB !

A. Sylberschatz! F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

32!

Pagination : techniques alternatives !

!! Techniques alternatives de gestion des tables de

pages :!
"! Tables des pages plusieurs niveaux! "! Mmoires associatives! "! Tables inverses!

" Le problme est de limiter lespace consomm par la table des pages!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

33!

Pagination : table des pages 2 niveaux (exemple) !

Une page haute! Une page basse!

A. Sylberschatz!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

34!

Pagination : table des pages 2 niveaux (exemple) !

!! Adresse logique : (no page, dplacement)!

! !no page basse sur 20 bits, dpl. sur 12 bits! !! Table des pages de 2 20 entres occupe 4 Mo (2 10 pages) ! !! Chaque page contient 2 10 entres! !! No page basse :! no page haute sur 10 bits, index sur 10 bits! ! Page number P | Ih 10 10 | Page offset db 12

P= index dans la table des pages hautes


F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

35!

Pagination : table des pages 2 niveaux (exemple) !


Une page de la table des pages hautes

P Ih

db 0! @h! Ih! 210 210 - 1 ! Table des pages hautes 1! @b! @h!

Une page en mmoire

@b! db!
Adresse accde

Table des pages basses

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

36!

Pagination la demande !

!! Placement partiel des images mmoire des

processus!
!! Pages charges au moment de leur accs

(si ncessaire)!
!! Pages non charges stockes sur disque

(mmoire de rserve)! " Gestion du dfaut de page! !


!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

37!

Pagination la demande !

!! Matriel ncessaire!
"! Un bit de prsence dans la table des pages! "! Un disque rapide! !

!! Gestion de dfauts de pages!


"! Stopper temporairement linstruction! "! Trouver un bloc libre (algorithme de remplacement)! "! Charger la page! "! Relancer linstruction! !
F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

38!

Algorithmes de remplacement !
!! Remplacement!
"! Slectionner une page victime! "! Enregistrer la page victime dans le disque si ncessaire! "! Modier la table des pages! !

!! Algorithmes de slection de la page librer!


"! OPTIMUM! "! RANDOM! "! LRU (Last-Recently Used)! "! FIFO! "! Seconde chance!

! algorithmes classiques de gestion de cache!


F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

39!

Principe de localit !

!! Proprit des 90%-10% !


"! Un programme passe 90% de son temps excuter seulement 10% de ses instructions!

!! Proprits de localit :!
"! Temporelle! "! Spatiale !

!! Proprits exploites pour !


"! Algorithmes de remplacement! "! Algorithmes de pr-chargement! !

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

40!

Exemple algorithme Optimum !

b1! 7! 7 7 ! 2! 2! 2! 2! 2! 2! 2! 2! 2! 2! 2! 2! 2! 2! 7! 7! 7! ! b2! b3! 0 0! 0! 0! 0! 0! 4! 4! 4! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 1! 1! 1! 3! 3! 3! 3! 3! 3! 3! 3! 1! 1! 1! 1! 1! 1! 1!

Pages adresses : ! !7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1! ! Mmoire de 3 blocs : ! !

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

41!

Exemple FIFO !

b1! 7! 7 7 ! 2! 2! 2! 2! 4! 4! 4! 0! 0! 0! 0! 0! 0! 0! 7! 7! 7! ! b2! b3! 0 0! 0! 0! 3! 3! 3! 2! 2! 2! 2! 2! 1! 1! 1! 1! 1! 0! 0! 1! 1! 1! 1! 0! 0! 0! 3! 3! 3! 3! 3! 2! 2! 2! 2! 2! 1!

Pages adresses : ! !7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1! ! Mmoire de 3 blocs :! !

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

42!

Exemple LRU !

b1! 7! 7 7 ! 2! 2! 2! 2! 4! 4! 4! 0! 0! 0! 1! 1! 1! 1! 1! 1! 1! ! b2! b3! 0 0! 0! 0! 0! 0! 0! 0! 3! 3! 3! 3! 3! 3! 0! 0! 0! 0! 0! 1! 1! 1! 3! 3! 3! 2! 2! 2! 2! 2! 2! 2! 2! 2! 7! 7! 7!

Pages adresses : ! !7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1! ! Mmoire de 3 blocs :! !

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

43!

Algorithme LRU (implantation) !


!! Page ! date (tableau de n bits) ! !! Accs (page) ! dcalage vers la droite de toutes les

dates (1 pour la page accde, 0 pour les autres)!


!! Date min = page la moins rcemment accde !!
Accs! Date Page0! 000! 100! 010! 001! 000! Date Page1! 000! 000! 100! 010! 101! Date Page2! 000! 000! 000! 100! 010! Ordre pages /date ! P0,P1=P2! P1,P0,P2! P2,P1,P0! P1,P2,P0!
44!

Page 0! Page 1! Page 2! Page 1!


F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

Classement des algorithmes !

!! OPTIMUM! !! LRU! !! Seconde

Chance!
!! FIFO! !! RANDOM!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

45!

Remplacement global !

!! La page dcharge est prise un processus

quelconque!
!! Trashing du systme si :!
"! Trop de processus prsents en mmoire centrale! "! Les processus nont pas assez de place chacun! "! Ils font beaucoup de fautes de pages ! diminution du taux dutilisation du processeur (attente des E/S)! "! Diminution du taux dutilisation du processeur ! augmentation du nombre de processus en mmoire centrale! "! etc!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

46!

Remplacement local !

!! La page dcharger est prise au processus qui a fait la faute! !! Allocation dun nombre de blocs constant un processus! !! Dtermination du nombre de blocs : notion de working set!
"! Indices des pages adresses lors des K derniers accs! "! Exemple : ! ! !.. 2 6 1 5 7 7 7 7 5 1 3 4 4 4 3 4 3 4 4 4 1! ! ! ! K=10 WS(t1)={1,2,5,6,7}
t1 !

WS(t2) = {3,4}!

t2 !

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

47!

Optimisation par pr-chargement de pages !

!! Une page peut tre charge sans quelle soit

demande!
!! Principe de localit spatiale! !! Swapping-in dun processus !

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

48!

Optimisation par lusage dun pool de blocs libres !

!! Acclre le traitement dun dfaut de page!

!
!! Libration de blocs ds que le nombre de blocs libres

est proche dun seuil donn (dmon)! !

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

49!

Mmoire virtuelle !

!! Mmoire logique beaucoup plus grande que la

mmoire physique!
!! Taille de la mmoire virtuelle dtermine par la taille

des adresses !
"! Adresses sur n bits ! Mmoire de 2 n bits!

!! Requiert la pagination la demande! !! Fournit une mmoire virtuelle par processus!

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

50!

Mmoire virtuelle !
Mmoire virtuelles des processus P1..Pn page 0 Mmoire physique
bloc

2k-1

F. Boyer, UJF!

Cours de Systmes dExploitation RICM4!

51!

Vous aimerez peut-être aussi