1 / 25

Page Replacement Algorithms

Page Replacement Algorithms. Algoritmos de Substitucion de Paginas de Memoria. Terminologia: . Memory page: Segmento de memoria virtual. Page frame: Segmento de memoria real.

efia
Télécharger la présentation

Page Replacement Algorithms

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. Page Replacement Algorithms Algoritmos de Substitucion de Paginas de Memoria.

  2. Terminologia: • Memory page: Segmento de memoria virtual. • Page frame: Segmento de memoria real. • Page fault: Error que ocurre cuando un programa intenta utilizar un “memory page” que no se encuentra en un “page frame”.

  3. ¿Por que hay que hacer “paging”? • Los programas necesitan que todas las pagina de memoria que esta utilizando esten en memoria real. • Los programas ven “virtual memory”. • La memoria virtual es inlimitada. • La memoria real no lo es. • No es posible tener todas las paginas de memoria en memoria real al mismo tiempo.

  4. Solución: • Cada vez que ocurre un “page fault”, el OS remueve una pagina de memoria real y la sustituye con la pagina de memoria que el programa necesitaba.

  5. ¿Que pasa con la pagina removida? • Si la pagina había sido modificada, es necesario almacenarla en el disco antes de sustituirla. • Si la pagina no había sido modificada, se puede sustituir sin problemas.

  6. ¿Eso es todo? ¿Cuál es el problema? • Si, el algoritmo básico de sustitución de paginas es simple. • El problema es determinar que pagina removemos de la memoria real.

  7. Solución: • Muchos diferentes algoritmos que intentan solucionar el problema. Entre ellos: • Optimal. • Not Recently Used. • FIFO • Second Chance • Clock • Least Recently Used • Not Frequently Used • Aging • Working Set • Working Set + Clock

  8. The Optimal Page Replacement Algorithm • Observación: Algunas paginas van a ser utilizadas por el programa muy pronto, otras mas tarde y otras mucho mas tarde. • Facil! Remueve la ultima pagina que vaya a ser utilizada por el programa.

  9. Un pequeño problema: • Es imposible saber de ante mano cual va a ser la ultima pagina en ser utilizada por el programa.

  10. ¿Que podemos hacer? • Podemos correr el programa, observar que paginas busca y utilizar esta información para optimizar futuras ejecuciones. • Podemos utilizar este algoritmo para comparar el rendimiento de otros algoritmos.

  11. Estrategias generales. • Bits de status: • El bit R es marcado si la pagina fue “referenciada”. • El bit M es marcado si la pagina fue modificada. • Estos bits pueden estar implementados en hardware o simulados en software por el OS. • R y M son utilizados por diferentes algoritmos para seleccionar la pagina a ser removida.

  12. The “Not Recently Used” Page Replacement Algorithm • Estrategia: Se clasifican las paginas dependiendo del valor d R y M • Class 0: “not referenced, not modified” • Class 1: “not referenced, modified” • Class 2: “referenced, not modified” • Class 3: “referenced, modified” • Periodicamente el “clock interrupt” limpia el bit R para distinguir las paginas que no han sido referenciadas recientemente.

  13. ¿Como funciona? • Se una pagina al azar de la clase mas baja. • Este algoritmo es facil de entender, facil de implementar eficientemente con un rendiemiento adecuado.

  14. The First-in, First-out Page Replacement Algorithm • Estrategia: El OS guarda una lista de todas las paginas en memoria, con las paginas mas viejas al principio y las mas recientes al final.

  15. ¿Como funciona? • Cuando ocurre un “page fault”, la primera pagina de la lista es removida y se añade la pagina nueva al final de las lista • FIFO es su forma mas pura casi nunca se utiliza.

  16. The Second Chance Page Replacement Algorithm • Variacion del algoritmo FIFO. • Se verifica el bit R de la pagina mas vieja (la primera en la lista). • Si R = 0, se remueve la pagina, normalmente. • Si R=1, se limpia el bit R, se mueve la pagina al final de la lista, y se busca la proxima pagina vieja que tenga R=0.

  17. The Clock Page Replacement Algorithm • Variacion del algoritmo “Second Chance”. • En lugar de usar una lista, se usa una lista circular y se guarda un pointer a la pagina mas vieja. • En lugar de mover paginas del principio al final, se mueve el pointer.

  18. The “Least Recently Used” Page Replacement Algorithm • Observación: Las paginas que fueron usadas recientemente, probablemente sean utilizadas pronto. • Estrategia: Remueve la pagina que mas tiempo lleva sin ser utilizada.

  19. Problema: • Es necesario guardar un link list de todas las paginas en memoria y actualizarla cada vez que se referencia una pagina de memoria. • Sin embargo, es posible implementar este algoritmo con hardware especializado.

  20. The “Not Frecuently Used” Page Replacement Algorithm • Implementacion en software de algoritmo LRU. • Utiliza un counter que se incrementa cada vez que la pagina es referenciada.

  21. The Aging Page Replacement Algorithm • Variacion del algoritmo NFU que realiza shifts en el counter para “olvidar” referencias que hayan ocurrido hace mucho tiempo.

  22. Terminología Adicional • “demand paging”: buscar las paginas y guardarlas en memoria real solo cuando el programa las busca. • “virtual time”: tiempo transcurrido desde que el proceso comenzo a ejecutar. • “working set” : colleccion de paginas que un proceso esta utilizando. Se define a base del “virtual time” • “trashing”: proceso que causa “page faults” frecuentemente.

  23. The Working Set Page Replacement Algorithm • Algoritmo que intenta mantener en memoria el “working set” the un proceso todo el tiempo. • Cuando hay que remover una pagina, se remueve una que no pertenesca al “working set”.

  24. The “Working Set + Clock” Page Replacement Algorithm • Variacion del algoritmo “Working Set” que utiliza la idea del algoritmo de “Clock”. • En lugar de leer toda la tabla de memoria para localizar paginas a ser removidas, se utiliza un pointer que se mueve cada vez que se busca una pagina candidata para ser removida.

  25. Modelaje de Algoritmos de Sustitucion de Paginas. • Anomalía de Belady • Algunos algoritmos causan mas “page faults” mientras mas “page frames” estan disponible. • Stack algorithms • Algoritmos que cuando son re-ejecutados con mas “page frames” (m+1), obtienen los mismos “pages” que obtuvieron con menos “page frames” (m) mas “pages” adicionales.

More Related