Memoria Virtual. Memoria Virtual

Documentos relacionados
Memoria Virtual. Ing. Jorge Castro-Godínez

Memoria virtual Ubicación de bloque en paginación

Memoria Virtual. Departamento de Arquitectura de Computadores

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

GESTION DE LA MEMORIA

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7

Sistema de memoria. Introducción

Tema 6: Memoria virtual. Óscar David Robles Sánchez Sofía Bayona Beriso David Miraut Andrés Luis Rincón Córcoles

Arquitectura de Computadores II Clase #7

Trabajo Práctico Número 6

Memoria. Organización de memorias estáticas.

Sistemas Operativos. Curso 2016 Administración de memoria II

Administración de Memoria

Concepto de memoria virtual

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

PRINCIPIOS GENERALES DE JERARQUÍA DE MEMORIA

Trabajo Práctico Número 6 Arquitectura de Computadoras

ARQUITECTURA DE SISTEMAS PARALELOS. 3º ITIS. PROBLEMA DE MEMORIA VIRTUAL.

Gestión de la Memoria y Memoria Virtual

Ejercicios sobre gestión de memoria

Organización lógica Identificación de bloque

Fundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones

Arquitectura de Computadoras

Administración de Memoria

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Memoria Virtual. Memoria Virtual

Sistemas Operativos. Curso 2017 Memoria Virtual

FSO - ejercicios de gestión de memoria

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion.

MEMORIA MEMORIA EXTENDIDA

Administración de Memoria.

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Tema 20 Gestión de memoria

Memoria virtual. E. Campo M. Knoblauch Ó. López J. Clemente. Departamento de Automática Universidad de Alcalá

Estructura de Computadores

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

Administración de la memoria

Ejercicios del tema 5. Jerarquía de de Memoria

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Introducción a memorias cache

Diseño de la jerarquía de memoria

Procesos y Memoria. Administración de Memoria 26/10/2010 SISTEMAS OPERATIVOS

Memoria caché básica

Organización del Computador I Verano. Memoria Virtual Basado en el capítulo 5 del libro de Patterson y Hennessy

Tema 4. Organización y Gestión de Memoria

16bits: Tamaño total: 2 16 Tamaño página: 2 13 nº de páginas: 2 16 / 2 13 = 2 3 = 8 páginas Tamaño de tabla: 2 3 *2B = 16B por tabla

4. Cuánta memoria puede direccionar con registros de 16 bits si la palabra es de 20 bits? Respuesta: Se puede direccionar 2 20 = 1Mb.

Paginación. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Miss rate vs. Tamaño de bloque En general el MR baja cuando se aumenta el tamaño del bloque.

Sistemas Operativos Administración de la Memoria

Administración de memoria

Memoria Cache. Departamento de Arquitectura de Computadores

Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

La gestión de memoria es automática y la realiza el sistema operativo con ayuda del hardware de la maquina.

EJERCICIOS DE MEMORIA:

MEMORIA CACHÉ PRINCIPIOS BASICOS

Capítulo 2 Organización y estructura de la memoria cache Ampliación: Políticas de ubicación en caches

Sistemas operativos. Tema 8: Memoria virtual

Tema 13. Memoria cache

Ejercicios de Arquitectura de Computadoras

Sistemas Operativos Gestión de memoria

QUÉ ES LA MEMORIA CACHÉ?

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Arquitectura de Computadores. Tema 13 Memoria Virtual. Eduardo Daniel Cohen

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Arquitectura de Computadoras para Ingeniería

Capítulo 3 Gestión de Memoria

4.3 Memoria virtual. move r1, [1000] Paginación

Administración de memoria

Tema 7. Memoria virtual

Gestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria

Espacio de direcciones de un proceso

Resumen de sistemas operativos. Segundo Corte. Secciones 703M- 704M y 705M Segunda Parte. Gestión de memoria.

Mapa de memoria. memoria CACHÉ

Sistemas de memoria. Conceptos básicos. Memoria caché. Memoria principal. Memoria virtual. Jerarquía de memoria. Estructura de computadores 2

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1

SISTEMAS OPERATIVOS Arquitectura de computadores

Arquitectura de Computadores Problemas (hoja 4). Curso

Transcripción:

Memoria Virtual DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008 Memoria Virtual Define la relación entre memoria principal y memoria secundaria Permite crear la ilusión de una memoria principal de gran tamaño Permite que programas compartan memoria principal de manera segura L0 4-8 bytes (palabra) L1 8-32 bytes (bloque) Memoria virtual Memoria principal 1-4 bloques Memoria secundaria 1,024 bytes (sector de disco = página)

Memoria Virtual Memoria principal actúa como cache del disco duro transparente al programador memoria principal se reparte entre los procesos en ejecución Memoria Principal Memoria virtual permite: Que varios programas compartan la memoria de manera segura y eficiente Correr programas de tamaño mayor que la memoria (principal) Colocar el código en cualquier parte de la memoria principal asignar regiones no contiguas de memoria a un programa Disco Duro Espacio de Direcciones Cada programa se compila en su propio espacio de direcciones espacio virtual de direcciones el programa puede accesar solamente sus propias páginas Espacio de direcciones virtuales dividido en bloques Páginas: tamaño fijo Segmentos: tamaño variable Página/Segmento Página/ Segmento virtual Palabras Procesador Memoria virtual

Diseño o de Memoria Virtual Tamaño de página: apropiado para atenuar pena de fallo Ej: 4kB 16 kb Técnicas de mapeo: debe reducir las faltas de página Ej: mapeo totalmente asociativo Estrategias de escritura: debe reducir la pena de fallo Post-escritura (Write-back, copy-back) En algunas memorias virtuales no se utiliza paginación sino segmentación Número de segmento en registro de segmento se suma al offset de segmento para encontrar la dirección dentro del segmento Tamaño variable requiere revisión de límites de segmento Estrategia de reemplazo: LRU el sistema operativo debe buscar la página en el disco y buscarle una ubicación en memoria principal Direccionamiento Requiere traducción de la dirección virtual a la dirección (dirección de memoria principal) Procesador virtual Memoria Principal Métodos: -Traducción dinámica -Tabla de páginas Disco Duro Memoria virtual

Traducción n de Direcciones Una dirección virtual se traduce (mapea) a una dirección por medio de hardware y software Cada acceso a memoria requiere primero una traducción de direcciones Traducción refuerza la protección del espacio de direcciones de un programa Compartiendo Memoria Principal Localidad inicial de cada página en memoria principal o en la memoria secundaria está contenida en la tabla de páginas del programa Espacio virtual de direcciones del programa 1 Disco duro Memoria principal Espacio virtual de direcciones del programa 2

Direccionamiento por Tabla de Páginas Memoria virtual es totalmente asociativa Búsqueda de página es impráctica Solucionado por uso de tabla de páginas Tabla de páginas Una tabla de páginas por programa Almacenada en memoria principal Indice de tabla = dirección de memoria virtual Direccionamiento de tabla de páginas Registro de tabla se carga para apuntar el inicio de tabla Direccionamiento base + desplazamiento Contenido de tabla de páginas Traducción de la dirección de memoria virtual Bit de validez: indica si la página está cargada en la memoria principal Tabla de PáginasP Apunta al inicio de la tabla de páginas del programa actual (base) + Desplazamiento = Localidad de tabla de páginas que debe leerse

Tabla de PáginasP Contiene la traducción de las direcciones virtuales de las páginas correspondientes a cada programa: localidad inicial de cada página (de memoria principal o de memoria secundaria) Direccionamiento de memoria principal virtual TP1 TP2 TPn P1 P2 Memoria Principal Pn Tabla de PáginasP Direccionamiento de disco duro virtual TP1 TP2 TPn P1 P2 Pn Memoria Principal Disco Duro

de PáginaP Bit de validez # página virtual 1 TP1 TP2 de página TPn P1 P2 Pn Memoria Principal de Página P (falta de página) p Bit de validez # página virtual 0 TP1 TP2 TPn (falta de página) P1 P2 Pn Memoria Principal Disco Duro

Faltas de PáginaP Bit de validez: Uno, la página está almacenada en memoria principal Cero, existe un falta de página Un fallo en la memoria virtual se denomina falta de página (page fault) El espacio de memoria virtual necesario para un proceso se reserva en disco = swap space Reservado por el sistema operativo Se crea una estructura de datos con la ubicación de cada página virtual en el disco Esta estructura puede almacenarse en la tabla de página Páginas reemplazadas se almacenan en el swap space Traducción n Rápida R de Direcciones Puesto que los bloques y las tablas están almacenados en la memoria principal, cada acceso a memoria principal requiere en realidad dos accesos: Uno para accesar la tabla de página Otro para accesar la dirección contenida en la tabla de página Solución: uso de un buffer de traducción (Translation Lookaside Buffer, TLB) una pequeña cache que registra las traducciones recientemente usadas para evitar, en lo posible, el acceso a la tabla de páginas Basado en principio de localidad Si TLB es de mapeo directo o de conjunto asociativo Indice = LSB de dirección virtual Etiqueta = MSB de dirección virtual

Translation Lookaside Buffer Translation lookaside buffer Bit de validez # página de página LSB de dirección virtual Validez 1 TP1 TP2 TPn P1 P2 Etiqueta = MSB de dirección virtual Pn Memoria Principal Translation Lookaside Buffer (TLB) Puede incluir también Bit de referencia: Se activa cuando una página se accesa Permite reemplazo según algoritmo LRU Se borra periódicamente Bit de inconsistencia (dirty bit): cuando hay inconsistencia entre memoria principal y el disco duro Tamaño típico de TLB no mayor que 128 a 256 entradas Tiempo de acceso de TLB menor que el tiempo de acceso a cache Puede utilizarse cualquier tipo de mapeo Reemplazo puede ser aleatorio

TLB TLB en la Jerarquía de Memoria TLB es una caché, puede presentar fallos Causas de fallo: la traducción no está almacenada en TLB (fallo en TLB) falta de página de TLB Página cargada en la memoria principal Cargar información de traducción de la tabla de páginas al TLB = Decenas de ciclos de página Página no está en memoria principal Falla de página real! = Millones de ciclos s de TLB son más frecuentes que fallos de página

Operación n de la Jerarquía a de Memoria Completa Puede basarse en: Direcciones s Indice de cache y etiquetas son partes de direcciones s Requiere traducción de dirección virtual a antes de acceso a cualquier nivel de jerarquía Direcciones virtuales Índice de cache y etiquetas son partes de direcciones virtuales No requiere traducción para accesar cache Ahorra un acceso a TLB NOTA: Los siguientes ejemplos se basan en una TLB totalmente asociativa TLB en Jerarquía a de Memoria

Memoria Virtual y Cache con n FísicaF Solicitud de acceso a MV Consulta TLB Traducción de dirección Bit de validez =0 No encontró etiqueta Consulta a Cache Causa de fallo? Acceso a cache Acceso a MP Transferencia de DD a MP Actualizar tabla de páginas Consultar tabla de páginas Actualizar TLB Memoria Virtual y Cache con n Virtual Solicitud de acceso a MV Consulta a cache Acceso a cache Traducción de dirección Transferencia de MP a cache Bit de validez =0 Consulta a TLB Causa de fallo? No encontró etiqueta Transferencia de DD a MP Consultar tabla de páginas Actualizar tabla de páginas Actualizar TLB

Combinaciones de s y s Esta tabla asume una jerarquía de memoria en la que la cache se accesa con direcciones s TLB Tabla de páginas Cache Cuándo se da Mejor de los casos: datos estaban en cache Pérdida de TLB, después de actualizar TLB datos se encuentran en cache Pérdida de TLB, después de actualizar TLB datos aún no se encuentran en cache de página (page fault) Imposible: no puede haber traducción en TLB si traducción no está en tabla de página Imposible: no puede haber traducción en TLB si traducción no está en tabla de página, dato no puede estar en cache si no está en memoria principal Imposible: dato no puede estar en cache si la página no está en memoria principal Manejo de s de TLB o Faltas de PáginaP Se maneja por medio de excepciones Activación de excepción al final del mismo ciclo de reloj en que se da el acceso a memoria, para evitar Escritura a registros para que los registros no se reescriban con datos equivocados, lo que impediría reiniciar ejecución correctamente Escritura a memoria No escribir a memoria si hay fallo de página En caso de fallo en memoria de datos, la instrucción que causó el fallo debe detenerse hasta que se resuelva el fallo de página

Manejo de Faltas de PáginaP 1. Activar la interrupción de manejo de faltas de página 2. Transferir el control al sistema operativo 3. Guardar el valor actual del PC en el EPC (exception program counter) 4. Almacenar el estado del programa Tabla de páginas, PC y registros 5. Obtener la dirección virtual que causó fallo de página 6. Buscar la entrada de la tabla de página para leer la dirección guardada en la tabla 7. Elegir cuál página se va a reemplazar en la memoria principal Si la página a reemplazar es inconsistente, debe escribirse en el disco antes de reemplazarla 8. Escribir la página referenciada del disco a memoria principal 9. Retorno de interrupción Ejemplo de Parámetros de Diseño de Memoria Virtual Parámetro Tamaño total Tamaño total (kb) Tamaño de bloque (B) Pena de fallo (ciclos de reloj) Tasas de pérdida Memoria virtual paginada 16,000 to 250,000 palabras 250,000 a 1,000,000,000 4000 a 64,000 10,000,000 a 100,000,000 0.00001% a 0.0001% TLBs 16 a 512 entradas 0.25 a 16 4 a 32 10 a 1000 0.01% a 2%