Memoria Virtual Msc. Rina Arauz.

Slides:



Advertisements
Presentaciones similares
GESTION DE MEMORIA.
Advertisements

El tamaño asignado para cada partición es el mismo. Cada partición, será ocupada por un proceso de menor o igual tamaño. El programador debe diseñar el.
III - Gestión de memoria
Administración de memoria
Administración de Memoria Virtual
Capítulo 8 Memoria virtual.
Sistemas Operativos Administración del procesador.
Planificación de Monoprocesadores
III - Gestión de memoria
3.4.- Administración de Memoria Virtual.
Organización de la Memoria.
Introducción a los Sistemas Operativos Memoria Virtual
UNIDAD 2. ADMINISTRACION DE PROCESOS Y DEL PROCESADOR
SISTEMAS DE MEMORIA DEL COMPUTADOR
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
MEMORIA VIRTUAL PAGINACIÓN
Windows XP sp3.
ADMINISTRACIÓN DE MEMORIA
Memoria Virtual Fallos de Página Algoritmos de Reemplazamiento
Paginación y Segmentación Giselle M. Agosto Carlos R. Pérez
Teoría de Sistemas Operativos
Unidad V Administración de la Memoria
Direcciones físicas y direcciones virtuales (lógicas)
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Administración de memoria
Gestor de memoria.
Memoria Otros temas sobre cachés. Universidad de SonoraArquitectura de Computadoras2 Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias.
Simulador didáctico de jerarquías de memoria
PAGINACIÓN Y SEGMENTACIÓN
Estructura y Tecnolología de Ordenadores
Estructura y Tecnología de Ordenadores Noviembre 2004.
Administración de Memoria Memoria Virtual
1 Memoria Virtual Capítulo 8. 2 Estructuras de Hardware y Control Todas las referencias a memoria son direcciones lógicas y son mapeadas a direcciones.
Administración de la memoria
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Administración de Memoria
Antecedentes Memoria virtual – separación de la memoria lógica de la física Sólo parte del programa necesita estar en memoria en un momento dado para.
Capítulo 7 Gestión de memoria.
Administración de Memoria no contigua
Tema VII Memoria Virtual.
Tema 6. Administración de memoria
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Memoria virtual.
Gestión de Memoria.
Tema 10: Gestión de Memoria
Gestión de Memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
3.2.1 Administración de almacenamiento
Gestión de memoria Rina Arauz.
Planificación de uso del procesador Rina Arauz. Planificación de CPU 2 UNAN-Leon La ejecución de un trabajo se compone de secuencias de procesador y de.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos
Gestión de Memoria – Parte 2
Arquitectura y Sistemas Operativos Gestión de Memoria Parte 1 1 Gestión de Memoria – Parte 1 Agenda Parte 1 –RequisitosRequisitos –EvoluciónEvolución –Carga.
1. ? M.P. ¿Su gran restricción? Exigir que un Pi esté entero en M.P. para poder ejecutarse AUn Pi más grande que la M.P. no podrá ejecutarse BSi {Procesos.
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
Estructura del sistema operativo
1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)
G ESTIÓN DE LA MEMORIA Paginación y segmentación.
1 Tema 12: Memoria Virtual Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)
Arquitectura de Computadores
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Transcripción de la presentación:

Memoria Virtual Msc. Rina Arauz

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.

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.

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

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.

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

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

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.

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

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

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

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)

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

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

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

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

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

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.

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?

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

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

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

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

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

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

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)

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

Cadenas de referencia Ejemplo: 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104 0101, 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

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

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

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

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 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

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

Con 3 marcos, 9 fallos de págna Anomalía de Belady Ejemplo: Con 3 y 4 marcos de página 1 2 3 4 1 2 5 1 2 3 4 5 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 1 2 3 4 1 2 5 1 2 3 4 5

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

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 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

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