36
Module Module Systèmes d’exploitation Systèmes d’exploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale École Normale Supérieure Supérieure Tétouan Tétouan Département Département Informatique Informatique 2008-2009

Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

Embed Size (px)

Citation preview

Page 1: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

ModuleModuleSystèmes d’exploitationSystèmes d’exploitation

Chapitre 9 Mémoire : Algorithmes de remplacement

Partie III

École Normale SupérieureÉcole Normale SupérieureTétouanTétouan

Département InformatiqueDépartement Informatique

2008-2009

Page 2: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

2

RevueRevue

• Quelle partie du matériel transforme les adresses logiques en adresses physiques?

• Comment on appel l’événement quand une Trap est fait au SE parce qu’une page n’est pas en mémoire?

• Quel problème est-ce que les tables de pages multiniveaux résoudrent?

• Dans un Répertoire de page actives (RPA – TLB), quel genre de mémoire doit on avoir pour accélérer les recherches?

• Pour un système avec une mémoire très, très grande, quelle est notre solution pour remplacer les tables de pages qui seraient effarantes?

Page 3: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

3

SynopsisSynopsis

• Introduction• Remplacement de pages• Algorithme optimal (OPT)• Algorithme NRU• Algorithme LRU• Algorithme PAPS• Algorithme de deuxième chance• Algorithme d’horloge (facultatif)• Comparaison des algorithmes• Anomalie de Belady

Page 4: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

4

• On se rappel: la pagination suit un ensemble de règles:– Elle permet à un programme d’être chargé en

mémoire une page à la fois– Il y a un genre de table qui identifie quelle page est

chargée dans quel cadre– Quand une page est demandée et qu’elle n’est pas

en mémoire physique, un défaut de page se produit• Le SE doit maintenant charger la page dans la mémoire. Si il

n’y a pas de cadre libre, une page doit être évincée de la mémoire. Quelle page est choisit pour être évincée?

IntroductionIntroduction

Page 5: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

5

Introduction Introduction

Exécution d’une défaut de page: va-et-vient plus en détailExécution d’une défaut de page: va-et-vient plus en détail

Page 6: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

6

Introduction Introduction

Exécution d’une défaut de page: va-et-vient plus en détailExécution d’une défaut de page: va-et-vient plus en détail

Page 7: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

7

Introduction Introduction Temps moyen d’accès à la mémoireTemps moyen d’accès à la mémoire

Supposons que:

• accès en mémoire: 100 nanosecs

• temps de traitement de défaut de page: 25 millisecs = 25,000,000 nanosecs

• p: probabilité de ne pas trouver une page en mémoire (défaut) (quantité entre 0 et 1)

Alors Temps moyen d’accès mémoire:

(1-p) x 100 + p x 25,000,000

(pas de défaut + défaut)

Page 8: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

8

Remplacement de pagesRemplacement de pages

• Quoi faire si un processus demande une nouvelle page et il n’y a pas de cadres libres en RAM?

• Il faudra choisir une page déjà en mémoire principale, appartenant au même ou à un autre processus, qu’il est possible d ’enlever de la mémoire principale– la victime!

• Un cadre de mémoire sera donc rendu disponible• Évidemment, plusieurs cadres de mémoire ne peuvent

pas être "victimisé":– p.ex. cadres contenant le noyau du SE, tampons d ’E/S...

Page 9: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

9

Remplacement de pagesRemplacement de pages

• Choisir la victime de façon à minimiser le taux de défaut de pages– pas évident!!!

• Page dont nous n`aurons pas besoin dans le futur? impossible à savoir!

• Page pas souvent utilisée?• Page qui a été déjà longtemps en mémoire?

• etc. nous verrons...

Page 10: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

10

Remplacement de pagesRemplacement de pages

• Les algorithmes de choix de pages à remplacer doivent être conçus de façon à minimiser le taux de défaut de pages à long terme.

• 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.

• Ni l`utilisation de matériel dispendieux.

Page 11: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

11

• Il existe un ensemble d’algorithmes qui peuvent être utilisés pour choisir quelle page va être la meilleure candidate pour l’éviction

• Considérations:– Les pages qui vont avoir été modifié doivent être

écrites sur le disque avant l’éviction– L’utilisation de l’information d’état tel que les bits

d’utilisations (used) et de modifications (dirty) vont être utiles pour prendre cette décision

– Ces algorithmes sont applicables à d’autres domaines de recherche: caches, serveurs Web, etc...

Remplacement de pagesRemplacement de pages

Page 12: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

12

Remplacement de pagesRemplacement de pages

• 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• Attention: les séquences d’utilisation pages ne sont pas

aléatoires...– Localité de référence

• Ces références proviendront de plusieurs processus• L’évaluation sera faite sur la base de cet exemple,

évidemment pas suffisant pour en tirer des conclusions générales

Page 13: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

13

• L’algorithme de remplacement de pages optimal– Un algorithme théorique qui représente la décision

absolue, sans aucun doute, le meilleur choix pour remplacer une page

– Étiqueté chaque cadre de page avec le nombre d’instructions jusqu’à ce qu’on ait besoin de ce cadre

– Remplace la page avec l’étiquette le plus haut.• Essentiellement on évince la page qui serait la dernière à

être utilisée, basé sur les pages en mémoire à l’instant de la décision

Algorithme optimal (OPT)Algorithme optimal (OPT)

Page 14: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

14

• Est-ce que nous pouvons implémenter cet algorithme?– Absolument pas. Si nous pouvions déterminer quand

chaque page est requise dans le futur basé sur l’état courrant, nous pourrions résoudre le problème de la halte (halting problem)!

– De plus, les entrées des utilisateurs veulent dire que le futur est imprédictible!

• Cependant, si un programme est utilisé pour un ensemble particulier d’E/S, il est possible de tracer quelles pages sont requises et dans quel ordre– Cet enregistrement peut être utilisé pour des tests de

performance pour comparer comment près nos algorithmes réalisables sont de l’algorithme optimal

Algorithme optimal (OPT)Algorithme optimal (OPT)

Page 15: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

15

Algorithme NRUAlgorithme NRU

• L’algorithme de remplacement de pages Non Récemment Utilisée (NRU)– Cet algorithme utilise les bits de modification et

d’utilisation (référence) pour déterminer la meilleure candidate pour le remplacement.

– Le matériel doit mettre à jour ces bits à chaque modification ou référence. Ces bits seront seulement effacées par le SE

• La bit d’utilisation (référence) sera remis à zéro périodiquement, par exemple chaque interruption de l’horloge. La bit de modification ne peut pas être remise à zéro jusqu’à ce que la page soit écrite sur le disque.

Page 16: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

16

• Quand un défaut de page arrive, le SE inspecte touts les cadres de pages et les divisent en quatre classes :– Class 0: non référencée, non modifiée.– Class 1: non référencée, modifiée– Class 2: référencée, non modifiée– Class 3: référencée, modifié

• Une page est choisit aléatoirement dans la classe la plus basse (qui a le plus petit numéro) et est remplacée.

Algorithme NRUAlgorithme NRU

Page 17: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

17

• L’idée implicite est qu’il est mieux de remplacer une page modifiée qui n’a pas été utilisée (référencée) dernièrement (~20 msec) qu’une page non modifiée qui est en grande utilisation– Est-ce vraie?

• Avantages: facile à comprendre et implémenter• Désavantages: performance n’est clairement

pas optimal, mais adéquate pour plusieurs systèmes.

Algorithme NRUAlgorithme NRU

Page 18: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

18

Algorithme LRUAlgorithme LRU

• Ordre chronologique d’utilisation (LRU)• Remplace la page dont la dernière référence

remonte au temps le plus lointain (le passé utilisé pour prédire le futur)– En raison de la localité des références, il s’agit de

la page qui a le moins de chance d’être référencée

– performance presque aussi bonne que l’algo. OPT

Page 19: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

19

Algorithme LRUAlgorithme LRU

Page 20: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

20

Algorithme LRUAlgorithme LRU

• Chaque page peut être marquée (dans le descripteur dans la table de pages) du temps de la dernière référence: – besoin de matériel supplémentaire.

• La page LRU est celle avec la + petite valeur de temps (nécessité d’une recherche à chaque défaut de page)

• On pourrait penser à utiliser une liste de pages dans l’ordre d ’utilisation: perte de temps à maintenir et consulter cette liste (elle change à chaque référence de mémoire!)

• D’autres algorithmes sont utilisés: – LRU approximations

Page 21: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

21

• Premier arrivé, premier sortie PAPS (FIFO)– Facile à implémenter. Garde une liste de toutes les

page en mémoire en ordre quelles sont arrivées– Sur un défaut de page, la page la plus vielle est

enlevée et une nouvelle page est ajoutée à la fin de la liste

– Avantage: Très facile à implémenter– Désavantage: Aucune façon de déterminer si la page

qui est enlevée est en grande utilisation. L’âge peut être une indication mais n’est pas nécessairement la meilleure indication de l’utilisation d’une page.

Algorithme PAPSAlgorithme PAPS

Page 22: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

22

Algorithme PAPSAlgorithme PAPS

• Logique: une page qui a été longtemps en mémoire a eu sa chance d ’exécuter

• Les cadres forment conceptuellement un tampon circulaire, débutant à la plus vieille page– Lorsque la mémoire est pleine, la plus vieille page est

remplacée. Donc: “first-in, first-out”• Simple à mettre en application

– tampon consulté et mis à jour seulement aux défauts de pages...

• Mais: Une page fréquemment utilisée est souvent la plus vielle, elle sera remplacée par FIFO!

Page 23: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

23

Algorithme PAPSAlgorithme PAPS

Page 24: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

24

Algorithme PAPSAlgorithme PAPS

• Les premières pages amenées en mémoire sont souvent utiles pendant toute l’exécution d’un processus!– variables globales, programme principal, etc.

• Ce qui montre un problème avec notre façon de comparer les méthodes sur la base d ’une séquence aléatoire:– les références aux pages dans un programme réel ne

seront pas vraiment aléatoires

Page 25: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

25

• Algorithme de deuxième chance– Cet algorithme est une modification du PAPS (FIFO)

pour le rendre possiblement plus raisonnable– Avant de remplacer la page la plus vielle, on vérifie la

bit d’utilisation• Si la page est en utilisation, même si elle est vielle, elle se

voit donner une deuxième chance et son entrée est déplacée vers la fin de la liste, ce qui a pour effet de la rendre comme une nouvelle page. Son bit d’utilisation est remise à zéro à ce moment

– La recherche continue de cette façon jusqu’à ce qu’une veille page qui n’a pas été utilisé est trouvé.

Algorithme de deuxième chanceAlgorithme de deuxième chance

Page 26: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

26

• Algorithme de remplacement de pages de l’horloge– L’algorithme de la deuxième chance peut être lent

parce qu’il déplace constamment les pages dans la liste chaînée pour garder les pages dans le bon ordre.

– Une meilleur approche est de garder les entrées de pages dans une liste circulaire (on peut penser à une sorte d’horloge). Une main pointe à la page la plus vielle.

– Cette main n’est rien de plus qu’un pointeur à une entrée dans la liste de pages en mémoire

Algorithme d’horlogeAlgorithme d’horloge

Page 27: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

27

Algorithme d’horlogeAlgorithme d’horloge

• Semblable à FIFO, mais il tient compte de l’utilisation récente de pages

• Les cadres qui viennent d’être utilisés (bit=1) ne sont pas remplacées (deuxième chance) – Les cadres forment conceptuellement un tampon circulaire – Lorsqu’une page est chargée dans un cadre, un pointeur pointe

sur le prochain cadre du tampon• Pour chaque cadre du tampon, un bit “utilisé” est mis à 1

(par le matériel) lorsque: – une page y est nouvellement chargée– sa page est utilisée

• Le prochain cadre du tampon à être remplacé sera le premier rencontré qui aura son bit “utilisé” = 0.– Durant cette recherche, tout bit “utilisé” = 1 rencontré sera mis à

0

Page 28: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

28

Page 29: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

29

Comparaison: Horloge, FIFO et LRUComparaison: Horloge, FIFO et LRU

Page 30: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

30

Comparaison: Horloge, FIFO et LRUComparaison: Horloge, FIFO et LRU

• Les simulations montrent que l’horloge est presque aussi performant que LRU– variantes de l`horloge ont été implantées dans des systèmes réels

• 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:– 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

– Ce facteur s’approche de 1 lorsque plusieurs (plus de 12) cadres sont alloués.

• 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... – On peut tranquillement utiliser LRU

Page 31: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

31

Comparaison: Horloge, FIFO et LRUComparaison: Horloge, FIFO et LRU

Pas grosse différence en pratique… (Stallings)Pas grosse différence en pratique… (Stallings)

Page 32: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

32

Anomalie de BeladyAnomalie de Belady

• Pour quelques algorithmes, dans quelques cas il pourrait avoir plus de défauts avec plus de mémoire!– p. ex. FIFO, mais pas LRU, OPT, CLOCK

Page 33: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

33

Anomalie de BeladyAnomalie de Belady

Page 34: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

34

Anomalie de BeladyAnomalie de Belady

Cas d’intérêt théorique: + de mémoire, + de fautes

Page 35: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

35

Anomalie de BeladyAnomalie de Belady

Page 36: Module Systèmes dexploitation Chapitre 9 Mémoire : Algorithmes de remplacement Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009

36

Quiz Time!Quiz Time!

Questions?