Clase07 MV
description
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?