Sie sind auf Seite 1von 23

Sistemas Operativos

Jose Raymundo Marcial Romero


J.R.Marcial@cs.bham.ac.uk

Clase Numero 13 p.1/23

Algoritmos para reemplazo de pginas


Cuando se presenta un fallo de pgina, el s.o. tiene que escoger la pgina que desalojar de la memoria para hacer espacio para colocar la pgina que traer del disco. Si la pgina a desalojar fue modicada mientras estaba en la memoria, deber reescribirse en el disco para actualizar la copia. Si la pgina no se ha modicado, la copia en disco ya estar actualizada y no ser necesario reescribirla. El desempeo mejora si se escoge una pgina que no se usa mucho.

Clase Numero 13 p.2/23

El Alg. ptimo de reemplazo de pgina


Es fcil de describir pero imposible de implementar. En el momento que se presenta un fallo de pgina, cierto conjunto de pginas estar en memoria. En la siguiente instruccin se har referencia a una de esas pginas (la pgina que contiene la instruccin). Puede ser que no se haga referencia a otras de las pginas sino hasta 10, 100 o quiz 1000 instrucciones despus. Cada pgina puede rotularse con el nmero de instrucciones que se ejecutarn antes de que se haga la primera referencia a esa pgina.

Clase Numero 13 p.3/23

El Alg. ptimo de reemplazo de pgina


Este algoritmo dice que debe desalojarse la pgina con el rtulo ms grande. Si faltan 8 millones de instrucciones para que se use cierta pgina y faltan 6 millones de instrucciones para que se use otra, el desalojo de la primera aplaza lo ms posible el fallo de pgina que volver a traer una pgina de la memoria. Problema: en el momento en que se presenta un fallo de pgina, el s.o. no tiene forma de saber cundo se volver a hacer referencia a cualquiera de las pginas.

Clase Numero 13 p.4/23

El Alg. de reemplazo de pginas no usado recientemente


Para que el s.o. pueda recabar estadsticas tiles acerca de cules pginas se estn usando y cuales no, las computadoras con memoria virtual asocian a cada pgina dos bits de estado. R se enciande cada vez que se hace referencia a la pgina (para leer o escribir) M se enciende cada vez que se escribe en la pagina (es decir se modica). Dichos bits deben actualizarse en cada referencia a memoria, por lo que el hardware los debe encender. Un bit quedara encendido hasta que el s.o. lo restablezca a 0 mediante software.

Clase Numero 13 p.5/23

El Alg. de reemplazo de pginas no usado recientemente


Si el hardware no cuenta con estos bits, pueden simularse como sigue. Cuando se inicia un proceso, todas sus entradas en la tabla de pgina se marcan como no presentes en la memoria. Tan pronto como se haga referencia a una pgina habr un fallo de pgina. Entonces el s.o. encender el bit R, modicar la entrada en la tabla de pgina de modo que apunte a la pgina correcta, con modo de SOLO LECTURA, y reiniciar la instruccin.

Clase Numero 13 p.6/23

El Alg. de reemplazo de pginas no usado recientemente


Si despus se escribe en la pgina, habr otro fallo de pgina, lo que permitir al s.o. encender el bit M y cambiar el modo de pgina a LECTURA/ESCRITURA. R y M pueden servir para elaborar un algoritmo de reemplazo de pgina sencillo. Cuando se inicia un proceso, el s.o. establece a cero ambos bits para todas sus pginas. En forma peridica el bit R se reestablece a 0 para distinguir las pginas que no se han soliciado ltimamente.

Clase Numero 13 p.7/23

El Alg. de reemplazo de pginas no usado recientemente


Cuando se presenta un fallo de pgina, el s.o. examina todas las pginas y las divide en 4 categoras con base en los valores actuales de R y M Clase 0: no solicitada, no modicada Clase 1: no solicitada, modicada Clase 2: solicitada, no modicad Clase 3: solicitada, modicada El algoritmo no usado recientemente desaloja al azar una pgina de la clase de nmeros ms bajo que no est vaca.

Clase Numero 13 p.8/23

El algoritmo de reemplazo de pgina FIFO


Este es el esquema clsico de el primero que entra es el primeto que sale.

Clase Numero 13 p.9/23

Segunda Oportunidad
Es una modicacin sencilla de FIFO que evita el problema de desalojar una pgina que se usa mucho. Consiste en examinar el bit R de la pgina ms antigua. Si es 0, quiere decir que la pgina no slo es antigua, sino que tampoco se usa mucho, por lo tanto se reemplaza de inmediato. Si R es 1, se apaga, la pgina se coloca al nal de la lista de pginas y su tiempo de carga se actualiza como si acabara de llegar a la memoria. Ver Figura 4-16.

Clase Numero 13 p.10/23

Tipo Reloj
Es una variante del agoritmo segunda oportunidad Ver Fig 4-17.

Clase Numero 13 p.11/23

Menos recientemente usada


Cuando se presenta un fallo de pgina, desalojar la que tiene ms tiempo sin usarse. El problema es que tiene un costo elevado Para implementarlo cabalmente se debe mantener una lista enlazada de todas las pginas que estn en la memoria, con la que se uso ms recientemente al principio. Primera implementacin en Hardware Equipar el hardware con un contador de 64 bits, C, que se incrementa automticamente despus de cada instruccin.

Clase Numero 13 p.12/23

Menos recientemente usada


Cada entrada de la tabla de pgina debe tener un campoo para contener al contador. Despus de cada referencia a la memoria, el valor de C se almacena en la entrada correspondiente a la pgina a la que acaba de hacer referencia. Al presentarse un fallo de pgina, el s.o. examina los contadores hasta hallar el mas bajo.

Clase Numero 13 p.13/23

Menos recientemente usada


Segunda implementacin en Hardware En una mquina con n marcos de pgina, el hardware puede mantener una matriz de n n bits, los cuales son cero al principio. Cada vez que se hace referencia al marco de pgina k , el hardware enciende primero todos los bits de la la k y luego apaga todos los bits de la columna k . En cualquier instante, la la cuyo valor binario sea el ms bajo ser la del marco menos recientemente usado. Ver Figura 4-18.

Clase Numero 13 p.14/23

Menos recientemente usada


Simulacin en software El problema para implementar el esquema anterior es que pocas mquinas cuentan con el hardware. Una solucin es el algoritmo de pgina no usada frecuentemente (NFU). NFU requiere un contador de software asociado con cada pgina, de valor inicial 0. En cada interrupcin de reloj, el s.o. explora todas las pginas que estn en la memoria. Para cada una el bit R, que es 0 o 1, se suma a su contador.

Clase Numero 13 p.15/23

Menos recientemente usada


Los contadores son un intento por llevar la cuenta de qu tanto se hace referencia a una pgina. Cuando se presenta un fallo de pgina, se escoge la pgina con el contador ms bajo para ser reemplazada. Su problema principal es que nunca olvida. Modicacin de NFU: 1 Todos los contadores se desplazan un bit a la derecha antes de sumar el bit R 2 El bit R se suma al bit de la extrema izquierda, no al de la derecha. (ver g, 4-19) Cuando ocurre un fallo de pgina, se desaloja la pgina cuyo contador es el ms bajo.

Clase Numero 13 p.16/23

Conjunto de trabajo
El conjunto de pginas que un proceso est usando en un momento dado se denomina conjunto de trabajo Si todo el conjunto de trabajo est en la memoria, el proceso se ejecutar sin causar muchos fallos de pgina hasta que pase a otra fase de su ejecucin. Si la memoria disponible es demasiado reducida para contener todo el conjunto de trabajo, el proceso causar muchos fallos de pgina y se ejecutar con lentitud. A un sistema que causa muchos fallos de pgina se le llama hyperpaginado

Clase Numero 13 p.17/23

Conjunto de trabajo
La idea del algoritmo es hallar una pgina que no est en el conjunto de trabajo y desalojarla (Fig 4-21). Dado que solo las pginas que estn en la memoria se consideran candidatas para el desalojo, el algoritmo ignora las pginas ausentes. Cada entrada contiene (por lo menos) dos elementos de informacin: el tiempo aproximado en el que ocurrio el ltimo uso de la pgina y el bit R (solicitado). El algortmo funciona como sigue: Se supone que el hardware se encarga de encender los bits R y M como se menciono anteriormente.

Clase Numero 13 p.18/23

Conjunto de trabajo
Tambin se supone que una interrupcin de reloj peridica causo la ejecucin de software que apaga el bit Solicitada en cada tic de reloj. En cada fallo de pgina, la tabla de pginas se explora en busca de una apropiada para desalojar. Conforme se procesa cada entrada, se examina el bit R. Si es 1, se escribe el tiempo virtual actual en el campo Tiempo del ltimo uso en la tabla de pginas. Si es 0, podra ser candidata para desalojo.

Clase Numero 13 p.19/23

WSClock
Un algoritmo mejorado, basado en el algoritmo de reloj pero que tambin usa la informacin de conjunto de trabajo, se llama WSClock Por su sencillez de implementacin y buen desempeo, se usa en forma extensa en la prctica. La estructura de datos que se necesita es una lista circular de marco de pgina, igual que en el algoritmo de reloj (Fig 4-22a) En un principio la lista esta vacia. Cuando se aade la primera pgina, esta se aade a la lista. A medida que se accede a pginas, se incorporan a la lista formando un anillo.

Clase Numero 13 p.20/23

WSClock
Cada entrada contiene el campo Tiempo del ltimo uso del algoritmo de conjunto de trabajo bsico, adems del bit R y M. Al igual que el algoritmo de reloj, cada vez que hay un fallo de pgina se examina primero la pgina a la que apunta la manecilla. Si el bit R es 1 signica que la pgina se uso durante el tic actual, asi que no es candidata para desalojarse. Por lo tanto se apaga el bit R, se adelanta la manecilla a la siguiente pagina y se repite el algoritmo con ella. (Fig 4-22b)

Clase Numero 13 p.21/23

WSClock
Si la pgina a la que apunta la manecilla tiene R=0, si la edad es mayor que y la pagina esta limpia quiere decir que no esta en el conjunto de trabajo y que ya hay una copia vlida en el disco. La nueva pgina se coloca simplemente en este marco de pgina. (Fig. 4-22d). Si la pgina est modicada, no se le podr modicar de inmediato por que noo hay una copia vlida en el disco. Para evitar una conmutacin de procesos, se calendariza la escritura a disco, pero la manecilla se adelanta y el algoritmo contina con la siguiente pgina.

Clase Numero 13 p.22/23

Resumen de alg. de reemplazo de pgina


Algoritmo ptimo NRU(no usada recientemente) FIFO Segunda Oportunidad Reloj LRU (menos mente usada) recienteComentario No implementable, pero sirve para comparar Muy burdo Podra desalojar pginas importantes Mucho mejor que FIFO Realista

Excelente, pero difcil de implementar con exactitud Aproximacin ms o menos burda a LRU

NFU (no usado frecuentemente) Envejecimiento Conjunto de trabajo WSClock

Algoritmo eciente que se aproxima bien a LRU Implementacin algo costosa Algortimo eciente

Clase Numero 13 p.23/23

Das könnte Ihnen auch gefallen