1 / 21

GEF 435 Principes des systèmes d’exploitation

GEF 435 Principes 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?

peggy
Download Presentation

GEF 435 Principes des systèmes d’exploitation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GEF 435Principes des systèmes d’exploitation Algorithmes de remplacement de pages pt I (Tanenbaum 4.4)

  2. 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?

  3. 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 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 de libre, une page doit être évincée de la mémoire. Quelle page est choisit pour être évincée?

  4. 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’é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...

  5. Algorithmes de replacement de pages • 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 é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

  6. Algorithmes de replacement de pages • L’algorithme de remplacement de pages optimal • 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

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

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

  9. 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émenter • Désavantages: performance n’est clairement pas optimal, mais adéquate pour plusieurs systèmes

  10. 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é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

  11. Algorithmes de replacement de pages • Algorithme de deuxième chance • Cet algorithme est une modification du PAPS pour le rendre possiblement plus raisonnable • Avant 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é

  12. Algorithmes de replacement de pages • L’algorithme de la deuxième chance

  13. Algorithmes de replacement de pages • Algorithme de remplacement de pages de l’horloge • L’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

  14. Algorithmes de replacement de pages • L’algorithme de l’horloge • Quand 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

  15. Algorithmes de replacement de pages • The Clock Page Replacement Algorithm

  16. 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?

  17. Algorithmes de replacement de pages • L’algo de remplacement de la page MRU • Mé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!

  18. Algorithmes de replacement de pages • L’algo de remplacement de la page la MRU • Mé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.

  19. Algorithmes de replacement de pages • L’algo de remplacement de la page MRU • Mé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 colonnek à 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!

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

  21. Quiz Time! Questions?

More Related