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 © Rim Moussa 2005-2006.

Présentations similaires


Présentation au sujet: "Chapitre 4 Gestion de la Mémoire © Rim Moussa 2005-2006."— Transcription de la présentation:

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

2 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 dImplantation 8.Segmentation

3 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 lhié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 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 dutilisation du CPU mais requiert un bon partitionnement de la mémoire. –A linitialisation 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 dattente par partition –(a) une file dattente pour toutes les partitions –(b)

5 5 …Multiprogrammation avec des partitions de taille fixe File vide File pleine

6 6 … Modélisation de la Multiprogram° Degree of multiprogramming un processus passe une fraction p en attente dE/Ss la probabilité que n processus indépendants en mémoire soient en attente dE/S est p n Taux dutilisation du CPU = 1- p n

7 7 …Ex. dapplication Un ordinateur dispose de 32Mo de mémoire. LOS occupe 16Mo Un processus utilisateur nécessite 4Mo Déterminer le niveau de multiprogrammation max? Déterminer le taux dutilisation de CPU, si les processus sont indépendants et quun processus passe 80% de son temps en attente dE/Ss ? De combien améliore-t-on ce taux si on ajoute 16Mo de mémoire?

8 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 9 … va-et-vient Comment conserver un trace dutilisation de la mémoire? –La mémoire est divisée en unités dallocation Tableau de bits –0 si lunité est vide, 1 si lunité est occupée –Linconvénient cest la complexité de recherche dune séquence de k unités vides dans le tableau de bits.

10 10 … va-et-vient Liste chaînée –4 champs: P (processus) ou T (trou, hole) Adresse de départ Taille en nombre dunités dallocation 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 sest arrêté la dernière fois), Algo du meilleur ajustement …

11 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 dutilisation en mémoire et le reste sur disque. –Quand un programme attend le chargement dune partie de lui-même il est en attente dE/S Pagination –Les adresses générées par un programme sappellent des adresses virtuelles, et forment lespace dadressage virtuel. –La MMU (Memory Management Unit, unité de gestion mémoire) fait la correspondance entre les adresses virtuelles et les adresses physiques.

12 12 … Pagination Espace dadressage virtuel est divisé en pages. Les unités correspondantes dans la mémoire physique sont appelées cadres de pages (page frame).

13 13 … Pagination Table de Pages Processeur 16 bits 2 16 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 14 … Pagination Les mémoires sont composées dun nombre de bits égal à une puissance de 2. 1Ko = 2 10 octets (1,024) 1Mo = 2 20 octets (1,048,576) 1Go = 2 30 octets (1,073,741,824) Déterminer ladresse physique calculée par la MMU: –adresse virtuelle 0 –adresse virtuelle 8192 Défaut de Page: –La page virtuelle 8 commence à –MOV REG, correspond à loctet 12 de la page virtuelle 8 –La MMU note que la page est absente

15 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 16 … Tables de pages multiniveaux Processeur 32bits, page de 4Ko nombre de pages = 2 32 / 2 12 = 2 20 pages: une table de pages de plus que un million dentrées! Sans oublier que chaque processus a son propre espace dadressage 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 17 … Tables de pages multiniveaux Second-level page tables A quoi correspond ladresse virtuelle sur 32 bits 0x ? Exple: une adresse virtuelle sur 32 bits est partitionnée en 3 champs

18 18 … Tables de pages inversées Cas dun processeur 64 bits, 256Ko de mémoire et page de 4Ko

19 19 … Structure dune 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 dinhiber le cache pour une page.

20 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 dinstructions 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 dimplanter cet algo.

21 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 leffacement du bit R de la classe 3. –Lalgo NRU vire une page au hasard dans la + basse classe

22 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 –Cest lalgo 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 23 … Algo de lhorloge Algo de lhorloge –Cest lalgo 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 24 … Algo LRU (Least Recently Used) Principe –Cet algo est fondé sur lobservation 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 na 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 25 … Algo LRU – pages référencées dans lordre 0,1,2,3,2,1,0,3,2,3

26 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: Dabord, le compteur est décalé dun bit à droite Puis, le bit R est ajouté au bit de poids le plus fort (de gauche) –Une page qui na pas été référencée depuis 4 tops dhorloge a 4 zéros dans son compteur, et aura une + petite valeur quune page qui na pas été référencée depuis 3 tops dhorloge. –Défaut de page: évincer la page dont le compteur est le + petit

27 27 … Algo de vieillissement

28 28 … Algo de vieillissement vs LRU Différence 1: –Slide 27 –(e)>> les pages 3 ( ) et 5 ( ) nont pas été référencées depuis 2 tops dhorloge –LRU: aucun moyen de distinguer les 2 pages car on ne mémorise quun seul bit/ intervalle de temps –Algo. Vieillissement: la page 3 est virée Différence 2: –Le compteur de lalgo de vieillissement a un nombre fini de bits (8 dans lexple), 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 dhorloge qui se produisent toutes les 20ms, une page non référencée depuis 160ms nest pas très utilisée

29 29 … Algo « ensemble de travail» Pagination à la demande –Les pages sont chargées à la demande et non à lavance beaucoup de défauts de page au début Ensemble de Travail –Cest lensemble 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 lensemble de travail de chaque processus et pré-charge en mémoire lensemble de travail du processus –En cas de défaut de page, évincer une page qui à lensemble de travail du processus

30 30 … Algo « ensemble de travail»

31 31 … Algo WSClock –Working Set Clock (ensemble de travail + horloge) –Optimisation de lalgo basé sur lens. 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 dune page. Si R = 0 et age > et M = 0, càd la page à lens de travail cadre de page à libérer Si R = 0 et age > et M = 1, càd la page à lens de travail une écriture sur disque de la page est ordonnancée, le pointeur avance dune page. Ainsi, même si le pointeur revient à son point de départ, lécriture serait terminée.

32 32 … Algo WSClock


Télécharger ppt "Chapitre 4 Gestion de la Mémoire © Rim Moussa 2005-2006."

Présentations similaires


Annonces Google