Clase07 MV

10
1 Arquitectura de Computadores II Clase #7 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Memoria virtual

description

clase

Transcript of Clase07 MV

  • 1Arquitectura de Computadores IIClase #7

    Facultad de Ingeniera

    Universidad de la Repblica

    Instituto de Computacin

    Curso 2010

    Veremos

    Memoria virtual

  • 2Registros

    Cache

    Memoria

    Disco

    Cinta

    Instr. Operandos

    Bloques

    Pginas

    Archivos

    Nivel Superior

    Nivel Inferior

    Ms rpido

    Ms grande

    Recordemos: Jerarqua de Memoria

    Motivacin

    Nuevamente, queremos una cantidad y costo de almacenamiento similar al del nivel inferior (disco en este caso), con un rendimiento similar al del nivel superior (memoria principal en este caso)

    Se pueden ejecutar procesos ms grandes que la memoria fsica disponible. Antiguamente esto era responsabilidad del programador (overlays)

    Es posible ejecutar simultneamente muchos procesos aunque la suma de sus requerimientos de memoria exceda la memoria principal disponible. Menos riesgo de CPU ociosa esperando por operaciones de E/S

    Algunas arquitecturas brindan herramientas para implementar eficientemente este nivel de la jerarqua de memoria

  • 3Paginacin Memoria principal dividida en frames (marcos) Procesos (instrucciones y datos) divididos en pginas Frames y pginas de igual tamao

    Administrar bloques de tamao variable es costoso y conduce a fragmentacin

    El sistema operativo administra la correspondencia entre frames y pginas

    Cada proceso direcciona sus datos e instrucciones a travs de direcciones lgicas, relativas al inicio del proceso Direccin lgica = pgina + desplazamiento

    El procesador traduce direcciones lgicas a direcciones fsicas utilizando una tabla de pginas, que es administrada por el sistema operativo Direccin fsica = frame + desplazamiento

    Direcciones lgicas y fsicas

  • 4Memoria Virtual

    Paginacin a demanda No se requiere que todas las pginas de un proceso estn en memoria principal Procesos potencialmente ms grande que memoria principal

    Se cargan bajo demanda Se acelera el inicio de ejecucin de procesos

    El mecanismo funciona transparentemente al programador, que direcciona mediante direcciones virtuales o lgicas.

    Fallo de Pgina Pgina requerida no est en memoria Sistema operativo debe traer la pgina nueva (swap in) Puede ser necesario descartar una pgina para hacer lugar (swap out)

    Seleccionar pgina a descartar basndose en la historia reciente

    Mapa de Direcciones V = {0, 1, . . . , n - 1} espacio virtual de direcciones

    M = {0, 1, . . . , m - 1} espacio fsico de direcciones

    Existe una funcin MAP ( V --> M + {vaco} ) que toma los valores:

    MAP(a) = a si el dato apuntado por la direccin virtual a est presente en la direccin

    fsica a' tal que a' pertenece a M

    MAP(a) = vaco si el dato apuntado por la direccin virtual a no est presente en M

    Procesador

    Espacio V

    MecanismoTraslacinde Direcc.

    manejadordel fallo

    MemoriaPrincipal

    MemoriaSecundaria

    a

    aa'

    0

    fallo por falta de tem

    direccin fsica Responsabilidad del sistema operativo

    n > m

  • 5Estructura de la Tabla de Pginas (1/2)

    Tabla de pginas Traduccin de direccin virtual a direccin fsica

    Tamao variable, potencialmente muy grande. Ej. para 4GB con pginas de 512 bytes, 232/29=223 pginas No se puede alojar en la CPU -> en memoria

    Pero se debe limitar el uso de memoria principal para almacenar Tablas de Pginas. en general se almacenan en memoria virtual

    Algunas arquitecturas organizan las tablas de pginas en niveles (directorio / tabla de pginas)

    Tabla invertida

    Estructura de la Tabla de Pginas (2/2)

    Invertida: se utiliza un hash para indizaren la tabla

    Tabla de hash usa encadenamiento (chaining)

    Ventaja: porcin fija de memoria real para tablas

    Una entrada para cada frame de memoria fsica

    n bits

    m bits

    Recordar: n> m

  • 6Translation Lookaside Buffer

    En principio, cada referencia a memoria virtual causa dos accesos a memoria fsica Lectura de la tabla de pginas para obtener direccin fsica

    Acceso a la direccin fsica obtenida

    Para acelerar el acceso se utiliza una cache especial para la tabla de pginas TLB

    Menor tiempo de acceso, menor tiempo de traslacin

    El uso de TLBs permite reducir el #ciclos/accesos a la cachemediante la superposicin del acceso a la cache con el acceso al TLB

    Virtual Address Physical Address Dirty Valid Access

    Operacin del TLB y el Cache Direccin virtual

    Bits ms significativos usados para buscar en el TLB

    Bits menos significativos ndice en la cache

    Acceso superpuesto al TLB y la cache funciona solamente si los bits de direcciones usados como ndice en la cacheno cambian como resultado de la traslacin de DV Caches con pocas

    lneas o conjuntos / tamao de pgina grande

  • 7Fallo de Pgina

    Pgina no est residente en memoria

    El Hardware detecta la situacin y genera una trap, atendida por el sistema operativo elegir una pgina a descartar (posiblemente salvndola en disco (bit dirty))

    traer la pgina del disco

    actualizar la tabla de pginas

    retornar el control al programa para reintentar el acceso a memoria

    Diseo de un Sistema de Memoria Virtual

    Tamao de los bloques de informacin que son transferidos desde almacenamiento secundario hacia memoria principal (tamao de frames/pginas)

    Qu regin de memoria principal debe alojar el nuevo bloque poltica de alojamiento

    Si la memoria principal est llena y es necesario traer un nuevo bloque, se debe liberar espacio poltica de reemplazo

    Bit de acceso

  • 8Tamao de Pgina

    Pginas pequeas aprovechan mejor los framesde memoria fsica (menos fragmentacin interna)

    Pginas ms grandes Tablas de pginas ms pequeas

    Posibilita operativa simultnea de cache y TLB

    Amortizan mejor el costo de acceso a almacenamiento secundario (pero se corre el riesgo de transferir informacin innecesaria)

    Para un tamao de TLB fijo, pginas ms grandes implican una mayor cantidad de direcciones virtuales que se traducen mediante TLB

    Thrashing

    Demasiado tiempo invertido en operaciones de swap y poco trabajo real del sistema

    Soluciones Ms memoria real

    Menos procesos en ejecucin

    Buenos algoritmos de reemplazo (sistema operativo)

  • 9Por qu memoria virtual? (1/2)

    Generalidad posibilidad de correr programas ms grandes que el tamao de la memoria fsica

    Manejo del Almacenamiento Administracin de bloques de tamao variable es costoso y lleva a fragmentacin

    Proteccin aplicar permisos diferenciados a regiones del espacio de direcciones (R/O, Ex, . . .)

    Flexibilidad porciones del programa pueden ubicarse en cualquier lado, sin relocalizacin

    Por qu memoria virtual? (2/2)

    Eficiencia del almacenamiento retener en memoria slo las porciones de cdigo/datos que se necesiten

    E/S Concurrente ejecucin de otros procesos mientras se carga/descarta una pgina

    Rendimiento impacto en multiprogramacin

  • 10

    Una idea fija:mejorar el rendimiento

    Algunas ideas que ya revisamos Incrementar la frecuencia del reloj

    Perolos tiempos de acceso a memoria y E/S pueden ser un cuello de botella

    Ancho de los registros

    Ancho del bus de datos Mayor tasa de transferencia

    Ancho del bus de direcciones NO mejora la velocidad de acceso pero se puede direccionar ms memoria

    directamente Ms memoria fsica, menos swap de memoria virtual

    Pipelining

    Jerarqua de Memoria L1 & L2 cache

    Memoria virtual

    Preguntas?