GEF 435 Principes des systèmes dexploitation Algorithmes de remplacement de pages pt I (Tanenbaum...
-
Upload
lea-lemercier -
Category
Documents
-
view
107 -
download
0
Transcript of GEF 435 Principes des systèmes dexploitation Algorithmes de remplacement de pages pt I (Tanenbaum...
GEF 435Principes des systèmes d’exploitation
Algorithmes de remplacement de pages pt I(Tanenbaum 4.4)
Revue
• 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?
Algorithmes de replacement de pages
• On se rappel: la pagination suit un ensemble de règles:Elle permet à un programme d’être chargé en mémoire
une page à la foisIl y a un genre de table qui identifie quelle page est
chargée dans quel cadreQuand 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 de libre, une page doit être évincée de la mémoire. Quelle page est choisit pour être évincée?
Algorithmes de replacement de pages
• 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ées doivent être
écrites sur le disque avant l’évictionL’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...
Algorithmes de replacement de pages
• L’algorithme de remplacement de pages optimalUn algorithme théorique qui représente la décision
absolue, sans aucun doute, le meilleur choix pour évincer une page
Label chaque cadre de page avec le nombre d’instructions jusqu’à ce qu’on ait besoin de ce cadre
Évince la page avec le label 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
Algorithmes de replacement de pages
• L’algorithme de remplacement de pages optimalEst-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
Algorithmes de replacement de pages
• L’algorithme de remplacement de pages Non Récemment Utilisée (NRU)Cet algorithme utilise les bits de modification et
d’utilisation pour déterminer la meilleure candidate pour l’éviction
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 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.
Algorithmes de replacement de pages
• L’algorithme de remplacement de pages Non Récemment Utilisée (NRU)Quand un défaut de page arrive, le SE inspecte touts
les cadres de pages et les divisent en quatre catégories :
• Class 0: pas utilisé, pas modifié• Class 1: pas utilisé, modifié• Class 2: utilisé, pas modifié• Class 3: utilisé et modifié
Une page est choisit aléatoirement dans la classe la plus basse et est évincée
Algorithmes de replacement de pages
• L’algorithme de remplacement de page Non Récemment Utilisée (NRU)L’idée implicite est qu’il est mieux d’évincer une page
modifiée qui n’a pas été utilisée dernièrement (~20 msec) qu’une page non modifiée qui est en grande utilisation
• Est-ce vraie?
Avantages: facile à comprendre et implémenterDésavantages: performance n’est clairement pas
optimal, mais adéquate pour plusieurs systèmes
Algorithmes de replacement de pages
• Premier arrivé, premier sortie PAPS (FIFO)Facile à implémenter. Garde une liste de toutes les
page en mémoire en ordre quelles sont arrivéesSur 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émenterDé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
Algorithmes de replacement de pages
• Algorithme de deuxième chanceCet algorithme est une modification du PAPS pour le
rendre possiblement plus raisonnableAvant d’évincer 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. Sa 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é
Algorithmes de replacement de pages
• L’algorithme de la deuxième chance
Algorithmes de replacement de pages
• Algorithme de remplacement de pages de l’horlogeL’algo 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
Algorithmes de replacement de pages
• L’algorithme de l’horlogeQuand un défaut de page arrive, la page qui est pointée
par la ‘main’ est inspectée. Si elle n’a pas été utilisée, elle est évincée et la main avance à la prochaine position
Si la page est en utilisation, la bit d’utilisation est remise à zéro et la main est remise à la prochaine position pour faire une autre vérification
Ceci continue jusqu’à ce qu’une page soit trouvée pour être évincée
Algorithmes de replacement de pages
• The Clock Page Replacement Algorithm
Algorithmes de replacement de pages
• L’algo de remplacement de la page la moins récemment utilisée (MRU) (LRU)Une bonne approximation de l’algo optimal est qu’une
page qui a été grandement utilisée les dernières instructions va probablement être grandement utilisée dans les quelques prochaines instructions (et le contraire est vrai)
Donc, quand un défaut de page ce produit, on évince la page qui n’a pas été utilisé pour le plus long temps
• Comment est-ce que cela diffère de PAPS?
Algorithmes de replacement de pages
• L’algo de remplacement de la page MRUMéthode 1: Implémenté dans sa forme pure.
Chaque entrée doit être gardée dans une liste chaînée. Chaque fois qu’une page est utilisée elle est déplacée au devant de la liste
• Une opération très coûteuse même avec du matériel!
Algorithmes de replacement de pages
• L’algo de remplacement de la page la MRUMéthode 2: Avoir un compteur assez grand (64
bits) qui est incrémenté après chaque instruction. Stock ce numéro dans la table de pages après chaque référence en mémoire. Quand on veut remplacer une page, on évince la page dans la table avec le plus petit compte.
Algorithmes de replacement de pages
• L’algo de remplacement de la page MRUMéthode 3: Pour un système avec n cadres de
page, on maintient une matrice matériel de grandeur n x n bits, initialement chaque entrée est mise à 0. Un truc de pour amuser vos amis!:
• Quand une page, k, est référencée le matériel met tout les bits de la rangé k à 1 et met tout les bits de la colonne k à 0
• La rangé avec la plus petite valeur binaire est la page la moins récemment utilisée et la page est la candidate pour éviction… essayez le!
Algorithmes de replacement de pages
• L’algo de remplacement de la page la moins récemment utiliséAccédé en ordre: 0,1,2,3,2,1,0,3,2,3
Quiz Time!
Questions?