Contenido Memoria Real: Paginación y Segmentación • Paginación • Segmentación M. B. Ibáñez M. B. Ibáñez Paginación De particiones fijas a Paginación 0K 0K • Frames 2K USED – La memoria física es partida en bloques de tamaño fijo • Páginas 8K 8K 10K 16K 16K – La memoria lógica es también partida en bloques del mismo tamaño USED USED Cuando un proceso va a ser ejecutado, sus páginas son cargadas en los frames disponibles de la memoria 24K 24K USED M. B. Ibáñez M. B. Ibáñez De particiones fijas a Paginación De particiones fijas a Paginación 0K 0K 0K 0K 2K 2K USED 8K 8K USED USED USED 24K 24K USED M. B. Ibáñez 8K 8K USED 16K 16K USED 5K USED 16K 16K USED USED 24K 24K USED M. B. Ibáñez 1 De particiones fijas a Paginación 0K 0K 5K 2K USED 8K 8K USED 16K 16K USED USED 24K 24K USED Paginación Frame Number 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.2 A.3 0 1 A.0 A.1 A.2 A.3 B.0 B.1 B.2 2 3 4 5 6 7 8 9 10 11 12 13 14 M. B. Ibáñez 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 M. B. Ibáñez Paginación (cont) A.0 A.1 A.2 A.3 B.0 B.1 B.2 C.0 C.1 C.2 C.3 0 1 A.0 A.1 A.2 A.3 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 C.0 C.1 C.2 C.3 A.0 A.1 A.2 A.3 D.0 D.1 D.2 C.0 C.1 C.2 C.3 D.3 D.4 From Operating Systems Internals and Design Principles. W. Stalling Tablas de páginas 0 1 • El Sistema de Operación mantiene una página por cada proceso 2 3 4 5 6 7 8 9 10 11 12 13 14 – Contiene la localización de los frames para cada página del proceso – La dirección lógica de memoria consiste de: • Número de la página • Desplazamiento dentro de la página A.0 A.1 A.2 A.3 D.0 D.1 D.2 C.0 C.1 C.2 C.3 D.3 D.4 0 0 0 1 2 3 1 2 3 Process A 1 2 3 7 8 9 10 Process C 0 1 2 3 4 4 5 6 11 12 13 14 Free Frame List Process D M. B. Ibáñez M. B. Ibáñez Esquema de Traducción de Direcciones Arquitectura para la Traducción de Direcciones • La dirección generada por el CPU se divide en: – Número de página (p) – utilizada como un índice a la table de páginass que contiene la dirección de base de cada página en la memoria física. – Desplazamiento en la página (d) – se combina con la dirección de base para definir la dirección física de memoria a ser enviada a la M. B. Ibáñez unidad de memoria. CPU Virtual Address MOV #0, <PAGE0,0> M M U Physical Address MOV #0, 1024 From Operating System Concepts. Silberschatz & Galvin M. B. Ibáñez 2 Arquitectura para la Traducción de Direcciones Dirección Lógica page number page offset p d m-n n El tamaño de una página es normalmente una potencia de 2 que varía entre 512 bytes y 16 megabytes m Logical address space: 2 n Page size: 2 M. B. Ibáñez From Operating System Concepts. Silberschatz & Galvin Ventajas de la Paginación • Fácil la tarea de asignación – Mantener una lista de páginas libres y tomar la primera de ellas • Fácil para swap – Todo es del mismo tamaño, normalmente del mismo tamaño de los bloques de disco desde y hacia donde las páginas son swapped M. B. Ibáñez Desventajas de la Paginación • Fragmentación interna – El tamaño de la página no coincide con el de la información. Cuanto mayor es la página, peor es. • Espacio de las tablas – So las páginas son pequeñas, el espacio para las tablas es grande M. B. Ibáñez M. B. Ibáñez Segmentación Visión Lógica de la Segmentación 1 • Esquema de manejo de memoria que soporta la visión del usuario de la memoria • Un programa es una colección de segmentos. Un segmento es una unidad lógica que tiene main program, 4 1 2 3 procedure, function, local variables, global variables, common block, stack, symbol table, arrays From Operating System Concepts. Silberschatz & Galvin M. B. Ibáñez 2 4 3 user space physical memory space M. B. Ibáñez From Operating System Concepts. Silberschatz & Galvin 3 Arquitectura de la Segmentación • La dirección lógica consiste de <número del segmento, desplazamiento> • Tab la de segmentos -Cada entrada de la tabla contiene – base – contiene la dirección física de inicio donde los segmentos residen en memoria – límite – especifica la longitud del segmento. • Segment-table base register (STBR) apunta a la localidad de la tabla del segmento en memoria • Segment-table length register (STLR) indica el número de segmentos utilizados por el programa B. Ibáñez el número de M. segmento s es legal si s < STLR. Arquitectura de la Segmentación (Cont.) Arquitectura de la Segmentación (Cont.) • Relocalización – dinámica – Por tabla de segmentos • Compartir – Compartiendo segmentos – El mismo número de segmento • Asignar. – first fit/best fit – Fragmentación externa M. B. Ibáñez From Operating System Concepts. Silberschatz & Galvin Compartiendo Segmentos • Protección. Con cada entrada en la tabla de segmentos está asociado: – Bit de validación (0 => segmento ilegal) – Privilegios para read/write/execute • Hay bits de protección asignados a los segmentos, se comparte código a nivel de segmentos • Dado que los segmentos varian en longitud, en localidad de memoria, este es un problema de asignación dinámica From Operating System Concepts. Silberschatz & Galv in From Operating System Concepts. Silberschatz & Galvin M. B. Ibáñez M. B. Ibáñez 4