Está en la página 1de 11

Instituto Tecnolgico de Pachuca

Sistemas Operativos
Trabajo
Estrategias de Administracin de Memoria Virtual M. en C. Carlos Ignacio Rivas Palacio Acosta Zarco Mauro Dasaev Cruz Meja lvaro Lpez Morales Jos Luis Torres Garca Cesar Vzquez Rivera Ana Lucia

Profesor Alumnos

Instituto Tecnolgico de Pachuca

ndice
Memoria Virtual .................................................................................................................................. 2 Administracin de Memoria ................................................................................................................ 2 Estrategias de Remplazo de pagina .................................................................................................... 3 Remplazo FIFO................................................................................................................................. 4 Remplazo Optimo............................................................................................................................ 5 Remplazo Menos Recientemente Usado o LRU (Least Recently Used) .......................................... 5 Aproximaciones a LRU..................................................................................................................... 7 Algoritmos de bits Adicionales de Referencia................................................................................. 7 El algoritmo de la Segunda Oportunidad ........................................................................................ 7 El Algoritmo del Reloj ...................................................................................................................... 8 Algoritmo LFU (Last Frequently Used)............................................................................................. 9 El algoritmo MFU (Most Frequently Used) ...................................................................................... 9 Algoritmo de pginas de uso no reciente o NRU (Not Recently Used) ........................................... 9

Sistemas Operativos

Pgina 1

Instituto Tecnolgico de Pachuca Estrategias de administracin de memoria virtual


Remplazo

Memoria Virtual
La memoria virtual es una tcnica que permite ejecutar procesos que no caben totalmente en memoria RAM (memoria fsica). Esto propicia la creacin de programas que sean ms grandes que la memoria fsica. Adems, la memoria virtual ayuda a crear un esquema de abstraccin de la memoria que la separa de la zona lgica que el usuario ve, esto facilita enormemente la tarea a los programadores puesto que no se han de preocupar por limitaciones de memoria. Los procedimientos de implementacin de la memoria virtual se basan en que cuando se ejecuta un programa, ste est parcialmente en memoria, es decir, slo hay cargada aquella zona de cdigo y datos que se necesitan en ese instante de tiempo, y no el programa completo. La memoria virtual es la separacin entre la memoria lgica disponible para el usuario y la memoria RAM, se implementa generalmente con el mtodo de paginacin por demanda aunque tambin se puede implementar en un sistema con segmentacin. En el momento en que en el sistema empieza a escasear la memoria, se crea un fichero SWAP (intercambio) en el disco que sirve como ampliacin auxiliar de memoria. En el caso de Windows, cuando tenemos muchas aplicaciones en funcionamiento y la memoria RAM se agota, el sistema se apoya en el fichero SWAP para realizar movimientos desde el disco duro a la RAM y viceversa. De ese modo crean espacios en memoria fsica para ir ejecutando las rdenes. Esto, evidentemente, hace que el sistema vaya ms lento. Todo ello permite simular la existencia de 4GB de RAM en el equipo, a pesar de que nadie dispone de 4GB en su ordenador (a excepcin de algunos sistemas en empresas y universidades), y dar capacidad de ejecucin a mltiples aplicaciones por grandes que sean.

Administracin de Memoria
Es un mtodo mediante el cual, un sistema operativo simula tener ms memoria principal que la que existe fsicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. Un sistema de memoria virtual se implementa utilizando paginacin como mtodo de administracin de memoria bsica y algn mecanismo de intercambio (para descargar paginas de la memoria principal hacia el disco duro y para cargar esas paginas de nuevo a la memoria).

Sistemas Operativos

Pgina 2

Instituto Tecnolgico de Pachuca


La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una maquina. Esta ilusin permite que los programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica. La ilusin de la memoria virtual esta soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequea parte de l, esta en memoria real y el resto almacenado en el disco, y puede ser referenciado fcilmente.

Estrategias de Remplazo de pagina


Estamos buscando algoritmos que presenten la menor tasa de fallos de pgina. Para ello, necesitamos evaluarlos para una serie determinada de referencias a memoria y calcular el nmero de fallos de pgina. Podemos generar las cadenas de referencias aleatoriamente o bien coger una muestra del sistema. Esto producir un gran nmero de datos (alrededor de un milln de referencias por segundo). Se puede reducir este nmero, ya que tan slo hemos de considerar el nmero de pginas y no toda la direccin. Y adems, si tenemos una referencia a una pgina p, entonces ninguna referencia a la pgina p que se presente inmediatamente despus provocar fallo de pgina. La pgina p, ya se encuentra en memoria y las siguiente referencias a ella no provocan fallo de pgina. Por ejemplo, si rastreamos un proceso, podemos anotar la siguiente secuencia de direcciones: 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104, 0101, 0610, 0102, 0103, 0104, 0609, 0102, 0105, lo cual, a 100 bytes por pgina, se reduce a la siguiente serie de referencias: 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1. Para determinar el nmero de fallos de pgina para una serie de referencias y un algoritmo de remplazo de pgina, necesitamos tambin el nmero de marcos de pgina por proceso. Si aumenta el nmero de marcos, se reducir el nmero de fallos de pgina. Para ilustrar los algoritmos de remplazo de pginas, usaremos la siguiente secuencia de referencias 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1.

Sistemas Operativos

Pgina 3

Instituto Tecnolgico de Pachuca


Remplazo FIFO El algoritmo de remplazo ms sencillo es el primero en entrar, primero en salir. Este algoritmo asocia a cada pgina el instante en el que se trajo a memoria. Cuando hay que remplazar una pgina, se elige la ms antigua. Para la cadena de referencias de ejemplo, y suponiendo un total de tres marcos, aplicamos este algoritmo con el resultado de 15 fallos de pgina.

ENLACE A LA ANIMACIN FIFO El algoritmo FIFO es fcil de comprender y programar, pero su rendimiento no siempre es bueno. La pgina remplazada puede ser un mdulo de asignacin de valores iniciales que se utiliz hace mucho tiempo y que ya no se necesita. Pero tambin puede contener una variable cuyo valor inicial se asign hace tiempo pero que se utiliza constantemente. Adems, este algoritmo presenta una irregularidad denominada anomala de Belady. Para ilustrarlo suponga que ahora tenemos la siguiente serie de referencias 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. La figura 7.5 muestra la curva de fallos de pginas frente al nmero de marcos disponibles. Sorprendentemente el nmero de fallos para cuatro marcos (diez) es mayor que para tres marcos (nueve). Esto significa que con el algoritmo FIFO la tasa de fallos pueden aumentar al incrementar el nmero de marcos asignados.

Sistemas Operativos

Pgina 4

Instituto Tecnolgico de Pachuca


Remplazo Optimo

ENLACE A LA ANIMACIN OPTIMO Una consecuencia del descubrimiento de la anomala de Belady fue la bsqueda de un algoritmo de remplazo de pginas ptimo. El algoritmo de remplazo de pginas ptimo sera aquel que eligiera la pgina de la memoria que vaya a ser referenciada ms tarde (con el ejemplo anterior vemos que se producen tan slo 9 fallos de pgina). Si se elige otra, se producir una falta de pgina antes, con lo que baja el rendimiento del sistema. Por desgracia, este algoritmo es irrealizable, pues no hay forma de predecir qu pginas referenciar un proceso en el futuro. Como resultado de esto, el algoritmo ptimo se utiliza sobre todo para estudios comparativos. Puede ser til para saber que un nuevo algoritmo est dentro de 12.3% de lo ptimo en el peor de los casos y dentro del 4.7% en promedio. Remplazo Menos Recientemente Usado o LRU (Least Recently Used) La principal diferencia entre los algoritmos FIFO y OPT es que el primero utiliza el instante en que entr una pgina en memoria, y el segundo, utiliza el tiempo en el que se usar la pgina. Una buena aproximacin al algoritmo ptimo se basa en el principio de localidad de referencia de los programas. Las pginas de uso frecuente en las ltimas instrucciones se utilizan con cierta probabilidad en las siguientes instrucciones. De manera recproca, es probable que las pginas que no hayan sido utilizadas durante mucho tiempo permanezcan sin ser utilizadas durante cierto tiempo. Es decir, estamos utilizando el pasado reciente como aproximacin de lo que suceder en el futuro. El algoritmo LRU explota esta idea: al ocurrir un fallo de pgina se utiliza la pgina que no haya sido utilizada hace ms tiempo. El resultado de aplicar este algoritmo a nuestro ejemplo produce 12 fallos.

Sistemas Operativos

Pgina 5

Instituto Tecnolgico de Pachuca


ENLACE A LA ANIMACIN LRU Aunque LRU es realizable tericamente, su implantacin presenta problemas. Sera necesario mantener una lista enlazada de todas las pginas en la memoria, en donde la pgina de uso ms reciente est al principio de la lista y la de uso menos reciente al final. La dificultad estriba en que la lista debe actualizarse en cada referencia a la memoria. La bsqueda de una pgina en la lista, su eliminacin y posterior traslado al frente de la misma puede ser una operacin que consuma mucho tiempo. Es preciso un hardware especial (caro), o bien determinar una solucin aproximada mediante software. La bsqueda y manipulacin de una lista enlazada en cada instruccin es prohibitiva por su lentitud, an en hardware. Sin embargo, existen otras formas de implantar LRU con un hardware especial. Consideremos primero el caso ms sencillo. Este mtodo requiere un contador especial de 64 bits, C, en hardware, que se incrementa de forma automtica despus de cada instruccin. Adems, cada entrada de la tabla de pginas debe tener un campo de tamao adecuado como para contener al contador. Despus de cada referencia a la memoria, el valor actual de C se almacena en la entrada de la tabla de pginas correspondiente a la pgina a la que se hizo referencia. Al ocurrir un fallo de pgina, el sistema operativo examina todos los contadores de la tabla de pginas y elige el mnimo. Esa pgina es la de utilizada menos recientemente. Analicemos ahora un segundo algoritmo LRU en hardware. En una mquina con n marcos, el hardware LRU puede utilizar una matriz de nxn bits, cuyos datos iniciales son todos cero. En una referencia al marco k, el hardware primero activa todos los bits del rengln k y desactiva despus todos los bits de la columna k. En cualquier instante, la fila cuyo valor en binario es mnimo es el marco utilizado menos recientemente, la fila con el siguiente valor ms pequeo es el segundo marco utilizado menos recientemente, etc. El funcionamiento de este algoritmo aparece en la figura 6 para cuatro marcos con referencias a los marcos en el orden: 0123210323 Despus de hacer referencia al marco 0 tenemos la situacin de la figura 7.6 (a), etc.

Sistemas Operativos

Pgina 6

Instituto Tecnolgico de Pachuca


Ni el remplazo ptimo ni el remplazo LRU padecen la anomala de Belady. Los algoritmos de remplazo denominados algoritmos de pila nunca presentan esta anomala. Un algoritmo de pila es aquel que para el cual se puede demostrar que el conjunto de pginas en memoria para n marcos es siempre un subconjunto del conjunto de las pginas que estaran en memoria con n + 1 marcos. Para el remplazo LRU, el conjunto de pginas en memoria sera las n pginas ms recientemente usadas. Si el numero de marcos aumentara, estas n pginas seguiran siendo las de ms reciente referencia y, por tanto, seguiran en memoria. Aproximaciones a LRU. Pocos sistemas proporcionan suficiente ayuda del hardware para un verdadero remplazo de pginas LRU. Sin embargo, muchos sistemas ofrecen cierta ayuda, en la forma de un bit de referencia. El hardware coloca a uno el bit de referencia para una pgina cada vez que se hace una referencia a ella. Los bits de referencia estn asociados a cada entrada de la tabla de pginas. En principio, el sistema operativo borra todos los bits. Al ejecutarse un proceso de usuario, el hardware activa (asignando 1) el bit asociado a cada pgina referenciada. Despus de cierto tiempo, examinando los bits de referencia podemos determinar qu pginas se han utilizado y cules no, aunque no sabemos el orden de uso. Esta informacin parcial de la ordenacin nos lleva a varios algoritmos de remplazo de pginas que se aproximan al LRU. Algoritmos de bits Adicionales de Referencia Podemos obtener informacin adicional de la ordenacin anotando los bits de referencia a intervalos regulares. En una tabla en memoria podemos conservar ocho bits para cada pgina. A intervalos regulares (cada 100 milisegundos), una interrupcin del cronmetro transfiere el control al SO. El sistema operativo desplaza el bit de referencia de cada pgina al bit de orden superior de sus ocho bits, desplazando los otros bits una posicin a la derecha y descartando el bit de orden inferior. Estos registros contienen la historia de la utilizacin de la pgina durante los ltimos ocho periodos. Si el registro de desplazamiento contiene 00000000, entonces la pgina no ha sido utilizado en ocho periodos; una pgina que se utiliza por lo menos una vez cada periodo tendra un valor 11111111 en su registro de desplazamiento. Una pgina con valor 11000100 ha sido utilizada ms recientemente que una con valor 01110111. Interpretando estos bits como enteros sin signo, la pgina con el menor nmero es la que se debe remplazar. El nmero de bits histricos puede variar. En el caso extremo, el nmero puede reducirse a cero, dejando nicamente el bit de referencia. A esta versin se le llama algoritmo de remplazo de la segunda oportunidad. El algoritmo de la Segunda Oportunidad Una modificacin simple de FIFO, que evita deshacerse de una pgina de uso frecuente, inspecciona el bit R de la pgina ms antigua. Si es 0, la pgina es antigua y no utilizada,
Sistemas Operativos Pgina 7

Instituto Tecnolgico de Pachuca


por lo que se remplaza de manera inmediata. Si el bit es 1, R se pone a cero, la pgina se coloca al final de la lista de pginas, como si hubiera llegado en ese momento a la memoria. Despus contina la bsqueda siguiendo la lista. La operacin de este algoritmo, llamado de la segunda oportunidad, se muestra en la figura 7.7. En la figura 7.7 (a), vemos las pginas de la A a la H, en una lista enlazada ordenada segn el tiempo de llegada a la memoria.

Supongamos que ocurre un fallo de pgina. La pgina ms antigua es A, si A tiene el bit R a cero, se saca de la memoria. Por contra, si R vale 1, A se coloca al final de la lista, ponindose a cero el bit R. La bsqueda de una pgina adecuada prosigue con B. Lo que hace el algoritmo de la segunda oportunidad es buscar una pgina antigua sin referencias, si todas las pginas tienen alguna referencia deviene en un simple FIFO. En efecto, supongamos que todas las pginas de la figura 7.7 (a) tienen R a 1. Una a una, el sistema operativo traslada las pginas al final de la lista y pone su bit R a cero. Al final, se vuelve a la pgina A, la cual tiene R a cero. En este momento, A se retira de la memoria. Por lo tanto, el algoritmo siempre termina. El Algoritmo del Reloj Aunque la segunda oportunidad es un algoritmo razonable, es ineficiente e innecesario, puesto que desplaza las pginas en una lista. Un mejor diseo consiste en mantener las pginas en una lista circular, con la forma de un reloj, como se muestra en la figura 7.8. Una manecilla apunta hacia la pgina ms antigua.

Sistemas Operativos

Pgina 8

Instituto Tecnolgico de Pachuca

Al ocurrir un fallo de pgina, se inspecciona la pgina a la que apunta la manecilla. Si su bit R vale 0, la pgina se retira de la memoria, se inserta la nueva pgina en su lugar en el reloj, y la manecilla avanza una posicin. Si R vale 1, este bit se pone a 0 y la manecilla avanza a la pgina siguiente. Este proceso contina hasta encontrar una pgina con R a cero. Este algoritmo slo difiere del anterior en su implementacin. Algoritmo LFU (Last Frequently Used) Un algoritmo de remplazo de pgina menos frecuentemente usada (Least Frequently Used) mantiene un contador del nmero de referencias que se han hecho para cada pgina. Se remplaza la pgina con el menor recuento. La razn para esta seleccin es que una pgina que se usa activamente debe tener un alto nmero de referencias. Este algoritmo tiene problemas cuando una pgina se usa mucho en la fase inicial de un proceso, pero despus ya no se utiliza. Como se us bastantes veces, tiene un recuento alto y permanece en memoria aunque ya no se necesite. Una solucin consiste en desplazar los recuentos un bit a la derecha a intervalos regulares, formando un recuento promedio de utilizacin que disminuye exponencialmente. El algoritmo MFU (Most Frequently Used) Otro algoritmo de remplazo de pginas es el remplazo ms frecuentemente usado, que se basa en el argumento de que la pgina con el menor recuento probablemente acaba de llegar y an tiene que usarse. Como se podra esperar, no es comn ni el remplazo MFU ni el LFU porque son costosos y se alejan mucho del remplazo OPT. Algoritmo de pginas de uso no reciente o NRU (Not Recently Used) La mayora de los ordenadores presentan los bits R (de referencia) y M (de modificacin) en las entradas de la tabla de pginas, siendo estos bits actualizados va hardware. Si el hardware no proporciona dichos bits, stos pueden ser simulados mediante el software.

Sistemas Operativos

Pgina 9

Instituto Tecnolgico de Pachuca


Para ello, cuando se inicia un proceso se sealan todas sus entradas en la tabla de pginas como si no estuvieran dentro de la memoria. Si se hace referencia a cualquier pgina, ocurre un fallo de pgina. El sistema operativo activa entonces el bit R (en sus propias tablas) y cambia la entrada de la tabla de pginas para que apunte hacia la pgina correcta, poniendo dicha entrada en modo slo lectura (recordar los bits de permisos). El proceso retoma su ejecucin; si se escribe en la pgina, ocurre otra interrupcin por violacin de permisos, lo que permite al sistema operativo activar el bit M en sus tablas, cambiando los permisos de la pgina a lectura y escritura. Disponiendo de los citados bits R y M se puede construir el siguiente algoritmo: al iniciar un proceso, el sistema operativo asigna un valor 0 a los bits R y M de todas sus pginas. De manera peridica (cada interrupcin del reloj) se pone a cero el bit R, para distinguir las pginas que no tienen referencias recientes de las que s. Ante un fallo de pgina, el sistema operativo inspecciona todas las pginas y las divide en cuatro categoras, segn los valores actuales de los bits R y M: Clase 0: no referenciada, ni modificada (0,0). Clase 1: no referenciada, pero modificada (0,1). Clase 2: referenciada, pero no modificada (1,0). Clase 3: referenciada y modificada (1,1). Aunque parece imposible la existencia de las pginas de la clase 1, este caso aparece cuando en una pgina de clase 3, una interrupcin del reloj pone a cero su bit R. Las interrupciones del reloj no provocan el poner a cero el bit M, puesto que esta informacin es necesaria para saber si hay que volver a escribir la pgina en el disco o no. El algoritmo NRU elimina una pgina de manera aleatoria de la primera clase no vaca con el nmero ms pequeo. Una hiptesis implcita de este algoritmo es que es mejor eliminar una pgina modificada sin referencias en al menos un intervalo del reloj (por lo general, de 20 mseg) que una pgina sin modificar de uso frecuente. Este algoritmo es fcil de comprender, tiene una implementacin eficiente y un rendimiento aceptable.

Sistemas Operativos

Pgina 10

También podría gustarte