1 / 80

Memoria Virtual

Memoria Virtual. Estructura y Tecnolología de Ordenadores. Memoria virtual. 1. Introducción 2. Paginación 3. Segmentación 4. Segmentación paginada 5. Paginación por demanda y anticipada 6. Políticas de reemplazo 7. Política de asignación de marcos de página

Télécharger la présentation

Memoria Virtual

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Memoria Virtual Estructura y Tecnolología de Ordenadores

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

  3. 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

  4. 1. Introducción Ventajas: • Aumento del grado de multiprogramación. Por tanto, aumento en el rendimiento del sistema • 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.

  5. 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)

  6. 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): • TP del usuario: Por ejemplo, direcciones lógicas que empiezan por 0 • TP del sistema: Por ejemplo, direcciones lógicas que empiezan por 1. Estas sólo se podrán usar en modo sistema

  7. CPU Memoria f 2. Paginación Dirección física dirección lógica p d f d p Página (virtual) Página (física) -marco- desplazamiento Tabla de páginas 0

  8. 2. Paginación

  9. 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

  10. 0 2. Paginación Lapáginaestá enmemoriaauxiliar S. O. 3 Programa Memoria secundaria Referencia 2 1 Excepción LOAD M 6 Memoria principal Reiniciar la instr. Tabla de páginas 5 Cargar la página que falla Marco libre 4 Actualizar la tabla de páginas

  11. 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

  12. 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 2K y 16K)

  13. Tamaño de página 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 bit presente/ausente 0 010 1 001 1 1 página virtual 110 2 1 000 3 1 100 4 1 011 Desplazamiento (12 bits) 5 1 000 6 0 000 7 0 000 8 0 página física 101 9 1 000 10 0 111 11 1 000 12 0 000 13 0 000 14 0 000 15 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0

  14. Tasa de fallos de página Tasa de fallos de página (b) Número de marcos de página asignados (a) Tamaño de página 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 • Tamaño de página

  15. 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 UltraSPARC de 8 Kbytes a 4 Mbytes Pentium de 4 Kbytes a 4 Mbytes Power Pc 4 Kbytes • Tamaño de página

  16. 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)

  17. Problema: Fragmentación, la memoria asignada es mayor que la memoria requerida y por lo tanto, se desperdicia cierta cantidad de espacio T. Páginas Proceso 1 Página 0 Marco 2 Memoria Página 1 Marco N Marco 0 Pág. 1 Pr. 2 .............. Pág. P Pr. 2 Marco 1 Página M Marco 3 Marco 2 Pág. 0 Pr. 1 Pág. M Pr. 1 Marco 3 T. Páginas Proceso 2 Marco 4 Pág. 0 Pr. 2 Página 0 Marco 4 ............ Página 1 Marco 0 Marco N Pág. 1 Pr. 1 .............. Página P Marco 1

  18. 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

  19. 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.

  20. 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.

  21. 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

  22. 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

  23. TLB (Translation Look-aside Buffer) Estructura

  24. 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.

  25. 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

  26. TLB (Translation Look-aside Buffer)

  27. 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

  28. 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

  29. Aplicación del TLB en las referencias a memoria • Valores típicos de una TLB

  30. 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

  31. TLB de una DECStation 3100 (procesador R2000) • 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

  32. TLB de una DECStation 3100 (procesador R2000) • Totalmente asociativa • Cada entrada: • Etiqueta 20 bits • Bloque físico 20 bits • Bits de validez, modificación • Otros bits de organización

  33. TLB de una DECStation 3100 (procesador R2000) • 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

  34. TLB y Caché de un R2000

  35. 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.

  36. 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: • Se consulta la tabla de marcos para ver si hay algún hueco libre: • 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 • 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

  37. En el peor de los casos un fallo de página puede suponer dos operaciones de E/S: • Salvaguarda de la página expulsada • 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

  38. Procesamientode fallos

  39. 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

  40. 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

  41. 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

  42. Marcos de página 0 0 1 1 2 2 3 3 n n MP: direcciones físicas Página Dirección lógica 1er nivel 2º nivel Byte Registro base de la TP (RIED) 0 1 2 3 n

  43. Ejemplo: Proceso que usa 12MB superiores y 4MB inferiores • 2 niveles, páginas de 4K, dir. lógica 32 bits (10 bits por nivel) y 4 bytes por entrada • Tamaño: 1 TP N1 + 4 TP N2= 5 * 4KB = 20KB (frente a 4MB) • 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

  44. 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

  45. Dirección lógica pid Página Byte i i Byte pid página Dirección física

  46. 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 • FIFO • Reloj (o segunda oportunidad) • NRU • LRU • NFU

  47. 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: 0 1 2 3 4 5 6 7 8 9 A B C D E F T= Página= 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

More Related