La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a los Sistemas Operativos Memoria Virtual

Presentaciones similares


Presentación del tema: "Introducción a los Sistemas Operativos Memoria Virtual"— Transcripción de la presentación:

1 Introducción a los Sistemas Operativos Memoria Virtual

2 Memoria Virtual Memoria Virtual es la técnica que permite que un programa (y sus datos) no necesite estar completo en memoria para ejecutarse. Esto es necesario por dos motivos: Los programas suelen ser muy grandes y no caben enteros en memoria física. En un sistema multiusuario/multitarea, varios programas comparten la misma CPU: es necesario que todos ellos esten en memoria física al mismo tiempo, y obviamente, no caben.

3 Memoria Virtual Solución:
Todos los programas que están ejecutándose en un momento determinado del tiempo, están en disco. Sólo sus partes actualmente accedidas están en memoria principal. La memoria principal actúa como una caché del disco donde están los programas completos que se están ejecutando. La técnica de memoria virtual ofrece además, un mecanismo de protección entre programas: asegura que ningún programa lee/escribe los datos de otro programa

4 Espacios de Direcciones
La memoria física tiene un espacio de direcciones igual a 2n bytes, siendo n el número de bits (señales) que el procesador tiene para direccionar memoria. La memoria física (DRAM) se accede con direcciones físicas. La memoria virtual tiene un espacio de direcciones igual a 2m, siendo m la cantidad de bits que los programas utilizan para especificar una dirección (de una instrucción o de un dato). Estas direcciones se llaman direcciones virtuales. Memoria virtual Memoria física (DRAM) dirección virtual dirección física

5 Espacios de Direcciones
Cuando un programa es compilado, sus direcciones son direcciones del espacio virtual. Cuando un programa es ejecutado, las direcciones con las que se accede a memoria son direcciones del espacio físico. En el medio, debe haber un proceso que traduzca una dirección virtual a una dirección física. El proceso de traducción permite que un programa cambie muchas veces su mapeo entre dirección virtual y dirección física durante su ejecución. La técnica de memoria virtual la implementa: El sistema operativo con soporte de hardware La traducción de direcciones virtuales a físicas, la realiza el hardware (en casi todos los procesadores actuales)

6 Memoria Virtual La unidad (bloque) de transferencia se llama página.
h y s i c a l d r e D k V t u A n o La unidad (bloque) de transferencia se llama página. Fallo: Fallo de página (Page Fault) El mapeo se realiza entre las páginas de memoria virtual y las páginas de memoria física.

7 Traducción Una dirección de memoria virtual se compone de:
Número de página Offset dentro de la página La función de traducción asigna un número de página física a la página virtual. La traducción se realiza cada vez que se accede a un dato.

8 Páginas Cuando la función de traducción encuentra que no hay mapeo para una dirección virtualfallo de página El fallo de página tiene una penalización enorme: acceder al disco cuesta millones de ciclos de proceso Los sistemas de memoria virtual se diseñan de forma de reducir esta penalización.

9 Páginas Las páginas deben ser lo suficientemente grandes para amortizar el tiempo de acceso: de 4KB, 16KB, 32KB y 64 KB. Se usa un esquema totalmente asociativo para colocar las páginas en memoria. El software gestiona los fallos de página: el hardware avisa que hay fallo, el SO toma el control, transfiere la página y utiliza algún algoritmo para decidir a quien reemplaza. Cuando se escribe en memoria principal, no se actualiza el disco: se utiliza la política de escritura diferida. El disco se actualiza cuando la página se elimina de memoria.

10 Como ubicar y encontrar una página
SO gestiona la localización de las páginas: Algoritmos sofisticados que llevan la cuenta de las páginas que no se necesitarán por mucho tiempo totalmente asociativo Dificultad: localizar la página. Una búsqueda total es impracticable. Se utiliza una Tabla de Páginas.

11 Tablas de Página Tabla de Páginas reside en Memoria
Se indexa con el número de página virtual. Contiene el número de página física o bien una indicación de que no está. Cada programa tiene su propia Tabla de Páginas. Un registro del procesador apunta a la dirección en memoria de la Tabla de Páginas

12 Tabla de Páginas Tamaño de página: 212 bytes (4K bytes)
Espacio virtual de direcciones: 232 bytes Espacio físico de direcciones: 230 bytes Tamaño de la Tabla de Páginas: 220 entradas, de 19 bits. O sea: un millón de entradas de 32 bits (redondeando para hacer mas fácil el acceso)

13 Programas y Procesos La Tabla de Páginas, junto con el PC y los registros representan el estado del programa que se está ejecutando. La Tabla de Páginas define el estado de la memoria del programa. Si se quiere compartir la CPU, se deberá salvar el estado del programa. El programa y su estado se denomina proceso. Un proceso está activo si está en posesión de la CPU : de lo contrario está inactivo. El S.O es el que pasa los procesos del estado inactivo a activo y viceversa

14 ¿Donde está la página en disco?
Un fallo de página provoca una excepción que le da control al S.O Este debe localizar el lugar del disco donde se encuentra la página que falló. Utiliza una estructura similar a la Tabla de Páginas, o bien la misma Tabla de Páginas para almacenar la ubicaciónde la página en disco. El S.O también tiene una tabla por proceso donde guarda información de sus páginas mapeadas. Reemplaza, utilizando LRU.

15 Problema Calcular el tamaño de la Tabla de Páginas necesaria para soportar un sistema con páginas de 4KB, 4 bytes por entrada en la TP y direcciones virtuales de 32 bits. Respuesta: 4MB!!!!!!!!!! Es decir: se necesita en memoria por cada programa que está corriendo una tabla de 4MB En una máquina con varios cientos de programas activos toda la memoria de la máquina estaría ocupada por las Tablas de Páginas!

16 Soluciones Limitar el tamaño de la TP por proceso, de manera que esta crezca solo si el proceso lo necesita. Registro Límite. Idem que el anterior pero permitiendo que las direcciones crezcan en los dos sentidos: de abajo hacia arriba (heap) y de arriba hacia abajo (pila). De esta forma las direcciones virtuales pertenecen a dos segmentos: el bit de mayor peso de la dirección identifica a cual. Cada segmento tiene una Tabla de Páginas diferente. MIPS Aplicar una función de hashing a la dirección virtual de forma que el tamaño de la Tabla de Páginas escale al tamaño de la memoria física y no al de la memoria virtual. Tabla de Páginas Invertida. Utilizar múltiples niveles de tablas de páginas. Un directorio que contiene direcciones de Tablas de páginas y las Tablas de Páginas que están en el segundo nivel. Tablas Jerárquicas. INTEL Paginar la Tabla de Páginas: es decir, permitir que las Tablas de Páginas residan en el espacio virtual.

17 Escrituras Escritura diferida: además solo se escribe si la página fue modificada. Bit de sucio. (dirty). El bit de dirty se activa cuando se realiza una escritura en la página

18 Traducción de direcciones
Si la Tabla está en MP: un acceso a un dato requiere dos accesos (al menos!): Uno para acceder a la dirección Otro para acceder al dato Se puede acelerar basándose en el principio de localidad de las referencia: Si una página fue recientemente referenciada es probable que lo vuelva a ser pronto porque los datos tienen localidad espacial y temporal Solución: poner una pequeña caché de las últimas referencias traducidas a direcciones físicas: TLB Translation LookAside Buffer

19 TLB: caché de direcciones
La TLB es una pequeña caché, por lo tanto cada entrada contiene un tag: el número de página virtual. Cuando hay un fallo en la TLB, puede o no haber fallo de página. Los fallos en la TLB los sirve el hardware por lo general. La TLB contiene también los bits de referencia y sucio. Si hay reemplazo, se copian en memoria. (escritura diferida) V a l i d 1 P g e t b h y s c p r T L B u n m o k D

20 TLB Algunos valores normales para la TLB: Tamaño: 32 a 4096 entradas
Bloque: 1 o 2 entradas de Tabla de Página de 4-8 bytes cada una. Tiempo de acierto: 0,5-1 ciclo Penalización por fallo: ciclos Tasa de fallos: 0,01%-1% Asociatividad: totalmente asociativa difícil el reemplazo. Pocas entradas. Poca asociatividad (2,4)

21 Integración: memoria virtual, cachés y TLB’s

22 Integración Sistemas con direcciones físicas traducidas ANTES de acceder a la caché: Cachés indexadas físicamente y etiquetadas físicamente El tiempo necesario para acceder al dato es la suma de los tiempos de acceso a la TLB y a la Caché. Sistemas con direcciones físicas traducidas DESPUES de acceder a la caché: Cachés indexadas virtualmente y etiquetadas virtualmente Se accede en paralelo a la TLB y a la Caché Solo en caso de miss en caché se usa la dirección física obtenida en la TLB Problema: una misma dirección física puede tener varias direcciones virtuales estar contenida en varias líneas de la caché. (páginas compartidas entre programas)

23 Integración Sistemas mixtos:
Las cachés se indexan con la dirección virtual (se pueden usar los bits de desplazamiento de página que no se cambian en la traducción), pero se comparan con la dirección física. La caché y la TLB se acceden en paralelo. La TLB suministra la etiqueta para los comparadores

24 Protección Es una de las funciones del sistema de memoria virtual: permitir la compartición de la memoria única entre múltiples procesos: protección entre procesos y con el SO. En la TLB, el bit de escritura protege contra accesos de escritura no deseados. Lecturas: El SO debe garantizar que las páginas virtuales de dos procesos independientes se asignen a páginas físicas disjuntas. También debe garantizar que un proceso no pueda cambiar su Tabla de Páginas, sin embargo el SO si debe poder cambiar las Tablas de Páginas.

25 Protección El hardware debe proporcionar:
Al menos dos modos de ejecución: proceso usuario y proceso kernel (supervisor, ejecutivo) Instrucciones que solo puedan ser usadas por el proceso kernel (para actualizar las estructuras de datos) Mecanismos para pasar de un modo a otro De usario a kernel excepciones, llamadas al sistema (syscall) De kernel a usuarioretorno de excepción: restaura el estado del proceso.


Descargar ppt "Introducción a los Sistemas Operativos Memoria Virtual"

Presentaciones similares


Anuncios Google