chapitre 4 gestion de la mémoire © rim moussa 2005-2006
TRANSCRIPT
Chapitre 4Gestion de la Mémoire
© Rim Moussa
2005-2006
2
Plan du chapitre
1. Introduction
2. Gestion Élémentaire de la Mémoire
3. Va-et-vient (swapping)
4. Mémoire Virtuelle
5. Algo. de Replacements de Pages
6. Conception des Systèmes de Pagination
7. Problèmes d’Implantation
8. Segmentation
3
1. Introduction Loi de Moore: les capacités de stockage doublent en
taille tous les 18 mois.
Loi de Parkinson: les programmes grossissent en
taille aussi vite que la mémoire.
On aura toujours besoin de gestionnaires de
mémoires performants.
Le Gestionnaire de la Mémoire gère l’hiérarchie de
mémoire (allouer, libérer, transfert … ) – Mémoire du cache: volatile, rapide, chère
– Mémoire centrale: volatile, moins rapide, moins chère
– Mémoire de masse –disque: non volatile, lente, pas chère
4
2. Gestion Élémentaire Monoprogrammation:
– Mémoire réservée au SE
– Mémoire réservée au seul processus en exécution.
Multiprogrammation:– La Multiprogrammation améliore le taux d’utilisation du
CPU mais requiert un bon partitionnement de la mémoire.
– A l’initialisation du système, la mémoire est divisée en n partitions de taille fixe.
– De préférence, des partitions inégales en taille.
– Comment allouer les processus aux partitions?
• une file d’attente par partition –(a)
• une file d’attente pour toutes les partitions –(b)
5
…Multiprogrammation avec des partitions de taille fixe
File vide
File pleine
6
… Modélisation de la Multiprogram°
Degree of multiprogramming
un processus passe une fraction p en attente d’E/Ss
la probabilité que n processus indépendants en mémoire soient en attente d’E/S est pn Taux d’utilisation du CPU = 1- pn
7
…Ex. d’application
Un ordinateur dispose de 32Mo de mémoire.
L’OS occupe 16Mo
Un processus utilisateur nécessite 4Mo
Déterminer le niveau de multiprogrammation max?
Déterminer le taux d’utilisation de CPU, si les
processus sont indépendants et qu’un processus
passe 80% de son temps en attente d’E/Ss ?
De combien améliore-t-on ce taux si on ajoute 16Mo
de mémoire?
8
3. Le va-et-vient (swapping) Stratégie pour pallier les pénuries en mémoire.
Elle considère chaque processus dans son
intégralité: – Le processus est dans son intégralité en mémoire
– ou est supprimé intégralement de la mémoire
9
… va-et-vient Comment conserver un trace d’utilisation de la mémoire?
– La mémoire est divisée en unités d’allocation
Tableau de bits– 0 si l’unité est vide, 1 si l’unité est occupée
– L’inconvénient c’est la complexité de recherche d’une séquence de
k unités vides dans le tableau de bits.
10
… va-et-vient Liste chaînée
– 4 champs:
• P (processus) ou T (trou, hole)
• Adresse de départ
• Taille en nombre d’unités d’allocation
• Un pointeur vers l’élément suivant de la liste
– Gestion de la liste: fusion de trous, MAJ de champs d’éléments …
– Algo pour allouer de la mémoire à un nouveau processus: Algo de
la 1ére zone libre, Algo de la zone libre suivante (débute la
recherche là où il s‘est arrêté la dernière fois), Algo du meilleur
ajustement …
11
4. La Mémoire Virtuelle Principe
– Taille programme + données + pile peut être > Taille mémoire disponible Le SE conserve les parties en cours d’utilisation en mémoire et le reste sur disque.
– Quand un programme attend le chargement d’une partie de lui-même il est en attente d’E/S
Pagination– Les adresses générées par un programme s’appellent des
adresses virtuelles, et forment l’espace d’adressage virtuel.
– La MMU (Memory Management Unit, unité de gestion mémoire) fait la correspondance entre les adresses virtuelles et les adresses physiques.
12
… Pagination
Espace d’adressage virtuel est divisé en pages. Les unités correspondantes dans la mémoire physique sont appelées cadres de pages (page frame).
13
… Pagination
8192 - 12287
4096 - 8191
0 - 4095
Table de Pages Processeur 16
bits 216 adresses
virtuelles et 64Ko
Mémoire
physique de 32Ko
Page de 4Ko
Nbr pages
virtuelles = 64/4 = 16
Nbr cadres de
pages = 32/4 = 8
14
… Pagination Les mémoires sont composées d’un nombre de bits
égal à une puissance de 2.
1Ko = 210 octets (1,024)
1Mo = 220 octets (1,048,576)
1Go = 230 octets (1,073,741,824) Déterminer l’adresse physique calculée par la
MMU:– adresse virtuelle 0
– adresse virtuelle 8192
Défaut de Page:– La page virtuelle 8 commence à 32768
– MOV REG, 32780 correspond à l’octet 12 de la page virtuelle 8
– La MMU note que la page est absente
15
… Tables de pages
4 bits pour le num page virtuelle
3 bits pour le num cadre
de page
page de 4Ko (12 bits)
16
… Tables de pages multiniveaux Processeur 32bits, page de 4Ko nombre de
pages = 232/ 212 = 220 pages: une table de pages de
plus que un million d’entrées!
Sans oublier que chaque processus a son propre
espace d’adressage et donc sa propre table de
pages!
Tables de pages multiniveaux: On ne garde pas en
mémoire toutes les tables de pages
Tables de pages inversées
Mémoire Associative ou TLB (Translation Lookaside
Buffer): une petite table des pages les plus référencées
17
… Tables de pages multiniveaux Second-level page tables
A quoi correspond l’adresse
virtuelle sur 32 bits 0x00403004 ?
Exple: une adresse virtuelle sur 32 bits est partitionnée en 3 champs
18
… Tables de pages inversées Cas d’un processeur 64 bits, 256Ko de mémoire et page de 4Ko
19
… Structure d’une entrée de la Table des pages Présent/ Absent: 1 bit, indique si la page est en mémoire ou non.
Protection: 1 bit (0: RW, 1: R) ou 3 bits (RWX).
Modifié: 1 bit, une page modifiée doit être écrite sur le disque.
Référencé: 1 bit, chaque fois que la page est référencée (lue ou écrite) il
est mis à 1.
Cache inhibé: 1 bit, permet d’inhiber le cache pour une page.
20
5. Algo de remplacement de pages Défaut de page
– Chercher une page à évincer, pour faire de la place pour la page à charger en mémoire.
– Si le bit M de la page à évincer = 1, la page doit être sauvée sur disque.
Algo. optimal– Question de performances, afin d’éviter le rechargement
de pages, la page à évincer doit être peu utilisée.
– Étiqueter chaque page avec le nombre d’instructions qui seront exécutées avant que cette page ne soit référencée Evincer la page dont l’étiquette est la + grande (on repousse ainsi le défaut de page aussi tard que possible)
– Cet algo est irréalisable, le SE ne sait pas si la page serait référencée ou pas ultérieurement. Par contre, pour une 2éme exécution, il est possible d’implanter cet algo.
21
… Algo NRU (Not Recently Used) Principe
– R 1, chaque fois que la page est lue ou écrite.
– M 1, chaque fois que la page est modifiée.
– A chaque interruption, R 0, afin de distinguer les pages récemment référencées.
Classes de pages• Classe 0: non référencée, non modifiée
• Classe 1: non référencée, modifiée
• Classe 2: référencée, non modifiée
• Classe 3: référencée, modifiée
La classe 1 est obtenue par conséq de l’effacement du bit R de la classe 3.
– L’algo NRU vire une page au hasard dans la + basse classe
22
… Algo FIFO (1st In, 1st out) Algo. FIFO
– Le SE conserve une liste de pages couramment en mémoire. En cas de défaut de page, la + ancienne étant en tête de liste est évincée.
(-) cet algo peut virer des pages importantes. En effet, la page la + ancienne peut être la page la + utilisée.
Algo. seconde chance – C’est l’algo FIFO modifié, tel que le bit R de la page la +
ancienne est inspecté,
– Si R = 1 de la page en tête de liste, la page est référencée, et est placée à la fin de la liste avec R 0 et un instant de chargement actualisé
– Si R = 0, page à virer (ancienne et non référencée).
(-) cet algo déplace constamment des pages de la liste.
23
… Algo de l’horloge
Algo de l’horloge– C’est l’algo de seconde chance avec une liste circulaire
(horloge) et un pointeur sur la page la + ancienne.
– Quand un défaut de page survient, la page pointée est examinée:• Si R = 0, la page est évincée
• Sinon, R 0, le pointeur avance vers la page suivante,
• Le processus se répète jusqu’à trouver une page avec R = 0
Page chargée en
premier
Page chargée
récemment
En cas de défaut de page et A tel
que R = 1
24
… Algo LRU (Least Recently Used) Principe
– Cet algo est fondé sur l’observation les pages les + référencées lors des dernières instructions seront probablement utilisées.
– Un défaut de page évince la page qui n’a pas été utilisée pendant le plus de temps.
Implantations– Compteur de 64 bits / cadre de page
• Un défaut de page examen de tous les compteurs de la table des pages à la recherche du plus petit compteur
– Matrice (n n), n cadres • Cellules initialisées à 0
• Quand une page k est référencée, tous les bits de la rangée k 1, tous les bits de la colonne k 0
• Un défaut de page évince la page dont la rangée est la + petite
25
… Algo LRU
– pages référencées dans l’ordre 0,1,2,3,2,1,0,3,2,3
26
… Algo de vieillissement Principe
– Cet algo nécessite un compteur/ page (init: 0) – A chaque interruption, le SE examine toutes les
pages en mémoire, et pour chaque page son bit R est ajouté à son compteur, comme suit:• D’abord, le compteur est décalé d’un bit à
droite• Puis, le bit R est ajouté au bit de poids le plus
fort (de gauche) – Une page qui n’a pas été référencée depuis 4
tops d’horloge a 4 zéros dans son compteur, et aura une + petite valeur qu’une page qui n’a pas été référencée depuis 3 tops d’horloge.
– Défaut de page: évincer la page dont le compteur est le + petit
27
… Algo de vieillissement
28
… Algo de vieillissement vs LRU Différence 1:
– Slide 27 –(e)>> les pages 3 (00100000) et 5 (00101000) n’ont pas été référencées depuis 2 tops d’horloge
– LRU: aucun moyen de distinguer les 2 pages car on ne mémorise qu’un seul bit/ intervalle de temps
– Algo. Vieillissement: la page 3 est virée Différence 2:
– Le compteur de l’algo de vieillissement a un nombre fini de bits (8 dans l’exple), on ne peut pas distinguer 2 pages ayant la même val du compteur.
– Dans la pratique un compteur sur 8 bits est suffisant pour des tops d’horloge qui se produisent toutes les 20ms, une page non référencée depuis 160ms n’est pas très utilisée
29
… Algo « ensemble de travail» Pagination à la demande
– Les pages sont chargées à la demande et non à l’avance beaucoup de défauts de page au début
Ensemble de Travail– C’est l’ensemble de pages exploitées par le
processus lors des k références en mémoire les + récentes
– Il est intéressant que le SE mémorise l’ensemble de travail de chaque processus et pré-charge en mémoire l’ensemble de travail du processus
– En cas de défaut de page, évincer une page qui à l’ensemble de travail du processus
30
… Algo « ensemble de travail»
31
… Algo WSClock – Working Set Clock (ensemble de travail + horloge)– Optimisation de l’algo basé sur l’ens. de travail, qui
nécessite le parcours de toute la table des pages à chaque défaut de page.
– Chaque entrée contient: le Temps de la dernière utilisation, le bit R et le bit M.
– A chaque défaut de page, la page pointée est examinée:• Si R = 1, càd la page a été utilisée pendant le top courant, R 0,
màj d temps et le pointeur avance d’une page.• Si R = 0 et age > et M = 0, càd la page à l’ens de travail
cadre de page à libérer• Si R = 0 et age > et M = 1, càd la page à l’ens de travail
une écriture sur disque de la page est ordonnancée, le pointeur avance d’une page. Ainsi, même si le pointeur revient à son point de départ, l’écriture serait terminée.
32
… Algo WSClock