Memoria Virtual Estructura y Tecnolologa de Ordenadores Memoria

  • Slides: 80
Download presentation
Memoria Virtual Estructura y Tecnolología de Ordenadores

Memoria Virtual Estructura y Tecnolología de Ordenadores

Memoria virtual 1. 2. 3. 4. 5. 6. 7. Introducción Paginación Segmentación paginada Paginación

Memoria virtual 1. 2. 3. 4. 5. 6. 7. Introducción Paginación Segmentación paginada Paginación por demanda y anticipada Políticas de reemplazo Política de asignación de marcos de página 8. Similitud entre las distintas Jerarquías Estructura y Tecnología de Ordenadores ETSII- ULL 2004

Memoria virtual 1. Introducción • Concepto de Memoria Virtual: Método para conseguir que la

Memoria virtual 1. Introducción • Concepto de Memoria Virtual: Método para conseguir que la suma de los espacios de pila, datos y texto de un programa pueda ser mayor que el tamaño físico de la memoria disponible para él. (Fotheringham, 1961) • Cada proceso se asigna un área de direcciones contiguo. • El SO mantiene en memoria solamente las partes del programa que se están utilizando y mantiene en disco (intercambiadas) el resto. • Sirve para sistemas mono y multiprogramados • Permite optimizar el uso de la memoria, al mantener en disco partes del proceso poco usadas (rutinas de atención a errores poco frecuentes, funciones de uso esporádico, datos no usados, …) • - La memoria virtual se implementa normalmente mediante paginación Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 1. Introducción Ventajas: a) Aumento del grado de multiprogramación. Por tanto, aumento

Memoria virtual 1. Introducción Ventajas: a) Aumento del grado de multiprogramación. Por tanto, aumento en el rendimiento del sistema b) Posibilidad de ejecutar programas más grandes que la MV disponible El uso de la MV no implica que se acelere la ejecución del programa (más bien al contrario, debido a la sobrecarga asociada a los movimientos de información entre niveles de la jerarquía). Este mecanismo no es apropiado para sistemas de tiempo real. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 2. Paginación • La memoria física se divide en bloques de tamaño

Memoria virtual 2. Paginación • La memoria física se divide en bloques de tamaño fijo que llamamos marcos. • La memoria virtual se divide en bloques del mismo tamaño llamados páginas. • Al ejecutar un proceso se cargan sus páginas en los marcos disponibles. • La vinculación de direcciones requiere soporte por hardware. MMU (Manejador de Memoria) Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 2. Paginación • • Página: Zona contigua de memoria de determinado tamaño.

Memoria virtual 2. Paginación • • Página: Zona contigua de memoria de determinado tamaño. (Por motivos de eficiencia se suele trabajar siempre con tamaños potencia de 2. Ej: 4 KB. ) Organización: — El mapa de memoria del proceso se considera dividido en páginas. — La memoria principal se considera dividida en marcos de página (tamaño de marco = tamaño de página). — Los marcos contendrán páginas de los procesos en ejecución — La tabla de páginas (TP) relaciona cada página con el marco que la contiene. El hardware de traducción (MMU) usa la tabla de páginas para traducir direcciones lógicas a físicas — Típicamente la MMU usa dos tablas de páginas (TP): a) TP del usuario: Por ejemplo, direcciones lógicas que empiezan por 0 b) TP del sistema: Por ejemplo, direcciones lógicas que empiezan por 1. Estas sólo se podrán usar en modo sistema Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 2. Paginación Dirección física dirección lógica CPU p d f d p

Memoria virtual 2. Paginación Dirección física dirección lógica CPU p d f d p Página (virtual) desplazamiento Estructura y Tecnología de Ordenadores ETSII – ULL- 2004 Memoria f Tabla de páginas Página (física) -marco- 0

Memoria virtual Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 2. Paginación Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 2. Paginación Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 2. Paginación • La paginación remedia la fragmentación externa, pero no la

Memoria virtual 2. Paginación • La paginación remedia la fragmentación externa, pero no la fragmentación interna. • Un intento de acceso a una página virtual que no esté asociada a un marco produce un señalamiento al SO (trap), llamado fallo de página. – Como respuesta al fallo de página, el SO: – 1. selecciona una página poco usada del proceso – 2. Intercambia la página a disco – 3. Asigna el marco de la página liberada a la página virtual que se intenta acceder – Esto supone una forma de reasignación dinámica por bloques de las direcciones de memoria del proceso Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 2. Paginación S. O. 3 La página está en memoria auxiliar Programa

Memoria virtual 2. Paginación S. O. 3 La página está en memoria auxiliar Programa Referencia 1 LOAD M 2 Excepción Memoria secundaria 0 6 Reiniciar la instr. 5 Memoria principal Tabla de páginas Marco libre Actualizar la tabla de páginas Estructura y Tecnología de Ordenadores ETSII – ULL- 2004 4 Cargar la página que falla

Memoria virtual 2. Paginación Tabla de Páginas: Son tablas que contienen (para cada proceso)

Memoria virtual 2. Paginación Tabla de Páginas: Son tablas que contienen (para cada proceso) el número de marco que corresponde a cada página virtual del proceso Estructura de una entrada de la Tabla de Procesos Número de marco bit presente (1) ausente (0) protección (permisos) del marco (RWX) bit Modificado (1) o no (0) -lo usa el intercambiador para saber si debe copiar el marco a disco o no- Caching Desactivado/Activado No usado Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Tamaño de página: La elección de tamaño de página está condicionada

Memoria virtual • Tamaño de página: La elección de tamaño de página está condicionada por diversos factores, entre los que hay que conseguir equilibrio: – Potencia de 2 y múltiplo del tamaño del bloque de disco – mejor pequeño por: • Menor fragmentación • Se ajusta mejor al conjunto de trabajo – mejor grande por: • Tablas más pequeñas • Mejor rendimiento de dispositivos de E/S – Compromiso (entre 2 K y 16 K) Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Tamaño de página 0 0 1 0 0 0 0 0

Memoria virtual • Tamaño de página 0 0 1 0 0 0 0 0 1 0 0 página virtual página física 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 010 001 110 000 100 011 000 000 101 000 111 000 000 1 1 1 0 0 0 1 0 0 bit presente/ausente Desplazamiento (12 bits) 1 1 0 0 0 0 0 1 0 0 Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Tasa de fallos de página • Tamaño de página (a) Tamaño de

Memoria virtual Tasa de fallos de página • Tamaño de página (a) Tamaño de página (b) Número de marcos de página asignados P = Tamaño del proceso completo W = Tamaño del conjunto de trabajo N = Número total de páginas del proceso Comportamiento típico de la paginación en un programa Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Tamaño de página Ejemplos de tamaños de páginas Computadora Tamaño de

Memoria virtual • Tamaño de página Ejemplos de tamaños de páginas Computadora Tamaño de página Atlas 512 palabras de 48 bits Honeywell-Multics 1. 024 palabras de 36 bits IBM 370/XA y 370/ESA 4 Kbytes Familia VAX 512 bytes IBM AS/400 512 bytes DEC Alpha 8 Kbytes MIPS de 4 Kbytes a 16 Mbytes Ultra. SPARC de 8 Kbytes a 4 Mbytes Pentium de 4 Kbytes a 4 Mbytes Power Pc 4 Kbytes Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Dirección: Una dirección lógica se obtiene a partir de: nº página

Memoria virtual • Dirección: Una dirección lógica se obtiene a partir de: nº página + desplazamiento • Problema: – La paginación no ofrece una solución óptima. Lo ideal sería que cada palabra del mapa de memoria de un proceso pudiera ubicarse en cualquier dirección. Esta solución es inviable debido al coste de traducción – Al no ser así, con la paginación se asigna a cada proceso un número entero de marcos de página, aunque el espacio de su mapa de memoria no sea un múltiplo entero del tamaño de página. Por tanto, se irán generando huecos (memoria no aprovechada, en la última de las páginas que no se llena de forma completa). Este proceso se denomina fragmentación interna (implica que, en término medio, cada proceso desperdicia la mitad de una página) Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual T. Páginas Proceso 1 Página 0 Marco 2 Página 1 Marco N.

Memoria virtual T. Páginas Proceso 1 Página 0 Marco 2 Página 1 Marco N. . . Página M Marco 3 T. Páginas Proceso 2 Página 0 Marco 4 Página 1 Marco 0. . . Página P Memoria Pág. 1 Pr. 2 Marco 0 Pág. P Pr. 2 Marco 1 Pág. 0 Pr. 1 Marco 2 Pág. M Pr. 1 Marco 3 Pág. 0 Pr. 2 Marco 4 . . . Pág. 1 Pr. 1 Marco N Marco 1 • Problema: Fragmentación, la memoria asignada es mayor que la memoria requerida y por lo tanto, se desperdicia cierta cantidad de espacio Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Otras cuestiones: – En este esquema, el S. O. mantiene una

Memoria virtual • Otras cuestiones: – En este esquema, el S. O. mantiene una tabla de páginas por cada proceso. Cuando se produce un cambio de contexto se indica a la MMU qué tabla de páginas usar – El S. O. mantiene una única tabla de páginas para sí mismo. Así, todos los procesos comparten el SO. Cuando un proceso se ejecuta en modo sistema accede directamente a su mapa y al del SO – S. O. mantiene tabla de marcos, como forma de mantener información de estado de la memoria principal. De cada marco se conoce su estado (libre, ocupado, etc) – S. O. mantiene tabla de regiones por cada proceso, indicando las características de cada región y qué rango de páginas pertenecen a cada región • Desperdicio de espacio: Mucho mayor gasto en tablas que con asignación contigua: es el precio de mucha mayor funcionalidad Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Estrategias de búsqueda – Paginación por demanda • Las páginas son

Memoria virtual • Estrategias de búsqueda – Paginación por demanda • Las páginas son traídas desde memoria secundaria hasta memoria principal cuando son referidas por el proceso en ejecución. – Paginación anticipada • El sistema predice que páginas deben ser traídas desde el almacenamiento secundario al primario, sin que éstas tengan que ser referenciadas explícitamente por el proceso (por ej: la página siguiente). • Estrategias de colocación – First FIT • Se van colocando las páginas consecutivamente desde la posición de memoria más baja. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 2. Paginación • Políticas de sustitución/reemplazo (FIFO, LRU, etc. ) – Cómo

Memoria virtual 2. Paginación • Políticas de sustitución/reemplazo (FIFO, LRU, etc. ) – Cómo se sabe dónde está la página que buscamos. – La dirección virtual por sí sola no es suficiente. – Necesidad de una estructura de datos adicional. • Tabla de páginas que incluya la posición de todos. – Presentes: dirección física. – No presentes: posición en el disco. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 2. Paginación • ¿Qué ocurre con las escrituras? – Gran coste de

Memoria virtual 2. Paginación • ¿Qué ocurre con las escrituras? – Gran coste de acceso a la memoria secundaria. – No es útil usar un buffer de escritura como la caché. – Postescritura (write back). • Cuándo se reemplaza la página. – Existencia de un bit de cambio – No devolver si no se ha cambiado Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual TLB (Translation Look-aside Buffer) • Consta de una memoria asociativa con información

Memoria virtual TLB (Translation Look-aside Buffer) • Consta de una memoria asociativa con información sobre últimas páginas accedidas. • Para el multiproceso, existen varias posibilidades: – La TLB no incluye información del proceso. En este caso, habrá que invalidar la TLB en los cambios de contexto – Entradas en TLB incluyen información sobre proceso: en este caso, debe existir un registro de UCP para mantener la identificación del proceso actual Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual TLB (Translation Look-aside Buffer) Estructura y Tecnología de Ordenadores ETSII – ULL-

Memoria virtual TLB (Translation Look-aside Buffer) Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual TLB (Translation Look-aside Buffer) • Implementación – HW: La MMU consulta la

Memoria virtual TLB (Translation Look-aside Buffer) • Implementación – HW: La MMU consulta la TLB y si falla, se usa la TP en memoria. • Ventajas: Es un proceso muy rápido • Inconvenientes: Actualizar la TP en cambios de contexto y hay que invalidar la TLB cuando se produce un cambio de contexto (si no tiene información del Proceso) – SW: La MMU no usa la TP, sino que sólo consulta TLB. En caso de fallo, se activa el SO, que ha de buscar la entrada en la tabla de páginas (mediante programa), e insertar en la TLB la traducción hecha, de forma que se pueda reutilizar. • Ventajas: flexibilidad, ya que la tabla de páginas puede ser definida a conveniencia, sin restricciones impuestas por el hardware • Inconvenientes: Es menos eficiente, ya que parte del proceso de traducción se realiza mediante programa. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual TLB (Translation Look-aside Buffer) • Hacer rápida la traducción de direcciones (el

Memoria virtual TLB (Translation Look-aside Buffer) • Hacer rápida la traducción de direcciones (el TLB) – TLB = Translation Lookaside Buffer – Las tablas de página están en M. P. (son grandes) – Su acceso es costoso Pérdida de la eficiencia de la caché – Aplicación del mismo criterio de localidad de la caché • Una caché especial (TLB) Con las traducciones últimamente usadas • Una caché que contiene solamente correspondencias de tablas de páginas – Etiqueta: Nº de página virtual – Dato: Nº de página física – Bit adicionales de: Presencia; Referencia; Modificación Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual TLB (Translation Look-aside Buffer) Estructura y Tecnología de Ordenadores ETSII – ULL-

Memoria virtual TLB (Translation Look-aside Buffer) Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Aplicación del TLB en las referencias a memoria 1. Se busca el

Memoria virtual Aplicación del TLB en las referencias a memoria 1. Se busca el Nº de página virtual en el TLB a) Si está acierto se forma la dirección física * Se activa el bit de referencia * Se activa el bit de modificación si es escritura Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Aplicación del TLB en las referencias a memoria b) Si no está

Memoria virtual Aplicación del TLB en las referencias a memoria b) Si no está ver tipo de fallo posible * Fallo de TLB (miss) - Se carga desde la tabla de páginas - Se intenta de nuevo la traducción * Fallo de página (fault) - Una excepción - El S. O. producirá el cambio de página Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Aplicación del TLB en las referencias a memoria • Valores típicos de

Memoria virtual Aplicación del TLB en las referencias a memoria • Valores típicos de una TLB Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Aplicación del TLB en las referencias a memoria 2. Cuando se ha

Memoria virtual Aplicación del TLB en las referencias a memoria 2. Cuando se ha recuperado la traducción del fallo: a) Seleccionar una entrada de la TLB a sustituir (Aleatorio, FIFO, LRU, . . . ) b) Transferir sólo los bits (modif y uso) a la tabla de páginas. * Política de postescritura Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual TLB de una DECStation 3100 – – (procesador R 2000) El TLB

Memoria virtual TLB de una DECStation 3100 – – (procesador R 2000) El TLB está incluido en el chip procesador Tamaño de página = 4 Kbytes = 220 páginas virtuales Nº bits. Dirección física = Nº bits Dirección virtual (32) TLB con 64 entradas Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual TLB de una DECStation 3100 • Totalmente asociativa • Cada entrada: –

Memoria virtual TLB de una DECStation 3100 • Totalmente asociativa • Cada entrada: – Etiqueta 20 bits – Bloque físico 20 bits – Bits de validez, modificación – Otros bits de organización Estructura y Tecnología de Ordenadores ETSII – ULL- 2004 (procesador R 2000)

Memoria virtual TLB de una DECStation 3100 (procesador R 2000) • Cuando hay fallo:

Memoria virtual TLB de una DECStation 3100 (procesador R 2000) • Cuando hay fallo: – El hardware genera el Nº de página de referencia – El hardware suele guardar un índice que indica la entrada a sustituir Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual TLB y Caché de un R 2000 Estructura y Tecnología de Ordenadores

Memoria virtual TLB y Caché de un R 2000 Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Fallos de página – Se produce cuando el bit de presencia

Memoria virtual • Fallos de página – Se produce cuando el bit de presencia está en off (0) – Quiere decir que la página no está en M. P. – Acudir al nivel superior de memoria (disco) – Transferirla a M. P. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Veamos cómo se gestiona la ocurrencia de un fallo de página: •

Memoria virtual Veamos cómo se gestiona la ocurrencia de un fallo de página: • La MMU genera una excepción. Normalmente deja en un registro especial la dirección que causó el fallo • Se activa el SO, que comprueba: – Si la página es inválida, se aborta el proceso (solución normal, aunque también podría bastar con el envío de una señal). – Si la página es ausente se siguen los pasos siguientes: a) Se consulta la tabla de marcos para ver si hay algún hueco libre: i. Si no hay ningún marco libre se aplica el algoritmo de reemplazo, que decidirá el marco a desalojar. La página almacenada hasta entonces se marca como inválida. Si ha sido modificada, antes hay que salvar su contenido en memoria secundaria ii. Si hay marco libre: se inicia la lectura desde memoria secundaria y se vuelca al marco, marcándose como válida dicha entrada en la TP y apuntando el marco en que está almacenada Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • En el peor de los casos un fallo de página puede

Memoria virtual • En el peor de los casos un fallo de página puede suponer dos operaciones de E/S: a) Salvaguarda de la página expulsada b) Lectura de la página nueva Dos políticas definen el funcionamiento del sistema de memoria • Política de reemplazos: – Reemplazo local: Sólo puede usarse para reemplazo un marco asignado al proceso que causa fallo – Reemplazo global: Puede usarse para reemplazo cualquier marco • Política de asignación de espacio a los procesos: – Asignación fija: El número de marcos de página para cada proceso es fijo. – Asignación dinámica: El número de marcos de página para cada proceso es dinámico Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Procesamiento Memoria virtual de fallos Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Procesamiento Memoria virtual de fallos Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Tratamientos de los fallos de página y el TLB • Un fallo

Memoria virtual Tratamientos de los fallos de página y el TLB • Un fallo en TLB puede indicar 2 posibilidades: – La página está en M. P. sólo crear la entrada en la TLB – La página no está en M. P. control al S. O. • No está en M. P. si el bit de validez en la T. P. es 0 – El fallo de TLB puede ser tratado por hardware o software Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Estructuras de información de las TP • Tabla directa (ordenada por página

Memoria virtual Estructuras de información de las TP • Tabla directa (ordenada por página vitual) – – Tabla de página de un nivel – Tabla multinivel • Tabla invertida (ordenada por marco de página) • Tabla Hash Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Una de las opciones disponibles para disminuir el tamaño requerido por las

Memoria virtual Una de las opciones disponibles para disminuir el tamaño requerido por las tablas de páginas es la tabla de páginas multinivel • Organización: Se trata de una tabla de páginas organizadas en M niveles: – Entrada de TP de nivel K apunta a TP de nivel K+1 – Entrada de último nivel apunta a marco de página • Dirección: La dirección lógica especifica la entrada a usar en cada nivel • 1 campo por nivel + desplazamiento • Accesos: Un acceso lógico supone M + 1 accesos a memoria. Solución: uso de TLB • Invalidación: Si todas las entradas de una TP son inválidas, no se almacena esa TP y se pone inválida la entrada correspondiente de la TP superior • Ahorro de espacio: Si el proceso usa una parte pequeña de su espacio lógico, se consigue ahorro en espacio para almacenar TPs Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Página 1 er nivel 2º nivel Dirección lógica Byte 0 1 2

Memoria virtual Página 1 er nivel 2º nivel Dirección lógica Byte 0 1 2 3 Marcos de página 0 1 2 3 n Registro base de la TP (RIED) n 0 1 2 3 n Estructura y Tecnología de Ordenadores ETSII – ULL- 2004 MP: direcciones físicas

Memoria virtual • Ejemplo: Proceso que usa 12 MB superiores y 4 MB inferiores

Memoria virtual • Ejemplo: Proceso que usa 12 MB superiores y 4 MB inferiores – 2 niveles, páginas de 4 K, dir. lógica 32 bits (10 bits por nivel) y 4 bytes por entrada – Tamaño: 1 TP N 1 + 4 TP N 2= 5 * 4 KB = 20 KB (frente a 4 MB) • Ventajas adicionales: permite compartir TPs intermedias y sólo se requiere que esté en memoria la TP de nivel superior. Las restantes pueden estar en disco y traerse por demanda Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Otra alternativa para disminuir el espacio necesario por la tabla de páginas

Memoria virtual Otra alternativa para disminuir el espacio necesario por la tabla de páginas es la tabla de páginas invertida • Organización: – La tabla contendrá tantas entradas como marcos de página haya. – Cada entrada almacena la página cargada en dicho marco junto con sus características: • Número de página, • Proceso dueño de la página – El tamaño de la tabla de páginas es proporcional a la memoria disponible. • Accesos: La MMU usa una TLB convencional, pero si falla la traducción se accede a la tabla de páginas invertida. Al estar la tabla organizada por marcos no se puede hacer una búsqueda directa. Debería accederse a todas las entradas en busca de la página correspondiente. Por esta razón se suele organizar como una tabla hash • Ahorro de espacio: Se reduce el espacio de almacenamiento necesario, ya que sólo se guarda información sobre las páginas válidas Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Dirección lógica pid Página Byte i pid página i Byte Dirección física

Memoria virtual Dirección lógica pid Página Byte i pid página i Byte Dirección física Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 6. Políticas de reemplazo • Objetivo: Minimizar la tasa de fallos de

Memoria virtual 6. Políticas de reemplazo • Objetivo: Minimizar la tasa de fallos de página. • Cada algoritmo descrito tiene versión local y global: – Local: criterio se aplica a las páginas residentes del proceso – Global: criterio se aplica a todas las páginas residentes • Algoritmos a estudiar A. FIFO B. Reloj (o segunda oportunidad) C. NRU D. LRU E. NFU Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 6. Políticas de reemplazo • Al intentar minimizar los fallos tratarán de

Memoria virtual 6. Políticas de reemplazo • Al intentar minimizar los fallos tratarán de eliminar la páginas con menor probabilidad de uso. • Ejemplo. Secuencia de accesos: T= Página= 0 1 2 7 0 1 Estructura y Tecnología de Ordenadores ETSII – ULL- 2004 3 4 2 0 5 6 3 0 7 8 4 2 9 A B C D E F 3 0 3 2 1 2 0

Memoria virtual FIFO (Primero en llegar) - (a) Cada entrada de la tabla tiene

Memoria virtual FIFO (Primero en llegar) - (a) Cada entrada de la tabla tiene un registro asociado con el instante de carga de la página, o (b) el SO mantiene la tabla de páginas en orden de antigüedad (FIFO) -Cuando se produce un fallo de página y no hay marcos libres, se intercambia a disco la página que lleve más tiempo en la tabla. -Ej. : 7, 0 Nº de página instante de entrada en tabla T= Página= Tablas a) + antiguo + nuevo b) 0 1 2 3 4 5 6 7 8 9 A B C D E F 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 7, 0 2, 3 0, 1 1, 2 7 7 0 1 Estructura y Tecnología de Ordenadores ETSII – ULL- 2004 0 1 2 2, 3 4, 7 0, A 3, 5 2, 8 1, 2 0, 6 3, 9 1 2 3 0 3 0 4 2 4 2 3 0 0, A 1, D 3, 9 2, F 3 0 1 2

Memoria virtual Algoritmo de páginas del reloj -Las páginas se mantienen en una cola

Memoria virtual Algoritmo de páginas del reloj -Las páginas se mantienen en una cola circular, con un apuntador a la páginas más antigua. -Si hay un fallo y R=0, la página se retira y se avanza el apuntador. Si R=1 se limpia R se avanza hasta encontrar una página con R=0. -Son los punteros los que se desplazan, no las entradas de la tabla. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Primer marco en el buffer circular de marcos que son candidatos para

Memoria virtual Primer marco en el buffer circular de marcos que son candidatos para el reemplazo Página 9 uso = 1 Página 1 uso = 1 Puntero al siguiente marco Página 222 uso = 0 Página 33 uso = 1 Página 45 uso = 1 Página 191 uso = 1 Página 556 uso = 0 Página 67 Página 13 uso = 1 uso = 0 (a) Estado del buffer justo antes del reemplazo de página Estructura y Tecnología de Ordenadores Figura 8. 16. Ejemplo de funcionamiento de la política del reloj. ETSII – ULL- 2004

Memoria virtual Algoritmo NRU (de uso no reciente) - Utiliza los bits de Referencia

Memoria virtual Algoritmo NRU (de uso no reciente) - Utiliza los bits de Referencia (R) y Modificado (M) de las entradas de la tabla de páginas. Se definen cuatro clases de páginas. Clase 0: Páginas no referenciadas ni modificadas (R=0, M=0) ● Clase 1: Páginas no referenciadas, modificadas (R=0, M=1) ● Clase 2: Páginas referenciadas no modificadas (R=1, M=0) ● Clase 3: Páginas referenciadas, modificadas (R=1, M=1) ● La asignación de página a desalojar se realiza aleatoriamente entre las páginas de menor clase de la tabla. Bit de Referencia Nº de página Estructura y Tecnología de Ordenadores ETSII – ULL- 2004 7, x, y Bit Modificado

Memoria virtual Algoritmo NRU (de uso no reciente), ejemplo Modif. (M)= Reset R= T=

Memoria virtual Algoritmo NRU (de uso no reciente), ejemplo Modif. (M)= Reset R= T= 0 Página=7 1 0 2 1 3 2 4 0 5 3 6 0 7 4 8 2 9 3 A 0 B 3 C 2 D 1 E 2 7, 1, 0 2, 1, 1 2, 0, 1 3, 1, 1 3, 1, 1 3, 0, 1, 0 0, 1, 0 0, 1, 0 2, 1, 1 2, 1, 1 1, 1, 1 1, 0, 1 4, 1, 1 4, 0, 1, 0 0, 0, 0 1, 1, 0 2, 0, 1 0, 0, 0 1, 0, 1 Estructura y Tecnología de Ordenadores ETSII – ULL- 2004 3, 0, 1 0, 0, 0 4, 0, 1 3, 0, 1 2, 0, 1 0, 0, 0

Memoria virtual Algoritmo LRU (página usada hace más tiempo) - Implementa un algoritmo basado

Memoria virtual Algoritmo LRU (página usada hace más tiempo) - Implementa un algoritmo basado en mirar al pasado y a partir de él estimar cuál podría ser el uso de la página. - Cuando sea necesario, el planificador saca de la tabla que lleva más tiempo sin acceso, de entre las entradas de la tabla. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Algoritmo LRU (página usada hace más tiempo), implementaciones A) La tabla se

Memoria virtual Algoritmo LRU (página usada hace más tiempo), implementaciones A) La tabla se implementa como Pila de números de página que conserva en la salida la página más recientemente usada y en la base la menos recientemente usada. La actualización de la tabla es muy lenta, aún usando HW especial 7 0 1 LRU 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 0 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 7 7 7 0 1 2 2 3 0 4 2 2 0 3 3 1 2 0 1 7 Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Algoritmo LRU (página usada hace más tiempo), implementaciones B) Uso de contadores.

Memoria virtual Algoritmo LRU (página usada hace más tiempo), implementaciones B) Uso de contadores. Las entradas de la tabla de páginas tienen un campo de ‘tiempo de uso’ en el que el Manejador de Memoria escribe el tiempo de cada referencia. Cada acceso a memoria requiere una búsqueda en la Tabla de Páginas y una escritura en memoria por cada acceso a memoria. Requiere HW especial. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Algoritmo NFU (página no frecuentemente usada) - Implementa una aproximación del algoritmo

Memoria virtual Algoritmo NFU (página no frecuentemente usada) - Implementa una aproximación del algoritmo LRU, utilizando exclusivamente Software: Se activa un contador software por cada página ● En cada interrupción de reloj, el SO suma el bit R (0 ó 1) al contador ●Cuándo existe un fallo de página se selecciona la página con el contador más bajo y se envía a disco ● Problema: Tiene memoria Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Algoritmo NFU (página no frecuentemente usada), ejemplo simple 1 0 1 1

Memoria virtual Algoritmo NFU (página no frecuentemente usada), ejemplo simple 1 0 1 1 Bits R de las páginas 1 -6 en t=1, 2, 3 y 4 1 1 0 0 1 0 1 1 0 0 0 1 0 Contadores de las páginas 1 -6 en t=1, 2, 3 y 4 000000010 00000011 00000100 000000010 00000001 000000001 000000010 00000011 000000010 Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Algoritmo NFU (página no frecuentemente usada) -Solución al problema de memoria: -Maduración:

Memoria virtual Algoritmo NFU (página no frecuentemente usada) -Solución al problema de memoria: -Maduración: Se activa un contador software por cada página ●En cada interrupción de reloj se desplaza el contador un bit a la derecha y luego se suma el bit R al bit más significativo del contador. ● Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual Algoritmo NFU con maduración (página no frecuentemente usada) Bits R de las

Memoria virtual Algoritmo NFU con maduración (página no frecuentemente usada) Bits R de las páginas 1 -6 en t=1, 2, 3 y 4 1 0 1 1 0 0 0 1 0 Contadores de las páginas 1 -6 en t=1, 2, 3 y 4 10000000 11100000 11110000 10000000 11000000 0110000000 01000000 00100000 000100000000 10000000 010000000 11000000 01100000 10110000000 01000000 10100000 01010000 Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 3. Segmentación • Segmentación: es un esquema HW que intenta dar soporte

Memoria virtual 3. Segmentación • Segmentación: es un esquema HW que intenta dar soporte directo a las regiones. • En él se considera el mapa de memoria como compuesto por varios segmentos. • Se puede considerar que consisten en una generalización de los registros valla base y límite, pero usando un par de registros por cada segmento Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 3. Segmentación • Dirección: Una dirección lógica estará compuesta por un número

Memoria virtual 3. Segmentación • Dirección: Una dirección lógica estará compuesta por un número de segmento y un desplazamiento en el mismo. • Traducción: La forma de realizar la traducción puede apreciarse en la imagen siguiente: Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Tabla de segmentos: En este caso, la MMU usa una tabla

Memoria virtual • Tabla de segmentos: En este caso, la MMU usa una tabla de segmentos (TS). • Organización: – El SO mantiene una TS por proceso, de forma que en cada cambio de contexto se notifica a MMU cuál debe usar – Cada entrada de TS contiene (entre otros): • Registro base y límite del segmento • protección: RWX • Problema: Fragmentación Externa – En este esquema se produce fragmentación externa, ya que el almacenamiento de los segmentos se realiza de forma contigua. – El SO debe mantener una lista que le permita conocer qué zonas de memoria están libres y cuáles ocupadas: es decir, estructuras de datos que identifiquen huecos y zonas asignadas Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Valoración: – Espacios independientes para procesos: mediante su propia TS, que

Memoria virtual • Valoración: – Espacios independientes para procesos: mediante su propia TS, que crea un espacio lógico independiente – Protección: mediante TS, ofreciendo espacios disjuntos de memoria – Compartir memoria: bajo control del SO es posible que dos o más procesos tengan un segmento asociado a la misma zona de memoria – Soporte de regiones: bits de protección – Maximizar rendimiento : No lo maximiza, por la fragmentación externa – Mapas de tamaño adecuado: No cumple este objetivo porque no permite implementar eficientemente un sistema de memoria virtual Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 4. Segmentación paginada Se intenta aunar las ventajas de ambos esquemas: segmentación

Memoria virtual 4. Segmentación paginada Se intenta aunar las ventajas de ambos esquemas: segmentación y paginación: – Segmentación: soporte para regiones. – Paginación: mejor uso del espacio de memoria. • Organización: – Entrada en TS apunta a una TP para el segmento. – El espacio del segmento está compuesto de varias páginas, de forma que su espacio no tiene que ser contiguo. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Traducción: La traducción se lleva a cabo según se indica. Estructura

Memoria virtual • Traducción: La traducción se lleva a cabo según se indica. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • Valoración: – Espacios independientes para procesos: mediante TS – Protección: mediante

Memoria virtual • Valoración: – Espacios independientes para procesos: mediante TS – Protección: mediante TS – Compartir memoria: bajo control del SO, podemos hacer que una misma entrada aparezca en diferentes TS (es decir, pueda ser usado por varios procesos) – Soporte de regiones: bits de protección – Maximizar rendimiento: la paginación aprovecha eficientemente el espacio de memoria. – Mapas de tamaño adecuado: permite esquemas de memoria virtual • Ventajas: Frente a paginación sin segmentos facilita al SO la gestión de las regiones, pero requiere HW más complejo Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 5. Paginación por demanda Una vez analizados los diferentes esquemas hardware vamos

Memoria virtual 5. Paginación por demanda Una vez analizados los diferentes esquemas hardware vamos a ver cómo se articulan para construir un esquema de memoria virtual (estos esquemas también pueden usarse sin memoria virtual, pero en la actualidad su uso está siempre vinculado a la memoria virtual) • Normalmente la memoria virtual se construye sobre esquemas de paginación pura o segmentada. De esta forma, la unidad de información intercambiada entre memoria principal y secundaria es la página. • Normalmente la transferencia de información se lleva a cabo bajo demanda (paginación por demanda). De esta forma, cuando un proceso necesita acceder a una página que no está en memoria principal, se genera un fallo de página y el SO se encarga de transferirla desde la memoria secundaria. Si al traerla no hay espacio suficiente en MP, será necesario desalojar alguna de las páginas actuales (ello se hace mediante un algoritmo de reemplazo) Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual • La construcción de un sistema de memoria virtual sobre un procesador

Memoria virtual • La construcción de un sistema de memoria virtual sobre un procesador con paginación implica usar un bit de validez en las entradas de la tabla de páginas, que indica si la página es válida. Estarán marcadas como inválidas todas las páginas que no residen en MP, así como las que constituyen huecos en el mapa de memoria. • Para las entradas correspondientes a páginas no residentes en MP, la entrada principal, en lugar de almacenar el marco donde reside contendrá la dirección del dispositivo de memoria en que se encuentra almacenada. De forma que cuando se produce un acceso a una de estas páginas, se produce una excepción y se activa el SO, responsable de hacer la transferencia desde memoria secundaria. • Algunos sistemas también usan la técnica de prepaginación. Al ocurrir un fallo de página no sólo traen la página en cuestión, sino también las cercanas, al suponerse que se usarán en un corto plazo de tiempo. La efectividad de esta técnica dependerá del acierto de la predicción. Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual 7. Política de asignación de marcos de página El SO deberá decidir

Memoria virtual 7. Política de asignación de marcos de página El SO deberá decidir cuántos marcos de página asigna a cada proceso: a) Asignación Fija b) Asignación Dinámica A) Asignación fija • Número constante de marcos asignados al proceso. Puede depender de las características del proceso: tamaño, prioridad, . . . • No se adapta a las distintas fases de ejecución. Como positivo, el comportamiento del proceso es relativamente predecible • Sólo tiene sentido usar estrategia de reemplazo local • La arquitectura impone el Nº mínimo de marcos de página: mínimo número de marcos a asignar igual al número de referencias que aparezca en la instrucción que más fallos de página pueda generar Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

Memoria virtual B) Asignación dinámica • El número de marcos asignados a un proceso

Memoria virtual B) Asignación dinámica • El número de marcos asignados a un proceso es variable dependiendo del comportamiento del proceso (y posiblemente de los demás procesos). • Se adapta a las diferentes fases por las que puede pasar un proceso • Se pueden usar tanto estrategias de reemplazo global como local. – Asignación dinámica + reemplazo local: el proceso va aumentando o disminuyendo su conjunto residente dependiendo de su comportamiento (comportamiento relativamente predecible) – Asignación dinámica + reemplazo global: los procesos compiten por el uso de las páginas entre ellos (comportamiento difícilmente predecible) Estructura y Tecnología de Ordenadores ETSII – ULL- 2004

8. Similitud entre las distintas Jerarquías n Un marco común para las jerarquías de

8. Similitud entre las distintas Jerarquías n Un marco común para las jerarquías de memoria Estructura y Tecnología de Ordenadores ETSII- ULL 2004

Similitud entre las distintas Jerarquías ¿Dónde ubicar un bloque? n Para la Cache ¨

Similitud entre las distintas Jerarquías ¿Dónde ubicar un bloque? n Para la Cache ¨ Exactamente en una posición (Correspondencia Directa) n ¨ Posición del bloque = Nº de Bloque mod bloques de la Caché Un número fijo de posiciones (>= 2) donde colocar un bloque (Asociativa por Conjunto) n Conjunto que contiene un bloque = Nº bloque mod número de conj. de la Caché En cualquier Posición (Totalmente Asociativo) ¨ Corresp. Directa y Totalmente Asocit. , casos particulares ¨ Estructura y Tecnología de Ordenadores ETSII- ULL 2004

Similitud entre las distintas Jerarquías ¿Cómo se encuentra un bloque? ¨ ¨ n Sistema

Similitud entre las distintas Jerarquías ¿Cómo se encuentra un bloque? ¨ ¨ n Sistema M. Virtual Indexación de páginas Caché Asociativa por Conjuntos Descomposición de la dirección virtual Etiqueta | Índice | Desplazamiento en el bloque ¨ ¨ Índice: selecciona el conjunto Etiqueta: compara todas para ver si está Estructura y Tecnología de Ordenadores ETSII- ULL 2004

Estructura y Tecnología de Ordenadores ETSII- ULL 2004

Estructura y Tecnología de Ordenadores ETSII- ULL 2004

Similitud entre las distintas Jerarquías Elección del tipo de Organización M. Virtual: Totalmente Asociativa

Similitud entre las distintas Jerarquías Elección del tipo de Organización M. Virtual: Totalmente Asociativa n M. Caché y TLB: Asociativa por conjuntos n Política de escritura: Ventaja en tiempo de la directa n Estructura y Tecnología de Ordenadores ETSII- ULL 2004

Similitud entre las distintas Jerarquías ¿Que bloques se deben de reemplazar en un fallo

Similitud entre las distintas Jerarquías ¿Que bloques se deben de reemplazar en un fallo de Caché? ¨ Para Correspondencia n Un solo candidato directa: ¨ Para Totalmente Asociativa: n Aleatoria (facilidad Hardware) n LRU (costosa) n Aproximación LRU Estructura y Tecnología de Ordenadores ETSII- ULL 2004 Todos son candidatos

Similitud entre las distintas Jerarquías ¿Qué ocurre en la escritura? n Escritura Directa (Write

Similitud entre las distintas Jerarquías ¿Qué ocurre en la escritura? n Escritura Directa (Write Trhough) ¨ ¨ n Post-escritura (Write Back) ¨ ¨ ¨ n Escritura a velocidad de la Caché Múltiples escritura se reduce a una Uso del ancho de band del nivel mas bajo Para Memoria Virtual ¨ n Fallos de lectura baratos Implementación facil (buffer de escritura) Política de Post-escritura (gran latencia) Tendencias de Caches a Post-escritura ¨ Aumento del gap CPU-Memoria Estructura y Tecnología de Ordenadores ETSII- ULL 2004