La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Memoria Virtual Msc. Rina Arauz.

Presentaciones similares


Presentación del tema: "Memoria Virtual Msc. Rina Arauz."— Transcripción de la presentación:

1 Memoria Virtual Msc. Rina Arauz

2 Introducción Problema: ejecutar programas de tamaño mayor que la memoria disponible. Soluciones Memoria virtual: Control realizado por el S.O. La memoria virtual es una técnica de gestión de la memoria que permite que el sistema operativo disponga de mayor cantidad de memoria de la que existe físicamente. La memoria virtual (MV) se basa en el principio de localidad de las referencias.

3 Memoria Virtual Consiste en utilizar el disco duro como memoria principal y almacenar en RAM solamente las instrucciones y los datos que están siendo utilizados por el procesador, la idea es mantener en memoria principal sólo la información que se necesite en cada momento, el espacio en el disco duro (HDD) se usa como si fuera RAM.

4 En windows se puede encontrar la memoria virtual en forma de un archivo llamado pagefile.sys en el disco primario (“C:” ) (propiedades de Mi PC, Opciones avanzadas). El limite máximo del archivo paginado (o Memoria Virtual) es de 4096Mb por unidad o partición. Otros SO como Linux dejan una partición del disco dedicada exclusivamente para la memoria virtual, generalmente llamado swap. El valor recomendado de Memoria Virtual, se obtiene multiplicando la memoria RAM por 2 (máximo 2,5).

5 Ventajas Permite aumentar el tamaño de los programas permitiendo que sean mayores que la memoria física. Permite aumentar el grado de multiprogramación, ya que permite ubicar más procesos en memoria.

6 Implementación La memoria virtual puede basarse tanto en mecanismos de paginación como de segmentación. Lo habitual es que se base en un esquema paginado por las siguientes razones: Al trabajar con bloques de tamaño fijo, las transferencias desde y hacia el disco son más simples Las políticas de ubicación son más simples: todos los bloques son iguales

7 Soporte hardware (Memoria virtual basada en paginación)
Requerimientos hardware: Tabla de páginas Bits en los descriptores de página: Bit de validez Bit de referencia Bit de modificación Interruptibilidad de las instrucciones Dispositivo de almacenamiento secundario

8 Tabla de Páginas Cada proceso tiene su tabla de páginas. (TdP)
Cada entrada en la tabla contiene el número de marco en memoria principal donde dicha página fue cargada, bit de validez, de referencia y modificación. Bit de validez o de Presencia: indica si la página está cargada en la memoria principal. “1” si la página está almacenada en memoria principal, “0” si la pagina NO está en Memoria principal (fallo de pág). Cuando se intenta acceder a una página que no se encuentra cargada en memoria se produce un fallo de página. Bit de referencia: Se activa cuando una página se accesa es decir cuando se accede a una dirección lógica que pertenece a esa página. Bit de Modificación: Se activa cuando hay inconsistencia entre memoria principal y el disco duro. Cuando se ha escrito en una dirección lógica que pertenece a esa página.

9 Tabla de Páginas BV BR BM Pág. Marco 1 A M25 B M85 C - D M02 E

10 Memoria virtual basada en paginación
OUT IN z x y (P0) (P4) (P3) (P1) (P2) (P5) Tabla del mapa de páginas Tabla del mapa de archivos Memoria principal secundaria

11 Carga dinámica S. O. Memoria secundaria Memoria principal Tabla de
Programa S. O. Memoria principal Marco libre Tabla de páginas 2 Excepción 3 La página está en memoria auxiliar 4 Cargar la página que falla Memoria secundaria LOAD M 6 1 Referencia Reiniciar la instr. 5 Actualizar la tabla de páginas

12 Paginadores Son la parte del SO responsable de mover páginas entre la MP y el disco y viceversa. Pueden ser de tres tipos: De archivos (mmap, exec) De objetos anónimos (swap) De dispositivos (frame buffer)

13 Tasa de fallos de página
Es la probabilidad de que se produzca un fallo de página p = número de fallos / número total de referencias: 0  p  1 Número de marcos Tasa de fallos de página La tasa de fallos de página disminuye cuando aumenta el número de marcos

14 Tiempo de servicio del fallo de página
Los tiempos que más afectan son: Los cambios de contexto Salvar una página modificada a disco (page out) Cargar la página referencia de disco a memoria (page in) El planificador asigna la CPU a otros procesos mientras se realizan las lecturas (page in) y escrituras asociadas al fallo de página

15 Rendimiento de la paginación
Tiempo de acceso efectivo (TAE): TAE = (1 - p) * TAM + p * (1 + pm) * TTP donde: TAM: tiempo de acceso a memoria TTP: tiempo de transferencia página/disco p: tasa de fallos de página pm: probabilidad de que la página a reemplazar haya sido modificada

16 Hiperpaginación (Thrashing)
Hiperpaginación: Un proceso genera fallos de página frecuentemente y el sistema pasa la mayor parte del tiempo paginando Utilización de la CPU Grado de multiprogramación

17 Hiperpaginación (Thrashing)
Posible causa de la hiperpaginación: Un proceso necesita más marcos, su tasa de fallos de página aumenta y se produce la siguiente reacción en cadena: Disminuye el uso de la CPU El S.O. decide aumentar el grado de multiprogramación La tasa de fallos de página se incrementa más Soluciones: Reducir la multiprogramación o emplear un algoritmo de reemplazo local o por prioridades Prevenir la hiperpaginación

18 Tamaño de Página (Consideraciones)
Página pequeña  se requieren más páginas por proceso tablas más grandes menor fragmentación interna. Páginas grandes  se requieren menos páginas por proceso tablas pequeñas  mayor fragmentación interna. Memoria secundaria está diseñada para transferir eficientemente grandes bloques de datos, luego por todo lo anterior podríamos concluir que es mejor tener páginas más grandes.

19 Algoritmos Política de asignación: ¿Qué cantidad de memoria real se asigna a un proceso activo? Política de ubicación: ¿Dónde puede ubicarse un bloque en memoria principal? Política de búsqueda: ¿Cuándo y qué bloques traer del almacenamiento secundario a MP? Paginación anticipada Paginación por demanda Política de reemplazo: ¿Qué bloque debería sustituirse al traer a memoria principal un nuevo bloque si no hay memoria libre?

20 Políticas de asignación
El mínimo número de marcos que debe asignarse a un proceso está definido por la arquitectura. Tipos de algoritmos de asignación: Asignación equitativa Asignación proporcional Asignación prioritaria

21 Políticas de ubicación
En paginación: “Indiferente” En segmentación First fit: el primero que sirva Next fit: el siguiente que sirva Best fit: el que mejor se adapte Worst fit: el que peor se adapte Sistema Buddy

22 Sistema Buddy 1024 Kb P1 128 256 512 P1 P2 64 256 512 P1 P2 64 P3 128
Bloques libres Inicial P1 pide 70 P2 pide 35 P3 pide 80 Devuelve P1 P4 pide 60 Devuelve P2 Devuelve P4 Devuelve P3 1 3 4 1024 Kb P1 128 256 512 P1 P2 64 256 512 P1 P2 64 P3 128 512 128 P2 64 P3 128 512 128 P2 P4 P3 128 512 128 64 P4 P3 128 512 256 P3 128 512 1024 Kb

23 Paginación por demanda
El camino que toma un programa cuando se está ejecutando no es predecible Se cargan las páginas a medida que se necesitan Ventajas: Las páginas traídas son las que realmente se necesitan La sobrecarga que implica la decisión de qué páginas traer al almacenamiento principal es mínima

24 Paginación anticipada (prepaginación)
Trata de evitar los retardos por fallos de página Se cargan un cierto número de páginas en base a una predicción Ventajas: Si la predicción es buena, el tiempo de ejecución de los procesos se reduce considerablemente Con la reducción de costes del hardware, las consecuencias de una mala predicción son menos graves

25 Reemplazo de páginas Es necesario cuando se produce un fallo de página y está toda la memoria llena Tasa de fallos  uno por cada 106 – 2 x 107 accesos Si hay un fallo de página (miss) hay que: Encontrar la página demandada en memoria auxiliar Encontrar un marco libre o liberarlo usando un algoritmo de reemplazo de páginas Cargar la página en memoria principal (page in) Transferir el control al proceso de usuario

26 Algoritmos de reemplazo de páginas
Se pretende utilizar el algoritmo que seleccione páginas que causen la frecuencia de fallos más baja Criterios para valorar la calidad de los algoritmos de sustitución: Baja sobrecarga Sin ajustes (“No tuning”) Aproximación al LRU (menos usada recientemente)

27 Cadenas de referencia Para evaluar la calidad de los algoritmos de sustitución se consideran: Cadenas de referencia: listas de referencias a páginas Número de marcos de página de que se dispone Obtención de las cadenas de referencia: Artificialmente, de forma pseudoaleatoria Grabando una traza de ejecución

28 Cadenas de referencia Ejemplo: 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, , 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105 Con páginas de 100h palabras Cadena de referencias: sólo nos interesa el número de página si se referencia una página p, las referencias inmediatamente sucesivas a esa página nunca causarán fallo de página 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1 Con tres marcos habrá 3 fallos y con 1 marco 11 fallos si el número de marcos aumenta, en general, el número de fallos de página disminuye

29 Algoritmos de reemplazo de páginas
Existen diferentes algoritmos, entre ellos: Algoritmo óptimo Algoritmo FIFO Algoritmo LRU Algoritmos de aproximación al LRU

30 Algoritmo óptimo Se reemplaza la página que va a tardar más tiempo en ser usada La tasa de fallos es la más baja posible Algoritmo imposible de realizar Criterio comparativo

31 Algoritmo óptimo Marcos de página Ejemplo: Cadena de referencia
3 1 7 2 4 8 fallos de página

32 Algoritmo FIFO Marcos de página
Sustituye la página que lleva más tiempo en memoria Ejemplo: Cadena de referencia Marcos de página 2 1 7 3 4 12 fallos de página

33 Algoritmo FIFO Algoritmo sencillo de entender e implementar
Inconvenientes: Rendimiento del algoritmo pobre. Páginas frecuentemente usadas pueden ser sustituidas Se puede producir la Anomalía de Belady: aumento del número de fallos de página al aumentar el número de marcos

34 Con 3 marcos, 9 fallos de págna
Anomalía de Belady Ejemplo: Con 3 y 4 marcos de página Con 3 marcos, 9 fallos de página 5 1 4 2 3 Con 3 marcos, 9 fallos de págna Con 4 marcos, 10 fallos de página

35 Algoritmo LRU (Least Recently Used)
Algoritmo de aproximación al reemplazo óptimo Basado en utilizar el pasado reciente como una predicción del futuro más próximo Sustituye la página menos usada en el pasado inmediato Carece de la anomalía de Belady La implementación requiere de hardware adicional: Campo en las entradas de la tabla de páginas Pila de las páginas en memoria

36 Algoritmo LRU (Least Recently Used)
¿Podría comportarse erróneamente el algoritmo con un bucle que ocupa varias páginas? Ejemplo: Cadena de referencia Marcos de página 2 1 7 3 4 11 fallos de página

37 Algoritmos de aproximación al LRU
Existen diferentes algoritmos, entre ellos: Algoritmo del reloj global Algoritmo FIFO con segunda oportunidad Algoritmo NFU


Descargar ppt "Memoria Virtual Msc. Rina Arauz."

Presentaciones similares


Anuncios Google