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

1 Gestion de la mémoire Chapitre 3. 2 Dans ce chapitre nous verrons que, pour optimiser lutilisation de la mémoire, les programmes sont éparpillés en.

Présentations similaires


Présentation au sujet: "1 Gestion de la mémoire Chapitre 3. 2 Dans ce chapitre nous verrons que, pour optimiser lutilisation de la mémoire, les programmes sont éparpillés en."— Transcription de la présentation:

1 1 Gestion de la mémoire Chapitre 3

2 2 Dans ce chapitre nous verrons que, pour optimiser lutilisation de la mémoire, les programmes sont éparpillés en mémoire selon des méthodes différentes: Pagination, segmentation

3 3 Gestion de mémoire: objectifs n Optimisation de l utilisation de la mémoire principale = RAM n Les plus grand nombre possible de processus actifs doit y être gardé, de façon à optimiser le fonctionnement du système en multiprogrammation u garder le système le plus occupé possible, surtout lUCT u sadapter aux besoins de mémoire de l usager F allocation dynamique au besoin

4 4 Gestion de la mémoire: concepts dans ce chapitre n Adresse physique et adresse logique u mémoire physique et mémoire logique n Remplacement n Allocation contiguë u partitions fixes u variables n Pagination n Segmentation n Segmentation et pagination combinées n Groupes de paires (buddy systems)

5 5 Application de ces concepts n Pas tous les concepts de ce chapitre sont effectivement utilisés tels quels aujourdhui dans la gestion de mémoire centrale n Cependant plusieurs se retrouvent dans le domaine de la gestion de mémoires auxiliaires, surtout disques

6 6 Mémoire/Adresses physiques et logiques n Mémoire physique: u la mémoire principale RAM de la machine n Adresses physiques: les adresses de cette mémoire n Mémoire logique: lespace dadressage dun programme n Adresses logiques: les adresses dans cet espace n Il faut séparer ces concepts car normalement, les programmes sont à chaque fois chargés à des positions différentes dans la mémoire u Donc adresse physique adresse logique

7 7 Traduction adresses logiques adr. physiques MMU: unité de gestion de mémoire unité de traduction adresses (Memory Management Unit)

8 8 Définition des adresses logiques u une adresse logique est une adresse à une location de programme F par rapport au programme lui-même seulement F indépendante de la position du programme en mémoire physique

9 9 Vue de lusager n Normalement, nous avons plusieurs types dadressages p.ex. u les adresses du programmeur (noms symboliques) sont traduites au moment de la compilation dans des u adresses logiques u ces adresses sont traduites en adresses physiques après chargement du programme en mémoire par lunité de traduction adresses (MMU)

10 10 Liaison (Binding) dadresses logiques et physiques (instructions et données) n La liaison des adresses logiques aux adresses physiques peut être effectuée à des moments différents: u Compilation: quand ladresse physique est connue au moment de la compilation (rare) F p.ex. parties du SE u Chargement: quand ladresse physique où le progr est chargé est connue, les adresses logiques peuvent être traduites (rare aujourdhui) u Exécution: normalement, les adresses physiques ne sont connues quau moment de l exécution F p.ex. allocation dynamique

11 11 Aspects du chargement n Trouver de la mémoire libre pour un module de chargement: Icontiguë ou IInon contiguë n Traduire les adresses du programme et effectuer les liaisons par rapport aux adresses où le module est chargé

12 12 Chargement (pas contigu ici) et traduction dadresses Mémoire logique (programme compilé JUMP 328 Mémoire physique JUMP Autres programmes Alloc. de mém K

13 13 Chargement et liaison dynamique n Un processus exécutant peut avoir besoin de différents modules du programme en différents moments n Le chargement statique peut donc être inefficace n Il est mieux de charger les modules sur demande = dynamique u dll, dynamically linked libraries

14 14 Traduction dadresses logique physique n Dans les premiers systèmes, un programme était toujours lu aux mêmes adresses de mémoire n La multiprogrammation et lallocation dynamique ont engendré le besoin de lire un programme dans positions différentes n Au début, ceci était fait par le chargeur (loader) qui changeait les adresses avant de lancer l exécution n Aujourdhui, ceci est fait par le MMU au fur et à mesure que le programme est exécuté n Ceci ne cause pas dhausse de temps dexécution, car le MMU agit en parallèle avec autres fonctions dUCT u P.ex. lMMU peut préparer ladresse dune instruction en même temps que lUCT exécute linstruction précédente

15 15 Recouvrement ou overlay n Dans quelques systèmes surtout dans le passé), la permutation de modules (swapping) dun même programme pouvait être gérée par l usager

16 16 IAffectation contiguë de mémoire Affectation de tout le processus en un seul morceau en mémoire n Nous avons plusieurs programmes à exécuter n Nous pouvons les charger en mémoire les uns après les autres u le lieu où un programme est lu nest connu que au moment du chargement n Besoins de matériel: registres translation et registres bornes

17 17 Affectation contiguë de mémoire Nous avons ici 4 partitions pour des programmes - chacun est lu dans une seule zone de mémoire SE programme 1 disponible programme 2 programme 3

18 18 Registres bornes et translation dans MMU adresse de base de la partition où le programme en exécution se trouve adresse limite de la partition où le programme en exécution. se trouve

19 19 Partitions fixes Première organisation de lallocation contiguë n Mémoire principale subdivisée en régions distinctes: partitions n Les partitions sont soit de même taille ou de tailles inégales n Nimporte quel programme peut être affecté à une partition qui soit suffisamment grande

20 20 Algorithme de placement pour partitions fixes n Partitions de tailles inégales: utilisation de plusieurs queues u assigner chaque processus à la partition de la plus petite taille pouvant le contenir u 1 file par taille de partition u tente de minimiser la fragmentation interne u Problème: certaines files seront vides sil ny a pas de processus de cette taille (fragemantation externe)

21 21 Algorithme de placement pour partitions fixes n Partitions de tailles inégales: utilisation dune seule file u On choisit la plus petite partition libre pouvant contenir le prochain processus u le niveau de multiprogrammation augmente au profit de la fragmentation interne

22 22 Partitions fixes n Simple, mais... n Inefficacité de lutilisation de la mémoire: tout programme, si petit soit-il, doit occuper une partition entière. Il y a fragmentation interne. n Les partitions à tailles inégales atténue ces problèmes mais ils y demeurent...

23 23 Partitions dynamiques n Partitions en nombre et tailles variables n Chaque processus est alloué exactement la taille de mémoire requise n Probablement des trous inutilisables se formeront dans la mémoire: cest la fragmentation externe

24 24 Partitions dynamiques: exemple n (d) Il y a un trou de 64K après avoir chargé 3 processus: pas assez despace pour autre processus n Si tous les processus se bloquent (p.ex. attente dun événement), P2 peut être permuté et P4=128K peut être chargé. Swapped out

25 25 Partitions dynamiques: exemple n (e-f) P2 est suspendu, P4 est chargé. Un trou de =96K est créé (fragmentation externe) n (g-h) P1 se termine ou il est suspendu, P2 est chargé à sa place: produisant un autre trou de =96K... n Nous avons 3 trous petits et probablement inutiles =256K de fragmentation externe n COMPRESSION pour en faire un seul trou de 256K

26 26 Technique dallocation de la mémoire Avant dimplanter une technique de gestion de la mémoire centrale par va-et-vient, il est nécessaire de connaître son état : les zones libres et occupées; de disposer dune stratégie dallocation et enfin de procédures de libération. Les techniques que nous allons décrire servent de base au va-et-vient; on les met aussi en œuvre dans le cas de la multiprogrammation simple où plusieurs processus sont chargés en mémoire et conservés jusquà la fin de leur exécution.

27 27 État de la mémoire n Le système garde la trace des emplacements occupés de la mémoire par lintermédiaire : u Dne table de bits ou bien u Dune liste chaînée. La mémoire étant découpée en unités, en blocs, dallocation

28 28 Tables de bits On peut conserver létat des blocs de mémoire grâce à une table de bits. Les unités libres étant notées par 0 et ceux occupées par un 1. (ou linverse). La technique des tables de bits est simple à implanter, mais elle est peu utilisée. On peut faire la remarque suivante : plus lunité dallocation est petite, moins on a de pertes lors des allocations, mais en revanche, plus cette table occupe de place en mémoire.

29 29 Listes chaînées On peut représenter la mémoire par une liste chaînée de structures dont les membres sont : F le type (libre ou occupé), F ladresse de début, F la longueur, et F un pointeur sur lélément suivant On peut légèrement modifier ce schéma en prenant deux listes : lune pour les processus et lautre pour les zones libres.

30 30 Algorithmes de Placement n pour décider de lemplacement du prochain processus n But: réduire lutilisation de la compression (prend du temps...) n Choix possibles: u Best-fit: choisir lemplacement dont la taille est la plus proche u First-fit: choisir le 1er emplacement à partir du début u Worst-fit: choisir lemplacement dont la taille est la plus loin Worst Fit

31 31 Algorithmes de placement: commentaires n Quel est le meilleur? u critère principal: diminuer la probabilité de situations où un processus ne peut pas être servi, même sil y a assez de mémoire... n La simulation montre quil ne vaut pas la peine dutiliser les algorithmes les plus complexes... donc first fit n Best-fit: cherche le plus petit bloc possible: lespace restant est le plus petit possible u la mémoire se remplit de trous trop petits pour contenir un programme n Worst-fit: les allocations se feront souvent à la fin de la mémoire

32 32 Fragmentation: mémoire non utilisée n Un problème majeur dans laffectation contiguë: u Il y a assez despace pour exécuter un programme, mais il est fragmenté de façon non contiguë F externe: lespace inutilisé est entre partitions F interne: lespace inutilisé est dans les partitions

33 33 Compaction n Une solution pour la fragmentation externe n Les programmes sont déplacés en mémoire de façon à réduire à 1 seul grand trou plusieurs petits trous disponibles n Effectuée quand un programme qui demande dêtre exécuté ne trouve pas une partition assez grande, mais sa taille est plus petite que la fragmentation externe existante n Désavantages: u temps de transfert programmes u besoin de rétablir tous les liens entre adresses de différents programmes

34 34 Allocation non contiguë n A fin réduire le besoin de compression, le prochain pas est d`utiliser lallocation non contiguë u diviser un programme en morceaux et permettre l`allocation séparée de chaque morceau u les morceaux sont beaucoup plus petits que le programme entier et donc permettent une utilisation plus efficace de la mémoire F les petits trous peuvent être utilisés plus facilement n Il y a deux techniques de base pour faire ceci: la pagination et la segmentation u la segmentation utilise des parties de programme qui ont une valeur logique (des modules) u la pagination utilise des parties de programme arbitraires (morcellement du programmes en pages de longueur fixe). u elles peuvent être combinées n Je trouve que la segmentation est plus naturelle, donc je commence par celle-ci

35 35 Les segments comme unités dalloc mémoire espace usagermémoire physique Étant donné que les segments sont plus petits que les programmes entiers, cette technique implique moins de fragmentation (qui est externe dans ce cas)

36 36 Mécanisme pour la segmentation n Un tableau contient ladresse de début de tous les segments dans un processus n Chaque adresse dans un segment est ajoutée à l adresse de début du segment par la MMU tableau de segments mémoire physique Adr de 2 Adr de 1 Adr de 0 Adr de 3 segment courant

37 37 Détails n Ladresse logique consiste d une paire: où décalage est l adresse dans le segment n le tableau des segments contient: descripteurs de segments u adresse de base u longueur du segment u Infos de protection n Dans le PBC du processus il y aura un pointeur à ladresse en mémoire du tableau des segments n Il y aura aussi là dedans le nombre de segments dans le processus n Au moment de la commutation de contexte, ces infos seront chargées dans les registres appropriés dUCT

38 38 emacs VI 72773

39 39 Traduction d`adresses dans la segmentation Aussi, si d > longueur: erreur! VI } d Segment 0

40 40 Partage de segments: le segment 0 est partagé P.ex: DLL utilisé par plus usagers

41 41 Segmentation et protection n Chaque entrée dans la table des segments peut contenir des infos de protection: u longueur du segment u privilèges de l`usager sur le segment: lecture, écriture, exécution F Si au moment du calcul de ladresse on trouve que lusager na pas droit daccès interruption F ces infos peuvent donc varier dun usager à autre, par rapport au même segment! limitebaseread, write, execute?

42 42 Évaluation de la segmentation simple n Avantages: lunité dallocation de mémoire (segment) est u plus petite que le programme entier u une entité logique connue par le programmeur u les segments peuvent changer de place en mémoire u la protection et le partage de segments sont aisés (en principe) n Désavantage: le problème des partitions dynamiques: u La fragmentation externe nest pas éliminée: F trous en mémoire, compression? n Une autre solution est d`essayer à simplifier le mécanisme en utilisant unités d`allocation mémoire de tailles égales F PAGINATION

43 43 Segmentation contre pagination n Le problème avec la segmentation est que lunité dallocation de mémoire (le segment) est de longueur variable n La pagination utilise des unités dallocation de mémoire fixe, éliminant donc ce problème

44 44 Pagination simple n La mémoire est partitionnée en petits morceaux de même taille: les pages physiques ou cadres ou frames n Chaque processus est aussi partitionné en petits morceaux de même taille appelés pages (logiques) n Les pages logiques dun processus peuvent donc être assignés aux cadres disponibles nimporte où en mémoire principale n Conséquences: u un processus peut être éparpillé nimporte où dans la mémoire physique. u la fragmentation externe est éliminée

45 45 Exemple de chargement de processus n Supposons que le processus B se termine ou est suspendu

46 46 Exemple de chargement de processus n Nous pouvons maintenant transférer en mémoire un processus D, qui demande 5 cadres u bien qu`il ny ait pas 5 cadres contigus disponibles n La fragmentation externe est limitée au cas que le nombre de pages disponibles nest pas suffisant pour exécuter un programme en attente n Seule la dernière page dun processus peut souffrir de fragmentation interne

47 47 Tableaux de pages

48 48 Tableaux de pages n Le SE doit maintenir une table de pages pour chaque processus n Chaque entrée dune table de pages contient le numéro de cadre où la page correspondante est physiquement localisée n Une table de pages est indexée par le numéro de la page afin dobtenir le numéro du cadre n Une liste de cadres disponibles est également maintenue (free frame list)

49 49 Adresse logique (pagination) n Ladresse logique est facilement traduite en adresse physique car la taille des pages est une puissance de 2 n Ladresse logique (n,d) est traduite à l adresse physique (k,d) en utilisant n comme index sur la table des pages et en le remplaçant par ladresse k trouvée u d ne change pas

50 50 Adresse logique (pagination) n Donc les pages sont invisibles au programmeur, compilateur ou assembleur (seule les adresses relatives sont employées) n La traduction dadresses au moment dexécution est facilement réalisable par le matériel: u ladresse logique (n,d) est traduite en une adresse physique (k,d) en indexant la table de pages et en annexant le même décalage d au numéro du cadre k n Un programme peut être exécuté sur différents matériels employant dimensions de pages différentes

51 51 Traduction dadresses: segmentation et pagination Tant dans le cas de la segmentation, que dans le cas de la pagination, nous ajoutons le décalage à ladresse du segment ou page. Mécanisme: matériel

52 52 Deux petits problèmes A) Considérez un système de 4 cadres ou pages physiques, chacune de 4 bytes. Les adresses sont de 4 bits, deux pour le numéro de page, et 2 pour le décalage. Le tableau de pages du processus en exécution est: Numéro de page Numéro de cadre Considérez l'adresse logique Quelle sera l'adresse physique correspondante? B) Considérez maintenant un système de segmentation, pas de pagination. Le tableau des segments du processus en exécution est comme suit: Segment number Base Considérez l'adresse logique (no deseg, décalage)= (01, 01), quelle est l'adresse physique?

53 53 Segmentation simple vs Pagination simple n La pagination se préoccupe seulement du problème du chargement, tandis que n La segmentation vise aussi le problème de la liaison n La segmentation est visible au programmeur mais la pagination ne lest pas n Le segment est une unité logique de protection et partage, tandis que la page ne lest pas u Donc la protection et le partage sont plus aisés dans la segmentation n La segmentation requiert un matériel plus complexe pour la traduction dadresses (addition au lieu d`enchaînement) n La segmentation souffre de fragmentation externe (partitions dynamiques) n La pagination produit de fragmentation interne, mais pas beaucoup (1/2 cadre par programme) n Heureusement, la segmentation et la pagination peuvent être combinées

54 54 Récapitulation sur la fragmentation n Partition fixes: fragmentation interne car les partitions ne peuvent pas être complètement utilisées + fragm. externe s`il y a des partitions non utilisées n Partitions dynamiques: fragmentation externe qui conduit au besoin de compression. n Segmentation sans pagination: pas de fragmentation interne, mais fragmentation externe à cause de segments de longueur différentes, stockés de façon contiguë (comme dans les partitions dynamiques) n Pagination: en moyenne, 1/2 cadre de fragmentation interne par processus

55 55 Mémoire Virtuelle n Pagination sur demande n Problèmes de performance n Algorithmes de remplacement de pages n Allocation de cadres de mémoire

56 56 Concepts importants n Localité des références n Mémoire virtuelle implémentée par va-et-vient des pages, mécanismes, défauts de pages n Adresses physiques et adresses logiques n Temps moyen daccès à la mémoire u Récriture ou non de pages sur mém secondaire n Algorithmes de remplacement pages: u OPT, LRU, FIFO, Horloge u Fonctionnement, comparaison n Écroulement, causes n Relation entre la dimension de pages et le nombre dinterruptions n Prépagination, post-nettoyage n Effets de lorganisation dun programme sur lefficacité de la pagination

57 57 La mémoire virtuelle est une application du concept de hiérarchie de mémoire n Cest intéressant de savoir que des concepts très semblables sappliquent aux mécanismes de la mémoire cache u Cependant dans ce cas les mécanismes sont surtout de matériel Mécanismes cache Mécanisme mémoire virtuelle RAM (flash)

58 58 La mémoire virtuelle n À fin quun programme soit exécuté, il ne doit pas nécessairement être tout en mémoire centrale! n Seulement les parties qui sont en exécution ont besoin dêtre en mémoire centrale n Les autres parties peuvent être sur mémoire secondaire (p.ex. disque), prêtes à être amenées en mémoire centrale sur demande u Mécanisme de va-et-vient ou swapping n Ceci rend possible lexécution de programmes beaucoup plus grands que la mémoire physique u Réalisant une mémoire virtuelle qui est plus grande que la mémoire physique

59 59 De la pagination et segmentation à la mémoire virtuelle n Un processus est constitué de morceaux (pages ou segments) ne nécessitant pas doccuper une région contiguë de la mémoire principale n Références à la mémoire sont traduites en adresses physiques au moment dexécution u Un processus peut être déplacé à différentes régions de la mémoire, aussi mémoire secondaire! n Donc: tous les morceaux dun processus ne nécessitent pas dêtre en mémoire principale durant lexécution u Lexécution peut continuer à condition que la prochaine instruction (ou donnée) est dans un morceau se trouvant en mémoire principale n La somme des mémoires logiques des processus en exécution peut donc excéder la mémoire physique disponible u Le concept de base de la mémoire virtuelle n Une image de tout lespace dadressage du processus est gardée en mémoire secondaire (normal. disque) doù les pages manquantes pourront être prises au besoin u Mécanisme de va-et-vient ou swapping

60 60 Mémoire virtuelle: résultat dun mécanisme qui combine la mémoire principale et les mémoires secondaires Tableau de pages

61 61 Localité et mémoire virtuelle n Principe de localité des références: les références à la mémoire dans un processus tendent à se regrouper n Donc: seule quelques pièces dun processus seront utilisées durant une petite période de temps (pièces: pages ou segments) n Il y a une bonne chance de deviner quelles seront les pièces demandées dans un avenir rapproché

62 62 Pages en RAM ou sur disque Page A en RAM et sur disque Page E seulement sur disque

63 63 Nouveau format du tableau des pages (la même idée peut être appliquée aux tableaux de segments) Adresse de la page Bit présent bit présent 1 si en RAM., 0 si sur Disque. Si la page est en RAM, ceci est une adr. de mém. principale sinon elle est une adresse de mémoire secondaire Au début, bit présent = 0 pour toutes les pages

64 64 Avantages du chargement partiel n Plus de processus peuvent être maintenus en exécution en mémoire u Car seules quelques pièces sont chargées pour chaque processus u Lusager est content, car il peut exécuter plusieurs processus et faire référence à des gros données sans avoir peur de remplir la mémoire centrale u Avec plus de processus en mémoire principale, il est plus probable davoir un processus dans létat prêt, meilleure utilisation dUCT n Plusieurs pages ou segments rarement utilisés nauront peut être pas besoin d`être chargés du tout n Il est maintenant possible dexécuter un ensemble de processus lorsque leur taille excède celle de la mémoire principale u Il est possible dutiliser plus de bits pour ladresse logique que le nombre de bits requis pour adresser la mémoire principale u Espace dadressage logique > > esp. d adressage physique

65 65 Mémoire Virtuelle n La mémoire logique est donc appelée mémoire virtuelle u Est maintenue en mémoire secondaire u Les pièces sont amenées en mémoire principale seulement quand nécessaire, sur demande n Pour une meilleure performance, la mémoire virtuelle se trouve souvent dans une région du disque qui est nest pas gérée par le système de fichiers u Mémoire va-et-vient, swap memory n La mémoire physique est celle qui est référencée par une adresse physique u Se trouve dans le RAM et cache

66 66 Mémoire virtuelle: le mécanisme de va-et-vient Tableau de pages

67 67 Exécution dun Processus n Le SE charge la mémoire principale de quelques pièces (seulement) du programme (incluant le point de départ) n Chaque entrée de la table de pages (ou segments) possède un bit présent qui indique si la page ou segment se trouve en mémoire principale n Lensemble résident (résident set) est la portion du processus se trouvant en mémoire principale n Une interruption est générée lorsque ladresse logique réfère à une pièce qui nest pas dans lensemble résident u défaut de pagination (page fault)

68 68 Exécution dune défaut de page: va-et-vient plus en détail

69 69 Séquence dévénements pour défaut de page n Trappe au SE: page demandée pas en RAM n Sauvegarder le PCB n Un autre processus peut maintenant avoir lUCT n SE trouve la page sur disque n lit la page du disque dans un cadre de mémoire libre (supposons qu`il y en un!) u exécuter les opérations disque nécessaires pour lire la page n Lunité disque a complété le transfert et interrompt lUCT u sauvegarder le PCB du processus sexécutant n SE met à jour le contenu du tableau des pages du processus qui a causé le défaut de page n Ce processus devient prêt=ready n la page désirée étant en mémoire, il pourra maintenant continuer

70 70 Quand la RAM est pleine mais nous avons besoin d`une page pas en RAM

71 71 La page victime...

72 72 Remplacement de pages n Quoi faire si un processus demande une nouvelle page et il ny a pas de cadres libres en RAM? n Il faudra choisir une page déjà en mémoire principale, appartenant au même ou à un autre processus, quil est possible denlever de la RAM u la victime! n Un cadre de mémoire sera donc rendu disponible n Évidemment, plusieurs cadres de mémoire ne peuvent pas être `victimisés`: u p.ex. cadres contenant le noyau du SE, tampons d E/S...

73 73 Bit de modification, dirty bit n La victime doit-elle être récrite en mémoire secondaire? n Seulement si elle a été changée depuis qu`elle a été amenée en mémoire principale u sinon, sa copie sur disque est encore fidèle n Bit de modif sur chaque descripteur de page indique si la page a été changée n Donc pour calculer le coût en temps dune référence à la mémoire il faut aussi considérer la probabilité quune page soit sale et le temps de récriture dans ce cas

74 74 Algorithmes de remplacement pages n Choisir la victime de façon à minimiser le taux de défaut de pages u pas évident!!! n Page dont nous n`aurons pas besoin dans le futur? impossible à savoir! n Page pas souvent utilisée? n Page qui a déjà séjournée longtemps en mémoire?? n etc.

75 75 Critères dévaluation des algorithmes n Les algorithmes de choix de pages à remplacer doivent être conçus de façon à minimiser le taux de défaut de pages à long terme n Mais il ne peuvent pas impliquer des temps de système excessifs, p.ex. mise à jour de tableaux en mémoire pour chaque accès de mémoire

76 76 Explication et évaluation des algorithmes n Nous allons expliquer et évaluer les algorithmes en utilisant la chaîne de référence pages suivante : 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2 n Attention: les séquences dutilisation pages ne sont pas aléatoires... n Lévaluation sera faite sur la base de cet exemple, évidemment pas suffisant pour en tirer des conclusions générales

77 77 Algorithmes pour la politique de remplacement n Lalgorithme optimal (OPT) choisit pour page à remplacer celle qui sera référencée le plus tardivement u produit le + petit nombre de défauts de page u impossible à réaliser (car il faut connaître le futur) mais sert de norme de comparaison pour les autres algorithmes: F Ordre chronologique dutilisation : la moins récemment utilisé Least recently used (LRU) F Ordre chronologique de chargement (FIFO) F Deuxième chance ou Horloge (Clock)

78 78 n Ordre chronologique dutilisation (LRU) n Remplace la page dont la dernière référence remonte au temps le plus lointain (le passé utilisé pour prédire le futur) u Il sagit de la page qui a le moins de chance dêtre référencée u performance presque aussi bonne que lalgorithme OPT Algorithmes pour la politique de remplacement

79 79 Comparaison OPT-LRU n Exemple: Un processus de 5 pages sìl n`y a que 3 pages physiques disponibles. n Dans cet exemple, OPT occasionne 3+3 défauts, LRU 3+4. Stallings

80 80 Note sur le comptage des défauts de page n Lorsque la mémoire principale est vide, chaque nouvelle page que nous ajoutons est le résultat dun défaut de page n Mais pour mieux comparer les algorithmes, il est utile de garder séparés ces défauts initiaux u car leur nombre est le même pour tous les algorithmes

81 81 Premier arrivé, premier sorti (FIFO) n Logique: une page qui a été longtemps en mémoire a eu sa chance pour sexécuter n Les cadres forment conceptuellement un tampon circulaire, débutant à la plus vieille page u Lorsque la mémoire est pleine, la plus vieille page est remplacée. Donc: first-in, first-out n Simple à mettre en application u tampon consulté et mis à jour seulement aux défauts de pages... n Mais: Une page fréquemment utilisée est souvent la plus vielle, elle sera remplacée par FIFO!

82 82 Comparaison de FIFO avec LRU n Contrairement à FIFO, LRU reconnaît que les pages 2 and 5 sont utilisées fréquemment n La performance de FIFO est moins bonne: u dans ce cas, LRU = 3+4, FIFO = 3+6

83 83 Problème conceptuel avec FIFO n Les premières pages amenées en mémoire sont souvent utiles pendant toute lexécution dun processus! u variables globales, programme principal, etc. n Ce qui montre un problème avec notre façon de comparer les méthodes sur la base dune séquence aléatoire: u les références aux pages dans un programme réel ne seront pas vraiment aléatoires

84 84 Lalgorithme de lhorloge (deuxième chance) n Semblable à FIFO, mais les cadres qui viennent dêtre utilisés (bit=1) ne sont pas remplacées (deuxième chance) u Les cadres forment conceptuellement un tampon circulaire u Lorsquune page est chargée dans un cadre, un pointeur pointe sur le prochain cadre du tampon n Pour chaque cadre du tampon, un bit utilisé est mis à 1 (par le matériel) lorsque: u une page y est nouvellement chargée u sa page est utilisée n Le prochain cadre du tampon à être remplacé sera le premier rencontré qui aura son bit utilisé = 0. u Durant cette recherche, tout bit utilisé = 1 rencontré sera mis à 0

85 85 Algorithme de lhorloge: un exemple La page 727 est chargée dans le cadre 4. La prochaine victime est 5, puis 8.

86 86 Comparaison: Horloge, FIFO et LRU n Astérisque indique que le bit utilisé est 1 n Lhorloge protège du remplacement les pages fréquemment utilisées en mettant à 1 le bit utilisé à chaque référence n LRU = 3+4, FIFO = 3+6, Horloge = 3+5

87 87 Matériel additionnel pour lalgorithme CLOCK n Chaque bloc de mémoire a un bit touché (use) n Quand le contenu du bloc est utilisé, le bit est mis à 1 par le matériel n Le SE regarde le bit u Sil est 0, la page peut être remplacée u Sil est 1, il le met à 0 1 Mémoire

88 88 Comparaison: Horloge, FIFO et LRU n Les simulations montrent que lhorloge est presque aussi performant que LRU u variantes de l`horloge ont été implantées dans des systèmes réels n Lorsque les pages candidates au remplacement sont locales au processus souffrant du défaut de page et que le nombre de cadres alloué est fixe, les expériences montrent que: u Si peu (6 à 8) de cadres sont alloués, le nombre de défaut de pages produit par FIFO est presque double de celui produit par LRU, et celui de CLOCK est entre les deux u Ce facteur sapproche de 1 lorsque plusieurs (plus de 12) cadres sont alloués. n Cependant le cas réel est de milliers et millions de pages et cadres, donc la différence n`est pas trop importante en pratique... u On peut tranquillement utiliser LRU

89 89 Algorithmes compteurs n Garder un compteur pour les références à chaque page n LFU: Least Frequently Used: remplacer la pages avec le plus petit compteur n MFU: Most Frequently Used: remplacer les pages bien usées pour donner une chance aux nouvelles n Ces algorithmes sont dimplantation couteuse et ne sont pas très utilisés

90 90 Anomalie de Belady n Pour quelques algorithmes, dans quelques cas il pourrait avoir plus de défauts avec plus de mémoire! u p. ex. FIFO, mais pas LRU, OPT, CLOCK


Télécharger ppt "1 Gestion de la mémoire Chapitre 3. 2 Dans ce chapitre nous verrons que, pour optimiser lutilisation de la mémoire, les programmes sont éparpillés en."

Présentations similaires


Annonces Google