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

Documentos relacionados
UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA.

Organización lógica Identificación de bloque

Memoria caché básica

Memoria Virtual. Ing. Jorge Castro-Godínez

Memoria virtual Ubicación de bloque en paginación

Trabajo Práctico Número 6

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Introducción a memorias cache

Trabajo Práctico Número 6 Arquitectura de Computadoras

Memoria Virtual. Memoria Virtual

GESTION DE LA MEMORIA

Memoria Virtual. Memoria Virtual

Tema 6: Sistema de memoria

Arquitectura de Computadoras

Diseño de la jerarquía de memoria

Sistema de memoria. Introducción

Tema 4: Introducción a la Jerarquía de Memoria

PRINCIPIOS GENERALES DE JERARQUÍA DE MEMORIA

Mapa de memoria. memoria CACHÉ

Memoria. Organización de memorias estáticas.

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7

Memoria Virtual. Departamento de Arquitectura de Computadores

Memoria Cache. Departamento de Arquitectura de Computadores

Arquitectura de Computadores Problemas (hoja 4). Curso

Memoria. Otros temas sobre cachés

Universidad de Los Andes Escuela de Ingeniería de Sistemas Departamento de Computación Arquitectura de Computadores. Clase 24

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

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

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

Tutorías con Grupos Reducidos (TGR) Parte 5: Memoria Virtual

QUÉ ES LA MEMORIA CACHÉ?

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.

Arquitectura de Computadoras para Ingeniería

Aspectos avanzados de arquitectura de computadoras Jerarquía de Memoria II. Facultad de Ingeniería - Universidad de la República Curso 2017

TEMA 11: MEJORA DE LAS PRESTACIONES DE LAS CACHE.

Administración de Memoria

Tema 13. Memoria cache

Práctica 5 - Memoria Cache

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U MEMORIA VIRTUAL

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Arquitectura de Computadoras

Sistemas Operativos. Iván Bernal, Ph.D. 4. Escuela Politécnica Nacional I.

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

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

Memoria Virtual Sistemas Operativos. Lic. Ing. Osvaldo Clúa Lic. Adrián Muccio Facultad de Ingeniería Universidad de Buenos Aires

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico

Arquitectura de Computadores II Clase #7

Resolución de los Ejercicios de la Hoja 4

Ejercicios sobre gestión de memoria

Gestión de la Memoria y Memoria Virtual

TEMA 12: MEJORA DE LAS PRESTACIONES DE LA MEMORIA

Estructura de Computadores

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

Optimizaciones avanzadas de memoria caché

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

Sistemas Operativos. Curso 2016 Administración de memoria II

Ejercicios de jerarquía de memoria

Profesores y Horarios de Tutorías Temas 3 y 4. Daniel Cascado Caballero Lourdes Miró Amarante

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

Jerarquía de memoria y memoria caché Ejercicios resueltos

Jerarquía de memoria - Motivación

MEMORIA CACHÉ PRINCIPIOS BASICOS

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

Memoria. M. en C. Erika Vilches. Parte 3

Sistemas de Computación Memoria. 2º Semestre, 2008 José Miguel Rubio L.

Arquitectura de Computadores

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

Caché. Matías Barbeito Organización del computador 1 2 cuatrimestre 2011

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. 2. Multiprogramación

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Objetivos Generales. Conocimientos Previos Recomendados. CONTENIDOS TEORICOS (Temporización)

Jerarquía de Memoria Memoria Cache

Memoria Virtual. Operating System Concepts 8th Edition

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

Organización de Computadoras

Ejercicios del tema 5. Jerarquía de de Memoria

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

Concepto de memoria virtual

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

Tema 6 (II) Jerarquía de Memoria

Ejercicios de Arquitectura de Computadoras

Sistemas Operativos. ADM. UMC. Ing. Informática FTI - UB MEMORIA VIRTUAL:

Registros. Cache L1. Cache L2. Memoria Principal (RAM) Memoria Secundaria (Disco) Memoria Terciaria (Cinta)

Organización del Computador 1 Memoria Cache

Clase Práctica Memoria Caché

Ejercicios Jerarquía de Memoria

Evaluación de rendimiento

Gestión de memoria Profesores y tutorías

21. Jerarquía de Memoria. Conceptos básicos

Tema 2: Conceptos básicos. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Arquitectura de Computadores. Apellidos, Nombre:

Tarea 4.2 Memoria Virtual

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

Ingeniería de Computadores I Primera Actividad Calificable

Sistemas operativos. Tema 8: Memoria virtual

Arquitectura de Computadores II Clase #6

MEMORIAS. Arquitectura de Computadoras. (Conceptos Introductorios) M. C. Felipe Santiago Espinosa

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Transcripción:

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

Contenidos Introducción. Localización de páginas. Fallos de página. TLB. Gestión de fallos de página y de TLB. Marco común para jerarquías de memorias

Bibliografía D. A. PATTERSON, J. L. HENNESSY. Estructura y Diseño de Computadores. Reverté, 20 (cuarta edición original). D.A. PATTERSON, J.L. HENNESSY. Estructura y Diseño de Computadores. Reverté, 2000. D.A. PATTERSON, J.L. HENNESSY. Computer Organization and Design. Morgan Kauffman, 2005 (tercera edición). DORMIDO, S. CANTO M.A., MIRA J., DELGADO A.E. Estructura y Tecnología de Computadores. 2ª edición. Sanz y Torres, 2000. J.L. HENNESSY, D.A. PATTERSON. Computer Architecture. Morgan Kauffman, 2003. P. DE MIGUEL. Fundamentos de los Computadores. 7ª edición. Paraninfo, 999. W. STALLINGS. Organización y Arquitectura de Computadores. 5ª edición, Prentice Hall, 2000.

MOTIVACIÓN

Convivencia Lo que hemos visto hasta ahora parece que funciona con un solo programa, pero y si tenemos varios ejecutándose simultáneamente? no cabrán en memoria? cómo hacemos para que no se pisen?

Introducción La memoria principal contiene las partes activas de los programas en ejecución. Espacio pequeño y limitado. Expansión utilizando almacenamiento secundario. La memoria principal actúa como una cache para el almacenamiento secundario. Esto es la memoria virtual.

Introducción La memoria virtual permite traducir el espacio de direcciones disponible a direcciones físicas. El proceso de traducción asegura la protección del espacio de direcciones de un programa de los demás programas en ejecución. Los conceptos de cachés y mem. virtual tienen muchos puntos en común, pero la terminología es distinta por razones históricas

Introducción La memoria virtual gestiona automáticamente los dos niveles de la jerarquía de memorias implicados: La memoria principal (también llamada memoria física para distinguirla de la virtual) Almacenamiento masivo. Aunque comparte conceptos con la cache Un bloque en memoria virtual se llama página. Un fallo en memoria principal se llama fallo de página. Con memoria virtual, la CPU produce direcciones virtuales, que se traducen a direcciones físicas.

Introducción V i r t u a l a d d r e s s e s A d d r e s s t r a n s l a t i o n P h y s i c a l a d d r e s s e s D i s k a d d r e s s e s

Introducción La memoria virtual simplifica la carga de problemas al aportar reubicación. Traducción de direcciones virtuales antes de utilizarlas para acceder a memoria. Esto permite cargar un programa en cualquier parte de la memoria principal. En memoria virtual, una dirección se puede dividir en número de página virtual y desplazamiento dentro de la página.

Introducción V i r t u a l a d d r e s s 3 3 0 2 9 2 8 2 7 5 4 3 2 0 9 8 3 2 0 V i r t u a l p a g e n u m b e r P a g e o f f s e t T r a n s l a t i o n 2 9 2 8 2 7 5 4 3 2 0 9 8 3 2 0 P h y s i c a l p a g e n u m b e r P a g e o f f s e t P h y s i c a l a d d r e s s

Introducción El número de página física constituye la parte alta de la dirección física. El desplazamiento dentro de la página es la parte baja. El número de bits de desplazamiento determinan el tamaño de la página.

Introducción El coste de los fallos lo condiciona todo: un fallo de página invertirá millones de ciclos de proceso. El tamaño de las páginas debe ser suficientemente grande para amortizar el tiempo de acceso. Las técnicas que reducen la tasa de fallos interesan mucho. Ejemplo: asociatividad. Los fallos de página se pueden gestionar con software, ya que la sobrecarga es menor en comparación con el tiempo de acceso a disco. La técnica de write-through no interesa porque las escrituras tardarán mucho. Mejor escritura diferida o write-back.

Localización de páginas Deseo: contrarrestar la penalización por fallo de página. Objetivo: reducir el número de fallos de página optimizando la distribución de las páginas. Ideal: asignar una página virtual a cualquier página física. Ante un fallo se podrá reemplazar cualquiera. Problema: los esquemas totalmente asociativos plantean búsquedas impracticables. MMU

Localización de páginas Las páginas se localizan usando una tabla que indexa la memoria: la tabla de páginas. Reside en memoria. Se indexa con el número de página de la dirección virtual y contiene el número de página física que le corresponde. Esta tabla es única por programa. Hay que ubicar la propia tabla de páginas en la memoria: su dirección de comienzo está en el registro de tabla de páginas.

Localización de páginas P a g e t a b l e r e g i s t e r V i r t u a l a d d r e s s 3 30 29 28 27 5 4 3 2 0 9 8 3 2 0 V a l i d V i r t u a l p a g e n u m b e r P a g e o f s e t 20 2 P h y s i c a l p a g e n u m b e r P a g e t a b l e I f 0 t h e n p a g e i s n o t p r e s e n t i n m e m o r y 8 2 9 2 8 2 7 5 4 3 2 0 9 8 3 2 0 P h y s i c a l p a g e n u m b e r P a g e o f f s e t P h y s i c a l a d d r e s s

Localización de páginas Cada entrada de la tabla de páginas tiene un bit de validez, como una cache. Si 0, la página no está presente en memoria principal y se produce un fallo de página. Si, la página es válida y la entrada contiene el número de página física. No se necesitan etiquetas: la tabla contiene una asignación para cada página virtual posible. El índice es toda la dirección de un bloque, que es el número de página virtual.

Localización de páginas Con una dirección virtual de 32 bits, páginas de 4KB y 4 bytes por entrada de la tabla de páginas se puede calcular el tamaño total de la tabla de páginas. 32 2 Número de entradas en la tabla de páginas 2 Tamaño de la tabla de páginas 2 entradas 2 2 bytes entrada 4 MB!!! La mayoría o toda la memoria correspondería a tablas de páginas!! Existen técnicas para controlar ese tamaño. 20 2 2 20 4 MB

Pregunta abierta Qué podemos hacer para controlar el tamaño de la tabla de páginas?

Fallos de página Se tiene que pasar el control al sistema operativo. Se ha de encontrar la página en el siguiente nivel de la jerarquía de memoria. Se debe decidir dónde colocar la página en la memoria principal. El S. O. no sabe cuándo se reemplazará una página de memoria. Crea: Espacio necesario en disco para todas las páginas de un proceso. Una estructura de datos para indicar el lugar donde se guarda en disco cada página virtual.

Fallos de página V i r t u a l p a g e n u m b e r V a l i d P a g e t a b l e P h y s i c a l p a g e o r d i s k a d d r e s s P h y s i c a l m e m o r y 0 0 0 D i s k s t o r a g e

Fallos de página: Política de reemplazamiento Reemplazo de una página en memoria principal: política LRU (Less Recently Used). Si las referencias más recientes a páginas (en orden) fueron 0, 2, 9, 7, 0, 9. Al referenciar la 8 se reemplazaría la 2. Si se genera otro fallo se reemplazaría la 9. Un esquema LRU perfecto es demasiado caro.

Fallos de página: Escrituras En escritura: Write-through impracticable. Se utiliza escritura retardada, que se llama copia retardada o copy back. Se copia la página a disco cuando ésta se reemplaza en memoria. Copiar una página entera es más eficiente que escribir palabras (T. transferencia < T. acceso). La técnica de copy-back es todavía muy costosa. Se añade un bit de suciedad (dirty bit).

Esto es un timo no? Si cada vez que queremos acceder a un dato o instrucción en memoria tenemos que hacer un acceso a memoria extra para leer su posición física en memoria, el rendimiento se queda en la mitad (o menos porque la latencia es grande) no?

TLB La tabla de páginas está en memoria principal: accesos costosos. Incremento del rendimiento: aplicar el principio de localidad en las referencias a la tabla de páginas. Se puede utilizar una cache especial de traducciones. TLB: buffer de traducción de direcciones o Translation-Lookaside Buffer.

TLB La TLB contiene sólo las correspondencias de tablas de páginas. Cada etiqueta contiene una parte del número de página virtual. Cada campo de datos contiene un número de página físico. Ya no se accede directamente a la tabla de páginas. La TLB asumirá: Bit de referencia. Bit de suciedad.

TLB V i r t u a l p a g e n u m b e r V a l i d T a g T L B P h y s i c a l p a g e a d d r e s s 0 P h y s i c a l m e m o r y P a g e t a b l e P h y s i c a l p a g e V a l i d o r d i s k a d d r e s s 0 0 0 D i s k s t o r a g e

En cada referencia: TLB Se busca el número de página virtual en la TLB. Acierto: el número de página física se usa como dirección y se activa el bit de referencia. Fallo: sólo de TLB o también de página? Página en memoria: sólo traducción no presente. Se carga la traducción en la TLB y se repite la referencia. Fallo de página: lo resuelve el S. O. Los fallos de TLB serán más frecuentes que los de página: cuestión de tamaño.

Gestión de fallos de página y de TLB Fallo de TLB o de página? Ver bit de validez en la tabla de páginas. Si fallo de página, se debe interrumpir la ejecución de la instrucción en la que se ha producido. Se debe encargar el S. O. Ha de buscar la dirección virtual que ha causado el fallo.

Gestión de fallos de página y de TLB Una vez conocida la dirección virtual que causó el fallo de página, el S. O. tiene que: Buscar una entrada en la tabla de páginas usando la dirección virtual y encontrar la posición de la página en disco. Escoger página física para reemplazarla. Si modificada, escribirla en disco. Iniciar una lectura de disco para traer la página referenciada. Mientras se trae de disco, el S. O. puede decidir que el procesador ejecute otros programas.

Marco común para jerarquías de memorias. Dónde se puede ubicar un bloque? Esquema Número de conjuntos Bloques por conjunto Corresp. directa Nº de bloques de la cache Asociativa por conj. Nº bloques de la cache/asociatividad Asociatividad (2-8) Totalmente asociativa Nº bloques de la cache Mayor grado de asociatividad supone menor tasa de fallos. Esto se debe a disminuir la competencia por ocupar cada posición.

M Marco común para jerarquías de memorias. 5 % 2 % i s s r a t e 9 % 6 % 3 % 0 % O n e - w a y T w o - w a y A s s o c i a t i v i t y F o u r - w a y K B 2 K B 4 K B 8 K B E i g h t - w a y 6 K B 3 2 K B 6 4 K B 2 8 K B

Marco común para jerarquías de memorias. Cómo se encuentra un bloque? Asociatividad Método de selección Comp. necesarias Corresp. directa Índice Asociativa por conj. Totalmente asociativa Índice conjunto; búsqueda dentro del conjunto. Buscar todas las entradas Grado asociatividad Tamaño cache Tabla de búsqueda 0 Grado de asociatividad: comparar coste de fallo con coste de la asociatividad. Asociatividad total: coste excesivo salvo tamaños muy reducidos.

Marco común para jerarquías de memorias. Cómo se encuentra un bloque? Asociatividad total utilizando una tabla de correspondencias: Reducción de fallos. Permite algoritmos sofisticados por software (mayor reducción de tasa de fallos). Fácil indexación sin circuitería ni búsquedas adicionales. En caso de páginas, el sobredimensionamiento es relativamente pequeño. Caches y TLBs: asociatividad por conjuntos e índices.

Marco común para jerarquías de memorias. Qué bloque debe ser reemplazado ante un fallo? Correspondencia directa: sólo un candidato. Asociatividad por conjuntos: Aleatorio. LRU (Less Recently Used). En la práctica, LRU excesivamente costoso. En caches grandes, el aleatorio funciona bien. En memoria virtual, se busca un LRU: coste de los fallos.

Marco común para jerarquías de memorias. Write-through: Qué ocurre con las escrituras? Fallos menos costosos: no se escribe en nivel inferior. Más fácil de implementar, pero necesita de un buffer de escrituras para ser rápido. Write-back o copy-back: Las palabras se pueden escribir más rápido en el procesador. Múltiples escrituras en un bloque son una escritura en nivel inferior. Al escribir en nivel inferior: ancho de banda.

Dirección virtual Acceso a TLB Excepción Fallo TLB No Acierto TLB Si Dirección física No Escritura? Si Leer en cache No Bit acceso escritura Si Bloqueo fallo cache No Acierto Cache? Si Entregar datos CPU Excepción protección escritura Escribir en cache, cambiar etiqueta, poner datos y dirección en buffer escrituras