fbpx
Wikipedia

Algoritmo de reemplazo de páginas

En sistemas operativos que utilizan paginación para el manejo de memoria, los algoritmos de reemplazo de páginas son usados para decidir qué páginas pueden ser sacadas de memoria cuando se necesita cargar una nueva y ya no hay marcos de páginas libres.

Óptimo

Este algoritmo tiene como finalidad retirar la página que vaya a ser referenciada más tarde, por ejemplo, si hay una página A que será usada dentro de 10000 instrucciones, y una página B que será usada dentro de 2800 instrucciones, se debería eliminar de la memoria la página A. Como se puede deducir, para esto el sistema operativo debería ver en cuánto tiempo será usada cada página en memoria y elegir la que está más distante. El problema de este método es que necesita conocimiento del futuro, por lo que es imposible su implementación. Es un algoritmo teórico. Se utiliza a los efectos comparativos con los algoritmos factibles de ser implementados para ver cuál se aproxima más a este.

Primera en entrar, primera en salir (FIFO, First In, First Out)

En este método, el sistema operativo solo tiene que guardar en orden las páginas que fueron cargadas, de modo que al necesitar hacer espacio pueda fácilmente elegir la primera página cargada. Se usa una cola, al cargar una página nueva se ingresa en el último lugar. Aunque las colas FIFO son simples e intuitivas, no se comportan de manera aceptable en la aplicación práctica, por lo que es raro su uso en su forma simple. Uno de los problemas que presentan es la llamada Anomalía FIFO o Anomalía de Belady. Belady encontró ejemplos en los que un sistema con un número de marcos de páginas igual a tres tenía menos fallos de páginas que un sistema con cuatro marcos de páginas. El problema consiste en que podemos quitar de memoria una página de memoria muy usada, solo porque es la más antigua.

Segunda oportunidad (Reloj)

Es una pequeña modificación al algoritmo FIFO, que funciona bastante mejor que el FIFO. En este caso cuando una página debe ser sacada se toma la primera en la cola, y en vez de sacarla, consulta el valor de un bit de referencia. En caso de estar fijado (en 1) se cambia el bit a 0 y se lo coloca al final de la obstrucción, actualizando su tiempo de carga como si recién hubiera llegado al procesador. De esta forma, se le da una segunda oportunidad. Si el bit se encuentra sin fijar(en 0), la página se saca de memoria. Cada vez que la MMU accede a una página, fija su bit de referencia a 1. Para esto es necesario soporte para bit de referencia por hardware.

De páginas de reloj (CLOCK) (Reloj mejorado)

Existe una mejora en el algoritmo de segunda oportunidad que presenta una mejora en la implementación. Es el algoritmo del CLOCK, que lo que hace es tener una lista circular, de forma que al llegar al último elemento de la lista, pasa automáticamente al primero. Los elementos no se mueven al final de la cola cuando son accedidos, simplemente se cambia el bit de referencia a 0. Esto nos evita tener que hacer movimientos de punteros en el caso de implementarlo con una lista enlazada. De hecho, se puede implementar con un array perfectamente, ahorrando así memoria.

No usada recientemente (Not Recently Used, NRU)

Este algoritmo favorece a las páginas que fueron usadas recientemente. Funciona de la siguiente manera: cuando una página es referenciada, fija el bit de referencia para esa página. Similarmente, cuando una página es modificada, fija su bit de modificación. Usualmente estas operaciones son realizadas por el hardware, aunque puede hacerse también por software. En un tiempo fijo, el sistema operativo pone en 0 los bits de referencia de todas las páginas, de modo que las páginas con su bit de referencia en 1 son las que fueron referenciadas dentro del último intervalo de reloj. Cuando una página debe ser reemplazada, el sistema operativo divide las páginas en cuatro categorías:

  • Categoría 0: No referenciada, No modificada
  • Categoría 1: No referenciada, modificada
  • Categoría 2: referenciada, No modificada
  • Categoría 3: referenciada, modificada

Las mejores páginas para cambiar son las que se encuentran en la categoría 0, mientras que las peores son las de la categoría 3. Se desaloja al azar una página de la categoría más baja que no esté vacía. Este algoritmo se basa en la suposición de que es mejor desalojar una página modificada a la que no se ha hecho referencia en al menos un tic de reloj, en vez de una página limpia que se está usando mucho.

Menos Usada Recientemente (Least Recently Used, LRU)

Este algoritmo difiere del de 'No usada recientemente' en el hecho de que aquel solo se fija en el intervalo de tiempo desde que se pusieron en 0 los bits de referencia de las páginas, mientras que el algoritmo de 'Menos usada recientemente' intenta proveer un comportamiento casi óptimo mediante la observación de las páginas que menos fueron usadas recientemente. Este tipo de páginas, estadísticamente son las que tienen menor probabilidad de ser usadas nuevamente.

Aunque este algoritmo provee un buen comportamiento en teoría, es caro de implementar, en cuanto a recursos consumidos. Hay varias implementaciones que intentan mantener bajo el costo y lograr un rendimiento considerable. Un método consiste en tener una lista enlazada y ordenada de todas las páginas en memoria. En el final de la lista está la página menos usada recientemente, y al principio la más usada recientemente. El costo alto de este método es porque cada vez que se referencia una página debe ser movida en la lista, algo que consume mucho tiempo. Otra forma, que requiere soporte de hardware, consiste en tener un contador que es incrementado en cada instrucción del CPU. Cada vez que una página es accedida, gana el número del contador en ese momento. Cuando una página debe ser retirada de memoria, simplemente hay que buscar cuál es la que tiene el menor número, que es la que fue usada hace más tiempo. En el presente no existen contadores tan grandes para permitir esto. Debido al alto costo del LRU, se proponen algoritmos similares, pero que permiten implementaciones menos costosas.

Envejecimiento (Aging)

Desciende del algoritmo "No usada frecuentemente", con algunas modificaciones necesarias para tener en cuenta en qué momento fue usada frecuentemente una página, y no solamente cuántas veces fue.

En vez de solo incrementar el contador de la página cuando es referenciada, primero se desplaza a la derecha (se divide entre 2) y después sí se suma 1. Por ejemplo, si los bits de referencia de una página fueron 1, 0, 0, 1, 1 y 0 en los últimos 6 ticks del reloj, el contador se verá así: 10000000, 01000000, 00100000, 10010000, 11001000, 01100100.

De esta forma, cuando se necesite eliminar una página de memoria, se eliminará la que tenga el número más pequeño en su contador.

Este algoritmo consigue una buena aproximación al algoritmo óptimo.

Véase también

Bibliografía

  •   Datos: Q1330967

algoritmo, reemplazo, páginas, sistemas, operativos, utilizan, paginación, para, manejo, memoria, algoritmos, reemplazo, páginas, usados, para, decidir, qué, páginas, pueden, sacadas, memoria, cuando, necesita, cargar, nueva, marcos, páginas, libres, Índice, Ó. En sistemas operativos que utilizan paginacion para el manejo de memoria los algoritmos de reemplazo de paginas son usados para decidir que paginas pueden ser sacadas de memoria cuando se necesita cargar una nueva y ya no hay marcos de paginas libres Indice 1 optimo 2 Primera en entrar primera en salir FIFO First In First Out 3 Segunda oportunidad Reloj 4 De paginas de reloj CLOCK Reloj mejorado 5 No usada recientemente Not Recently Used NRU 6 Menos Usada Recientemente Least Recently Used LRU 7 Envejecimiento Aging 8 Vease tambien 9 Bibliografiaoptimo EditarEste algoritmo tiene como finalidad retirar la pagina que vaya a ser referenciada mas tarde por ejemplo si hay una pagina A que sera usada dentro de 10000 instrucciones y una pagina B que sera usada dentro de 2800 instrucciones se deberia eliminar de la memoria la pagina A Como se puede deducir para esto el sistema operativo deberia ver en cuanto tiempo sera usada cada pagina en memoria y elegir la que esta mas distante El problema de este metodo es que necesita conocimiento del futuro por lo que es imposible su implementacion Es un algoritmo teorico Se utiliza a los efectos comparativos con los algoritmos factibles de ser implementados para ver cual se aproxima mas a este Primera en entrar primera en salir FIFO First In First Out EditarEn este metodo el sistema operativo solo tiene que guardar en orden las paginas que fueron cargadas de modo que al necesitar hacer espacio pueda facilmente elegir la primera pagina cargada Se usa una cola al cargar una pagina nueva se ingresa en el ultimo lugar Aunque las colas FIFO son simples e intuitivas no se comportan de manera aceptable en la aplicacion practica por lo que es raro su uso en su forma simple Uno de los problemas que presentan es la llamada Anomalia FIFO o Anomalia de Belady Belady encontro ejemplos en los que un sistema con un numero de marcos de paginas igual a tres tenia menos fallos de paginas que un sistema con cuatro marcos de paginas El problema consiste en que podemos quitar de memoria una pagina de memoria muy usada solo porque es la mas antigua Segunda oportunidad Reloj EditarEs una pequena modificacion al algoritmo FIFO que funciona bastante mejor que el FIFO En este caso cuando una pagina debe ser sacada se toma la primera en la cola y en vez de sacarla consulta el valor de un bit de referencia En caso de estar fijado en 1 se cambia el bit a 0 y se lo coloca al final de la obstruccion actualizando su tiempo de carga como si recien hubiera llegado al procesador De esta forma se le da una segunda oportunidad Si el bit se encuentra sin fijar en 0 la pagina se saca de memoria Cada vez que la MMU accede a una pagina fija su bit de referencia a 1 Para esto es necesario soporte para bit de referencia por hardware De paginas de reloj CLOCK Reloj mejorado EditarExiste una mejora en el algoritmo de segunda oportunidad que presenta una mejora en la implementacion Es el algoritmo del CLOCK que lo que hace es tener una lista circular de forma que al llegar al ultimo elemento de la lista pasa automaticamente al primero Los elementos no se mueven al final de la cola cuando son accedidos simplemente se cambia el bit de referencia a 0 Esto nos evita tener que hacer movimientos de punteros en el caso de implementarlo con una lista enlazada De hecho se puede implementar con un array perfectamente ahorrando asi memoria No usada recientemente Not Recently Used NRU EditarEste algoritmo favorece a las paginas que fueron usadas recientemente Funciona de la siguiente manera cuando una pagina es referenciada fija el bit de referencia para esa pagina Similarmente cuando una pagina es modificada fija su bit de modificacion Usualmente estas operaciones son realizadas por el hardware aunque puede hacerse tambien por software En un tiempo fijo el sistema operativo pone en 0 los bits de referencia de todas las paginas de modo que las paginas con su bit de referencia en 1 son las que fueron referenciadas dentro del ultimo intervalo de reloj Cuando una pagina debe ser reemplazada el sistema operativo divide las paginas en cuatro categorias Categoria 0 No referenciada No modificada Categoria 1 No referenciada modificada Categoria 2 referenciada No modificada Categoria 3 referenciada modificadaLas mejores paginas para cambiar son las que se encuentran en la categoria 0 mientras que las peores son las de la categoria 3 Se desaloja al azar una pagina de la categoria mas baja que no este vacia Este algoritmo se basa en la suposicion de que es mejor desalojar una pagina modificada a la que no se ha hecho referencia en al menos un tic de reloj en vez de una pagina limpia que se esta usando mucho Menos Usada Recientemente Least Recently Used LRU EditarEste algoritmo difiere del de No usada recientemente en el hecho de que aquel solo se fija en el intervalo de tiempo desde que se pusieron en 0 los bits de referencia de las paginas mientras que el algoritmo de Menos usada recientemente intenta proveer un comportamiento casi optimo mediante la observacion de las paginas que menos fueron usadas recientemente Este tipo de paginas estadisticamente son las que tienen menor probabilidad de ser usadas nuevamente Aunque este algoritmo provee un buen comportamiento en teoria es caro de implementar en cuanto a recursos consumidos Hay varias implementaciones que intentan mantener bajo el costo y lograr un rendimiento considerable Un metodo consiste en tener una lista enlazada y ordenada de todas las paginas en memoria En el final de la lista esta la pagina menos usada recientemente y al principio la mas usada recientemente El costo alto de este metodo es porque cada vez que se referencia una pagina debe ser movida en la lista algo que consume mucho tiempo Otra forma que requiere soporte de hardware consiste en tener un contador que es incrementado en cada instruccion del CPU Cada vez que una pagina es accedida gana el numero del contador en ese momento Cuando una pagina debe ser retirada de memoria simplemente hay que buscar cual es la que tiene el menor numero que es la que fue usada hace mas tiempo En el presente no existen contadores tan grandes para permitir esto Debido al alto costo del LRU se proponen algoritmos similares pero que permiten implementaciones menos costosas Envejecimiento Aging EditarDesciende del algoritmo No usada frecuentemente con algunas modificaciones necesarias para tener en cuenta en que momento fue usada frecuentemente una pagina y no solamente cuantas veces fue En vez de solo incrementar el contador de la pagina cuando es referenciada primero se desplaza a la derecha se divide entre 2 y despues si se suma 1 Por ejemplo si los bits de referencia de una pagina fueron 1 0 0 1 1 y 0 en los ultimos 6 ticks del reloj el contador se vera asi 10000000 01000000 00100000 10010000 11001000 01100100 De esta forma cuando se necesite eliminar una pagina de memoria se eliminara la que tenga el numero mas pequeno en su contador Este algoritmo consigue una buena aproximacion al algoritmo optimo Vease tambien EditarAlgoritmos de cacheBibliografia EditarTanenbaum Andrew S 2009 Sistemas operativos modernos 3ª edicion Pearson Prentice Hall ISBN 978 607 442 046 3 Datos Q1330967Obtenido de https es wikipedia org w index php title Algoritmo de reemplazo de paginas amp oldid 136420064, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos