Capítulo Gestión de Memoria. Gestión básica de memoria. Intercambio (swapping). Memoria virtual.4 Algoritmos de sustitución de páginas.5 Modelando algoritmos de sustitución de páginas.6 Cuestiones de diseño en sistemas paginados.7 Cuestiones de implementación.8 Segmentación Introducción () Idealmente, los programadores quieren memoria mucha, rápida, no volátil, barata Historia 98 s: MDS (64k), monousuario, CP/M, overlays 98 s: VAX (4Mb), multiusuario (docenas) s: Windows, 64Mb (normal 5 Mb) Jerarquía de memorias Caché: poca, rápida, cara RAM: Mb, velocidad y precio medios Disco: Gb, lenta y barata Es un problema de costes
Introducción () Trabajos del gestor de memoria Qué memoria está libre/ocupada Asignación/liberación de memoria a procesos Intercambio RAM-disco Clases de gestores de memoria Con intercambio Swapping y paginación Sin intercambio Gestión básica de memoria () Monoprogramación sin intercambio ni paginación Solo un programa en memoria (junto con el SO) Se carga y se queda ahí hasta que acaba (CP/M) BIOS (Basic Input Ouput System) MSDOS minis palmtop, empotrados 4
Gestión básica de memoria () Multiprogramación con particiones fijas 5 Gestión básica de memoria () Multiprogramación con particiones fijas Planificación: queda libre una partición, qué trabajo cargar? El primero en la cola que quepa Fragmentación interna El más grande de la cola que quepa Se perjudica a los pequeños (y debe ser al revés) Disponer de una partición pequeña No retrasar un trabajo más de k veces OS/6, MFT (Multiprogramming with a Fixed number of Task) 6
Gestión básica de memoria (4) Modelo de multiprogramación Grado de multiprogramación La utilización de CPU es función del nº. de procesos en memoria 7 Gestión básica de memoria (5) Modelo de multiprogramación - Los procesos son independientes - n: grado de multiprogramación - p: fracción de tiempo que un proceso está esperando una I/O - Utilización de la CPU = p n - Los procesos no son independientes: sola CPU-> los otros en preparados (esperando). Aproximación válida. Ejemplo: Mb memoria, el SO ocupa 6Mb cada proceso de usuario 4Mb => n = 4; si p=.8, CPU = 6% Si compramos 6Mb => n = 8; si p=.8, CPU = 8%; ganancia: 8% Si compramos otros 6Mb CPU=9%; ganancia: % (La sección 4..4 no entra para el examen) 8
Gestión básica de memoria (6) Reubicación y protección Reubicación: dónde reside un programa? estática, dinámica Las direcciones de un programa suelen ser relativas a su dirección de comienzo. PERO... al montar un programa no se sabe dónde se va a ejecutar. SOLUCIONES Modificación de direcciones durante la carga (estático) Registro de Reubicación (o registro base) (permite reubicación dinámica) Dir. Virtual Registro de Reubicación R a = 854 R b = 448 R c = 5 + Dirección Real 45 747 4 A B C Espacio Virtual 6 566 448 4 854 5 B A C Espacio Real 9 Gestión básica de memoria (7) Reubicación y protección Protección: acceso indiscriminado a cualquier área de memoria tamaño del programa dirección comienzo partición Registro Límite Registro Base Dirección < Virtual + RAM ERROR de direccionamiento!
Intercambio (swapping) () Batch Se aceptan tantos trabajos como quepan en memoria Tiempo Compartido Suele haber más procesos de usuario de los que caben en memoria y hay que atenderlos a todos! Dos aproximaciones: Intercambio (entre RAM y disco) Memoria virtual (solo una parte del programa en RAM) Intercambio (swapping) () PARTICIONES DE TAMAÑO VARIABLE (el nº, tamaño y dirección varía con el tiempo) Fragmentación Externa! COMPACTACIÓN
Intercambio (swapping) () P.ejem: 4 bytes: 4ns. 56Mb:,7 s. T4.4 (ed) Ciertos sistemas con intercambio eliminan la fragmentación externa mediante compactación. Suponga que una computadora con Mb de memoria para usuario hace una compactación cada segundo. Si tarda,5 microseg en copiar un byte y el tamaño medio de los huecos es de,4 el tamaño medio de los segmentos Cuál es la fracción del tiempo total de CPU que se utiliza para la compactación? Intercambio (swapping) (4) Puede crecer dinámicamente la memoria de un proceso? B Para crecimiento En uso Pila de B Datos de B Código de B Para crecimiento A Para crecimiento En uso Pila de A Datos de A Código de A Para crecimiento (a) S. O. (b) S. O. 4
Intercambio (swapping) (5) Gestión de memoria con mapa de bits Se debe llevar la cuenta de la memoria utilizada y de los huecos libres Mapa de Bits Lista de Bloques Libres Sistema Buddy Mapa de Bits A B C D E 8 6 4 Tamaño de la Unidad de Asignación? Pequeño Grande Mapa Grande Mapa Pequeño Fragmentación Interna Es caro buscar una zona libre de tamaño K. 5 Intercambio (swapping) (6) Gestión de memoria con listas enlazadas 6
Intercambio (swapping) (7) Gestión de memoria con listas enlazadas T4.4 Se trata de comparar la memoria necesaria para mantener la pista de los bloques de memoria libre utilizando un mapa de bits o una lista enlazada. La memoria es de 8 Mb y la unidad de asignación es de n bytes. Para El caso de la lista enlazada, suponer que la memoria consiste de una secuencia alternada de segmentos y huecos, cada uno de 64kb. También suponer que cada nodo en la lista necesita una dirección de memoria de bits, una longitud de 6 bits y un campo (siguiente nodo) de 6 bits. Cuántos bytes se necesitan para mantener el mapa de bits y cuántos para mantener la lista enlazada? Qué método es el mejor? 7 Intercambio (swapping) (8) Gestión de memoria con listas enlazadas Lista de Bloques Libres (ordenados por dirección: liberación) 8
Intercambio (swapping) (8) Gestión de memoria con listas enlazadas Lista de Bloques Libres (ordenados por dirección: asignación) El primero que sirva siempre se comienza en la cabecera se generan muchos huecos pequeños al principio Siguiente que sirva lista circular; la cabecera se desplaza fragmentación externa: distribución uniforme El que mejor se adapte recorrer toda la lista: lento desperdicia más memoria El que peor se adapte no es buena idea 9 Intercambio (swapping) (9) Gestión de memoria con listas enlazadas Lista de Bloques Libres (ordenados por tamaño: asignación) Orden creciente de tamaños el primero que sirva = el que mejor se adapte siguiente que sirva no tiene sentido sobrecarga: mantener la lista ordenada en: asignación y liberación ( compactar con vecinos?) Algoritmo Quick Fit lista separadas por tamaño (k, 4k, ) asignación rápida; liberación: compactación Cada nodo de la lista puede ser el propio bloque
Intercambio (swapping) () T4.5 Considerar un sistema de intercambio en el que la memoria consiste de Los siguientes huecos (en tamaño) en el siguiente orden en memoria: kb, 4kb, kb, 8kb, 7kb, 9kb, kb y 5kb Qué hueco se elegirá para Satisfacer la próxima petición de memoria: a) kb b) kb c) 9kb Para los algoritmos: ) El primero que sirva ) El que mejor se adapte ) El que peor se adapte 4) El siguiente que sirva ),, 8 ),, 9 ), 8, 5 4), 8, 9 Memoria Virtual () No es necesario tener todo el programa en memoria RAM Se podrían ejecutar programas mayores que la RAM Se podrían tener más procesos en memoria principal Menos E/S por intercambio: más velocidad Se ocupa de tener la memoria de un proceso partida en trozos, e ir cargando en memoria principal el trozo que es necesario para poder continuar su ejecución. Trozos Iguales PAGINACIÓN Trozos de tamaño variable SEGMENTACIÓN
Memoria Virtual (). Paginación Posición y función de la MMU Memoria Virtual (). Paginación La memoria virtual se divide en páginas La memoria física en marcos de página tamaño página = tamaño marco Conversión: MOV REG, - Dirección está en página - Página está en marco - Dirección física es 89 MOV REG, 89 - Dirección 89 está en página - Página está en marco 6 - Dirección física es 4576 MOV REG, 78? 4
Memoria Virtual (4). Paginación 78 está en la página 8 (768) La página tiene X La MMU genera un TRAP FALTA de PÁGINA:. Elegir víctima. Escribir a disco (si hace falta). Cargar la nueva página. 4. Reiniciar MOV REG, 78 P.ejem:. Víctima la del marco.. escribir? Indicar que página : X. Cargar página 8 en marco. Indicar que página 8 en marco. Reiniciar MOV REG, 78 Dirección física: 48 5 Memoria Virtual (5). Paginación 6
Memoria Virtual (6). Tabla de páginas Tabla de páginas: marco = TP (página) Tamaño de la tabla Velocidad de traducción Pag. C P U dir. virtual Pag. Pag. Pag.......... Tabla de Páginas dir. física Marco Marco Marco..................... Marco m... Pag. n Memoria Principal Espacio de Direcciones Virtuales 7 Memoria Virtual (7). Tabla de páginas Tamaño de la tabla: Direcciones virtuales = bits ( = 4Gb) Si tamaño página = 4Kb ( ) Número de páginas = / = = Mg = nº de entradas TP Dirección virtual = 64 bits ( 64 ) Si tamaño de página = 4Kb ( ) Número de páginas = 64 / = 5 = * = G = 4,5 Peta entradas = 4,5 * 5 entradas Cada proceso tiene su propia tabla de páginas. El nº de entrada * tamaño (bytes) de cada entrada. 8
Memoria Virtual (8). Tabla de páginas Tablas de página multinivel: - Evita mantener todas las tablas de página en memoria Stack Gap Datos 4 Mb ( * = * ) Texto 9 Memoria Virtual (9). Tabla de páginas dirección virtual: x44 (46596, ) PT = (4M-8M) PT = Offset = Solo cargadas 4 TP + dir. física nº marco 88 4Mb (4944))
Memoria Virtual (). Tabla de páginas Estructura de una entrada: bits aprox. Número de marco en el que reside Presente/ausente: está; no está. Protección: RW; R o RWX Modificada (bit de ensuciado): sucia; limpia Referenciada: cuando se carga; cuando RW. Para sustitución Caching disabled: máquinas con E/S mapeada en memoria. No usar una copia vieja de la caché (de la página que contiene la memoria E/S) Memoria Virtual (). Tabla de páginas T4. Una computadora con direcciones de bits utiliza una tabla de páginas de dos niveles. Las direcciones virtuales se dividen en un campo de 9 bits para la tabla de nivel superior y un campo de bits para la tabla de nivel secundario; el resto es para el desplazamiento dentro de una página. Cuál es el tamaño de la página? Cuántas páginas existen en el espacio virtual de direccionamiento?
Memoria Virtual (). TLB Tabla de páginas: Velocidad de traducción Una instrucción:, o más referencias a memoria Cada referencia a memoria: consulta a la TP Soluciones: Todas las entradas en registros Muy caro (hw) Mucho tiempo en cambio contexto Toda la tabla en memoria (de todos los procesos) Registro RBTP (Registro Base de la Tabla de Páginas) Dir. Entrada = [RBTP] + (nº.pag * tamaño de la entrada) Cambio de contexto: recargar RBTP Mantener en memoria sólo la TP del proceso ejecutándose Otras soluciones? Memoria Virtual (). TLB Localidad referencial TLB (Translation Lookaside Buffers) (memoria asociativa) dentro de la MMU (La sección Software TLB Management no entra para el examen) 4
Memoria Virtual (4) T4.7 En un ordenador los procesos tienen un espacio de direccionamiento de 4 páginas y mantienen en memoria su tabla de páginas. La sobrecarga por lectura de una palabra desde la tabla de páginas es de 5 ns. Para reducir esta sobrecarga, el ordenador tiene una TLB con entradas (página virtual, num. marco) que tarda ns en realizar una consulta. Cuál debe ser la tasa de aciertos en dicha memoria asociativa para reducir la sobrecarga a ns.? 5 Memoria Virtual (5) Tabla invertida de páginas Tabla de páginas: Velocidad de traducción (Proceso, página virtual) 6
Memoria Virtual (6). T4. Un ordenador con páginas de 8kB, memoria principal de 56MB y un espacio de direccionamiento virtual de 64GB, utiliza una tabla invertida de páginas para implementar su memoria virtual. Cómo de grande debería ser la tabla hash para asegurar que por término medio la cadena hash tiene una longitud menor que? Suponga que el tamaño de la tabla hash es potencia de. 7 Memoria Virtual (7) T4. Una máquina tiene un espacio de direcciones de bits y una página de 8k. la tabla de páginas está en hardware, con una palabra de bits por cada entrada. Al iniciar un proceso, la tabla de páginas se copia al hardware desde la memoria, con una palabra cada ns. Si cada proceso se ejecuta durante ms (incluyendo el tiempo de carga de la tabla de páginas), cuál es la fracción del tiempo de CPU que se dedica a la carga de las tablas de páginas? 8
Algoritmos de sustitución de páginas () Se produce una falta de página y no hay memoria libre:. Elegir victima. Llevar victima a disco (si sucia). En TP: victima no presente 4. Traer nueva página al marco donde estaba la víctima 5. Actualizar TP: nueva está presente y marco y demás info Cómo elegir la víctima? Algoritmos de sustitución de página Problemas similares: Memoria caché Caché de un servidor web 9 Algoritmos de sustitución de páginas () Objetivo de todos los algoritmos de sustitución: Elegir páginas que generen el menor número de faltas de página. En todos los algoritmos hay una constante: el nº de marcos existentes Algoritmo Óptimo de sustitución de páginas Quitar la página que tardará más tiempo en ser referenciada Imposible implementar 4
Algoritmos de sustitución de páginas () No utilizada recientemente (NRU: Not Recently Used) Basado en los bits R (referenciada) y M (modificada, ensuciado) Inicialmente todas las páginas (en TP) R= M= Cada interrupción de reloj, todas las páginas R= R M Clase : no referenciada, no modificada Clase : no referenciada, modificada Clase : referenciada, no modificada Clase : referenciada, modificada Seleccionar una de la menor clase no vacía. Por qué mejor eliminar de la clase antes que de la clase? 4 Algoritmos de sustitución de páginas (4) FIFO (First-In First-Out) El SO mantiene una lista de todas las páginas en memoria La primera es la más vieja; la última, la más reciente Eliminar la primera de la lista Añadir la nueva a la cola de la lista 7 4 7 cab. 7 7 7 4 7 4 7 cola 4 7 5 Faltas de Página Desventaja: la página más vieja puede que sea frecuentemente accedida 4
Algoritmos de sustitución de páginas (5) FIFO (Anomalía de Belady) Suposición: cuantos más marcos menos faltas de página, PERO!! 4 Algoritmos de sustitución de páginas (6) Segunda Oportunidad (Second Chance) Variante del FIFO para evitar sacar una página (vieja) muy utilizada Si es la más vieja y no ha sido referenciada (R=), es la víctima Si es la más vieja y ha sido referenciada (R=) entonces: -R= - poner al final de la cola (como si fuese la más nueva) - Mirar la siguiente página en la lista 44
Algoritmos de sustitución de páginas (7) Segunda oportunidad (Reloj) Segunda oportunidad mueve páginas al final de la lista: Si todas tienen R=, las mueve todas (al final es FIFO) Mejora mantener una lista circular (en forma de reloj) 45 Algoritmos de sustitución de páginas (8) Menos recientemente utilizada (LRU: Least Recently Used) Supone que las páginas utilizadas recientemente, se utilizarán de nuevo Víctima: la página que lleva más tiempo sin ser referenciada Hay que mantener una lista de todas las páginas en memoria Cabeza: más recientemente utilizada Cola: menos recientemente utilizada Problemas: actualizar la lista en cada referencia a memoria!! Sobrecarga en buscar una página, eliminarla, moverla a la cabeza Implementaciones Por hardware Por software 46
Algoritmos de sustitución de páginas (9) Menos recientemente utilizada (LRU) Hardware (): Contador por cada entrada en la TP - En HW hay un contador C especial - C se incrementa después de ejecutar cada instrucción - Después de cada referencia a memoria, se almacena C en la entrada correspondiente - Se elige como victima la que tenga el contador más pequeño - Problemas eficiencia: - Almacenar el contador en cada referencia a memoria - Buscar en la TP el contador más pequeño Hardware (): matriz NxN (N = nº marcos que existen) Se referencia el marco k:. Fila k a s. Columna k a `s La fila con menor valor binario es la menos recientemente utilizada 47 Algoritmos de sustitución de páginas () Menos recientemente utilizada (LRU) 48
Algoritmos de sustitución de páginas () Menos recientemente utilizada (LRU) Software (): Mantener una pila con las páginas en memoria - Cuando se referencia una página, a la cima - La página del fondo de la pila es la menos recientemente usada - Problemas eficiencia: actualizar la pila en cada referencia a memoria 7 4 7 7 7 7 4 7 4 7 cima 4 7 Faltas de Página. Con FIFO 5 49 Algoritmos de sustitución de páginas () Menos recientemente utilizada (LRU) Software (): aging - Cada página con un contador inicialmente a - Cada interrupción de reloj mirar el contador de cada página - Desplazar un bit a la derecha cada contador - Sumar a la izquierda el bit R - La víctima es la página con menor contador - Problemas: - No se distingue qué página fue la última referenciada en un mismo intervalo de reloj - Los contadores tienen un número finito de bits 5
Algoritmos de sustitución de páginas () Menos recientemente utilizada (LRU) Software (): aging 5 Algoritmos de sustitución de páginas (4) Resumen de los algoritmos de sustitución Optimo: No implementable No utilizada recientemente: fácil implementar, pero los hay mejores FIFO: puede expulsar páginas importantes Segunda oportunidad: mejora sobre FIFO Segunda oportunidad (reloj): más eficiente que el anterior LRU: excelente, pero difícil de implementar Aging: buena aproximación a LRU (Las secciones 4.4.8 y 4.4.9 no entra para el examen) 5
Algoritmos de sustitución de páginas (5) T4.9 Un ordenador tiene cuatro marcos de página. El tiempo de carga, el tiempo del último acceso y los bits R y M para cada página son los que aparecen a continuación. Página cargada última referencia R M 6 8 65 7 6 85 (a) (b) (c) (d) Qué pagina es reemplazada por NRU? Qué pagina es reemplazada por FIFO? Qué pagina es reemplazada por LRU? Qué pagina es reemplazada por segunda oportunidad? 5 Cuestiones de diseño en sistemas paginados () Conjunto de Trabajo y Trasiego Los programas exhiben localidad en sus referencias Conjunto de Trabajo: El conjunto de páginas que actualmente está usando un proceso Trasiego (Thrashing) Un proceso causa faltas de página cada pocas instrucciones Solución: mantener en memoria el conjunto de trabajo Problema: Qué páginas forman el conjunto de trabajo? W (k,t): tamaño del conjunto de trabajo - en el instante t - tomando las k últimas referencias 54
Cuestiones de diseño en sistemas paginados () Conjunto de Trabajo y Trasiego k Debe determinarse el valor de k para obtener w(k,t) W(k,t) indica el conjunto de marcos que necesita un proceso en t 55 Cuestiones de diseño en sistemas paginados () Política de asignación local vs. global Local: asignación de memoria constante Global: asignación de memoria variable 56
Cuestiones de diseño en sistemas paginados (4) Política de asignación local vs. global La global da mejores resultados si cambia el tamaño conjunto de trabajo Cuánta memoria se asigna a cada proceso? Algoritmo PFF (Page Fault Frequency) indica cuándo incrementar/decrementar el tamaño del conjunto de trabajo no indica qué página reemplazar frente a una falta de página 57 Cuestiones de diseño en sistemas paginados (5) Control de carga A pesar de todo, el sistema puede entrar en trasiego PPF indica Algún proceso necesita más memoria Pero no que un proceso necesita menos Solución : Reducir el número de procesos que compiten por memoria Sacar uno o más a disco y repartir sus páginas Reconsiderar el grado de multiprogramación 58
Cuestiones de diseño en sistemas paginados (6) Tamaño de la página Deben considerarse varios factores en competencia. No existe ningún óptimo global Si el tamaño de un programa no llena un número exacto de páginas Programa: 6. bytes Tamaño de página: 4.96 bytes Queda espacio sin utilizar en la última de ellas! Necesita 7 páginas Ocupa 6 páginas completas: 6x4.96 = 4.576 De la última página ocupa: 6.-4.576 =.44 Desaprovecha: 4.96-.44 =.67 Fragmentación Interna Para un tamaño de página t, por término medio, se desaprovecha t/ por programa Interesan páginas pequeñas 59 Cuestiones de diseño en sistemas paginados (7) Tamaño de la página PERO Páginas pequeñas Muchas páginas Tabla de Páginas grande Hw. más caro, máquina más cara Más tiempo de transferencia desde memoria secundaria 6
Cuestiones de diseño en sistemas paginados (8) Tamaño de la página Si solo consideramos la fragmentación interna y la tabla de páginas: s, tamaño del programa (bytes) p, tamaño de la página (bytes) e, tamaño de cada entrada a la TP (bytes) Desperdicio = se/p + p/ Primera derivada con respecto a p e igualando a : -se/p + ½ = ; p = se s = Mb, p = 4kb e = 8 bytes (Las secciones 4.6.4, 4.6.5, 4.6.6 y 4.6.7 no entra para el examen) 6 Cuestiones de diseño en sistemas paginados (9) T4. Un ordenador proporciona a cada proceso 6556 bytes de espacio virtual De direccionamiento, dividido en páginas de 4KB. Un programa particular tiene un segmento de texto de tamaño 768 bytes, un tamaño de datos de 686 bytes y un tamaño de pila de 587 bytes Cabe este programa en el espacio de direccionamiento? Si el tamaño de la página fuese de 5 bytes cabría? Recuerde que una página no debe contener partes de dos segmentos distintos. 6
Idea general de Memoria Virtual No es necesario tener la imagen completa del proceso en memoria para poder ejecutarlo La imagen completa se almacena en un área de disco El área de disco puede albergar todo el espacio de direccionamiento de la CPU El SO lleva a memoria las partes que necesita para ejecutar el proceso DISCO CPU CP PP RE Rx Move #,$dirbits Bus Dir. dv MMU df 4 Memoria (6 MB) 4 bits bits $ $ $FFFFFF dv Mem.Vir. (hasta 4 GB) Código Datos Pila La CPU saca direcciones virtuales (dv) al ejecutar el proceso La MMU traduce las dv en direcciones físicas (df) $FFFFFFFF /4/9 - Paginación Idea general Divide la memoria principal y el espacio de memoria virtual en partes del mismo tamaño (MARCOS y PÄGINAS respectivamente) Refleja en una Tabla de Páginas la correspondencia entre Páginas y Marcos DISCO Memoria (6 MB) CPU CP PP RE Rx Move #,$dirbits Bus Dstos Bus Dir. Desc. Desc. Desc. i dv P MMU df TP Nº Marco marco 4 4 bits $ $FFFFFF marco marco marco marco M dv bits $ $FFFFFFFF Mem.Vir. (hasta 4 GB) Código Datos Pila Pag. Pag. Pag. j Pag. i Pag. N Desc. j marco M Desc. N /4/9 -
Paginación Traducción de las direcciones Se elige un tamaño de página que sea potencia de (p.e. K ) Los k bits de menor peso de las direcciones virtual y física indican el desplazamiento dentro de la página y el marco DISCO dv CPU CP PP RE Rx Move #,$dirbits Bus Dir. dv P MMU df Nº Marco 4 Memoria (6 MB) 4 bits bits $ $ $FFFFFF -k 4-k p d TP df m d k Desc. d dato k marco m dv $FFFFFFFF Mem.Vir. (hasta 4 GB) d dato Pag. p Desc. p marco m Desc. N /4/9 - Paginación Falta de Página (Suponemos que inicialmente la página P no está cargada en memoria. En Desc. p el bit P=) Si bit de presencia P =, hay falta de página, la MMU no puede traducir la dirección La MMU activa excepción en CPU, con la rutina de tratamiento el SO toma control CPU CP PP RE Rx Move #,$dirbits Rearranca instrucción que produjo Falta de pag. Bus Dir. MMU dv df si P= Excep. C-DISCO Ordena Cargar Página P 4 Desc. p P 4 bits $ $FFFFFF Memoria (6 MB) Rut.Trat Actualiza TP TP NºMarco marco m bits $ dv $FFFFFFFF DISCO Mem.Vir. (hasta 4 GB) Código Datos Pila Pag. Pag. Pag. j Pag. p Pag. i Pag. N /4/9-4
Paginación Aspectos generales Estructura de la TP La TP tiene una entrada por cada página virtual. Una entrada de la TP contiene el descriptor de la página correspondiente, es decir,toda la información que el SO necesita acerca de una página: Bit de presencia Nº Marco ocupado Modificado (bit de ensuciado) Referenciada (Bit de referencia) Protección se pueden incluir otros campos Política de carga de páginas Al comenzar la ejecución de un proceso, ninguna de sus páginas está cargada en memoria: Paginación con prealimentación Paginación por demanda Ubicación del área de intercambio de disco Las páginas de memoria virtual se almacenan en un espacio contiguo del disco (Cilindro/Pista/Sector). El SO elige un tamaño de página, de acorde con el tamaño del bloque de disco, que facilite su localización. Cuando el SO necesita cargar una página de la MV, calcula la dirección física del disco donde está almacenada. /4/9-5 Paginación Multiproceso Cada proceso tiene su propio espacio de memoria virtual y su propia TP CPU Memoria N CP PP RE Rx RBTP TP P P NºM. N Bus Dir. TP P P NºM.. TP Pn P NºM.. MMU 4 $.. Pag. 4 bits $ $FFFFFF bits MV (P) Pag. N Código Datos Pila $.. Pag. DISCO bits MV (P) Pag. N Código Datos Pila Descriptor de proceso: Id Proceso Estado RBTP Tamaño del proceso bits MV (Pn) $.. Pag. Pag. N Código Datos Pila N $FF..FF $FF..FF $FF..FF Dir. Comienzo Descriptor de Pag. K = RBTP + K * Tamaño de un descriptor /4/9-6
Paginación Multiproceso Todos los procesos comparten el mismo espacio de memoria virtual. Una sola TP. CPU Memoria DISCO CP PP RE Rx RBTP Bus Dir. MMU 4 4 bits $ $FFFFFF bits MV $.. Código Datos Pila P Desc. Desc. P TP Nº Marco Descriptor de proceso: Id Proceso Estado Dir. Memoria del proceso Tamaño del proceso $xx..xx Código Datos Pila P $yy..yy Código Datos Pn Pila Desc. N $FF..FF /4/9-7 Implementación de la TP. TLB (Translation Lookaside Buffer) La TP reside en memoria y disco. La MMU dispone de una memoria caché interna (TLB) La TLB contiene los R últimos descriptores de página referenciados CPU CP PP RE RBTP dv Move #,$dirbits Bus Dir. MMU 4 4 bits $ $FFFFFF p d df m d k dv df -k 4-k k Memoria Marco m Marco m P TP Nº M. DISCO Mem.Vir. (hasta 4 GB) Código Datos Pila Pag. j Pag. p Pag. i V TLB Nº Pag. P p Nº M. m Desc. j Desc. i Desc. p Desc. k m m R /4/9 Casos posibles: Pag. p / Pag. i / Pag. j -8
Cambios de contexto en la TLB Implementación de la TP Aspectos generales Accesos y actualizaciones en la TLB Se dan los siguientes casos: La página está cargada en memoria y su descriptor cargado en la TLP La MMU traduce la dv en df directamente La página está cargada en memoria, pero su descriptor no está cargado en la TLB La MMU lee el descriptor de la TP y lo carga en la TLB A continuación traduce la dv en df La página no está cargada en memoria, ni su descriptor está cargado en la TLB La MMU lee el descriptor de la TP y lo carga en la TLB La MMU produce la excepción de falta de página en la CPU Si cada proceso tiene su propia TP, cada proceso tiene su Pag., Pag. Al producirse un cambio de contexto: Se invalidan todas las entradas de la TLB En la TLB hay un campo Identificador de Proceso. Tamaño de la TP Las TP s llegan a tener un tamaño excesivo para estar almacenadas en la memoria principal Soluciones: La TP está en el disco. Se carga en memoria principal solo una parte. Tabla de Páginas invertida Tabla de Páginas Multinivel. /4/9-9 Implementación de la TP TP Invertida La TPI tiene una entrada por cada marco de la memoria principal En cada entrada de la TPI se indica la página que está cargada en el marco correspondiente Memoria DISCO dv -k 4-k i d df d k k 4 bits $ (6 MB) marco marco marco bits $ Mem.Vir. (hasta 4 GB) Código Pag. Pag. Pag. j V TPI Nº Página Pag. i marco M $FFFFFF TP P Nº Marco Desc. Datos Pila Pag. i Desc. i marco $FFFFFFFF Pag. N M Pag. j Desc. j marco M /4/9 Desc. N Menor consumo de memoria Mayor tiempo de búsqueda: Ayuda con Tablas Hash y Memoria Asociativa (TLB) -
Implementación de la TP TP Multinivel r r dv i j d df m d k k RBTP TP N P Nº Marco TP N P Dir.TP N R bits $ DISCO Mem.Vir. (hasta 4 GB) Pag. i R P TP N Nº Marco j m r = R R = N R P TP N Nº Marco R $FFFFFFFF Pag. N /4/9 -