Contenido • Estructura de las páginas Paginación – Niveles – Tabla Invertida de Páginas – Páginas Compartidas M. B. Ibáñez M. B. Ibáñez Problema Esquema de tabla de páginas de dos niveles Espacio de Direcciones Lógicas muy grande • Considere un sistema con un espacio lógico de direcciones de 32-bits • Tamaño de la página: 4K bytes (2^12) • Entonces, una tabla de páginas puede tener hasta un millón de (2^32/2^12) • Cada entrada consiste de 4 bytes, cada proceso puede necesitar hasta 4 megabytes de memoria física para almacenar su tabla M. B. Ibáñez Esquema de Tabla de Páginas de dos niveles • • • Una dirección lógica (en una máquina de 32 bits con un tamaño de páginas de 4K) se divide en: – Un número de página que consiste de 20 bits. – Un desplazamiento de página que consiste de 12 bits. Dado que la tabla de páginas en paginada, el número de la página se divide a su vez en: – Un número de página de 10-bits. – Un desplazamiento dentro de la página de 10-bits. Entonces, la dirección lógica es así: page number p1 p2 10 • page offset d 10 12 donde pi es un índice a la página externa, y p2 es el desplazamiento dentro de la página de la tabla interna. M. B. Ibáñez Traducción de direcciones para arquitecturas de 32-bits con dos niveles de paginación ... 10 10 p1 p2 12 d ... outer page table ... ... ... ... ... page table M. B. Ibáñez From Operating System Concepts. Silbershatz & Galvin. Addison Wesley. M. B. Ibáñez ... ... ... MEMORY 1 Ejercicio Ejercicio Un sistema de memoria virtual paginada usa un tamaño de página de 1024 bytes Las entradas de la tabla de páginas tienen un largo de 4 bytes 1K = 210 4Kbytes La máxima cantidad de espacio virtual de cada proceso es 2 El tamaño del espacio físico es también 2 30 30 bytes bytes 30 page offset 10 page M. B. Ibáñez M. B. Ibáñez Ejercicio Ejercicio ¿Cuál es el mínimo número de niveles de paginación necesarios en este sistema para asegurar que cada página quepa completamente en un frame? 30 p1 p2 p3 8 8 4 page offset 10 • Dibuje un diagrama de traducción que muestre cómo realizar la traducción de la dirección virtual en este sistema • Indique los tamaños de los registros, las direcciones y las tablas de páginas A lo sumo 2 10 entradas de la tabla de páginas entran en 2 2 un frame M. B. Ibáñez M. B. Ibáñez Ejercicio 4 p1 8 p2 8 p3 p3 Ejemplo de Desempeño 10 offset 30 base register Level 0 table 14 entries Level 1 table 256 entries frame number 20 M. B. Ibáñez Level 2 table 256 entries offset 10 • Calcule el tiempo efectivo de acceso a memoria para el ejemplo anterior • Toma 20 nanoseconds buscar en los registros asociativos • Toma 100 nanoseconds acceder a memoria • Hallar una dirección de memoria toma 120 nanoseconds cuando el número de página está en los registros M. B. Ibáñez 2 Ejemplo de Desempeño • Si no se encuentra el número de página en los registros asociativos (20 nanoseconds) – Debe referenciarse la memoria usando la tabla de páginas y el número de frame (100 x 3 nanoseconds) – Debe referenciarse el byte deseado en memoria (100 nanoseconds) Ejemplo de Desempeño • Supongamos tener un 98% hit ratio • Calcule el effective memory access time: EMAT EMAT = 0.98 x 120 + 0.02 x 420 = 126 nanoseconds 20 + 300 + 100 = 420 nanoseconds M. B. Ibáñez M. B. Ibáñez Un problema Tabla de Páginas Invertida • Cada proceso tiene una página asociada a él • La tabla de páginas tiene una entrada por cada página que el proceso utiliza • Cada tabla de página consiste en millones de entradas • Estas tablas pueden consumir grandes cantidades de memoria física, que es tan solo utilizada para saber cómo la otra memoria física es utilizada • Una tabla invertida de páginas tiene una entrada por cada página real (frame) de memoria page table MEMORY M. B. Ibáñez M. B. Ibáñez Tabla Invertida de Páginas Arquitectura de Tablas de Páginas invertidas • Cada entrada consiste de – Dirección virtual de la página almacenada en una localidad real de memoria – Información acerca de los procesos que poseen la página Process id Page number pid p d pid i d p page table entry From Operating System Concepts. Silbershatz & Galvin. Addison Wesley. M. B. Ibáñez M. B. Ibáñez 3 Ventajas y Desventajas • Ventajas • Desventajas – Baja la cantidad de memoria requerida – Aumenta la búsqueda en la tabla cuando ocurre una referencia Páginas Compartidas • Código compartido – Una copia de código read-only (reentrante) se comparte entre procesos (i.e., text editors, compilers, window systems). – El código compartido debe aparecer en la misma localidad de la dirección lógica de todos los procesos • Código privado y datos – Cada proceso mantiene una copia separada del código y los datos. – Las páginas para el código privado y los datos pueden aparecer en cualquier lugar del espacio lógico de direcciones From Operating System Concepts. Silbershatz & Galvin. Addison Wesley M. B. Ibáñez M. B. Ibáñez Páginas Compartidas M. B. IbáñezFrom Operating System Concepts. Silbershatz & Galvin. Addison Wesley 4