Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Introducción
Concepto y fundamentos. Técnicas de gestión de la memoria virtual.
2. Memoria virtual paginada
Fundamentos. Técnicas de traducción de direcciones: directa, asociativa, mixta y a varios
niveles. Tamaño de página. Políticas de emplazamiento de páginas. Políticas de
reemplazamiento de páginas: aleatorio, FIFO, FINUFO, LFU y LRU. Políticas de búsqueda
de páginas: bajo demanda, página sucesora y con predicción. Políticas de actualización.
3. Memoria virtual segmentada
Fundamentos. Técnicas de traducción de direcciones: directa. Políticas de emplazamiento
de segmentos: primer ajuste, mejor ajuste, peor ajuste y retoños.
4. Memoria virtual segmentada/paginada
Fundamentos. Técnicas de traducción de direcciones: directa, asociativa, mixta
5. Interrelación MV-MP-MC
Acceso a la cahe en un sistema con memoria virtual: cache de direcciones físicas y cache
de direcciones virtuales. Coherencia entre Mc y Mp. DMA y memoria virtual
6. Ejemplos
Alpha 21064. Pentium.
1. introducción
Concepto
Ö Un computador se dice que emplea memoria virtual cuando el espacio de direcciones que
utilizan los programas durante su ejecución es mayor que el espacio de direcciones físicas
disponible en memoria principal (MP)
Ejemplo
PC basado en procesador Pentium II con 128MB de MP
Ø Procesador capaz de gestionar direcciones de 46 bits ⇒ 64 TB de memoria virtual direccionables
ð Los programas pueden trabajar con dir. virtuales de 46 bits y direccionar un espacio virtual de 64 TB
Ø La MP está limitada a 128MB ⇒ admite direcciones de hasta 27 bits
ð Necesario traducir las direcciones virtuales de 46 bits y a direcciones físicas de 27 bits
1. introducción
Técnicas de gestión de la memoria virtual
Ö Traducción de direcciones
Ø ¿Cómo traducir una dirección virtual a una dirección física?
ð Memoria virtual paginada
ð Memoria virtual segmentada
ð Memoria virtual segmentada/paginada
Ö Emplazamiento de bloques en memoria física
Ø ¿En qué parte de la MP se ubican los nuevos bloques que traemos de memoria secundaria?
ð Primer ajuste
ð Mejor ajuste
ð Peor ajuste
ð Retoños (binary buddy)
Ö Reemplazamiento de bloques
Ø ¿Qué bloque quitamos de MP cuando hay necesitamos espacio para llevar un bloque nuevo?
ð Aleatorio
ð FIFO
ð FINUFO
ð LRU
ð LFU
Ö Búsqueda de bloques
Ø ¿Cuándo nos llevamos un nuevo bloque de memoria secundaria a memoria física?
ð Bajo demanda
ð Anticipativo
P
D Marco M D
Tabla de páginas del
P proceso J (2p entradas)
M
H C RWX Nº de marco
Nº de página Desplazamiento MP
DV:
Marco M-1
D Marco M D
¿Hallada • •
• •
entrada? • • M
P M
Sí No
• •
• • DF: Nº de marco Desplazamiento
• •
Acceder Fallo de Marco M+1
a MP página
10
Reg. base
DV: Nº directorio Nº página Desplazamiento
proceso J: T P D
Dir. ini. tabla
directorios Tabla de Directorio
(proceso J) Una página de la TP
(correspondiente
al directorio D)
M
H · · Dir ini. Pág.
DF: Nº de marco Desplazamiento
H · · Nº Marco
Bit de presencia en memoria
de la página del directorio T
Bit de acierto del
marco de página
12
Políticas de actualización de la MS
Ö Necesario mantener la coherencia entre MP y MS
Ø Cuando se modifica una página en MP es necesario actualizar esa misma página en MP
Ö La política de actualización que se usa en memoria virtual es la post-escritura
Ø Una página modificada se actualiza en MS solamente cuando se reemplaza
Ø Motivo: el tiempo de acceso a MS (tiempo de acceso a disco) es muy grande
ð La política de escritura directa no resulta eficiente
14
Ö Ventajas de la MV segmentada
Ø El tamaño de los segmentos se puede adaptar al tamaño de las entidades lógicas de los programas
ð Elimina problema de fragmentación interna (no se desaprovecha el espacio de los segmentos)
Tabla de segmentos D
Segmento S
del proceso J (2s entradas)
S
≠
Excepción TEST Excepción
Test
(si D > Long.)
H: Bit de acierto de referencia (Hit) → igual que MV paginada
C: Bit de limpieza de la entrada (Clear) → igual que MV paginada
RWX: Tipo de acceso permitido → igual que MV paginada
Long: longitud del segmento (nº de palabras que contiene)
Si D > long. ⇒ nos salimos del segmento ⇒ excepción
Políticas de reemplazamiento,
reemplazamiento, búsqueda y actualización de segmentos
Ö Similares a MV paginada
16
Zona usada
Gestión de zonas libres
mediante lista enlazada: Punt. Sig. Tamaño
Zona libre
Zona usada
Punt. Sig. Tamaño
te
us
ð El segmento se ubica en la primera zona libre donde quepa
aj
Zona usada
er
im
ð Algoritmo simple pero poco óptimo Zona libre 7K
Pr
Ø Mejor ajuste Mejor ajuste
Zona usada
Ubicación de un
ð El segmento se ubica en la zona más pequeña donde quepa segmento de 13 K Zona libre 14K
18
20
TLB
Nº segmen. Nº página Nº marco D
¿Hallada M
entrada? S P M
No Sí
Acceder DF: Nº de marco Desplazamiento
a TS y a TP Acceder
a MP M
5. interrelación MV-MP-MC
Acceso a la cache en un sistema con memoria virtual
Ö El acceso a la cache puede realizarse utilizando
Ø Direcciones físicas
Ø Direcciones virtuales
22
5. interrelación MV-MP-MC
Cache de direcciones virtuales
Ö Idea básica
Ø Permite acceder a la cache usando directamente la DV
Ø Acelera el acceso a la cache eliminando el tiempo de traducción DV → DF
Ö Problema
Ø Colisiones
ð Cada proceso tiene su propio espacio de direcciones virtuales
ð Dos procesos pueden generar DV idénticas que se refieren a DF distintas
ð Sin embargo, ambas DV accederán a la misma posición de cache
Proceso 1 Cache Proceso 2
DV: x DV: x
DF: y DF: z
Ø Solución
ð Añadir en la etiqueta de la cache un identificador del proceso al que pertenece ese bloque
5. interrelación MV-MP-MC
Mantenimiento de la coherencia entre MC y MP
Ö Cuestiones planteadas
Ø ¿Qué ocurre cuando se reemplaza una página en MP y algún bloque de es página estaba en MC?
Ø ¿Qué ocurre cuando un DMAC ordena escribir sobre un bloque de MP que está en MC?
Ö En ambos casos se produce un problema de incoherencia entre la MP y la MC
Ø El contenido de la MP ha variado y por tanto MP y la MC no contienen la misma información
MP MC MP MC
Marco k Marco k
Reemplazamiento
marco k
24
6. ejemplos
Memoria virtual en el ALPHA 21064
Ö Memoria virtual paginada Traducción a tres niveles
Ø MV dividida en páginas de 8KB 21 bits 10 bits 10 bits 10 bits 13 bits
6. ejemplos
Memoria virtual en el PENTIUM
Ö Dispone de hardware de segmentación y hardware de paginación activables por separado
Ø Unidad de segmentación (US)
ð Utiliza DV de 46 bits (64 TB direccionables) DV (46 bits) DL (32 bits) DF (32 bits)
ð Genera una Dirección Lineal (DL) de 32 bits segmento desplaz. direct. página desplaz. Nº de marco desplaz.