En un sistema operativo de la computadora que utilice la paginación para la gerencia de memoria de la memoria virtual, los algoritmos de reemplazo de página del deciden a qué memoria pagina para paginar hacia fuera (el intercambio hacia fuera, escribe al disco) cuando una página de la memoria necesita ser asignada. La paginación sucede cuando ocurre una avería de página y una página libre no se puede utilizar para satisfacer la asignación, cualquiera porque no hay ninguno, o porque el número de páginas libres es más bajo que un cierto umbral.

Cuando la página que fue seleccionada para el reemplazo y paginada hacia fuera se refiere otra vez tiene que ser paginada adentro (leído adentro en disco), y ésta implica el esperar de la terminación de la entrada-salida. Esto determina la calidad algoritmo de reemplazo de página: menos página-ins que espera de la hora para, mejor es el algoritmo. Un algoritmo de reemplazo de página mira la información limitada sobre accesos a las páginas proporcionadas por el hardware, e intenta conjeturar qué páginas se deben substituir para reducir al mínimo el número total de faltas de la página, mientras que balancea esto con los costes (almacenaje primario y tiempo de procesador) del algoritmo sí mismo.

Historia

Los algoritmos de reemplazo de página eran asuntos actuales de investigación y de discusión en los años 60 y los años 70 Eso terminó sobre todo con el desarrollo de aproximaciones y de algoritmos DE LRU sofisticados del espacio de ejecución. Desde entonces, algunas asunciones básicas hechas por los algoritmos de reemplazo de página tradicionales fueron invalidadas, dando por resultado un renacimiento de la investigación. Particularmente, las tendencias siguientes en el comportamiento del hardware subyacente y el software user-level ha afectado al funcionamiento de los algoritmos de reemplazo de página:
El tamaño del

l almacenaje primario ha aumentado en órdenes de la magnitud múltiples. Con varios gigabytes de la memoria primaria, los algoritmos que requieren un cheque periódico de cada bastidor de la memoria están llegando a ser cada vez menos prácticos.
Las jerarquías de memoria del

han crecido más altas. El coste de una falta de escondrijo de la CPU es lejos más costoso. Esto exacerba el problema anterior.
el lugar la referencia del software del usuario se ha debilitado. Esto se atribuye sobre todo a la extensión de las técnicas de la programación orientada al objeto que favorecen una gran cantidad de pequeñas funciones, el uso de las estructuras de datos sofisticadas como los árboles y las tablas de elección arbitraria que tienden a dar lugar a patrones de referencia caóticos de la memoria, y el advenimiento de la colección de basura que cambió drástico el comportamiento del acceso de memoria de usos.

Los requisitos para los algoritmos de reemplazo de página han cambiado debido a las diferencias en arquitecturas del núcleo del sistema operativo. Particularmente, la mayoría de los núcleos modernos del OS han unificado los escondrijos de la memoria virtual y del sistema de ficheros, requiriendo el algoritmo de reemplazo de página seleccionar una página entre de las páginas de los espacios de dirección virtual del programa de usuario y de los archivos depositados. Las 3ultimas páginas tienen características específicas. Por ejemplo, pueden ser bloqueadas, o pueden tener escribir los requisitos que ordenan impuestos por el que mete en diario. Por otra parte, como la meta del reemplazo de página es reducir al mínimo memoria que espera del tiempo total para, tiene que considerar los requisitos de memoria impuestos por otros subsistemas del núcleo que asignen memoria. Consecuentemente, el reemplazo de página en los núcleos modernos (linux, FreeBSD, y Solaris ) tiende a trabajar en el nivel de un distribuidor de fines generales de la memoria del núcleo, algo que en el de alto nivel de un subsistema de la memoria virtual.

Local contra el reemplazo global

Los algoritmos del reemplazo pueden ser el local o el global.

Cuando un proceso incurre en una avería de página, un algoritmo de reemplazo de página local selecciona para el reemplazo un poco de página que pertenezca a ese mismo proceso (o a un grupo de procesos que comparten una partición de la memoria). Un algoritmo global del reemplazo está libre de seleccionar cualquier página en memoria.

El reemplazo de página local asume una cierta forma de división de la memoria que determine cuántas páginas deben ser asignadas a un proceso dado o a un grupo de procesos. La mayoría de las formas populares de división son fijado repartiendo y los algoritmos balanceados del sistema basados en el espacio de ejecución modelan. La ventaja del reemplazo de página local es su capacidad de conversión a escala: cada proceso puede manejar sus averías de página independiente sin la afirmación para un poco de estructura de datos global compartida.

Limpieza previa

La mayoría de los algoritmos del reemplazo vuelven simplemente la página de la blanco como su resultado. Esto significa que si la página de la blanco es el sucio (es decir, contiene los datos que tienen que ser escritos al almacenaje estable antes de que la página pueda ser reclamada), la entrada-salida tiene que ser iniciada para enviar esa página al almacenaje estable (al limpio la página). En los comienzos de la memoria virtual, el tiempo pasado en la limpieza no era de mucho interés, porque la memoria virtual primero fue ejecutada en sistemas con el lleno - los canales a dos caras de al almacenaje estable, y la limpieza fueron traslapados acostumbradamente con el pagein. El hardware contemporáneo de la materia, por una parte, no apoya por completo - las transferencias del duplex, y la limpieza de las páginas de la blanco se convierte en una edición.

Para ocuparse de esta situación, las varias políticas de la limpieza previa del se aplican. La limpieza previa es el mecanismo que comienza la entrada-salida en las páginas sucias que deben (probable) ser substituidas pronto. La idea es que para el momento en que la página prelimpiada se seleccione realmente para el reemplazo, la entrada-salida terminará y la página será limpia. La limpieza previa asume que es posible identificar las páginas que serán el substituido siguiente. La prelimpieza de eso es demasiado impaciente puede perder anchura de banda de la entrada-salida escribiendo las páginas que manejan conseguir re-dirtied antes de ser seleccionada para el reemplazo.

El algoritmo de reemplazo de página teóricamente óptimo

El algoritmo de reemplazo de página teóricamente óptimo (también conocido como algoritmo clarividente del OPT o del reemplazo ) es un algoritmo que trabaja como sigue: cuando una página necesita ser intercambiada adentro, el sistema operativo intercambia hacia fuera la página cuyo ocurrirá uso siguiente lo más lejos posible en el futuro. Por ejemplo, una página que no va a ser utilizada para los 6 segundos próximos será intercambiada hacia fuera sobre una página que vaya a ser utilizada en el plazo de los 0.

Este algoritmo no se puede ejecutar en el sistema operativo de fines generales porque es imposible computar confiablemente cuánto tiempo será antes de que una página vaya a ser utilizada, a menos que cuando todo el software que funcionará en un sistema se sabe de antemano y es favorable al análisis estático de sus patrones de referencia de la memoria, o solamente a una clase de usos se permita permitir análisis run-time. A pesar de esta limitación, los algoritmos existen que pueden ofrecer el &mdash cercano-óptimo del funcionamiento; en el estreno de un programa, el sistema operativo no pierde de vista todas las páginas referidas por el programa, y utiliza estos datos para decidir a qué páginas a intercambiar adentro y hacia fuera en funcionamientos subsecuentes. Este algoritmo puede ofrecer funcionamiento cercano-óptimo, pero no en el estreno de un programa, y solamente si el patrón de referencia de la memoria del programa es relativamente constante cada vez funciona.

El análisis del problema de la paginación también se ha hecho en el campo de los algoritmos en línea . La eficacia de los algoritmos en línea seleccionados al azar para el problema de la paginación se mide usar el análisis amortizado .

No usado recientemente

El algoritmo de reemplazo (NRU) de página no usado recientemente es un algoritmo ese los favores que mantienen las páginas memoria que han sido usadas recientemente. Este algoritmo trabaja en el principio siguiente: cuando se refiere una página, un pedacito referido se fija para esa página, marcándola según lo referido. Semejantemente, cuando se modifica una página (escrito a), se fija un pedacito modificado. El ajuste de los pedacitos es hecho generalmente por el hardware, aunque sea posible hacer tan en el nivel del software también.

En cierto intervalo de tiempo fijo, los disparadores y los claros de la interrupción del reloj el pedacito referido de todas las páginas, tan solamente páginas referidas dentro del intervalo de reloj actual se marcan con un pedacito referido. Cuando una página necesita ser substituida, el sistema operativo divide las páginas en cuatro clases:
Clase 0 del

: no referido, no modificado
Clase 1: no referido, modificado
Clase 2: referido, no modificado
Clase 3: referido, modificado

Aunque no parezca posible que una página no sea referida todavía modificada, éste sucede cuando una página de la categoría 3 tiene su pedacito referido despejado por la interrupción del reloj. El algoritmo de NRU escoge una página al azar de la categoría más baja para el retiro. Observar que este algoritmo implica que una página referida es más importante que una página modificada.

Primero-en, primer-hacia fuera

Primero-en, el primer-hacia fuera (FIFO) algoritmo de reemplazo de página es un algoritmo de los bajo-gastos indirectos que requiere poca contabilidad de parte del sistema operativo . La idea es obvia del nombre - el sistema operativo no pierde de vista todas las páginas en memoria en una coleta, con la llegada más reciente en la parte posterior, y la llegada más temprana del frente. Cuando una página necesita ser substituida, la página en el frente de la coleta (la página más vieja) se selecciona. Mientras que el primero en entrar, primero en salir es barato e intuitivo, se realiza mal en el uso práctico. Así, se utiliza raramente en su forma sin modificar. Este algoritmo experimenta la anomalía de Belady.

El algoritmo de reemplazo de página del primero en entrar, primero en salir es utilizado por el sistema operativo VAX/VMS .

De segunda mano

Una forma modificada del algoritmo de reemplazo de página del primero en entrar, primero en salir, conocida como el algoritmo de reemplazo de página de segunda mano, precios relativamente mejores que el primero en entrar, primero en salir en poco coste para la mejora. Trabaja mirando el frente de la coleta como lo hace el primero en entrar, primero en salir, pero en vez inmediatamente de paginar hacia fuera esa página, comprueba para considerar si se fija su pedacito referido. Si no se fija, la página se intercambia hacia fuera. Si no, se despeja el pedacito referido, la página se inserta en la parte posterior de la coleta (como si fuera una nueva página) y se repite este proceso. Esto se puede también pensar en como coleta circular. Si todas las páginas tienen su sistema del pedacito referido, en el segundo encuentro de la primera página en la lista, que la página será intercambiada hacia fuera, pues ahora hace su pedacito referido despejar.

Como sugiere su nombre, de segunda mano da a cada página un " segundo-chance" - una página vieja se ha referido que es probablemente funcionando, y no se debe intercambiar hacia fuera sobre una nueva página que no se ha referido.

Reloj

El reloj es una versión más eficiente del primero en entrar, primero en salir que de segunda mano porque las páginas no tienen que ser empujadas constantemente a la parte posterior de la lista, sino que realiza la misma función general que de segunda mano. El algoritmo del reloj mantiene una lista circular de páginas memoria, con el " hand" (iterator) señalando a la página más vieja de la lista. Cuando ocurre una avería de página y existen ningunos marcos vacíos, después el pedacito de R (referido) se examina en la localización de la mano. Si R es 0, la nueva página se pone en lugar de la página el " hand" los puntos a, si no el pedacito de R se despejan y se incrementa la mano. Se repite esto hasta que se substituya una página.

Lo más menos posible usado recientemente

El menos algoritmo (DE LRU) usado recientemente del reemplazo de la página, aunque similar en nombre a NRU, diferencia en el hecho que DE LRU no pierde de vista uso de la página durante un corto período de tiempo, mientras que NRU apenas mira el uso en el intervalo de reloj pasado. Trabajos DE LRU sobre la idea que las páginas que han sido las más muy usadas en el pasado pocas instrucciones sean más probable ser utilizado pesadamente en las instrucciones próximas también. Mientras que es DE LRU puede proporcionar funcionamiento cercano-óptimo en la teoría, él es algo costoso ejecutar en la práctica. Hay algunos métodos de la puesta en práctica para este algoritmo que intentan reducir el coste con todo guardar tanto del funcionamiento como sea posible.

El método más costoso es el método de la lista encadenada, que utiliza una lista encadenada que contiene todas las páginas en memoria. En la parte posterior de esta lista está la menos página usada recientemente, y en el frente está la página recientemente usada. El coste de esta puesta en práctica miente en el hecho de que los artículos en la lista tendrán que ser movidos sobre cada referencia de la memoria, que es un proceso muy desperdiciador de tiempo.

Otro método que requiere la ayuda del hardware es como sigue: suponer que el hardware tiene un contador 64-bit que se incremente en cada instrucción. Siempre que una página esté alcanzada, gana un valor igual al contador a la hora del acceso de la página. Siempre que una página necesite ser substituida, el sistema operativo selecciona la página con el contador más bajo y la intercambia hacia fuera. Con el actual hardware, esto no es factible porque no existen los contadores required del hardware.

Debido a costes de la puesta en práctica, uno puede considerar algoritmos (como los que siguen) que ser similar a DE LRU, pero que ofrecer puestas en práctica más baratas.

Una ventaja importante del algoritmo DE LRU es que es favorable al análisis estadístico completo. Se ha probado, por ejemplo, que la poder DE LRU nunca da lugar más que N-tiempos más averías de página que algoritmo del OPT, donde está proporcional N al número de páginas en la piscina manejada.

Por una parte, la debilidad DE LRU es que su funcionamiento tiende a degenerar bajo muchos patrones de referencia absolutamente comunes. Por ejemplo, si hay páginas de N en la piscina DE LRU, un uso que ejecuta un lazo sobre el arsenal de N + las páginas 1 causará una avería de página en cada acceso. Pues los lazos sobre órdenes grandes son comunes, mucho esfuerzo se ha puesto en la modificación DE LRU para trabajar mejor en tales situaciones. Muchas de las modificaciones DE LRU propuestas intentan detectar patrones de referencia de colocación y cambiar en algoritmo del reemplazo conveniente, como utilizado recientemente (MRU).

Variantes en DE LRU de

LRU-K mejora grandemente en DE LRU con respecto a lugar a tiempo. También se conoce como LRU-2, para el caso que K=2. LRU-1 (es decir K=1) es igual que el normal DE LRU.

el algoritmo del ARCO amplía DE LRU manteniendo una historia de páginas recientemente desahuciadas y utiliza esto para cambiar preferencia al acceso reciente o frecuente. Es particularmente resistente a las exploraciones secuenciales.

Una comparación del ARCO con otros algoritmos (DE LRU, MQ, 2Q, LRU-2, LRFU, LIRS) se puede encontrar en Megiddo y Modha

Al azar

El algoritmo al azar del reemplazo substituye una página al azar en memoria. Esto elimina los gastos generales de seguir referencias de página. Se va generalmente mejor que el primero en entrar, primero en salir, y para las referencias de colocación de la memoria que es mejor que DE LRU, aunque generalmente sea DE LRU se realiza mejor en la práctica. El OS/390 utiliza la aproximación DE LRU global y recurre al reemplazo al azar cuando degenera el funcionamiento DE LRU, y el procesador de Intel i860 utilizó una política al azar del reemplazo (Rhodehamel 1989).

Utilizado no con frecuencia

El algoritmo no con frecuencia usado del página-reemplazo genera pocas averías de página que el menos algoritmo de reemplazo de página usado recientemente cuando el de tabla de páginas contiene valores del puntero nulo.

El algoritmo de reemplazo de página (NFU) no con frecuencia usado requiere un contador, y cada página tiene un contador sus los propios, pone a cero inicialmente. En cada intervalo de reloj, todas las páginas que se han referido dentro de ese intervalo tendrán su contador incrementado por 1. en efecto, los contadores no pierden de vista cómo una página se ha utilizado con frecuencia. Así, la página con el contador más bajo puede ser intercambiada hacia fuera cuando es necesaria.

El mayor problema con NFU es que no pierde de vista la frecuencia del uso sin consideración alguna hacia la duración del uso. Así, en un recopilador de pasos múltiples, las páginas que eran muy usadas durante el primer paso, pero no se necesitan en el segundo paso serán favorecidas sobre las páginas que se utilizan comparable ligeramente en el segundo paso, pues tienen contadores de frecuencia más altos. Esto da lugar a degradación de las prestaciones. Otros panoramas comunes existen donde NFU se realizará semejantemente, por ejemplo un cargador-para arriba del OS. Agradecido, un algoritmo similar y mejor existe, y su descripción sigue.

Envejecimiento

El algoritmo del envejecimiento es un descendiente del algoritmo de NFU, con las modificaciones para hacerlo enterado de la duración del uso. En vez apenas de incrementar los contadores de las páginas referidas, poniendo énfasis igual en referencias de página sin importar el tiempo, el contador de la referencia en una página primero se cambia de puesto a la derecha (dividido por 2), antes de agregar el pedacito referido a la izquierda de ese número binario. Por ejemplo, si una página tiene pedacitos referidos 1.0 en los últimos 6 impulsos del reloj, su contador referido parecerá esto: 10000000, 01000000, 00100000, 10010000, 11001000, 01100100. Las referencias de página más cercano al actual tiempo tienen más impacto que referencias de página hace tiempo. Esto se asegura de que las páginas se refirieran más recientemente, aunque referido menos con frecuencia, tendrá prioridad más elevada sobre las páginas referidas más con frecuencia en el pasado. Así, cuando una página necesita ser intercambiada hacia fuera, la página con el contador más bajo será elegida.

Observar que el envejecimiento diferencia de DE LRU en el sentido que el envejecimiento puede no perder de vista solamente las referencias en los últimos intervalos de 16/32 (dependiendo del tamaño de pedacito de los números enteros del procesador) vez. Por lo tanto, dos páginas pudieron haberse referido a contadores de 00000000, aunque una página fue referida 9 intervalos hace y hace los otros 1000 intervalos. Hablando en t3erminos generales, saber el uso dentro de los últimos 16 intervalos es suficiente para tomar una buena decisión en cuanto a la cual página a intercambiar hacia fuera. Así, el envejecimiento puede ofrecer el funcionamiento cercano-óptimo para un precio moderado.

Espacio de ejecución

El espacio de ejecución no es un algoritmo de reemplazo de página en el sentido terminante, pero un algoritmo del página-reemplazo puede quitar una página si no está en el espacio de ejecución para un proceso. Por ejemplo, el algoritmo del reloj se puede modificar para no hacer caso de las páginas actual en el espacio de ejecución, o si el sistema del pedacito de R. (Carr y Hennessey, 1981)

.

  • Zenithic
  • Bo Pho
    Random links:Universidad de Durham | Cala clara, Wisconsin | Parque nacional del búfalo de madera | Cazador Tylo | Ina, Ibaraki

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">