Departamento de Ingeniería de Sistemas Universidad de Antioquia

Slides:



Advertisements
Presentaciones similares
GESTION DE MEMORIA.
Advertisements

III - Gestión de memoria
Administración de memoria
Administración de Memoria Virtual
Capítulo 8 Memoria virtual.
Teoría de Sistemas Operativos Memoria
IBD Clase 7.
III - Gestión de memoria
Arquitectura de Computadores I
3.4.- Administración de Memoria Virtual.
Ana Lucia Farfan Estrada. Angela Aybar Rengifo.
Introducción a los Sistemas Operativos Memoria Virtual
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
SISTEMAS DE MEMORIA DEL COMPUTADOR
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Algorítmo de Mapeo Directo
Memoria cache.
Memoria Virtual Fallos de Página Algoritmos de Reemplazamiento
Paginación y Segmentación Giselle M. Agosto Carlos R. Pérez
Teoría de Sistemas Operativos
Direcciones físicas y direcciones virtuales (lógicas)
Paginación-Segmentación Fundamentos Translación de Direcciones Tabla de páginas Segmentación Emely Arráiz Ene-Mar 08.
Tema 10: Gestión de Memoria
Administración de memoria
Memoria Otros temas sobre cachés. Universidad de SonoraArquitectura de Computadoras2 Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias.
Simulador didáctico de jerarquías de memoria
PAGINACIÓN Y SEGMENTACIÓN
Estructura y Tecnolología de Ordenadores
Administración de Memoria Memoria Virtual
1 Memoria Virtual Capítulo 8. 2 Estructuras de Hardware y Control Todas las referencias a memoria son direcciones lógicas y son mapeadas a direcciones.
Administración de la memoria
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Contenido Estructura del computador Ejecución de instrucciones
Capítulo 7 Gestión de memoria.
Administración de Memoria no contigua
Tema VII Memoria Virtual.
ISI374 – Arquitectura de Computadores Clase 18: Jerarquía de memoria Pt.1 Departamento de Ingeniería de Sistemas Universidad de Antioquia
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Organización del Computador
Memoria virtual. Introducción Muchos procesos, una memoria Programas demasiado grandes para caber en memoria principal Espacio de direccionamiento mucho.
Memoria virtual.
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
Gestión de Memoria.
Organización del Computador I Verano Memoria Virtual Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
Gestión de Memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
MIA - Grupo 5 Unidad 2.
Arquitectura de Computadores I
Memoria Virtual Msc. Rina Arauz.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos
Gestión de Memoria – Parte 2
Arquitectura de Computadores Clase 21 Memoria Virtual IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería.
Arquitectura de Computadores Clase 18 Memoria Caché: Fundamentos IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Memoria virtual. Universidad de SonoraArquitectura de Computadoras2 Introducción Memoria virtual es un mecanismo que permite que la memoria principal.
Arquitectura de Computadores
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Memoria virtual.
Transcripción de la presentación:

Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1 ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1

Resumen Memoria virtual

Memoria virtual Contextualización La memoria cache proporciona un acceso rápido a porciones de código y datos de un programa usados recientemente De la misma manera, la memoria principal puede actuar como una “cache” para el almacenamiento secundario (normalmente implementado con discos magnéticos)  Memoria virtual El principio de localidad se aplica tanto a la memoria virtual como la memoria cache Los programas comparten la memoria principal Cada programa posee su propio espacio de direcciones (espacio virtual) Mecanismo de protección Durante la ejecución, cada dirección virtual se traduce en una dirección física (una dirección en memoria principal) La memoria virtual (hardware de CPU y SO) realiza la traducción del espacio virtual de direcciones de un programa al espacio de direcciones físicas

Memoria virtual Definiciones Virtual address Physical address Dirección que corresponde a una posición en el espacio virtual de direcciones usado por un programa El procesador genera direcciones virtuales Physical address Dirección para acceder a memoria principal Address translation (Address mapping) Proceso mediante el cual una dirección virtual se traduce en una dirección física para acceder a la memoria principal Page Bloque de memoria virtual Page fault Fallo de memoria virtual: la página accedida no está en memoria principal

Modelo de memoria virtual Páginas de memoria se mapean de un espacio de direcciones virtual a un espacio de direcciones físico El procesador genera direcciones virtuales La memoria principal se accede usando direcciones físicas Una página virtual se mapea en una página física Una página virtual puede no estar presente en memoria principal (no estar mapeada a una dirección física) y residir en disco Las páginas físicas pueden compartirse haciendo que sus direcciones virtuales apunten a la misma dirección física

Modelo de memoria virtual Memory Management Unit (MMU) Virtual page Physical page (Page frame)

Traducción de dirección virtual a dirección física En memoria virtual, la dirección se divide en dos campos: Virtual page number: fragmento de la dirección virtual que se traduce en dirección física Page offset: campo que no se modifica en el espacio de direcciones físicas y que determina el tamaño de la página El número de páginas direccionables usando la dirección virtual no tiene porqué ser igual que el número de páginas direccionables usando la dirección física Tener un número de páginas virtuales mayor que el de páginas físicas produce la ilusión de una cantidad de memoria virtual enorme

Fallo de página (Page fault) Cada solicitud de acceso a memoria por parte del procesador requiere primero de una traducción de dirección virtual a dirección física Cuando la página que contiene la palabra solicitada por el procesador no está en la memoria principal y tiene que ser traída desde el disco se dice que hay un fallo de página Puede tomar millones de ciclos de reloj en procesarse (recordar que la memoria es casi 100 mil veces más veloz que el disco!!!) El tratamiento del fallo lo hace el SO Aspectos a tener en cuenta en el diseño del sistema de memoria virtual: La página debe ser suficientemente grande para amortizar el elevado tiempo de acceso (tamaño típicos de 4 KB a 16 KB) Emplear organizaciones que reduzcan la tasa de fallos de página Emplazamiento completamente asociativo El tratamiento de los fallos de página se puede hacer mediante software (el costo es muy pequeño comparado con el tiempo de acceso al disco) Algoritmos de emplazamiento ingeniosos La política de escritura write-through no funciona en memoria virtual Se emplea write-back

Tabla de página Debido a la alta penalización de un fallo de página, es importante reducir la tasa de fallos de página Optimización del emplazamiento de páginas El mapeo completamente asociativo le permite al SO reemplazar cualquier página que él quiera cuando ocurre un fallo Se emplean algoritmos sofisticados y estructuras de datos complejas para mantener un registro del uso de las páginas Una dificultad del emplazamiento completamente asociativo es localizar una entrada en memoria (una búsqueda completa no es práctica) Es posible localizar una página usando una tabla que indexe la memoria Esta estructura se llama tabla de página y reside en memoria La tabla de página se direcciona usando el número de página virtual para conocer el número de página física correspondiente

Tabla de página Cada programa posee su propia tabla de página, que mapea el espacio de direcciones virtual de ese programa a memoria principal Para indicar la ubicación de la tabla de página en memoria se emplea un registro que apunta al comienzo de la tabla Page table register Estado de un programa (Proceso) Tabla de página, contador de programa y registros Un proceso se considera activo cuando está en posesión del procesador Es el SO quien se encarga de hacer activo o inactivo a un proceso El espacio de direcciones del proceso (todos los datos que puede acceder en memoria) está definido por su tabla de página En lugar de cargar toda la tabla de página, el SO carga el registro de tabla de página del proceso que quiere hacer activo (además del banco de registros y el contador de programa)

Traducción empleando la tabla de página

Mapeo de páginas a disco La dirección virtual no dice exactamente dónde está la página en el disco Por lo tanto, es necesario mantener un registro que permita conocer la ubicación en disco de cada página en el espacio virtual de direcciones Swap space: espacio en el disco reservado por el SO para todo el espacio de memoria virtual de un proceso El SO también crea una estructura de datos para saber en qué parte del disco está almacenada cada página virtual

Esquema de reemplazo El SO crea una estructura de datos para saber cuáles procesos y cuáles direcciones virtuales usan cada página física Cuando ocurre un fallo de página, si todas las páginas en memoria están en uso, el SO debe elegir una página a reemplazar Para reducir la tasa de fallos de página, el SO intenta elegir una página a reemplazar asumiendo que no será requerida en un futuro cercano  Esquema Least-recently used (LRU) La página reemplazada se escribe en el espacio swap en disco Implementar un esquema LRU completamente preciso es muy costoso Sería necesario actualizar una estructura de datos en cada referencia a memoria Para estimar las páginas LRU, el SO se vale de un bit de uso o referencia que se activa cuando se accede a la página El SO limpia (pone en cero) periódicamente los bits de referencia y luego los lee para determinar cuáles páginas han sido accedidas La página que conserve el bit de uso en cero no ha sido accedida recientemente

Tratamiento de las escrituras La escritura en el disco puede tomar millones de ciclos de reloj Un buffer de escritura, como en el caso de la cache, no sería práctico En memoria virtual se implementa el esquema de escritura write-back (copy-back) Copia la página completa en el disco cuando es reemplazada en memoria La operación write-back, siendo más eficiente que escribir palabras individuales en el disco, aún es costosa ¿Cómo sabemos si una página en memoria debe ser escrita en disco cuando decidimos reemplazarla? Se agrega un bit dirty en cada entrada de la tabla de página Este bit se activa cuando se escribe cualquier palabra en la página Si el SO decide reemplazar una página, el bit dirty indica si la página debe escribirse en disco antes de que su ubicación en memoria sea cedida a otra página

Traducción rápida empleando TLB Cada acceso a memoria por parte de un programa consta de: Un acceso a memoria para obtener la dirección física Recordar que la tabla de página reside en memoria Un segundo acceso a memoria para obtener el dato Pero los accesos a la tabla de página tienen buena localidad Cuando se realiza una traducción de un número de página virtual, probablemente ésta sea requerida otra vez en un futuro cercano Los procesadores modernos emplean una cache para almacenar las traducciones hechas recientemente y evitar el acceso a la tabla de página Esta cache de traducción se llama Translation-lookaside buffer (TLB) Valores típicos para un TLB: Tamaño: 16 – 512 entradas Tamaño de bloque: 1 – 2 entradas de la tabla de página Tiempo de acierto: 0.5 – 1 ciclo de reloj Penalización de fallo: 10 – 100 ciclos de reloj Tasa de fallos: 0.01% – 1%

Traducción rápida empleando TLB

Fallos en TLB Cuando ocurre un fallo en TLB es necesario determinar si es un fallo de página o un simple fallo en TLB Si la página está en memoria: El procesador carga la traducción desde la tabla de página en TLB y repite la referencia Si la página no está en memoria: El fallo en TLB implica un fallo de página El procesador invoca el SO mediante una excepción para que éste traiga la página a memoria y actualice la tabla de página y TLB Luego, repite la referencia

Interacción cache/TLB Intrinsity FastMATH Cache direccionada físicamente: Índice y etiquetas tomados de la dirección física

Interacción cache/TLB Diagrama de flujo del proceso de paginación virtual

Protección de memoria Una de las funciones más importantes de la memoria virtual es permitir que muchos procesos compartan la memoria, ofreciendo mecanismos de protección entre los procesos y el SO Diferentes procesos pueden compartir partes de sus espacios de direcciones virtuales Pero es necesario protegerlos ante accesos erráticos Los mecanismos de protección deben asegurar que aunque varios procesos compartan la misma memoria, ninguno de ellos pueda escribir en el espacio de otro, con o sin intención Requiere asistencia del SO Soporte hardware para que el SO implemente protección Por lo menos dos modos de operación: modo usuario y modo supervisor privilegiado (kernel mode) Instrucciones especiales para modificar el estado de un proceso (sólo en modo supervisor) Mecanismos para el paso de modo usuario a supervisor y viceversa (Ej: instrucción syscall en MIPS)

Lecturas recomendadas Computer organization and architecture. Designing for performance, 6th ed., Chapter 4. W. Stallings. Pearson Education Computer organization and design. The hardware/software interface, 3rd ed., Chapter 7. D. Patterson and J. Hennessy. Morgan Kaufmann Publishers The essentials of computer organization and architecture, Chapter 6. L. Null and J. Lobur. Jones and Batlett Publishers Hardware and computer organization. The software perspective, Chapter 14. A. Berger. Elsevier Virtual memory simulator. I. Koren. Dept. of ECS. University of Massachusetts (Armherst) http://www.ecs.umass.edu/ece/koren/architecture/Vmemory/try.html