Está en la página 1de 25

GESTIN DE MEMORIA

Samanta Cueva
spcueva@utpl.edu.ec

Fundamentos
La tcnica de Memoria Virtual es un mecanismo que permite la ejecucin de
procesos que no se encuentran completamente en la memoria.
Una ventaja es que los programas pueden tener un tamao mayor que la
propia memoria fsica
La memoria virtual no resulta fcil de implementar y puede reducir
sustancialmente el rendimiento del sistema si se la utiliza sin el cuidado.

Requisitos
Colocar el espacio completo de direcciones lgicas dentro de la memoria fsica
Limita el tamao de los programas, de manera que stos no puedan exceder
del tamao de la propia memoria fsica.

Fundamentos
Se ha comprobado que en muchos casos no es necesario tener el programa
completo para poder ejecutar:

Los programas incluyen cdigo para tratar las condiciones de error poco
usuales (stos errores ocurren rara vez).
A las matrices, a las listas y a las tablas se les suele asignar ms memoria de
la que realmente necesitan.

Ciertas opciones y caractersticas de un programa se utilicen raramente.


Y en aquellos casos en que se necesite el programa completo, puede suceder
que no todo el programa sea necesario al mismo tiempo.

Fundamentos
La posibilidad de ejecutar un programa que slo se encontrar parcialmente en
la memoria proporciona muchas ventajas:
Los programas ya no estarn restringidos por la cantidad de memoria
fsica disponible, se podrn escribir programas para un espacio de
direcciones virtual extremadamente grande.
Cada programa de usuario podra ocupar menos memoria fsica, se podrn
ejecutar ms programas al mismo tiempo.

Se necesitaran menos operaciones de E/S para cargar o intercambiar cada


programa de usuario con el fin de almacenarlo en memoria.
La posibilidad de ejecutar un programa que slo se encontrar parcialmente en
la memoria proporciona muchas ventajas:

Fundamentos
La memoria virtual incluye la separacin de la memoria lgica tal como la
percibe el usuario con respecto a la memoria fsica.
La memoria virtual facilita la tarea de programacin por que el programador ya
no tiene por que preocuparse de la cantidad de memoria fsica disponible sino
en el problema que deba resolver con su programa.
La MMU (Unidad de manejo de memoria) tiene la responsabilidad de
establecer la correspondencia entre las pginas lgicas y los marcos de pgina
fsica de la memoria.

Paginacin Bajo Demanda


Cargarse un programa ejecutable desde el Disco a la Memoria?
Cargar el programa completo en memoria fsica en el momento de ejecutar el
programa
puede que no necesitemos inicialmente todo el programa en la
memoria.

Otra opcin es cargar las pginas nicamente cuando sean necesarias


sta
tcnica se llama paginacin bajo demanda y se utiliza en los sistemas de
memoria virtual.
Solo se cargan las pginas cuando as se solicita durante la ejecucin del
programa por tanto las pginas a las que nunca se acceda no llegaran a cargarse
en la memoria fsica.
Cuando queremos ejecutar un proceso, realizamos un intercambio para
cargarlo en memoria pero no intercambiamos el proceso completo sino mas
bien utilizamos un intercambiador perezoso

Paginacin Bajo Demanda


El intercambiador perezoso jams intercambia una pgina con la memoria a
menos que sta vaya a ser necesaria, reduciendo as el tiempo de carga y la cantidad
de memoria fsica utilizada
Es necesario dejar claro una diferencia un intercambiador manipula procesos
completos. Mientras que un paginador slo se ocupa de las pginas individuales de
un proceso.

Al momento de cargar un proceso, el paginador realiza una estimacin de que


pginas sern utilizadas antes de descargar de nuevo el proceso.
Se necesita un soporte Hardware para distinguir entre las pginas que se encuentran
en memoria y las pginas que residen en disco, para esto se usa un bit vlido-

invlido
Cuando se configura este bit como vlido, la pgina asociada ser legal (memoria).
Cuando se configura este bit como invlido, la pgina no es vlida y est
actualmente en el disco.

Paginacin Bajo Demanda


Una pgina como invlida no tendr ningn efecto si el proceso no intenta nunca
acceder a dicha pgina.
Por tanto si cargamos en memoria todas las pginas que sean verdaderamente necesarias
el proceso se ejecutar exactamente igual.
Pero que sucede si se trata de acceder a una pgina que no haya sido cargada en

memoria?
El acceso a una pgina marcada como invlida provoca una interrupcin de fallo de pgina, el
procedimiento a tratar el fallo de pgina es:

Comprobamos una tabla interna correspondiente a este proceso para determinar si la


referencia era un acceso de memoria vlido o invlido.
Si la referencia era invlida terminamos el proceso. Si era vlida pero aun no ha sido
cargada la cargamos en memoria.

Buscamos un marco libre


Ordenamos una operacin de disco para leer la pgina.

Paginacin Bajo Demanda


Modificamos la tabla interna que se mantiene con los datos del proceso y la tabla de
pginas para indicar que la pgina se encuentra ahora en memoria.
Reiniciamos la instruccin que fue interrumpida.
Se puede empezar a ejecutar un proceso sin ninguna pgina en memoria hasta que sea
requerida se conoce como paginacin bajo demanda pura nunca cargar una pgina en
memoria hasta que sea requerida.
Un requisito fundamental es la necesidad de poner reiniciar cualquier instruccin despus
de un fallo de pgina.

Sustitucin de Pginas
Cuando se est ejecutando un proceso de usuario, se produce un fallo de pgina, el SO
determina donde reside la pgina deseada dentro del disco y entonces se encuentra con que no
haya ningn marco libre en la lista de marcos libres, toda la memoria esta siendo utilizada, para
esto se utiliza la tcnica de sustitucin de pginas
Si no hay ningn marco libre, localizamos uno que no este siendo actualmente utilizado y lo
liberamos.
El mecanismo de sustitucin de pginas es:
Hallar la ubicacin de la pgina deseada dentro del disco.
Localizar un marco libre.
Si hay un marco libre utilizarlo
Si no hay seleccionar una vctima (algoritmo de sustitucin)

Escribir el marco de vctima en el disco.


Leer la pgina deseada y cargarla en el marco
Reiniciar el proceso de usuario.

Sustitucin de Pginas FIFO


Asocia cada pgina el instante en que dicha pgina fue cargada en memoria.

Cuando hace falta sustituir una pgina se elige la pginas ms antigua.


Se crear un cola FIFO para almacenar todas las pginas en memoria y sustituir la pgina
situada al principio de la cola.
Es fcil de entender y de programar

Su rendimiento no siempre es bueno.


La pgina sustitu da puede ser un mdulo de inicializacin que ya no ser necesario pero
tambin puede ser una variable muy utilizada.
Anomala de Belady la tasa de fallos de pgina puede incrementarse a medida que se
incrementa el nmero de marco asignados.

Sustitucin de Pginas FIFO

Sustitucin de ptima de Pginas


Un algoritmo optimo de sustitucin es aquel que por lo general tiene la tasa ms baja de
fallos entre todos los algoritmos y que nunca est sujeto a la anomala de Belady.
Sustituir la pgina que no vaya a ser utilizada durante el perodo de tiempo ms largo.
Difcil de implementar porque requiera un conocimiento futuro de la cadena de
referencia.

Sustitucin de Pginas LRU


Sustituir la pgina que no haya sido utilizada durante el perodo ms largo de tiempo.
Menos recientemente utilizada.

LRU asocia con cada pgina el instante correspondiente al ltimo uso de dicha pgina.

El problema es como implementar este algoritmo

Sustitucin de Pginas LRU

Contadores: asociamos con cada entada en la tabla de pginas un campo de tiempo uso y
aadimos a la CPU un reloj lgico o contador.
El reloj se incrementa con cada referencia a memoria .
As tenemos el tiempo de la ltima referencia a cada pgina
Podremos sustituir la pgina que tenga el valor temporal menor

Pila: mantener una pila de nmeros de pgina, cada vez que se hace referencia a una pgina, se
extrae esa pgina de la pila y se la coloca en la parte superior.
La pgina mas recientemente utilizada se encontrar siempre en la parte superior de la pila.

Sustitucin de Pginas mediante aproximacin


LRU

Pocos sistemas informticos proporcionan el suficiente soporte hardware como


para implementar un verdadero algoritmo LRU.
Pero proporcionan ayuda con un bit de referencia.
Este bit es activado por el Hw cada vez que se hace referencia.
Todos los bits son desactivados con el valor 0 por el SO

Si se accede a una pgina ese bit cambia a 1


Y con eso se puede determinar que pginas se ha utilizado y cuales no.

Sustitucin de Pginas mediante aproximacin


LRU

Algoritmo de los Bits de Referencia Adicionales


Mantener un byte de 8 bits para cada pgina en una tabla de memoria.
Estos registros contienen el historial de uso de las pginas en los 8 ltimos
perodos de tiempo

Si el desplazamiento es:
00000000
La pgina no habr sido utilizada en los ltimos 8 perodos de tiempo.

Sustitucin de Pginas mediante aproximacin


LRU

Algoritmo de Segunda Oportunidad


Es un algoritmo de sustitucin FIFO
Si el valor es 0 sustituimos la pgina
Si el bit de referencia es uno damos a esa pgina una segunda oportunidad
As una pgina que se le haya dado una segunda oportunidad no ser sustituida
hasta que todas las dems pginas hayan sido sustitudas

Sustitucin de Pginas mediante aproximacin


LRU

Algoritmo de Segunda Oportunidad mejorado

Se considera el bit de referencia y el bit de modificacin como una pareja


ordenada, se dan 4 casos posibles
(0,0) no se ha utilizado ni modificado recientemente (mejor pagina para
sustitucin).

(0,1) no se ha usado recientemente pero si se ha modificado


(1,0) se ha utilizado recientemente pero esta limpia, probablemente se la vuelva a
usar pronto.
(1,1) se ha utilizado y modificado recientemente

Sustitucin de Pginas basada en Contador

Mantener un contador del nmero de referencias que se hayan hecho a cada


pgina y:
Algoritmo de Sustitucin de Pginas LFU (menos frecuentemente
utilizada) sustituir la pgina que tenga el valor ms pequeo de contador.
Algoritmo de Sustitucin de Pginas MFU (ms frecuentemente
utilizada) la pgina que tenga el valor ms pequeo de contador acaba
probablemente de ser cargada en memoria y todava tiene que ser utilizada

Asignacin de Marco
Cmo asignamos la cantidad fija de memoria libre a los procesos?
No podemos por ejemplo asignar un nmero de marcos superior al nmero
total de marcos disponibles
Debemos asignar al menos un nmero mnimo de marcos (rendimiento)
A medida que el nmero de marcos asignados a un proceso se reduzca se
incrementa el nmero de fallos.
El nmero mnimo de marco esta definido por la arquitectura informtica
La formas ms fcil de repartir m marcos entre n procesos es dar a dar uno un
nmero igual de marcos (asignacin equitativa)

m/n

Asignacin de Marco
Otra alternativa es darse cuenta que los diversos procesos necesitan
cantidades diferentes de memoria
Asignacin Proporcional asignando la memoria disponible a cada proceso
de acuerdo al tamao de ste.
S = Si
ai = si /S * m
De esta forma, ambos procesos compartirn los marcos disponibles de
acuerdo a sus necesidades, en lugar de repartir los marcos equitativamente.

Asignacin de Marco
Asignacin Global y Local
Sustitucin Global: permite que un proceso seleccionar un marco de
sustitucin de entre el conjunto de todos los marcos disponibles, incluso si
dicho marco esta asignado a otro proceso.
Sustitucin Local: cada proceso solo efecta esa seleccin entre su
propio conjunto de marcos asignados

Sobrepaginacin
Si un proceso no dispone de suficientes marcos generar
rpidamente fallos de pgina.
Deber sustituir alguna pgina sin embargo como todas sus
pginas se estn usando activamente se ver forzado a sustituir una
pgina que volver a ser utilizada enseguida.

Volver a generar otro fallo de pgina


Esta alta tasa de paginacin se conoce como sobrepaginacin
Un proceso entrar en sobrepaginacin cuando invierte ms tiempo generando
fallos de pgina que en la ejecucin propia del proceso
Provoca problemas de rendimiento

Bibliografa
Fundamentos de Sistemas
Silberschatz, Galvin, Gagne

Operativos,

Sptima

Edicin,

También podría gustarte