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

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) 5

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) 6

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) 8

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