Memoria virtual.

Slides:



Advertisements
Presentaciones similares
Introducción a los Sistemas Operativos Memoria Virtual
Advertisements

Departamento de Ingeniería de Sistemas Universidad de Antioquia
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Memoria cache.
Memoria Virtual Fallos de Página Algoritmos de Reemplazamiento
Direcciones físicas y direcciones virtuales (lógicas)
Memoria Organización del caché. Universidad de SonoraArquitectura de Computadoras2 Organización del caché Hasta ahora solo se ha visto la estrategia de.
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.
PAGINACIÓN Y SEGMENTACIÓN
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.
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.),
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
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.
Memoria virtual. Introducción Muchos procesos, una memoria Programas demasiado grandes para caber en memoria principal Espacio de direccionamiento mucho.
Memoria virtual.
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.
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.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Arquitectura de Computadores I
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
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 19 Memoria Caché: Funciones de Correspondencia IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos Remplazo de Página Asignación de Marcos Hiperpaginación Ejemplos.
Memoria virtual. Universidad de SonoraArquitectura de Computadoras2 Introducción Memoria virtual es un mecanismo que permite que la memoria principal.
Vinculación de Instrucciones y Datos a Memoria Tiempo de compilación: si la dirección de memoria se conoce a priori, se puede generar código absoluto;
Tema II Unidad de memoria. 2.1 Definiciones y conceptos básicos. 2.2 Jerarquía de memorias. 2.3 Memorias de semiconductor. 2.4 Memorias asociativas. 2.5.
ALGORITMOS DE SUSTITUCIÓN DE PÁGINAS. Idea Cuando ocurre una falla de página, el sistema operativo tiene que escoger la página que sacará de la memoria.
Paginamiento / Paging Sistemas Operativos 16 de Septiembre de 2011.
Memoria Cachés.
Organización de computadoras
Hardware de Computador
Procesadores superescalares
Pipelining Peligros de control.
Memoria Rendimiento del caché.
Datapath para las instrucciones de brinco
ADMINISTRACíON DE LA MEMORIA EN SISTEMAS RECIENTES
Memoria Introducción.
Excepciones e interrupciones
Datapath para las instrucciones de carga y almacenamiento (load/store)
Otros temas sobre cachés
Unidad 7: Nivel Interno Algunos Conceptos Importantes
Organización del caché
Memoria virtual.
JENNY MONTES. COD: DANIEL GUAQUETA COD: 37835
ORGANIZACIÓN Y ADMINISTRACIÓN DE LA MEMORIA VIRTUAL
Pipelining Introducción.
Organización del Computador I Verano Memoria Virtual Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
P P AGINACION FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS.
SISTEMAS OPERATIVOS MEMORIA VIRTUAL.
Pipelining Peligros de control.
Estructura de Sistemas Operativos CAMPOS CHACALTANA, ANTHONY.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
Estructura de los Sistemas Operativos Alumna:Arratea Almeyda Aracelli.
El procesador Datapath y control.
Memoria Cachés.
Ejercicio 5.6 sobre cachés
Otros temas sobre cachés
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Organización del caché
Memoria Rendimiento del caché.
Pipelining Peligros de control.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
Transcripción de la presentación:

Memoria virtual

Introducción Memoria virtual es un mecanismo que permite que la memoria principal parezca mas grande que su tamaño físico. Permite ejecutar programas mas grandes que la memoria física disponible. La memoria principal actúa como caché de la memoria secundaria (disco duro). Universidad de Sonora Arquitectura de Computadoras

Definiciones Espacio de direcciones. Rango de localidades de la memoria virtual accesibles por un programa. Dirección virtual. Dirección en el espacio de direcciones del programa. Dirección física. Dirección en la memoria principal. La memoria virtual incluye mecanismos para traducir direcciones virtuales a direcciones físicas. Universidad de Sonora Arquitectura de Computadoras

Definiciones Protección. Mecanismos para asegurar que múltiples procesos que compartan la CPU, memoria o dispositivos de I/O no interfieran uno con otro. La protección también aísla los procesos del usuario de los procesos del sistema operativo. Universidad de Sonora Arquitectura de Computadoras

Memoria y cachés Los conceptos en memoria virtual y cachés son los mismos pero con nombres diferentes. Un bloque en memoria virtual se llama “página”. Una falla en memoria virtual se llama “falta de página”. En memoria virtual la CPU produce una dirección virtual que es traducida por hardware y/o software a una dirección física que se usa para accesar la memoria principal. Universidad de Sonora Arquitectura de Computadoras

Mapeo de direcciones Esta traducción se le llama “mapeo de direcciones” o “traducción de direcciones”. Universidad de Sonora Arquitectura de Computadoras

Páginas La memoria física y la memoria virtual están divididas en páginas de tamaño fijo. Un programa se compone de una o más páginas. El sistema operativo carga en memoria principal un número suficiente de páginas del programa. Universidad de Sonora Arquitectura de Computadoras

Direcciones virtuales y físicas En memoria virtual, una dirección se compone de un número de página virtual y un offset. El número de página virtual se traduce a un número de página física. Universidad de Sonora Arquitectura de Computadoras

Direcciones virtuales y físicas El número de bits del offset determina el tamaño de la página. El número de bits del número de página virtual es mayor o igual al número de bits del número de página física. La idea es que la memoria virtual sea más grande que la memoria física. Universidad de Sonora Arquitectura de Computadoras

Consideraciones de diseño La falta de página es muy costosa. La memoria principal es 100,000 veces más rápida que el disco duro. Fuente: COD 5, p. 454. Universidad de Sonora Arquitectura de Computadoras

Consideraciones de diseño Las páginas deben ser suficientemente grandes para amortizar el costo de acceso (32 – 64KB). Para reducir la tasa de faltas, los bloques pueden ir en cualquier parte de la memoria principal (i.e. la memoria es fully associative). Las faltas de página se manejan por software para permitir algoritmos “inteligentes”. Cualquier reducción en la tasa de faltas vale la pena el esfuerzo de implementación. Universidad de Sonora Arquitectura de Computadoras

Consideraciones de diseño Write-through no funciona para la memoria virtual. Los sistemas de memoria virtual usan write-back. La memoria virtual es fully associative. Universidad de Sonora Arquitectura de Computadoras

Buscando una página Una página puede estar en cualquier lugar de la memoria. Se usa una tabla para accesar la memoria llamada “tabla de páginas”. La tabla de páginas se indexa con el número de página virtual y regresa el número de página física. La CPU incluye un registro para apuntar a la tabla de páginas del programa que está corriendo. Universidad de Sonora Arquitectura de Computadoras

Tabla de páginas Universidad de Sonora Arquitectura de Computadoras

Explicación El registro de tabla de páginas apunta al comienzo de la tabla de páginas. El tamaño de página es 212 = 4 KB. El espacio de direcciones virtuales es 232 = 4 GB. El espacio de direcciones físicas es 230 = 1 GB. El número de entradas en la tabla de páginas es 220 = 1,048,576. Cada entrada tiene un bit válido para indicar si el mapeo es legal. Si el bit es falso, se genera una falta de página. Universidad de Sonora Arquitectura de Computadoras

Tabla de páginas Cada programa tiene su propia tabla de páginas. Varios programas pueden tener el mismo espacio de direcciones virtuales. El sistema operativo se encarga de: Asignar la memoria física. Actualizar las tablas de páginas para que los espacios de direcciones virtuales de los distintos programas no colisionen. Universidad de Sonora Arquitectura de Computadoras

Falta de página Ocurre cuando el bit válido es falso. El sistema operativo: Toma el control. Interrumpe el proceso y guarda su estado. Busca la página en el área de swap del disco duro y la carga en la memoria principal. Si la memoria está llena, se necesita reemplazar una página. Típicamente, la estrategia de reemplazo es LRU (o una aproximación). Universidad de Sonora Arquitectura de Computadoras

Área de swap Área del disco reservada para todo el espacio de memoria virtual de un proceso. Incluye un registro de donde se guarda en disco cada página virtual. Universidad de Sonora Arquitectura de Computadoras

Tamaño de la tabla de páginas Suponer lo siguiente: Direcciones virtuales de 32 bits. Número de página virtual ocupa 20 bits y el offset los otros 12 bits. El número de entradas en la tabla de páginas es 220 = 1,048,576. Si cada entrada ocupa 4 bytes, la tabla ocupa 4 MB. Si hay cientos de procesos, la memoria puede ser insuficiente. Es deseable reducir el tamaño de la tabla. Universidad de Sonora Arquitectura de Computadoras

Tamaño de la tabla de páginas Estrategias: La tabla crece según el proceso consume memoria (tabla dinámica). No es práctico en los esquemas modernos de usar un área dinámica de pila y otra de heap. Usar dos tablas dinámicas, una para la pila y otra para el heap. Las tablas crecen en direcciones opuestas. Usado en varias arquitecturas incluyendo MIPS. Universidad de Sonora Arquitectura de Computadoras

Tamaño de la tabla de páginas Hacer la tabla de páginas virtual. La tabla se página y reside en el espacio de direcciones virtuales. Desventaja: se generan nuevos problemas, como posibles cadenas sin fin de faltas de página. Solución general: Las tablas residen en el espacio de direcciones del sistema operativo. Algunas de las tablas del sistema se colocan en memoria principal y nunca en disco. Universidad de Sonora Arquitectura de Computadoras

TLB Aunque las tablas de páginas residan en memoria principal, cada acceso toma el doble de tiempo: Un acceso para obtener la dirección física. Un segundo acceso para obtener los datos. Para mejorar el rendimiento se aprovecha el concepto de “locality”. Si una traducción de una dirección virtual se acaba de usar, es posible que se vuelva a usar. Se usa un caché especial de traducciones llamado TLB (translation-lookaside buffer). Universidad de Sonora Arquitectura de Computadoras

TLB Universidad de Sonora Arquitectura de Computadoras

Explicación La TLB actúa como caché para las entradas que mapean solo a páginas físicas. La TLB contiene un subconjunto de los mapeos de página virtual a página física que están en la tabla de páginas. Como el TLB es un caché tiene campo de etiqueta. Si la página no está en el TLB se busca en la tabla de páginas. Universidad de Sonora Arquitectura de Computadoras

Explicación Se busca la página virtual en la tabla de páginas y sucede una de dos cosas: Regresa el número de página física de la página (que se usa para construir una entrada en la TLB). Indica que la página reside en disco, en cuyo caso se genera una falta de página. La tabla de páginas no tiene campo de etiqueta porque no es un cache. Universidad de Sonora Arquitectura de Computadoras

Valores típicos de TLB Tamaño: 16 – 512 bloques. Tamaño de bloque: 4 – 32 bytes. Hit time: 0.5 – 1 ciclo de reloj. Castigo por falla: 10 – 1000 ciclos de reloj. Tasa de fallas: 0.01% – 2%. Estrategia de escritura: write-back. Organización típica: fully associative con reemplazo aleatorio de bloques. Universidad de Sonora Arquitectura de Computadoras

Comparación Universidad de Sonora Arquitectura de Computadoras

Jerarquía de memoria La memoria virtual, el TLB y los cachés forman una jerarquía. Un dato no puede estar en el caché sin estar en la memoria principal. El sistema operativo mantiene la jerarquía borrando una página del caché si decide migrar la página de la memoria principal al disco duro. Al mismo tiempo, modifica el TLB y la tabla de página de modo que una referencia a un dato en la página produce una falta de página. Universidad de Sonora Arquitectura de Computadoras

Combinaciones Posibles combinaciones de eventos en el TLB, memoria virtual y caché. Universidad de Sonora Arquitectura de Computadoras

Protección El sistema operativo debe asegurar que un proceso no escriba en el espacio de direcciones de otro proceso. El bit de acceso de escritura en la TLB protege una página de ser escrita. El hardware debe ofrecer al menos tres capacidades: Soportar dos modos para distinguir entre un proceso de usuario (modo usuario) y un proceso del sistema operativo (modo kernel o supervisor). Universidad de Sonora Arquitectura de Computadoras

Protección Proveer una parte del estado del procesador de solo lectura. Esto incluye el bit de modo usuario/supervisor, el apuntador a la tabla de páginas y el TLB. Proveer un mecanismo para que el procesador vaya de modo usuario a modo supervisor y viceversa. Modo usuario  supervisor: excepción de llamada al sistema (system call exception). Modo supervisor  usuario: regreso de excepción. Universidad de Sonora Arquitectura de Computadoras

Protección Un proceso no debe accesar los datos de otro. Un proceso de usuario no puede cambiar su propia tabla de páginas. El sistema operativo es el único que puede hacerlo. Si un proceso P2 desea compartir una página con P1, debe pedirle al sistema operativo que cree una entrada en la tabla de páginas de P1 que apunte a dicha página física de P2. Universidad de Sonora Arquitectura de Computadoras

Protección Cambio de contexto (context switch). Cuando el sistema operativo decide dejar de correr un proceso P1 para correr otro proceso P2. El sistema operativo debe asegurarse que P2 no pueda accesar las páginas de P1. Hay dos opciones: Limpiar el TLB en cada cambio de contexto. Problema: serie de fallas cuando P1 regrese y encuentre el TLB vacío. Universidad de Sonora Arquitectura de Computadoras

Protección Agregar el número de proceso (pid – process id) al TLB. Por ejemplo, se puede usar un campo de 8 bits con el pid. Un éxito en el TLB ocurre solo si el número de página y el pid coinciden. Universidad de Sonora Arquitectura de Computadoras

Conclusión Memoria virtual es el nivel de memoria que actúa como caché entre la memoria principal y el disco. Permite a un programa expander su espacio de direcciones mas allá de los límites de la memoria principal. Permite compartir la memoria principal entre varios procesos activos. Para apoyar la compartición, la memoria virtual debe ofrecer mecanismos para protección de la memoria. Universidad de Sonora Arquitectura de Computadoras

Conclusión El principal problema es el alto costo de las faltas de página. Técnicas para reducir la tasa de faltas: Usar páginas grandes para tomar ventaja del locality espacial. El mapeo entre direcciones virtuales y físicas es fully associative. Una página virtual puede estar donde sea en la memoria principal. El sistema operativo usa técnicas, como LRU (o su aproximación) para escoger la página a reemplazar. Universidad de Sonora Arquitectura de Computadoras

Conclusión Las escrituras son caras. Se usa write-back y un bit sucio para evitar escribir páginas que no cambiaron. Para asegurar que los procesos estén protegidos unos de otros, el sistema operativo es el único que puede alterar las tablas de páginas. La tabla de páginas incluye un bit de acceso de escritura para permitir que otro proceso escriba en alguna página. El TLB actúa como caché de la tabla de páginas. Universidad de Sonora Arquitectura de Computadoras

Conclusión Las 4 preguntas para la memoria virtual: ¿Dónde se puede poner una página? En cualquier parte (fully associative). ¿Cómo se encuentra una página? Buscando con la ayuda del TLB y la tabla de páginas. ¿Qué página se reemplaza en una falla? Típicamente LRU o aleatorio. ¿Qué pasa con las escrituras? Write-back. Universidad de Sonora Arquitectura de Computadoras

Conclusión Universidad de Sonora Arquitectura de Computadoras