Está en la página 1de 36

Unidad 2:

Gestin de Memoria
Tema 4, Memoria Virtual:
4.1 Comparacin entre tcnicas:
Gestin de memoria vs Memoria virtual.
4.2 Paginacin por demanda:
Reemplazo de pginas, algoritmos de reemplazo, marcos.
4.3 Hiperpaginacin y working set.
4.4 Otras consideraciones acerca de la memoria virtual.
Escuela Universitaria de
Informtica (Segovia)

4.1 Comparacin entre tcnicas.

Introduccin:

Gestin de memoria: Es necesario que todo el proceso est


cargado en la memoria principal para poder ejecutarse.
Memoria virtual: Permite ejecutar procesos que podran no
estar totalmente cargados en la memoria.
Se utiliza el disco como almacn secundario de procesos.
Idea: mantener en memoria principal slo los fragmentos de cada
proceso que se estn utilizando.

Ventaja: Los programas pueden ser ms grandes que la


memoria fsica. (Memoria como gran matriz de almacenaje).
Desventaja: No es fcil de implementar y podra reducir
sustancialmente el rendimiento si no se usa con cuidado.
Escuela Universitaria de
Informtica (Segovia)

4.1 Comparacin entre tcnicas.

Introduccin:

Recordando las tcnicas de Gestin de Memoria:


Era necesario colocar todo el espacio de direcciones lgico en la
memoria fsica.
Limitacin del tamao de los programas al tamao de la
memoria.
Examinando programas reales observamos que:
En muchos casos no se necesita todo el programa.
Contienen cdigo de error que casi nunca se ejecuta.
Asignacin inadecuada, en muchos casos se reserva ms memoria de
la necesaria (vectores, tablas, etc...).
Opciones y funciones de muy escaso uso.
Posibilidad de superposiciones, no necesitamos todo el programa a un
mismo tiempo.
Escuela Universitaria de
Informtica (Segovia)

4.1 Comparacin entre tcnicas.

Introduccin (Ventajas de la memoria virtual):

Si consiguiramos la capacidad de ejecutar programas que no


estuvieran todos en la memoria tendramos ciertas ventajas:
Posibilidad de tener cargados ms procesos y de mayor
tamao.
Programas no limitados por el tamao de la memoria fsica.
Programacin para un espacio de direcciones virtuales
extremadamente grande.
Como cada programa ocupa menos espacio en memoria, se podran
ejecutar ms programas simultneamente; aumentando el
rendimiento de la CPU sin aumentar los tiempos de respuesta y
retorno.

Mejora del rendimiento (y la multiprogramacin).


Incremento del uso de la CPU y reduccin de la E/S.
Transparencia de cara al usuario en la utilizacin de programas.
Facilidad de utilizacin con paginacin.
Escuela Universitaria de
Informtica (Segovia)

4.1 Comparacin entre tcnicas.

Trabajando con memoria virtual estamos obligados a:

Elegir cuanta memoria se le asigna a cada proceso.


Comprobar que la informacin realmente est en memoria
fsica.
Decidir qu cantidad de informacin de la memoria virtual se
lleva a la memoria fsica.
Decidir qu informacin de la memoria fsica se sustituye si la
zona de memoria de un proceso est totalmente ocupada.
La memoria generalmente se implementa con paginacin por
demanda, aunque tambin puede implementarse en un
sistema con segmentacin, segmentacin paginada.
Escuela Universitaria de
Informtica (Segovia)

4.2 Paginacin por demanda.

Paginacin por demanda:

Tcnica ms habitual y eficaz de implementar MV.


Los procesos residen en memoria secundaria.
Combina paginacin con intercambio:
Cuando queremos ejecutar un proceso lo pasamos por
intercambio a la memoria.
En vez de intercambiar un proceso entero, ahora slo
intercambiamos las pginas necesarias.
En lugar de un intercambiador hablaremos de un paginador,
que sabe cuales son las pginas que va a usar.
Se evita leer y colocar en la memoria pginas que no se usan,
reduciendo de esta forma el tiempo de intercambio y la cantidad
de memoria fsica requerida.
Escuela Universitaria de
Informtica (Segovia)

4.2 Paginacin por demanda.

Paginacin por demanda:

Necesitamos un soporte hardware para distinguir entre las


pginas que estn en la memoria (vlidas) y las que
estn slo en disco (no vlidas) esquema de bit de
validez/ no validez.
Bit vlido Pgina en la memoria.
Bit no vlido:

la pgina no est en el espacio de direcciones lgico.


es vlida pero no est en la memoria.

Escuela Universitaria de
Informtica (Segovia)

4.2 Paginacin por demanda.

Paginacin por demanda:

Idea fundamental:
Si adivinamos y traemos a la memoria slo las pginas que
se necesitan, el proceso se ejecutar exactamente igual que si
hubiramos trado todas las pginas.

Qu ocurre cundo un proceso trata de usar una


pgina que no se trajo a la memoria?.
El acceso a una pgina no vlida causa una trampa de fallo de
pgina. El hardware de paginacin, al traducir la direccin
utilizando la tabla de pginas se percata de que el bit de no
validez est encendido y transfiere el control al SO.
El fallo de pgina provoca que el SO recupere del disco la
pgina requerida. Se actualiza la tabla de pginas y se
reintenta la instruccin que ocasion el fallo.
Escuela Universitaria de
Informtica (Segovia)

4.2 Paginacin por demanda.

Paginacin por demanda:

Pasos para manejar un fallo de pgina:


1. Consultamos una tabla interna que recoge si la referencia fue
un acceso vlido o no vlido a la memoria.
2. Referencia vlida final del proceso.
Referencia no vlida Traemos la pgina.
3. Encontramos un marco libre.
4. Leemos la pgina deseada y la colocamos en el marco recin
asignado.
5. Final de la lectura modificacin de la tabla interna y la tdp,
de modo que indique que la pgina ya est en memoria.
6. Reinicio de la instruccin interrumpida por la trampa de
direccin no vlida. Ahora el proceso puede acceder a la pgina
como si siempre hubiera estado en la memoria.
Escuela Universitaria de
Informtica (Segovia)

4.2 Paginacin por demanda.

Paginacin por demanda:

Escuela Universitaria de
Informtica (Segovia)

10

4.2 Paginacin por demanda.

Desempeo de la paginacin por demanda:

Cuando ejecutamos una instruccin:


Puede generar ms de un fallo de pgina (una pgina para la
instruccin y muchas para los datos).
Problema: El rendimiento disminuye considerablemente al
aumentar el nmero de fallos de pgina, ya que el tiempo de
acceso aumenta tambin frenando la ejecucin de los procesos.
El tiempo de acceso a la memoria tam: (10, 200) ns.
Si no ocurren fallos de pgina el tiempo de acceso efectivo
taef: taef = tam.
Si ocurren fallos de pgina, primero leemos del disco la
pgina requerida y luego accedemos a la informacin
deseada.
Escuela Universitaria de
Informtica (Segovia)

11

4.2 Paginacin por demanda.

Reemplazo de pginas:

Para su implementacin es necesario desarrollar:


Algoritmo de asignacin de marcos:
Si tenemos varios procesos en memoria es necesario decidir cuantos
marcos se asignar a cada uno.

Algoritmo de reemplazo de pginas:


Proceso bsico:
1. Atender la interrupcin de fallo de pgina.
2. Traer la pgina a memoria y colocarla en un marco libre.
3. Reiniciar el proceso.

Y si no hay marcos libres? Reemplazo de pginas.


Escuela Universitaria de
Informtica (Segovia)

12

4.2 Paginacin por demanda.

Reemplazo de pginas:

El reemplazo de pginas actuar del siguiente modo:


Si no hay marcos libres buscamos uno que no se est
usando y lo liberamos el marco liberado puede contener la
pgina por la que ocurri el fallo.
La secuencia de servicio de fallos de pgina ser ahora:
1. Encontrar la pgina deseada en el disco.
2. Hallar un marco libre:
A) Si hay un marco libre, usarlo.
B) Si no lo hay usar un algoritmo de reemplazo para escoger
un marco.
C) Escribir la pgina vctima en el disco; modificar la tabla de
pginas y la tabla de marcos.
3. Leer la pgina deseada del disco y colocarla en el marco recin
liberado; modificar la tdp y la tdm.
4. Finalmente, reiniciar el proceso de usuario.
Escuela Universitaria de
Informtica (Segovia)

13

4.2 Paginacin por demanda.

Algoritmos de reemplazo de pginas:

Objetivo fundamental: Buscar el algoritmo con la


frecuencia de fallos de pgina ms baja posible.
Evaluamos un algoritmo ejecutndolo con una serie
especfica de referencias y calculando el nmero de fallos de
pgina.
Serie (cadena) de referencias:
Se utilizan para evaluar la calidad de los algoritmos de
reemplazo.
La serie de referencia se puede obtener:
Generador de nmeros aleatorios.
Rastreando la ejecucin y grabando una traza de ejecucin.

Para determinar el n de fallos de pgina de un algoritmo es


necesario conocer el n de marcos disponibles.
Escuela Universitaria de
Informtica (Segovia)

14

4.2 Paginacin por demanda.

Algoritmos de reemplazo de pginas:

Algoritmo FIFO (First In First Out):


Sustituimos la pgina residente que lleve ms tiempo en la
memoria.
Es fcil de implementar (como una cola FIFO de pginas).
Su desempeo no siempre es bueno, puesto que la pgina
sustituida podra contener, por ejemplo, una variable muy
utilizada desde el principio y que se usa constantemente.
Observamos una Anomala de Belady: la frecuencia de fallos
de pgina podra aumentar al aumentar el n de marcos
asignados.

Escuela Universitaria de
Informtica (Segovia)

15

4.2 Paginacin por demanda.

Algoritmos de reemplazo de pginas:

Algoritmo ptimo:
Tambin llamado algoritmo mnimo.
Tiene la frecuencia de fallos de pgina ms baja de entre
todos los algoritmos y no presenta Anomala de Belady.
Escoge como vctima la pgina que ms tardar en ser usada de
nuevo.
Difcil de implementar (requiere presciencia), es decir, un
conocimiento futuro de la serie de referencias.
Se utiliza para efectuar comparaciones.

Escuela Universitaria de
Informtica (Segovia)

16

4.2 Paginacin por demanda.

Algoritmos de reemplazo de pginas:

Algoritmo LRU (Least Recently Used):


Aproximacin implementable del algoritmo ptimo.
Se sustituye la pgina menos recientemente usada. Se recuerda el
instante en que cada pgina se us por ltima vez, y en caso de reemplazo
se escoge la pgina que tiene ms tiempo sin usarse.
Se utiliza mucho y se considera muy bueno (alto rendimiento respecto
del ptimo).
Requiere un hardware adicional para su implementacin:
Contadores: Reemplazo de la pgina con un tiempo ms largo.
Pila: La base de la pila corresponde con la pgina LRU.
Esta implementacin resulta costosa, ya que contadores y pilas deben
actualizarse en cada referencia a la memoria acceso ms lento a la memoria.

Sistemas reales: implementan aproximaciones a LRU.


No presentan la Anomala de Belady.
Escuela Universitaria de
Informtica (Segovia)

17

4.2 Paginacin por demanda.

Algoritmos de reemplazo de pginas:

Algoritmos de aproximacin al LRU:


1. Algoritmos con bits de referencia adicionales:
Las tcnicas basadas en LRU utilizan un bit de referencia puesto por el
hardware.
El hardware enciende el bit de referencia (lo pone a 1) de una pgina
cada vez que se hace referencia a ella (lectura o escritura).
Examinando este bit no conocemos el orden de uso, pero s sabemos
cules pginas se usaron y cules no.
Es posible obtener informacin de ordenamiento adicional si
registramos los bits de referencia a intervalos adicionales.
Byte histrico:
Por ej.: 11000100 se us ms recientemente que 01110111.
LRU: pgina con el nmero ms bajo.
Si el n de bits histricos es cero, es decir, dejamos slo el bit de
referencia Algoritmo de segunda oportunidad.
Escuela Universitaria de
Informtica (Segovia)
18

4.2 Paginacin por demanda.

Algoritmos de reemplazo de pginas:

Algoritmos de aproximacin al LRU:


2. Algoritmo de segunda oportunidad o algoritmo del reloj.
Sencillo y efectivo, examina la pgina ms antigua como posible
vctima.
Comportamiento: FIFO teniendo en cuenta el bit de referencia:
Bit de referencia a cero: Reemplazo de pgina.
Bit de referencia a uno: Segunda oportunidad, ponemos el bit de
referencia a cero y seleccionamos la siguiente pgina FIFO.
Se puede implementar como una cola circular, donde un puntero
indicar cul es la pgina a reemplazar a continuacin.
Cuando se necesita un marco, el puntero avanza hasta encontrar una
pgina cuyo bit de referencia est apagado. Con el avance del
puntero los bits de referencia encendidos se van apagando.
Una vez hallada una pgina vctima, se reemplaza y la nueva pgina
se inserta en la cola circular en esa posicin.
Escuela Universitaria de
Informtica (Segovia)
19

4.2 Paginacin por demanda.

Algoritmos de reemplazo de pginas:

Algoritmos de aproximacin al LRU:


3. Algoritmo de segunda oportunidad mejorado.
Bit de referencia + bit de modificacin.
Usando estos dos bits tenemos cuatro situaciones posibles:
(0, 0): No se ha usado ni modificado recientemente.
(0, 1): No se ha usado recientemente, s se ha modificado.
(1, 0): Usada recientemente, no modificada.
(1, 1): Usada y modificada recientemente.
Se reemplaza la pgina que encontremos de clase ms baja.
Se da preferencia a las pginas que han sido modificadas a fin de
reducir el n de operaciones de E/S requeridas.

Escuela Universitaria de
Informtica (Segovia)

20

4.2 Paginacin por demanda.

Algoritmos de reemplazo de pginas:

Algoritmos de conteo:
Tienen un contador con el n de referencias que se hacen a cada pgina.
Dos esquemas:
Algoritmo LFU (Least Frequently Used):
Reemplaza la pgina menos frecuentemente usada (cuenta ms
baja).
Problema: pginas que se usaron mucho durante la fase inicial
del proceso y luego no se vuelven a usar.
Solucin: desplazar las cuentas un bit a la derecha a intervalos
regulares.
Problema serio: pginas tradas recientemente, alta probabilidad
de salir (cuenta baja).
Algoritmo MFU (Most Frequently Used):
Reemplaza la pgina ms frecuentemente usada.
Problema: se pueden mantener pginas viejas a las que no se
accede.
Escuela Universitaria de
Informtica (Segovia)

21

4.2 Paginacin por demanda.

Algoritmos de reemplazo de pginas:

Algoritmos de colocacin de pginas en buffers:


Basados en la idea de mantener una reserva de marcos
libres.
Cuando ocurre un fallo de pgina:
La pgina deseada se coloca en un marco libre de la reserva antes de
escribir la vctima en el disco.

Este procedimiento permite al proceso reiniciarse lo ms pronto


posible, sin esperar a que la pgina vctima se escriba en el disco.
Cuando la pgina vctima termina de escribirse en el disco, su
marco se aade a la reserva de marcos libres.

Escuela Universitaria de
Informtica (Segovia)

22

4.2 Paginacin por demanda.

Asignacin de marcos:

Objetivo fundamental: Tratar de repartir la cantidad de


memoria libre entre los distintos procesos.

Reserva de marcos:
Definir un sistema de reparto de marcos a los procesos en
ejecucin.
Todo proceso debera tener una reserva mnima de marcos.
Cmo asignar los marcos a los procesos?
1. Nmero mnimo de marcos.
2. Algoritmos de asignacin; reparto proporcional (por tamao, por
prioridad).
3. Asignacin global o local.
Escuela Universitaria de
Informtica (Segovia)

23

4.2 Paginacin por demanda.

Asignacin de marcos:

Nmero mnimo de marcos:


A medida que disminuye el n de marcos asignados a un proceso la
frecuencia de fallos de pgina aumenta, lo que hace ms lenta la
ejecucin de los procesos.
El n mnimo de marcos que es necesario asignar viene dado por la
arquitectura del sistema. Cuando ocurre un fallo de pgina, antes de haber
terminado la ejecucin de una instruccin, est deber reiniciarse. Por lo
tanto ser necesario tener suficientes marcos para contener todas las
pginas a las que una sola instruccin puede hacer referencia.
El mximo n de marcos est limitado por la cantidad de memoria
fsica disponible.
Escuela Universitaria de
Informtica (Segovia)

24

4.2 Paginacin por demanda.

Asignacin de marcos:

Algoritmos de asignacin:
Reparto equitativo: La forma ms fcil de dividir m marcos
entre n procesos es dar a cada uno una porcin equitativa, m/n
marcos.
Reparto proporcional: Diferentes procesos requieren diferentes
cantidades de memoria asignamos memoria disponible a cada
proceso segn su tamao.
Reparto por prioridad: Concedemos ms memoria a un
proceso de ms alta prioridad con el fin de acelerar su ejecucin.
Estrategia a seguir: esquema de asignacin proporcional
teniendo en cuenta, el tamao del proceso y su nivel de
prioridad.
Escuela Universitaria de
Informtica (Segovia)

25

4.2 Paginacin por demanda.

Asignacin de marcos:

Asignacin global o local:


Varios procesos compiten por los marcos.
Reemplazo global: Un proceso selecciona un marco de
reemplazo de entre el conjunto de todos los marcos (incluso un
proceso puede arrebatarle un marco a otro).
Reemplazo local: Un proceso slo puede seleccionar un marco
de entre los que le fueron asignados.
El reemplazo global permite a un proceso prioritario aumentar su
asignacin de marcos a expensas de procesos de baja prioridad.
El reemplazo global generalmente aumenta el rendimiento
de un sistema y es el mtodo ms utilizado.
Escuela Universitaria de
Informtica (Segovia)

26

4.3 Hiperpaginacin y working set.

Hiperpaginacin:

Cuando el aprovechamiento es bajo se aumenta el grado de


multiprogramacin.
Es posible reducir el n de marcos asignados al mnimo, aunque hay
cierto n de pginas que estn en servicio activo.
Si el proceso no tiene suficientes marcos para estas pginas,
pronto causa un fallo de pgina.
En ese momento el proceso deber reemplazar alguna pgina y, dado
que todas sus pginas estn en uso activo, deber reemplazar una
que volver a necesitar de inmediato.
Resultado: Se genera rpidamente otro fallo de pgina y otro y otro.
Consecuencia: Disminuye el aprovechamiento de la CPU y entonces
el planificador de CPU aumenta el grado de multiprogramacin,
agravando an ms el problema.
Escuela Universitaria de
Informtica (Segovia)

27

4.3 Hiperpaginacin y working set.

Hiperpaginacin:

Si el grado de multiprogramacin es excesivo, el sistema puede estar


ms tiempo paginando que haciendo trabajo productivo. Esta
actividad se conoce como hiperpaginacin.
Cmo evitarla?:
Polticas de reemplazo local.
La hiperpaginacin de un proceso puede afectar al resto.
Concediendo memoria segn las necesidades reales (localidades, working
set, ...)

Escuela Universitaria de
Informtica (Segovia)

28

4.3 Hiperpaginacin y working set.

Modelo del conjunto de trabajo (working set):

Se observa que todo proceso trabaja en cada momento con unas


zonas de cdigo y datos bien delimitadas: localidad.
Cuando se salta a otra subrutina, etc., se cambia la localidad.
Si un proceso tiene asignada su localidad en MP, no ocasiona fallos
de pgina.
Concepto que trata de aproximarse a la localidad actual de un
proceso (working set o rea activa).
Es el conjunto de pginas con el que ha trabajado un proceso
Escuela Universitaria de
Informtica (Segovia)

29

4.3 Hiperpaginacin y working set.

Frecuencia de fallos de pgina:

Hiperpaginacin: Frecuencia de fallos de pgina elevada


nos interesa controlar la frecuencia de fallos de pgina.
La frecuencia de fallos est muy ligada con el n de marcos:
Frecuencias altas el proceso necesita ms marcos.
Frecuencias bajas al proceso le sobran marcos.

Los marcos de pgina se repartirn entre los procesos


que tengan fallos de pgina muy frecuentes.
Podemos establecer lmites superiores e inferiores para la
frecuencia de fallos de pgina deseada.

Escuela Universitaria de
Informtica (Segovia)

30

4.3 Hiperpaginacin y working set.

Frecuencia de fallos de pgina:

Escuela Universitaria de
Informtica (Segovia)

31

4.4 Otras consideraciones acerca de la MV.

Prepaginacin:

Cuando se reinicia un proceso que se haba intercambiado a


disco todas sus pginas estn en el disco habr un fallo de
pgina para traer a la memoria cada una de ellas.
La prepaginacin trata de evitar este alto nivel de
paginacin.
Se trae de una sola vez a la memoria todas las pginas que
se necesitan.
Ventaja:
Si la prediccin es buena el tiempo de ejecucin de los procesos
se reduce notablemente.

Escuela Universitaria de
Informtica (Segovia)

32

4.4 Otras consideraciones acerca de la MV.

Discusin del tamao de pgina:

Debemos de definir el tamao adecuado de pgina siempre


que se disea una pgina nueva (512 bytes, 16384 bytes).
A favor de pginas grandes:
Tablas de pginas de los procesos.
Minimizacin de los tiempos de E/S (bsqueda, transferencia,...).
Incrementos de capacidades de CPU y memoria por encima de la
velocidad del disco (disminuyendo el n de fallos de pgina).

A favor de pginas pequeas:


Aprovechamiento de memoria (menor fragmentacin interna).
Menos E/S, porque podemos aislar la memoria que realmente se
necesita (menos memoria asignada total).
Escuela Universitaria de
Informtica (Segovia)

33

4.4 Otras consideraciones acerca de la MV.

Estructura del programa:

Las estructuras de datos y de programacin:


Pueden aumentar la localidad.
Reducen la frecuencia de fallos de pgina y el n de pginas del
conjunto de trabajo.
Una pila tiene una alta localidad frente a una tabla de dispersin
que tiene una baja localidad.
El lenguaje de programacin tambin afecta a la
paginacin.
El abuso de punteros: baja localidad.
Pocos punteros (Pascal): Mejor localidad de referencia y se ejecuta
ms rpidamente.
Escuela Universitaria de
Informtica (Segovia)

34

4.4 Otras consideraciones acerca de la MV.

Interbloqueo de E/S:

Con paginacin por demanda a veces es necesario permitir


que se bloqueen o fijen algunas pginas en la memoria.

Se asocia un bit de bloqueo a cada marco.

Si el marco est bloqueado no se le podr escoger para


reemplazarlo.

Las pginas bloqueadas no podrn reemplazarse.

Una vez que termina la E/S las pginas se desbloquean.


Escuela Universitaria de
Informtica (Segovia)

35

4.4 Otras consideraciones acerca de la MV.

Segmentacin por demanda:

Aproximacin a la paginacin por demanda, requiere


menos hardware para implementarla.
El SO asigna la memoria en segmentos en lugar de pginas.
Descriptores de segmento: incluyen informacin acerca del
tamao, proteccin y ubicacin del segmento.
Bit de validez: indica si el segmento est o no en la memoria:
Si el segmento est en la memoria: acceso.
Si no est: fallo de segmento, el SO intercambia el segmento para
traer a la memoria el segmento deseado.

Bit de acceso: determina el segmento que se reemplazar.


Funciona de manera similar al bit de referencia de la paginacin
por demanda.
Escuela Universitaria de
Informtica (Segovia)

36

También podría gustarte