You are on page 1of 12

INVESTIGACION

Algoritmo de Reemplazo de Paginacin

UNIVERSIDAD CATOLICA DE HONDURAS


Campus Santiago Apostol

Paginacin
La paginacin consiste en considerar el espacio de direcciones lgicas de cada proceso
como un conjunto de bloques de tamao consistente llamados pginas. Es un esquema de
gestin de memoria que permite que el espacio de direcciones fsicas de un proceso no sea
contiguo. sta divide un programa en pequeas partes de tamao fijo llamados pginas y a
nivel de memoria, sta es dividida en pequeos bloques de tamao fijo llamados marcos o
frames de pginas. La paginacin evita el considerable problema de encajar fragmentos de
memoria de tamao variable en el almacn de respaldo.

Memoria virtual
Cuando la memoria fsica de un computador se hace insuficiente, el sistema operativo
puede emular una memoria de mayor tamao que la memoria real, haciendo que parte de
los procesos se mantengan en el disco. A este tipo de memoria se le denomina memoria
virtual, pues es una memoria inexistente, pero que para cualquier proceso es indistinguible
de la memoria real. El mecanismo que implementa la memoria virtual se denomina
paginacin bajo demanda y consiste en que se lleva al disco las pginas virtuales de un
proceso que tienen poca probabilidad de ser referenciadas en el futuro cercano. Un proceso
puede continuar corriendo con parte de sus pginas en disco, pero con la condicin de no
accesar esas pginas. Quien se encarga de realizar una estimacin de que pginas que sern
utilizadas y cargarlas en memoria es el paginador o pager.

Bit vlido-invlido
En el contexto de paginacin, el concepto de vlido indica que la pgina est en memoria;
mientras que invlido indica que la pgina no se encuentra en el espacio lgico de
direcciones de proceso o es vlida pero no est actualmente en el disco.
Las pginas residentes en disco se marcan en la tabla de pginas del proceso con el bit
valido-invalido como invalida, de modo que si el proceso la referencia se produce una
interrupcin de fallo de pgina. En la rutina de atencin de esta interrupcin, se cargar en
memoria la pgina que caus la pgina de falla, por lo que el proceso queda suspendido
mientras se realiza la lectura del disco. Cuando esta operacin concluye, el proceso se
retoma en forma transparente sin que perciba la ausencia temporal de esa pgina. Los pasos
para tratar un fallo de pgina estn presentes en la figura 2.
La duracin de la suspensin del proceso es del orden del tiempo de acceso del disco, es
decir entre 8 a 20 milisegundos.

Sustitucin de Pginas
Si incrementamos la multiprogramacin, estamos sobrecargando nuestra memoria o sobre
asignado, lo que puede eventualmente que nos quedemos falta de marcos o frames

disponibles para cargar las pginas. En estos casos, la solucin ms comn es la sustitucin
de pginas. En este sentido el procedimiento de reemplazo es:
1. Encontrar la ubicacin en disco de la pgina deseada.
1. Buscar un marco libre:
2. si hay un frame o marco libre, utilizarlo.
3. De lo contrario, utilizar un Algoritmo de Reemplazo de Pgina con el fin
de seleccionar un marco vctima.
4. Escribir la pgina vctima en disco; ajustar las tablas de marcos y pginas.
2. Traer la pgina al nuevo frame libre. Actualizar la tabla de pgina.
3. Reiniciar el proceso de usuario.
Para implementar cualquier algoritmo que realice la eleccin del marco vctima (y por
supuesto de la pgina que ser enviada a memoria secundaria) se tienen ciertas
consideraciones:

Para referirnos a una pgina se habla de su nmero de pgina, por ejemplo pgina 1,
p1 o simplemente 1.

Por otra parte, siempre que se haya referenciado a una pgina e inmediatamente se
referencie de nuevo, no hay fallo de pgina.

Se debe conocer el nmero de frames disponibles. A mayor cantidad de marcos,


menos fallas de pgina.

Algoritmo FIFO
El algoritmo FIFO reemplaza las pginas de la forma que el primero que entra es el
primero que sale. Asocia a cada pgina el instante en el que se trajo a la memoria, as
cuando se tenga que reemplazar una pgina, se elige la ms antigua.

En la imagen vemos 19 pginas entrando en una memoria de tres frames. El resultado


obtenido fueron 15 fallos de pgina.
A pesar de que es un algoritmo fcil de comprender y programar, su rendimiento no
siempre es bueno. Un ejemplo claro es cuando la pgina puede contener una variable cuyo
valor inicial se asign hace tiempo pero que se utiliza constantemente por lo que puede
prescindir de pginas que accede con frecuencia.

Anomala de Belady
sta anomala fue descubierta y demostrada en 1969 por el cientfico de la computacin
Laszlo Belady y consiste en que al aumentar el nmero de marcos en la memoria fsica, es
posible tener ms fallos de pgina. En la siguiente imagen vemos la diferencia, con el
mismo orden de pginas, con tres y cuatro marcos en la memoria.

Comparacin con diferente cantidad de marcos y su cantidad de fallas con un algoritmo en


especfico.
Notamos que con tres marcos solo tiene nueve fallos y que con cuatro marcos tiene diez.
Aunque el ejemplo solo trata con pocos marcos, es sorprendente el comportamiento que se
podra ver con muchos ms. Antes de ste descubrimiento se crea que FIFO era el mejor
algoritmo para el manejo de pginas, pero se tuvo que buscar alternativas a causa de esta
sorprendente anomala. Actualmente esta anomala es ms bien utilizada como una simple
curiosidad que demuestra que los sistemas pueden tener a veces comportamientos
inesperados.

Algoritmo ptimo
El Algoritmo ptimo, tambin conocido como OPT se origin luego del descubrimiento
de la Anomala de Belady en la bsqueda de un algoritmo mucho ms ptimo. El algoritmo
elige la pgina de la memoria que vaya a ser referenciada ms tarde, las pginas se rotulan
con el nmero de instrucciones que se ejecutarn antes de que se haga la primera referencia
a ella y, cuando se presenta un fallo de pgina, se reemplaza la que ms instrucciones falten
para referenciarla para as ir aplazando lo ms que se pueda los fallos de pgina. Por
desgracia, este algoritmo es irrealizable, ya que no hay una forma de predecir qu pginas
referenciar un proceso en el futuro.

En la imagen vemos la cadena de referencias para una pgina y cmo se usa la memoria (en
este caso de 3 frames o marcos). Se comienza tal como el algoritmo FIFO ingresando las
pginas a la memoria; el primer caso de memoria llena sucede cuando entra la pgina 1 y
quiere entrar la pgina 2. La vctima debe ser decidida de tal forma que la pgina no sea
referenciada ms o sea referenciada mucho despus. En este caso la pgina 5 no es
referenciada ms, por lo que es reemplazada por la pgina 2. El algoritmo genera
finalmente 7 fallos de pgina, versus por ejemplo los 10 fallos que FIFO genera.
Como es un algoritmo que no se puede poner en prctica, se ejecuta en simuladores en los
cuales se demuestra que es un muy buen algoritmo que reduce mucho las fallas y que se
encuentra entre los algoritmos con mejor eficiencia por lo que es el algoritmo utilizado para
estudios comparativos.

Algoritmo LRU
La estrategia consiste en llevar a disco la pgina que ha permanecido por ms tiempo sin
ser accesada. El fundamento de esta estrategia es que estadsticamente se observa que
mientras ms tiempo permanece una pgina sin ser accesada, menos probable es que se
accese en el futuro inmediato. Desventaja: El alto costo de implementacin en cuanto a los
recursos. Pese a ser un buen algoritmo en teora, su implementacin no lo es tanto. Esta
puede ser llevada a cabo por una lista enlazada con todas las pginas ordenadas, pero al
momento de ser referenciada una pgina esta tiene que cambiar de lugar, lo cual involucra
un alto costo asociado. Otro mecanismo es llevar un contador por medio de hardware, el
cual es incrementado cada vez que la pgina es accedida.

De acuerdo con el string entregado, podemos apreciar que cuando se llega al nmero 3 en
el string, el numero al que reemplaza es el 8, ya que fue el ltimo en ser accedido, previo a
l est el 2 y previo a l el 1, de esta manera se continua completando el marco hasta el
trmino del string++.
*Implementacin con Contador. Es asociada a cada tabla de pgina un campo de tiempo
y el CPU lleva un contador o reloj el cual se incrementa en cada referencia a memoria que
se realiza. Al momento de realizar el llamado a una pgina, este contador es copiado en el
campo de tiempo que est en su tabla correspondiente. Temas a tener en cuenta:

siempre se tiene la ltima referencia a cada pgina.

Esta implementacin hace necesaria la bsqueda en las tablas de pgina de la pgina


menos utilizada.

Se hacen necesario incorporar grandes contadores en el CPU, y tener un cuidado


con el probable desbordamiento que pudiera tener.

*Implementacin con Pila. Se mantiene una pila, con los nmeros en una lista doblemente
enlazada. Con esta modalidad ya no se hace necesario realizar una bsqueda, como lo es
con el contador, pero se tiene que realizar el cambio en los punteros de la lista. Para ir
estructurando la pila, cada pgina referenciada se va colocando al tope de sta.

De acuerdo a la figura 3, se presenta una representacin de cada cambio en la pila


siendo la posicin de la izquierda el tope de sta.

Figura 3: Reemplazo de pgina


1-[4|_|_|_|_].
2-[7|4|_|_|_].
3-[0|7|4|_|_].
4-[7|0|4|_|_].
5-[1|7|0|4|_].
6-[0|1|7|4|_].
7-[1|0|7|4|_].
8-[2|1|0|7|4].
9-[1|2|0|7|4].
10-[2|1|0|7|4].
11-[7|2|1|0|4].
12-[2|7|1|0|4].

Aproximaciones a LRU
Bit de referencia
Al no existir en todos los computadores soporte de hardware para implementar al costoso
LRU, se usan otros algoritmos modificados para acercarse (como por ejemplo modificar
FIFO). Otros sistemas intentan dar soporte a LRU con un bit de referencia o bit R, el cual
es activado y desactivado por el hardware cuando una pgina es referenciada, siendo cada
bit de referencia asociado con una sola pgina en la tabla de pginas. Cada bit es iniciado

en 0 por el sistema operativo. Cuando hay una referencia el bit es puesto en 1. Luego de un
tiempo se puede determinar cules pginas han sido usadas y cules no, sin conocer su
orden. sta implementacin es la base para otras aproximaciones a LRU, pues da uso al bit
de referencia.

Algoritmo de Segunda Oportunidad


Este es un algoritmo que deriva del algoritmo FIFO. El Algoritmo de Segunda
Oportunidad evita deshacerse de una pgina de uso frecuente, hace uso del bit R
inspeccionndolo de tal forma que, si es 0, la pgina es antigua y no utilizada, por lo que,
en caso de fallo de pgina, es reemplazada de manera inmediata. En caso de que dicho bit
sea 1, es cambiado a cero y se cambia al final de la lista de pginas como si hubiera llegado
en ese momento a la memoria. Luego contina la bsqueda siguiendo lo que avanza en la
lista.

En la imagen vemos como se ejecuta el algoritmo, las pginas fueron identificadas, a modo
de este ejemplo, con letras de la A a la H segn el orden de llegada y mostradas en una lista
enlazada. A es la primera pgina cargada y la que con menos frecuencia se ocupa mientras
que H es la pgina ms reciente cargada. Supongamos que ocurre un fallo de pgina. La
pgina ms antigua en nuestro ejemplo es A, si ste tiene el bit R a cero, se saca de la
memoria. Por el contrario, si R vale 1, A se coloca al final de la lista, ponindose a cero el
bit R. Dejando como bsqueda adecuada de pgina con B.
Lo principal de este algoritmo de segunda oportunidad es ir viendo las pginas antiguas sin
referencias, si es que todas tienen ms de una referencia entonces se aplica normalmente el
algoritmo FIFO.

Algoritmo NRU
El algoritmo Not Recently Used (NRU), No utilizado recientemente, Enhanced secondchance o Segunda oportunidad mejorado[1] es uno de los esquemas que intentan
aproximarse al algoritmo LRU. Especficamente es una modificacin del algoritmo de
segunda oportunidad, el cual considera el bit de referencia R y el bit de modificacin M
como un par ordenado (R, M) respectivamente. Existen cuatro clases de pginas descritas
por este par que se mencionan a continuacin.

Clase 0 (0, 0) La pgina no ha sido ni usada ni modificada recientemente. sta


pgina es la mejor candidata a ser reemplazada.

Clase 1 (0, 1) La pgina no ha sido recientemente usada pero s fue modificada. No


es tan buena como la primera opcin, pues la pgina deber ser escrita antes de ser
reemplazada.

Clase 2 (1, 0) La pgina fue recientemente usada y no modificada. El argumento de


este algoritmo es que sta pgina probablemente vuelva a ser usada.

Clase 3 (1, 1) La pgina fue usada y modificada. Considerando las descripciones


anteriores se aprecia que la pgina podra volver a ser usada y adems escrita al
disco.

Cuando una pgina se debe reemplazar, se usa la misma lgica que el algoritmo de reloj,
pero en vez de revisar si el bit de referencia de la pgina es un 1, se examina la clase a la
que pertenece la vctima. Dependiendo de la implementacin la pgina (aleatoria o la
primera que se encuentre) con la clase ms pequea es reemplazada. Para encontrarla es
posible que se deba revisar la cola circular varias veces antes de encontrar la vctima.
Una duda interesante que surge es cmo puede haber pginas modificadas pero no usadas
(clase 1). Esto sucede cuando pginas de clase 3, luego de una interrupcin de reloj el bit de
referencia es puesto en 0 pero los cambios an deben ser escritos en disco por lo que el bit
de modificacin sigue en 1.
La diferencia ms grande entre ste algoritmo y el de segunda oportunidad es que en este se
da preferencia a aquellas pginas que han sido modificadas, de tal forma de reducir el I/O
de disco asociado a stas. Es un algoritmo eficiente de implementar con rendimiento bueno
ms no ptimo, adems de que se debe hacer una bsqueda a travs de cada par de bits.

Algoritmos basados en conteo


En este caso la idea es mantener un contador del nmero de referencias que se han hecho a
cada pgina. Ac se enmarcan dos algoritmos que definen a estos contadores: el LFU
centrado en reemplazar las pginas menos usadas y el MFU, que reemplaza las pginas ms
usadas.

Algoritmo LFU
El algoritmo Least frequently used (LFU) o Menos frecuentemente utilizado pide que la
pgina con el menor contador sea reemplazada. Esto se justifica en que una pgina usada
con mucha frecuencia tendr un contador ms grande. Un problema de este esquema es
cuando una pgina es usada intensamente durante la fase inicial de un proceso y luego no
vuelve a ser usada, lo cual genera un contador mucho mayor y la pgina permanece en
memoria sin poder ser sacada. Una solucin a lo anterior es realizar un corrimiento de 1 bit
del contador a intervalos regulares de tiempo de tal forma de nivelar los contadores de
forma exponencial y as no habr pginas estancadas.

El ejemplo en la imagen muestra una cadena de bits de referencias. Las invocaciones de las
pginas figuran con sus respectivos frames y cada uno tiene un contador que indica la
cantidad de veces que se ha llamado a una pgina. As, pginas cuya frecuencia es la ms
baja son reemplazadas por otras, (En este caso la pgina #3 de frecuencia 1 es reemplazada
por la pagina #28). Finalmente se observa el balance entre pginas tradas y pginas
retiradas.
Aging
Este algoritmo desciende del NFU, mejorndolo al realizar un corrimiento de 1 bit a la
derecha antes de aumentar el contador de uso en 1 bit a la izquierda en su forma binaria.
Esto provoca que las pginas cuyas referencias son ms actuales tengan ms importancia
que aquellas que fueron referidas hace tiempo, asegurando que pginas usadas
recientemente pero no frecuentemente tengan mayor prioridad frente a pginas usadas hace
tiempo pero con mayor referencia. As la pgina con el menor contador es elegida para ser
reemplazada.

En el ejemplo de la imagen se presentan dos pginas con sus bits de referencia y contadores
(en formato binario). La pgina 1 tiene los bits de referencia 1,1,1,0,0,0 que indican una
alta frecuencia de uso pero estos no son actuales; la pgina 2 tiene bits 0,0,0,0,1,1 lo que
indica poca frecuencia de uso pero muy actual. Siguiendo el algoritmo, se toma el contador
en binario y se efecta un corrimiento de 1 bit a la derecha y se le adjunta el bit de

referencia a la izquierda, todo esto por cada tick de reloj. Finalmente el contador de la
pgina 1 es 0001110, versus el de la pgina 2 que es 11000000, reflejando que la pgina 1
tiene menor importancia que la pgina 2 pues esta ltima es ms reciente, por lo que la
pgina 1 eventualmente debe ser reemplazada.

Algoritmo MFU
El algoritmo Most frequently used (MFU) o Ms frecuentemente utilizado, que al
contrario del LFU est basado en el argumento de que la pgina con el menor contador fue
probablemente trada hace poco y an no ha sido usada, por lo que la pgina con el mayor
contador ser la vctima en este caso.

El ejemplo en la imagen presenta los frames y contadores para una cadena de referencias
dada. En caso de que dos o ms contadores fueran iguales, se reemplaza la pgina que haya
llegado primero. En el ejemplo ocurren 10 reemplazos de pgina considerando llenar
frames vacos y reemplazos efectivos de pgina.
Ninguno de estos algoritmos es utilizado comnmente. La implementacin que requieren es
cara, y no se aproximan lo suficiente al algoritmo ptimo.

Bibliografa
http://wiki.inf.utfsm.cl/index.php?title=Algoritmos_de_reemplazo_de_p
%C3%A1gina. (s.f.).

You might also like