La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapitre 4 Gestion de la Mémoire

Présentations similaires


Présentation au sujet: "Chapitre 4 Gestion de la Mémoire"— Transcription de la présentation:

1 Chapitre 4 Gestion de la Mémoire
© Rim Moussa

2 Plan du chapitre Introduction Gestion Élémentaire de la Mémoire
Va-et-vient (swapping) Mémoire Virtuelle Algo. de Replacements de Pages Conception des Systèmes de Pagination Problèmes d’Implantation 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: Multiprogrammation:
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°
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 Degree of multiprogramming

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 Tableau de bits
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 Pagination
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 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 8192 - 12287 4096 - 8191 4095

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, correspond à l’octet 12 de la page virtuelle 8 La MMU note que la page est absente

15 … Tables de pages 3 bits pour le num cadre de page
4 bits pour le num page virtuelle 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 Exple: une adresse virtuelle sur 32 bits est partitionnée en 3 champs A quoi correspond l’adresse virtuelle sur 32 bits 0x ?

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)
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
Page chargée récemment Page chargée en premier En cas de défaut de page et A tel que R = 1 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

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 – pages référencées dans l’ordre 0,1,2,3,2,1,0,3,2,3
… 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 ( ) et 5 ( ) 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


Télécharger ppt "Chapitre 4 Gestion de la Mémoire"

Présentations similaires


Annonces Google