Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Concepción Murillo Olivares Modificado hace 8 años
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
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.