Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Paginamiento
Segmentación
Memoria virtual
1. Introducción
2. Paginación
3. Segmentación
4. Segmentación paginada
5. Paginación por demanda y anticipada
6. Políticas de reemplazo
7. Política de asignación de marcos de
página
8. Similitud entre las distintas Jerarquías
Memoria virtual
1. Introducción
• Concepto de Memoria Virtual: Método para conseguir que la suma de
los espacios de pila, datos y texto de un programa pueda ser mayor que
el tamaño físico de la memoria disponible para él. (Fotheringham, 1961)
1. Introducción
Ventajas:
Dirección
dirección
física
lógica
CPU p d f d
p Memoria
Página
(virtual) f
Página
desplazamiento (física)
Tabla de páginas -marco- 0
Memoria virtual
Memoria virtual
2. Paginación
Memoria virtual
2. Paginación
• La paginación remedia la fragmentación externa, pero no la fragmentación
interna.
Referencia Memoria
2
1 Excepción secundaria
LOAD M 0
6
Reiniciar
Memoria
la instr. principal
Tabla de
páginas
5 Marco libre 4 Cargar la
Actualizar la
página que
tabla de páginas
falla
Memoria virtual
2. Paginación
Tabla de Páginas: Son tablas que contienen (para cada proceso) el
número de marco que corresponde a cada página virtual del proceso
Caching Desactivado/Activado
No usado
Memoria virtual
• Tamaño de página: La elección de tamaño de página
está condicionada por diversos factores, entre los que hay
que conseguir equilibrio:
– Potencia de 2 y múltiplo del tamaño del bloque de
disco
– mejor pequeño por:
• Menor fragmentación
• Se ajusta mejor al conjunto de trabajo
– mejor grande por:
• Tablas más pequeñas
• Mejor rendimiento de dispositivos de E/S
– Compromiso (entre 2K y 16K)
Memoria virtual
• Tamaño de página
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
0 010 1 bit presente/ausente
1 001 1
página 2 110 1
3 000 1
virtual 4 100 1
5 011 1 Desplazamiento
6 000 0
7 000 0 (12 bits)
8 000 0
página 9 101 1
10 000 0
física 11 111 1
12 000 0
13 000 0
14 000 0
15 000 0
1 1 0 0 0 0 0 0 0 0 0 0 1 0 0
Memoria virtual
• Tamaño de página
Ejemplos de tamaños de páginas
T. Páginas Proceso 1
Página 0 Marco 2
Memoria
Página 1 Marco N
Pág. 1 Pr. 2 Marco 0
..............
Pág. P Pr. 2 Marco 1
Página M Marco 3
Pág. 0 Pr. 1 Marco 2
Pág. M Pr. 1 Marco 3
T. Páginas Proceso 2
Página 0 Pág. 0 Pr. 2 Marco 4
Marco 4
............
Página 1 Marco 0
.............. Pág. 1 Pr. 1 Marco N
Página P Marco 1
• Fallos de página
– Se produce cuando
el bit de presencia
está en off (0)
– Quiere decir que la
página no está en
M.P.
– Acudir al nivel
superior de
memoria (disco)
– Transferirla a M.P.
Memoria virtual
Veamos cómo se gestiona la ocurrencia de un fallo de página:
• La MMU genera una excepción. Normalmente deja en un registro
especial la dirección que causó el fallo
• Se activa el SO, que comprueba:
– Si la página es inválida, se aborta el proceso (solución normal,
aunque también podría bastar con el envío de una señal).
– Si la página es ausente se siguen los pasos siguientes:
a) Se consulta la tabla de marcos para ver si hay algún hueco
libre:
i. Si no hay ningún marco libre se aplica el algoritmo de
reemplazo, que decidirá el marco a desalojar. La página
almacenada hasta entonces se marca como inválida. Si ha
sido modificada, antes hay que salvar su contenido en
memoria secundaria
ii. Si hay marco libre: se inicia la lectura desde memoria
secundaria y se vuelca al marco, marcándose como válida
dicha entrada en la TP y apuntando el marco en que está
almacenada
Memoria virtual
• En el peor de los casos un fallo de página puede suponer dos
operaciones de E/S:
• Política de reemplazos:
– Reemplazo local: Sólo puede usarse para reemplazo un marco
asignado al proceso que causa fallo
– Reemplazo global: Puede usarse para reemplazo cualquier marco
• Algoritmos a estudiar
A. FIFO
B. Reloj (o segunda oportunidad)
C. NRU
D. LRU
E. NFU
Memoria virtual
6. Políticas de reemplazo
T= 0 1 2 3 4 5 6 7 8 9 A B C D E F
Página= 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
Memoria virtual
FIFO (Primero en llegar)
- (a) Cada entrada de la tabla tiene un registro asociado con el instante de
carga de la página, o (b) el SO mantiene la tabla de páginas en orden de
antigüedad (FIFO)
-
Cuando se produce un fallo de página y no hay marcos libres, se
intercambia a disco la página que lleve más tiempo en la tabla.
-
Ej.: Nº de página 7,0 instante de entrada en tabla
T= 0 1 2 3 4 5 6 7 8 9 A B C D E F
Página= 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
7,0 7,0 7,0 2,3 2,3 2,3 4,7 4,7 4,7 0,A 0,A 0,A
Tablas 0,1 0,1 0,1 3,5 3,5 3,5 2,8 2,8 2,8 1,D 1,D
a) 1,2 1,2 1,2 0,6 0,6 0,6 3,9 3,9 3,9 2,F
+ antiguo 7 7 7 0 1 2 3 0 4 2 3 0
0 0 1 2 3 0 4 2 3 0 1
+ nuevo b) 1 2 3 0 4 2 3 0 1 2
Memoria virtual
Algoritmo de páginas del reloj
●
Clase 0: Páginas no referenciadas ni modificadas (R=0,M=0)
●
Clase 1: Páginas no referenciadas, modificadas (R=0,M=1)
●
Clase 2: Páginas referenciadas no modificadas (R=1,M=0)
●
Clase 3: Páginas referenciadas, modificadas (R=1,M=1)
Modif.
(M)=
Reset R=
T= 0 1 2 3 4 5 6 7 8 9 A B C D E
Página=7 0 1 2 0 3 0 4 2 3 0 3 2 1 2
7,1,0 7,1,0 7,1,0 2,1,1 2,0,1 3,1,1 3,1,1 3,1,1 3,0,1 3,1,1 3,1,1 3,1,1 3,0,1 3,0,1 3,0,1
0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1
1,1,1 1,1,1 1,0,1 1,0,1 1,0,1 4,1,1 4,0,1 4,0,1 0,1,0 0,1,0 0,0,0 1,1,0 1,1,0
Algoritmo LRU
(página usada hace más tiempo)
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
0 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0
LRU 7 7 7 0 1 2 2 3 0 4 2 2 0 3 3 1 2 0 1 7
Memoria virtual
Algoritmo LRU
(página usada hace más tiempo), implementaciones
B) Uso de contadores.
T= 0 1 2 3 4 5 6 7 8 9 A B C D E F
Página= 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
7,0 7,0 7,0 2,3 2,3 2,3 2,3 4,7 4,7 4,7 0,A 0,A 0,A 1,D 1,D 1,D
0,1 0,1 0,1 0,4 0,4 0,6 0,6 0,6 3,9 3,9 3,B 3,B 3,B 3,B 0,F
1,2 1,2 1,2 3,5 3,5 3,5 2,8 2,8 2,8 2,8 2,C 2,C 2,E 2,E
Memoria virtual
Algoritmo NFU
(página no frecuentemente usada)
●
Se activa un contador software por cada página
●
En cada interrupción de reloj, el SO suma el bit R (0 ó 1)
al contador
●
Cuándo existe un fallo de página se selecciona la página
con el contador más bajo y se envía a disco
Algoritmo NFU
(página no frecuentemente usada)
-Maduración:
●
Se activa un contador software por cada página
●
En cada interrupción de reloj se desplaza el contador
un bit a la derecha y luego se suma el bit R al bit más
significativo del contador.
Memoria virtual
Algoritmo NFU con maduración
(página no frecuentemente usada)
N O m e m o r ia
> +
S I
E x c e p c ió n
Memoria virtual
• Tabla de segmentos:En este caso, la MMU usa una tabla de segmentos
(TS).
• Organización:
– El SO mantiene una TS por proceso, de forma que en cada cambio
de contexto se notifica a MMU cuál debe usar
– Cada entrada de TS contiene (entre otros):
• Registro base y límite del segmento
• protección: RWX
• Organización:
– Entrada en TS apunta a una TP para el segmento.
– El espacio del segmento está compuesto de varias páginas, de
forma que su espacio no tiene que ser contiguo.
Memoria virtual
•Traducción:La traducción se lleva a cabo según se indica.
d ir e c c ió n ló g ic a
s p d t a b la d e p á g in a s
t a b la d e s e g m e n t o s p a ra s e g m e n to s
NO m e m o r ia
> m d
SI
d ir e c c ió n
E x c e p c ió n f ís ic a
Memoria virtual
• Valoración: