T4.4. S. Memoria - Virtual

Anuncio
Tema 4. Subsistema de Memoria
4.1. Introducción
4.2. Memoria cache
4.3. Memoria principal
4.4. Memoria virtual
Conceptos generales
Aspectos de diseño
Traducción rápida de
direcciones (TLB)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
66
4.4
M
V
I
R
T
U
A
L
Conceptos generales (1)
•
Memoria virtual
– Técnica que realiza la gestión de dos niveles adyacentes de la jerarquía
de memorias: la memoria principal (ó memoria física)
y el
almacenamiento secundario (disco).
•
Motivaciones/ventajas
– Eliminar los inconvenientes de una memoria pequeña y limitada
• Los programas de usuario pueden exceder el tamaño de la memoria
principal. Nos permite utilizar un espacio lógico de direcciones
superior al realmente disponible en la memoria principal.
– Compartición eficiente de la memoria entre mútiples procesos
garantizando protección
• La memoria principal necesita solamente las partes activas de los
programas. Esto nos permite compartir eficientemente el procesador
así como la memoria principal. Proporciona los mecanismos de
protección necesarios.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
67
1
4.4
M
V
I
R
T
U
A
L
Conceptos generales (2)
•
La memoria virtual ve a la memoria principal como una cache y al disco como
el lugar donde ‘realmente’ residen los programas/datos
Transferencias en la jerarquía de memoria: Memoria principal - Disco
Registros
•
Cache
Bloques
Memoria
Principal
Páginas
Disco
Terminología
→ página
→ fallo de página
– Bloque de memoria virtual
– Fallo de memoria virtual
•
Dirección virtual – dirección física
– Las direcciones que aparecen en los programas son direcciones virtuales
– Son traducidas a direcciones físicas por el MMU (memory management unit),
combinación de hardware y software
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
68
4.4
M
V
I
R
T
U
A
L
Aspectos básicos de diseño
•
Elección del tamaño de página
– Valores típicos actuales: 4Kb-16 Kb. En nuevos sistemas: 32 Kb-64 Kb
•
Q1: ¿Dónde puede ubicarse una página en la memoria principal?
– Ubicación de bloque
•
Q2: ¿Cómo se encuentra una página si está en la memoria principal?
– Identificación del bloque
•
Q3: ¿Qué página debe reemplazarse en caso de fallo?
– Sustitución de bloque
•
Q4: ¿Qué ocurre en una escritura?
– Estrategias de escritura
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
69
2
4.4
M
V
I
R
T
U
A
L
Q1: Ubicación de páginas
•
La penalización por fallo en la memoria virtual implica acceder al disco
– Los tiempos de acceso a dispositivos de almacenamiento secundario actuales se
encuentran en torno a 1.000.000 de ciclos de reloj
– Un fallo de página tarda millones de ciclos en procesarse
•
Posibilidades en la organización de la memoria virtual:
– Correspondencia directa
• Algoritmo de ubicación sencillo
• Produce mas fallos de página (tasa de fallos alta)
– Totalmente asociativa
• Algoritmo mas complicado
• Produce menos fallos de página (tasa de fallos baja)
•
Siempre se elige la estrategia totalmente asociativa debido al alto coste de
la penalización por fallo
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
70
4.4
M
V
I
R
T
U
A
L
Q2: Identificación de páginas
•
¿Cómo encontrar una página en la memoria física?
•
Existe una correspondencia entre direcciones virtuales y direcciones
físicas
•
Identificación de página
Virtu al a d dre ss
3 1 3 0 29 28 2 7
1 5 14 13 1 2
1 1 10 9 8
Virtual p ag e n um ber
3 2 10
Pa ge o ffse t
Tran sla tio n
2 9 2 8 27
1 5 14 13 1 2
1 1 10 9 8
P hy sical pa ge n u mbe r
3 2 10
Pa ge o ffse t
Ph ysica l a dd re ss
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
71
3
4.4
M
V
I
R
T
U
A
L
Identificación de página: Tabla de páginas (1)
•
Tabla de páginas: Mecanismo de traducción de direcciones virtuales a físicas
•
Cada programa tiene su tabla de páginas residente en memoria que se
indexa con el número de página virtual para obtener la dirección de la página
física
Virtual page
number
Valid
Page table
Physical page or
disk address
Physical memory
1
1
1
1
0
1
1
0
1
Disk storage
1
0
1
La tabla de páginas hace corresponder cada
página de la memoria virtual a una página de
la memoria física que estará en la memoria
principal o en el disco.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
72
4.4
M
V
I
R
T
U
A
L
Identificación de página: Tabla de páginas (2)
•
Traducción de direcciones:
•
En este ejemplo
– Tamaño de página = 212
bytes = 4KB
– Espacio de direcciones
virtual = 232 bytes =
4GB
– Espacio de direcciones
físico = 230 bytes = 1
GB
– Número de entradas en
la tabla de páginas =
220
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
73
4
4.4
M
V
I
R
T
U
A
L
Q3: Sustitución de páginas
•
Si el bit de validez de una página virtual es 0, se produce un fallo de página
•
Tratamiento de los fallos de página:
1.
2.
3.
•
Se
Se
Se
–
pasa el control al SO
busca la página en el disco
elige qué página de memoria reemplazar
Siempre se utiliza el algoritmo LRU
(El papel de SO)
–
Cuando se inicia un programa, el SO crea espacio en el disco para todas las
páginas virtuales
–
También crea su correspondiente tabla de páginas
–
Gestiona los fallos de página
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
74
4.4
M
V
I
R
T
U
A
L
Q4: Estrategias de escritura
•
Política de escritura
– Postescritura o write back. Otra política sería muy costosa.
– Cuando se sustituye una página el bit de modificación o sucio (dirty bit)
indica si la página ha de ser actualizada en disco o no.
• Debe añadirse este bit a la tabla de páginas
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
75
5
4.4
M
V
I
R
T
U
A
L
Elección del tamaño de página
•
La decisión del tamaño de página implica una solución de compromiso entre
aquellos factores que favorecen una página mayor frente a los que favorecen
una página más pequeña
•
Ventajas de un tamaño de página grande
– Menos páginas Æ Tabla de páginas más pequeña Æ ahorro de memoria
– Transferencia más eficiente
•
Ventajas de un tamaño de página pequeño
– Mejor aprovechamiento de la memoria por una menor fragmentación de la
misma.
– La mayoría de los procesos son pequeños: una página grande implica un
tiempo mayor para invocar el proceso.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
76
4.4
M
V
I
R
T
U
A
L
Traducción rápida de direcciones: TLB (1)
•
Mejora de la traducción de direcciones
– El tiempo de acceso a la tabla de páginas (almacenada en memoria
principal) es excesivo: Un acceso para obtener la dirección física de
memoria y otro para obtener el dato
– Mejora: Basándonos en la localidad de las direcciones hacer uso de una
cache especial para guardar la traducción de las direcciones más
recientemente usadas
•
Buffer de traducciones anticipadas (Translation-Lookaside Buffer o
TLB)
– Las traducciones más recientes se mantienen en una memoria especial
(similar a una cache) de acceso rápido.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
77
6
4.4
M
V
I
R
T
U
A
L
Traducción rápida de direcciones: TLB (2)
TL B
V irtu a l p a ge
nu m ber
Va lid
Ta g
P hy sica l p a g e
a d d re s s
1
1
P h y s ic a l m e m o ry
1
1
•
•
0
Estructura
– Campo de etiqueta
(tag) que almacena
parte de la dirección
virtual
– Identificador
del
proceso
– Campo de datos que
almacena la Dirección
física de la página
– Bits de validez y dirty
– Bits de protección
1
Pa g e ta b le
P h y si ca l p a g e
V a li d o r d is k a d d re s s
1
1
1
D is k sto ra g e
1
0
1
1
0
1
1
0
1
Método de ubicación de
bloque
–
Totalmente asociativa
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
78
4.4
M
V
I
R
T
U
A
L
Esquema global de traducción de direcciones
•
Mecanismo global de traducción de direcciones en la jerarquía de
memorias
Fallo página
Procesador
DV
Traducción
DF
Cache
Fallo
cache
Acierto
cache
Datos
DV: Dirección virtual
DF: Dirección física
Bloque
Controlador de cache:
Transferencia por hardware
Memoria
Principal
Memoria
Secundaria
(Disco)
Página
Sistema Operativo:
Transferencia por software
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
79
7
4.4
M
V
I
R
T
U
A
L
Esquema global de traducción de direcciones: Ejemplo
•
TLB y Cache en un R2000
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
80
4.4
M
V
I
R
T
U
A
L
Combinación de eventos en cache, TLB y memoria virtual
Caché
TLB
Tabla Páginas
¿ Es Posible?
acierto
fallo
acierto
acierto
acierto
acierto
acierto
fallo
fallo
fallo
fallo
fallo
fallo
acierto
acierto
acierto
fallo
fallo
acierto
acierto
fallo
acierto
fallo
fallo
Posible. Acceso sin problemas.
Posible. Si hay acierto en TLB no se comprueba en la tabla
de páginas
Posible
Posible
Posible. Fallo de página
Imposible. No puede haber acierto en TLB si no está en
memoria principal
Imposible. No puede haber acierto en TLB si no está en
memoria principal
Imposible. No puede haber acierto en caché si el dato no
está en memoria principal
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
81
8
4
Jerarquía de memorias: marco común
Cache
Correspondencia directa
Q1
Ubicación de
Asociativa por conjuntos
bloque
Memoria Virtual
Totalmente asociativa
TLB
Totalmente asociativa
Totalmente asociativa
Indexar
Q2
Identificación
Búsqueda limitada
de bloque
Q3
Sustitución
de bloque
Q4
Estrategias
de escritura
Tabla separada de búsqueda (tabla Búsqueda total
de páginas)
Búsqueda total
LRU
LRU
LRU
Postescritura (write back)
---
Azar
Escritura directa (write through) +
ubicar en escritura
Postescritura (write back) + no
ubicar en escritura
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
82
9
Descargar