Sistemas Operativos
Diaz Muñante Jorge 1
Administración de la Memoria Virtual
Your picture hereSistemas Operativos
Ciclo 2012-1
Profesor:
Diaz Muñante Jorge
Organización de la Memoria
Memoria Real
Un solo proceso Multiprogramación
Particiones fijas
1 Colas Varias colas
Particiones variables
Memoria Virtual
Multiprogramación
Paginada SegmentadaSegmentada + Paginada
Antecedentes
Fragmentación Interna
Tamaño del proceso limitado por el tamaño de la partición
Particiones Fijas
Fragmentación Externa
Tamaño del proceso limitado por el tamaño de la memoria real
Particiones Variables
Asignación de MemoriaTamaño total del proceso
4
Actividad de los procesos
E1 E2 E3 E4 E5
E6 E7 E8 E9 E10
:: :: :: :: ::
E11 E12 E13 :: ::
:: :: :: :: ::
Manejo de errores
En la practica rara vez se presentan todos los errores en una misma ejecución.
E1 E2 E3 E4 E5
E6 E7 E8 E9 E10
:: :: :: :: ::
E11 E12 E13 :: ::
:: :: :: :: ::
5
Actividad de los procesos
V1 V2 V3 V4 V5
V6 V7 V8 V9 V10
:: :: :: :: ::
V11 V12 V13 V14V15
:: :: :: :: ::
Manejo de tablas, vectores u otra estructura de datos
En la practica solo usamos pocos elementos de lasestructuras de datos.Ejm: Vector (100x100) y usamos solo (10x10)
V1 V2 V3 V4 V5
V6 V7 V8 V9 V10
:: :: :: :: ::
V11 V12 V13 V14V15
:: :: :: :: ::
6
Actividad de los procesos
Software base: Editor de texto
En la practica usamos rara vez esta opción
:: :: :: :: ::
:: :: :: :: ::
Conversión deMinusculas aMayusculas
Sistemas Operativos
Diaz Muñante Jorge 2
7
Principio de localidad
�Dening
– Principio de localidad
– Las referencias de los procesos tienden agruparse en zonas pequeñas del espacio direccionable. Estas zonas ademas tienden a cambiar en forma intermitente.
Referencias repetidas
Saltos esporadicos
working set:
initializaciondatos
Inicio delcodigo
Fase inicial del proceso
Cod. 1 Cod. 2 datos
Fase Principal del proceso
Fin delcodigo
Fase final del proceso
8
Premisa
� No se requiere que un proceso este almacenado en la memoria principal en forma completa
� Ventajas
– No hay limite para el tamaño de los procesos
– Aumenta el numero de procesos en memoria
– Disminución de las Operaciones e/s
9
Memoria Virtual
� Es la separación de la memoria lógica del usuario de la memoria física
• Una gran memoria virtual cuando solo se dispone de una memoria física mas pequeña
Jerarquía de Memoria
10
Pages Lines
Words
Registers
Main memory
Cache
Virtual memory
(transferred explicitly
via load/store) (transferred automatically
upon cache miss) (transferred automatically
upon page fault)
Memoria VirtualIlusion de una memoria de gran tamaño
Memoria realCosto razonable pero velocidad intermedia
Memoria Cache: Ilusion de una memoria muy rapida
La memoria virtualLa ilusión de la memoria infinita
Tabla Pagina
TLB
MemoriaFisica1 GB
Disco500GB
∞∞∞∞
MemoriaVirtual4 GB
Paginada Segmentada Segmentada + Paginada
La paginación
Proceso A Proceso A
Proceso A RAM
Página
Marco dePágina
- Consiste en dividir el espacio de direcciones virtual en unidades de tamaño invariante llamadas páginas .
- Los marcos de página son la correspondencia de una página en la memoria física, es decir, el espacio en la RAM donde realmente esta la página, teniendo ambos el mismo tamaño. De esta forma, todas las unidades de transferencia de datos desde y hacia la RAM se hacen en el tamaño de una página.
Sistemas Operativos
Diaz Muñante Jorge 3
13
Marco 0
Marco 1
Marco 2
Marco 3
Marco 4
Marco 5
Continuidad Artificial
Espacio de direccionamientológico
Espacio de direccionesreales
Pag 0
Pag 1
Pag 2
Pag 3
Pag 4
Pag 5Pag 6
Pag 7
MemoriaVirtual
Memoriareal
4k
Memoria Virtual con paginas
14
Configuracion de la memoria virtual
15
Memoria Virtual Estatica / Dinamica
16
Tabla de Paginas
(dire
ccio
nes
lógi
cas)
Memoria Virtual de Proceso P
Página 0 Marco 2
Página 1 Marco 0
Página 2 No está
Página 3 No está
Página 4 Marco 6
… No están
Página n-1
Marco 5
Página n Marco 4
Tabla de Páginas de PPágina 0
Página 1
Página 2
Página 3
…
Página n
Sistema
Operativo
Marco 0 Página 1
Marco 1 Libre
Marco 2 Página 0
Marco 3 Libre
Marco 4 Página n
Marco 5 Página n-1
Marco 6 Página 4
… Libres
Marco m Libre
Memoria Física Principal (RAM)
(dire
ccio
nes
Fís
icas
)
Memoria Secundaria Principal (Disco Duro)
0 1 2 3
4
P0
5
P1
6
P2
7
3P3
8
4P4
9
5P5
10
6P6
11
Pn-1
32
Pn
33 34 35
… … D-1 D
.
.
.
Sistema Operativo
.
.
.
Marco 1
Marco 3
Marco 7
…
Marco m
Lista de Marcos Libres
17
Fallo o falta de pagina
� El proceso trata de usar una pagina que no esta en memoria real.
� Pasos:
– 1. Referencia a una pagina, verifica su bit de validez (esta invalida = i)
– 2. Ocurre una trampa
– 3. SO busca un marco libre
– 4. Lleva la pagina del disco a la memoria
– 5. Actualiza la tabla de paginas
– 6. Reinicia la operación
18
CargarM
1Referencia
i
Tabla depaginas
Sistemaoperativo
3La pagina esta enmemoria auxiliar
libre
MemoriaFísica
4 Carga lapagina
5 Restablecetabla de pag.
Reinicia lainstrucción
6
2 Trampa
Falla o falta de Pagina
Sistemas Operativos
Diaz Muñante Jorge 4
Estructura tabla de páginas
Marco #
Execute
(ejecucion)x
Write (escritura)w
Read (lectura)r
r w x
validav
r w x v
referenciadare
v re
modificadam
re m
Shared-compartidas
m s
caching c
s c
super-paginasu
c su
process id pid
su pid
guard data
(extended) guard
gd
g
pid g gdg gd otherotros
caching: páginas asociadas a registros de dispositivosreferenciada: 1 cuando se hace una referencia a una página
para leer o escribirmodificada: recuperación marco, si página no ha sido
modificada no se escribe a discoValida o : 1 entrada valida y puede ser utilizadapresente/ausente 0 página no cargada en memoria 20
Compartiendo paginas
PageTablePtrB pag #0
pag #1
pag #2
pag #3
pag #5
V,R
N
V,R,W
N
page #4 V,R
V,R,W
pag #4 V,R
Offset# PagDirecion Virtual (Proceso A):
PageTablePtrA pag #0
pag #1
pag #3
pag #4
pag #5
V,R
V,R
page #2 V,R,W
V,R,W
N
V,R,W
Offset# PagDireccion Virtual:Process B
Paginacompartida
Esta pagina fisica aparece en los 2
procesos
pag #2 V,R,W
21
Traduccion de Direcciones
Instruccion
Pagina #
Desplazamiento“d”
Dir.Virtual=(# pag, d) <traducir> Dir.Real =(# mar,d)
DVinstruccion
Memoria Real
DR
¿?
22
Memoria Virtual
0 1 2 3 4 5 6 7
d
Direccion Virtual = (3,10)
0 1 2 3 4 5 6 7
Memoria Real
d
Direccion Real = (5,10)
2k
Traduccion de direcciones
23
+
+a + pb
Tabla depaginas
a
p
Pagina p Desplazamientod
Dirección virtual
b + d
Direcciónreal
a
Registro baseTab.Pag
Traduccion de direcciones
24
Page # d
Dirección virtual
marco # d
b
Tabla depaginas
a
p
a
+
Programa
paginación
marcod
Memoriafísica
Traduccion de direcciones
Sistemas Operativos
Diaz Muñante Jorge 5
25Tabla de 1er nivel
m
Tablas de 2do nivel
p1 p2 d
Dirección virtual
m d
Direcciónreal
Tablas de 02 Niveles
26
Tabla de 2 nivelesDireccionfisica: OffsetMarco
Page #
4KB
10 bits 10 bits 12 bitsDireccionvirtual:
OffsetP2 indexP1 index
4 bytes
PageTablePtr
�Arbol de tablas�Tablas tam. fijo (1024 entradas)
4 bytes
27
Memoria asociativa
� Memoria especial - TLB
– (Translation Look-aside Buffers)
– acceso rápido: . 10-20% del tiempo de acceso a memoria
– pequeño tamaño: 64-1024 entradas
– solo contiene parte de la Tabla de Páginas
� Memoria de acceso por contenido
– Se compara con todas las páginas disponibles a la vez
– Si la página buscada no está hay que buscarla en la Tabla de Páginas en memoria principal
– Después del fallo se refresca la memoria asociativa
– El método es válido en función del porcentaje de éxito
• se basa en que casi siempre los programas acceden a direcciones consecutivas 28
p d
Dirección lógica
m d
Dirección real
acierto
fallam
Tabla de paginas
pagina marco
TLB
Traduccion de direcciones
29
Estrategias de Administración
� Estrategia de Obtencion: Determinan cuándo se debe cargar una página en memoria
– Paginación por demanda
• Se trae una página sólo cuando se hace referencia a ella
• El principio de cercanía reduce los fallos.
– Paginación previa
• Se traen a memoria varias páginas contiguas
• Mayor eficiencia de carga desde dispositivo secundario
30
Estrategias de Administración
�Estrategia de Colocacion:
� Determinan en donde se debe cargar una página en memoria
Sistemas Operativos
Diaz Muñante Jorge 6
31
Estrategias de Administración
�Estrategia de Reemplazo:
�¿ Qué página se reemplaza en memoria principal cuando se debe cargar otra y no hay espacio para ella?
32
Reemplazo de Pagina
1
Sacar la paginavictima
3
Introducir lapagina deseada
marco b.validz
m v
Tabla depaginas
4
Cambiar la tablapara la nueva
pagina
2
Cambiar ainvalido
/ 0 / i
victima
M.Real
mm v nueva
Cada página se va a etiquetar con:
Número de instrucciones antes de hacer la 1a. referencia a dicha página
Principio algoritmo:
eliminar página con la máxima etiqueta.
Página 1
Etiqueta: 10
Página 2
Etiqueta: 30
Página 3
Etiqueta: 5
Algoritmo Optimo
34
Algoritmo optimo
p3 p1 p2
5 inst10 inst.
30 inst.
Ejecuciónreemplazo
35
Algoritmo Optimo
Marcos de página
301
1
7
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
0
7
1
0
7
7
1
0
72
0
2
13 3
0
2
0
2
3
04
2
3
4
2
3
4
2
4
3 3
0
2
3
0
2
31
0
2
1
0
2
1
0
2
8 fallos de página
40
2
36
Algoritmo pésimo
� ¿cuál pagina involucra la peor decisión de reemplazo?
Sistemas Operativos
Diaz Muñante Jorge 7
37
Algoritmo FIFO
OptimoFuturo mas lejano
Ejecuciónreemplazo
p3 p4 p1 p2
FIFOPasado mas lejano
Algoritmo FIFO
�Principio: Los primeros en entrar, son los primeros en salir.
�S.O. tiene una lista de todas las páginas en memoria, siendo la primera página la más antigua y la última la más reciente.
�En un fallo de página se elimina la primera página y se añade la nueva al final de la lista.
�FIFO es muy pocas veces usada en su forma más pura.
Algoritmo FIFO
primera P1 P2 P3 P4 P5
última
P6
P3
P4
P5
P2
siguiente
P1P6
40
Algoritmo FIFO
Marcos de página
220
1
7
0
7
1
0
7
7
1
0
72
0
2
1
0
0
3
2
4
3 3
2
0
3
2
0
3
2
2
1
0
3
2
1
4
3
0
0
03
2
4
1
0
3
32
1
0
2
40
32
4
10
3
2
12 fallos de página
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
Algoritmo FIFO
�Por que podría ser bueno?
– Quizás la página que entró a memoria primero ahora no se necesita
�Por que podría ser malo?
– Quizás página esta en uso
• Las primeras paginas en llegar son del sistema operativo
• Los programas asignan los valores al inicio.
– Podría exponer anomalía de Belady
42
No paginado
Sistemas Operativos
Diaz Muñante Jorge 8
43
2
1
0
3210432104103210MarcoFIFO/3 Marcos
3
2
1
0
3210432104103210MarcoFIFO/4 marcos
Modificación simple de FIFO
evita deshacerse de una página de uso frecuenteinspeccionando el bit R de la página más antigua.
si (R = 0) => página antigua y no utilizada se reemplaza en forma inmediata
si (R=1) => el bit se limpiala página se coloca al final de la lista, su tiempo de carga se actualiza
Algoritmo de la Segunda Oportunidad
Algoritmo de la Segunda Oportunidad
Pág 1 1 Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0
En FIFO la Página 1 saldría
0Orden de entrada a la memoria
Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 00
Pág 2 0Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0
Se mira la primera página (la más vieja). Tiene su bit de uso en 1, por lo tanto se le da otra oportunidad. Se setea en cero R, y se pasa a la cola
Idem al caso anterior
Al encontrarse una página con el bit en cero, se escoge para desalojo.
En el caso de que todas las páginas hayan tenido el bit de uso en cero, este algoritmo degrada en FIFO.
Mantener páginas en una lista circular con forma d e reloj.Una manecilla apunta hacia la página más antigua.
B
C
D
E
F
G
A
H
I
K
J
L
Al ocurrir un fallo de página se inspecciona la pág ina a la que apunta la manecilla.Si bit R = 0 => página se retira de memoria, se in serta nueva página en
su lugar en el reloj manecilla avanza una posiciónEsto continua hasta encontar una página con R = 0.Ejemplo de uso: Solaris
Algoritmo de Reemplazo de Reloj
Estado del buffer justo antes de un reemplazo
0
1
2
3
4
56
7
8
n
.
.
.
Pag 9uso = 1
Pag 19uso = 1
Pag 1uso = 0
Pag 45uso = 1
Pag 191uso = 1
Pag 556uso = 0
Pag 13uso = 0
Pag 67uso = 1
Pag 33uso = 1
Pag 222uso = 0
Puntero al marco siguiente
Pag727
Ejemplo: Algoritmo de Reemplazo de Reloj
Estado del buffer justo antes de un reemplazo
0
1
2
3
4
56
7
8
n
.
.
.
Pag 9uso = 1
Pag 19uso = 1
Pag 1uso = 0
Pag 45uso = 0
Pag 191uso = 1
Pag 556uso = 0
Pag 13uso = 0
Pag 67uso = 1
Pag 33uso = 1
Pag 222uso = 0
Puntero al marco siguiente
Pag727
Ejemplo: Algoritmo de Reemplazo de Reloj
Sistemas Operativos
Diaz Muñante Jorge 9
Estado del buffer justo antes de un reemplazo
0
1
2
3
4
56
7
8
n
.
.
.
Pag 9uso = 1
Pag 19uso = 1
Pag 1uso = 0
Pag 45uso = 0
Pag 191uso = 0
Pag 556uso = 0
Pag 13uso = 0
Pag 67uso = 1
Pag 33uso = 1
Pag 222uso = 0
Puntero al marco siguiente
Pag727
Ejemplo: Algoritmo de Reemplazo de Reloj
Estado del bufferdespués del reemplazo
0
1
2
3
4
56
7
8
n
.
.
.
Pag 9uso = 1
Pag 19uso= 1
Pag 1uso = 0
Pag 45uso = 0
Pag 191uso = 0
Pag 727uso = 1
Pag 13uso = 0
Pag 67uso = 1
Pag 33uso = 1
Pag 222uso = 0
Puntero al marco siguiente
Ejemplo: Algoritmo de Reemplazo de Reloj
51
Algoritmo del Reloj
Marcos de página
1
1
7
0
7
1
0
7
7
1
0
72
0
2
1
2
3 0
2
3
0
0
2
3
2
4
1
3
0
2
1
3
3
2
1
0
3 4
3
0
2
3
0
4
3
2
4
0
2
4
0
2
3
R1
1
1
7
0
1
R0
1
1
7
0
1
7
0
1
R0
0
1
7
0
1
R0
0
0
2
0
1
R1
0
0
2 0
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
52
Algoritmo del reloj
� Ejemplo: Cadena de referencia
0
1
2
R1
1
1
12 fallos de página
Marcos de página
1
1
7
0
7
1
0
7
7
1
0
72
0
2
1
2
3 0
2
3
0
0
2
3
2
4
1
3
0
2
1
3
3
2
1
0
3 4
3
0
2
3
0
4
3
2
4
0
2
4
0
2
3
2 0
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
Algoritmo según el uso no tan reciente
- En este método cada página contiene 2 bits que permite decidir cual página desalojar:
- R (bit solicitado): Se enciende cuando se realiza un acceso a esta página
- M (bit modificado): Se enciende cuando se escribe en la página.
- Se establecen así 4 clases de acuerdo al valor de los bits:
- Clase 0: No solicitado, No Modificado
- Clase 1: No solicitado, Modificado
- Clase 2: Solicitado, No Modificado
- Clase 3: Solicitado, Modificado
- El algoritmo escoge una página partiendo desde las con clase menor.
- El sistema operativo en cada interrupción de reloj cambia el estado del bit R, para poder identificar cuales páginas son accedidas constantemente durante el quantum.
54
NRU - Ejemplo
(0,0)a7
(1,0)c2
(0,1)d2
(1,0)b3
(1,1)b1
(0,0)d5
(1,0)a2
(1,1)c4
(0,0)a8
(0,1)a3
(0,0)b4
(1,1)d7
(1,1)a5
(1,0)d9
(0,1)c6
(0,0)d8
Clase 0 = {a7,d5,a8,b4,d8}
Clase 1 = {d2,a3,c6}
Clase 2 = {c2,b3,a2,d7}
Clase 3 = {b1,c4,d9,a5}
Sistemas Operativos
Diaz Muñante Jorge 10
Ejemplo NRU
Pag Bit R Bit M
0 0 0
1 0 0
2 0 0
3 0 0
Estado de la tabla de páginas en t0
Quantum
Pag Bit R Bit M
0 1 1
1 1 0
2 0 0
3 1 1
Estado de la tabla de páginas en t1
Durante el siguiente cuantum se hacen accesos a las páginas 0 y 1, luego se pide la página 4 que no esta presente y se provoca un Page Fault.
El SO apaga todos los bits R para poder determinar cuales de las páginas han sido ocupadas
Pag Bit R Bit M
0 0 1
1 0 0
2 0 0
3 0 1
Estado de la tabla de páginas en t2
QuantumPag Bit R Bit M
0 1 1
1 1 0
2 0 0
3 0 1
Estado de la tabla de páginas en t3
Durante el quantum se acceden las páginas 0, 1 y 3; y se escribe en las 0 y 3
Será desalojada
56
Algoritmo LRU
OptimoFuturo mas
lejano
Ejecuciónreemplazo
p3 p4 p1 p2
FIFOPasado mas
lejano
p3 p4
LRUPasado mas
reciente
Algoritmo de la menor uso reciente (LRU)
� Páginas uso frecuente en las últimas instrucciones se utilizan con cierta probabilidad en las siguientes.
� Es probable que las páginas que no hayan sido utilizadas durante mucho tiempo permanezcan sin uso por bastante tiempo.
� Esto induce al siguiente algoritmo:
� al ocurrir un fallo de página se elimina la página que no haya sido utilizada durante el tiempo más grande.
� LRU: realizable en teoría, no es barato.
� Implementación: necesario mantener una lista de todas las páginas en memoria, en donde la página de uso más reciente este al pri ncipio de la lista y la de uso menos reciente al final.
� Dificultad:
� la lista debe actualizarse en cada referencia a
� la memoria.
� Busqueda de la página en la lista, su eliminación y posterior traslado al frente de la misma NO puede ser una operación muy lenta.
58
Algoritmo LRU
Cadena de referencia
Marcos de página
021
1
7
0
7
1
0
7
7
1
0
72
0
2
1 3 3
0
2
4
2 2
3
0
2
3
0
2
3
11 fallos de página
3
0
2 4
3
32
0
2
0 3
40 0
2
3
1
0
2
0
4
3
4 1
3
2
30
1
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
Requiere de un contador de 64 bits, C, en hardware. se incrementa en forma automática después de cada
instrucción.
Cada entrada en tabla de páginas debe contener espa cio necesario para almacenar el contador.
Después de cada referencia el valor actual de C se almacena en la entrada de la tabla de páginas correspondiente a la página a la que se hizo referencia.
Fallo de página:=> S.O. examina todos los contadores de la tabla
de páginas y elige el mínimo, (i.e. página de uso m ás reciente).
1a. Solución: caso más sencillo
Valor inicial cont = 0;
P0 P1 P2 P3
1 0 0 0
P0 P1 P2 P3
1 2 0 0
P0 P1 P2 P3
1 2 0 3
P0 P1 P2 P3
1 4 0 3
Página más recientemente usada: P 1, (cont = 4)Página menos usada: P 2 , (cont = 0)
cont = 1;
cont = 2;
cont = 3;
cont = 4;
Ejemplo solución
Sistemas Operativos
Diaz Muñante Jorge 11
Máquina con n márcos para página, hardware LRU puede matriz de n x n , matriz inicializada en cero.
Referencia al marco khardware primero activa todos los bits del renglón k desactiva después todos los bits de la columna k.
En cualquier instante: renglón con valor binario mínimo es de uso menosfrecuente, renglón con el siguiente valor más peque ñoes el segundo de uso menos reciente, etc.
2a. Solución: caso más sencillo Ejemplo de LRU con uso de una matriz
0 1 2 30 0 1 1 11 0 0 0 02 0 0 0 03 0 0 0 0 (a) (b) (d) (d)
0 1 2 30 0 0 1 11 1 0 1 12 0 0 0 03 0 0 0 0
0 1 2 30 0 0 0 11 1 0 0 12 1 1 0 13 0 0 0 0
0 1 2 30 0 0 0 01 1 0 0 02 1 1 0 03 1 1 1 0
(d) (f) (g) (h)
0 1 2 30 0 1 1 01 0 0 1 02 0 0 0 03 1 1 1 0
0 1 2 30 0 1 1 11 0 0 1 12 0 0 0 13 0 0 0 0
0 1 2 30 0 0 0 01 1 0 1 12 1 0 0 13 1 0 0 0
0 1 2 30 0 0 0 01 1 0 0 02 1 1 0 13 1 1 0 0
(i) (j)
0 1 2 30 0 1 0 01 0 0 0 02 1 1 0 13 1 1 0 0
0 1 2 30 0 1 0 01 0 0 0 02 1 1 0 03 1 1 1 0
Máquina con cuatro márcos, con referencias a las páginas en el orden: 0, 1, 2, 3, 2, 1, 0, 3, 2, 3
Después hacer referencia a la página 0 tenemos la situación siguiente:
63
Bancos libres en memoria
�Banco (pool) de marcos libres para poder leer inmediatamente las paginas fallidas, antes de haber escrito a disco la victima.
�Sustitución y mantenimiento de páginas limpias
– Cuando el disco está inactivo
�Se sustituyen las páginas limpias que no hay que escribir en disco.
– Periódicamente se buscan páginas para limpiar
�Utilizado en VAX-VMS como complemento al método FIFO.
�Linux desaloja paginas victimas antes de que se llene la memoria real.
64
• Se basa en la localidad
• Formado por las páginas recientemente accedidas
• Las páginas en uso se encuentran en el CdT
• El conjunto de trabajo varía con el tiempo
Número de páginas del almacenamiento
primario asignadas al proceso
Tiempo
Modelo del conjunto de trabajo
Modelo de conjunto de trabajo� Evolución del conjunto de trabajo
t
nº d
e pá
gina
s en
con
junt
o tr
abaj
o
Arranque en frío
Inicio nueva fase
Olvido de páginas de fase anterior
EstabilizaciónInicio nueva fase
Olvido de páginas de fase anterior
Estabilización
Estabilización
66
• El verdadero CdT lo forman las páginas que deben estar en el almacenamiento primario para la ejecución eficaz del proceso
• W = tamaño de la ventana del CdT
• ¿Cómo afecta el tamaño de W?
tt-w
w Tiempo de ejecución de un proceso
Las páginas referenciadas por el proceso durante
este intervalo constituye el conjunto de trabajos
W(t,w), del proceso
¿Cómo determinar el CdT?
Sistemas Operativos
Diaz Muñante Jorge 12
67
Ejemplo
�Ventana de 10 referencias
– Tamaño de conjunto de trabajo = 4
WS(t1,10) = {1, 2, 5, 7}2 1 5 7 7 7 7 7 5 1 6 2 9 3 7
68
Asignación global vs local
� Reemplazo global
– el marco a reemplazar se selecciona entre todo el conjunto de marcos
� Reemplazo local
– el marco a reemplazar se selecciona solo de su propio conjunto del proceso.
69
Desventajas global vs local
� Reemplazo global
– un proceso no puede controlar su propia tasa de fallos de paginas.
– No depende solo del comportamiento del proceso sino de todos.
� Reemplazo local
– impide a un proceso tener acceso a otras paginas no usadas.
� Por lo general el global brinda una mayor productividad.
70
Asignación de marcos
�¿cómo asignamos una cantidad fija de marcos a los distintos procesos?
�Se dispone de 93 marcos y llegan 02 procesos
–¿cuántos marcos obtiene cada proceso?
71
Algoritmos de asignación de marcos
� Asignación equitativa
– 93 marcos libres y llegan 05 procesos
– cada proceso recibira 18 marcos. Los 03 sobrantes son deposito de libres.
72
Algoritmos de asignación de marcos … cont
� Asignación proporcional
– px = tamaño del proceso x
– S = ∑ px
– ml = numero de marcos libres
– formula mpx=px / S * ml
– 62 marcos libres, p1 = 10k y p2 = 127k
– mp1 = 10 / 137 * 62 = 4 aprox.
– Mp2 = 127 / 137 * 62 = 57 aprox.
Sistemas Operativos
Diaz Muñante Jorge 13
73
Algoritmos por prioridades
� En un esquema de asignacion proporcional por “tamaño” nos podríamos basar en la “prioridad”.
� Permitir que un proceso de alta prioridad reemplace paginas de otro proceso de baja prioridad.
– El numero de marcos de un proceso de alta prioridad aumentaría en perjuicio de otro de baja prioridad.
74
Algoritmos de asignación de marcos
� Consideraciones
– en ambas técnicas puede variar dependiendo del nivel de multiprogramacion
– Si aumenta el nivel, cada proceso perdera algunos marcos para proporcionar a los nuevos.
– Si disminuye el nivel, los marcos liberados se distribuye entre los restantes.
Paginas Pequeñas
� Tabla de Paginas
� Fragmentación interna
Ej: Proceso de 25kb
Pagina = 2kb
T. Pag = 13 entradas
Pagina = 4kb
T. Pag = 7 entradas
Pagina = 1kb
T. Pag = 25 entradas
7 Páginas de 4Kb
Desperdicio: 3kb
13 Páginas de 2Kb
Desperdicio: 1kb
25 Páginas de 1Kb
Desperdicio: 0kb76
Procesador Tamaño Niveles Espacio
de página de paginación de usuario
Alpha 8 kb 3 4 Tb
ARM 26 bit 16 ó 32 Kb 2 Hasta 26 MB
ARM 32 bit 4 Kb 2 3 GB
IA64 4, 8, 16 ó 64Kb 3 10Exab
M68000 4 Kb 3 224MB
M68000 SUN3 8 Kb 2 3,75 Mb
MIPS 4 Kb 2 2 Gb
MIPS64 4 Kb 3 1 Petab
PARISC 4 Kb 2 ó 3 3 Gb
PowerPC 4 Kb 2 2 Gb
S390 4 Kb 2 2 Gb
SH 4 Kb 2 1,984 Mb
Sparc 4 Kb 3 3,75 Mb
Sparc SUN4 8 kb 3 3,75 Mb
Sparc 64 8 kb 3 16 Exab-16Gb
X86 4 Kb 2 ó 3 3 Gb
Linux
77
Hiperpaginacion
� La tasa de fallos de página es tan alta que el proceso pierde más tiempo cargando páginas que ejecutando.
� Si se produce vapuleo en todos los procesos el sistema queda parado.
� Solución
– no superar cierto grado de multiprogramación.
– proporcionar a cada proceso las páginas que necesita en cada momento.
78
Hiperpaginación
1
Sacar la paginavictima
2
Introducir lapagina deseada
victima
M.Real
mnueva
Es muyintensa
Sistemas Operativos
Diaz Muñante Jorge 14
79
Hiperpaginacion
Numero de procesos activos
Nivel de multiprogramación
Qué ocurre aquí?
%U
tiliz
ació
n de
CP
U o
Pro
duct
ivid
ad (
reqs
/seg
s)
- Paginación = espacio direcciones unidimensional, (0..max)
- Dotar máquina de varios espacios independientes de direcciones, desde 0 hasta cierto máximo.
- Los distintos segmentos pueden tener longitudes distintas.
- La longitud de cada segmento puede ser distinta
- La longitud de un segmento puede variar durante su ejecución
- Acceso se hace en dos partes: número de segmento y unadirección dentro de este
- Un segmento puede tener la protección adecuada para el tipo de objeto almacenado
La segmentación
81
Espacio de direcciones virtuales
En un espacio unidimensional de direcciones con tablas crecientes, una tabla puede encimarse con otra
Tabla de simbolos
Texto fuente
Llamadas a la pila
Tabla de constantes
árbol léxico
La t.simboloschoco contra la
texto fuente
82
Tab.Simb
Txtfuente
Cons-tan-tes
Arbollexic.
pila
0k
4k
8k
12k
16k
20k
24k
0k
4k
8k
12K
16k
0k
4k
8k
12K
16k
0k
4k
8k
12K
16k
20k
0k
4k
Seg0 Seg1 Seg2 Seg3 Seg4
Una mem. Segmentada permite a cada tablacrecer o encogerse con independencia
Proceso
Ejemplo de segmentacion
MMU
STBR
STLR
Base
Limit
OtrosTab de
Segmento
Seg 1(cod.) Seg 2
(datos)Seg 3(pila)
Memoria virtual
Segment # OffsetDireccion virtual
Fallo accesoA la mem
no
MemoriaFisica
Seg 2(datos)
Seg 1(cod.)
Seg 3(pila)
0x00
Como pagina:valida, modific.,
proteccion, etc.
offset <limite ?
Fragmentacion
Externa
Segmento Base + OffsetDirección física
Si
Espacio direcciones virtuales de P 1
Editor
segmento 0
datos 1segmento 1
Espacio direcciones virtuales de P 2
Editor
segmento 0
datos 2segmento 1
limite base0 25286 430621 8550 90003
Tabla Segmentos P 2
limite base0 25286 430621 4425 68348
Tabla Segmentos P 1
43062
68348
72773
Memoria Virtual
90003
98553
editor
datos 1
datos 2
Compartiendo Segmentos
Sistemas Operativos
Diaz Muñante Jorge 15
Segmentada + Paginada
86
0k
4k
8k
12k
16k
20k
24k
0k
4k
8k
12K
16k
0k
4k
8k
12K
16k
0k
4k
8k
12K
16k
20k
0k
4k
Seg0 Seg1 Seg2 Seg3 Seg4
Segmentada + Paginada
Proceso
87
Proceso120k
Segmento 040k
Segmento 110k
Segmento 270k
p0 p1
p0 p1
p0 p1
88
Caso de estudio: Linux
� Niveles de tablas en Linux
Nivel 1 Nivel2 Nivel3 Desplazamiento
#Página #Página
#Página
PGD
Tabla de páginas
Tabla de páginas
Tabla de páginas
Páginafísica
89
Caso de estudio: Linux
Memoria virtual
del proceso
vm_area_struct
Datos
Operaciones de memoria virtual
open ( )close ( )
swapout ()swapin ( )
vm_endvm_startvm_flagsvm_inodevm_ops
vm_next
vm_endvm_startvm_flagsvm_inodevm_ops
vm_next
vm_area_structcountpgd
mmap
Código
mm_struct
task_struct
mm
90
Caso de estudio: Linux
Marco 1Marco 2
Marco 0
Marco 3Marco 4
Memoria física
Marco 5
Libre
Libre
Libre
Libre
Libre
Marco 6Marco 7Marco 8
count
age
map_nr= 70
mem_map_tcount
age
map_nr= 4
mem_map_t
3
2
4
1
0
free_area
count
age
map_nr= 0
mem_map_t
map
Sistemas Operativos
Diaz Muñante Jorge 16
91
Caso de estudio: Linux
Apertura y proyección del programa sobrelas áreas de memoria virtual del proceso
Fallo de página
¿Acceso legal?
Fallo de página legal
¿Entrada vacía en la TP?
Acceso ilegal.Enviar señal SIGSEV alproceso
¿Dirección legal?
No
No
Sí
Traer páginadesde elarchivo en disco
Sí
Traer páginadesde elárea de intercambio
No
Paginaciónbajo
demanda
92
Caso de estudio: Linux
�Gestión del área de intercambio:
– Un demonio de intercambio (kswapd) se encarga de mantener suficientes marcos libres
– kswapd se ejecuta como un hilo del núcleo activándose en el arranque del sistema
– kswapd cada segundo comprueba si el número de marcos libres es demasiado bajo. Si es así, busca marcos que puedan ser descartados o sustituidos
– Algoritmo implementado en el demonio: algoritmo de aproximación al LRU con envejecimiento
93
Caso de estudio: Linux
�Técnica de envejecimiento de páginas:
– Al asignar un marco de página se le asocia por defecto edad 3
– Las páginas rejuvenecen al acceder a ellas (edad+3 hasta un máximo de 20)
– Cada vez que se ejecuta kswapd envejece las páginas en 1 si no se usan
– Las páginas víctimas para los intercambios se eligen de entre las páginas viejas (edad 0) y modificadas
– En función de la operación vm_ops->swapout de la región de memoria (vm_area_struct), la página víctima se lleva a disco.
94
Caso de estudio: Linux
– Si una página modificada se lleva a disco:� su entrada en la tabla de páginas se marca como inválida
� se incluye la información para su recuperación posterior y
� se libera, añadiéndola en la free_area
– Las páginas no modificadas no se sustituyen:� se descarta su contenido
� se marcan como libres, añadiéndolas en la free_area
– Si se recuperan suficientes páginas del proceso seleccionado, el demonio dormirá de nuevo
– Si no se liberan suficientes páginas del proceso actual, se continúa con el siguiente proceso
– El demonio empezará en la página siguiente en una nueva activación
95
Caso de estudio: Linux
Página 0
Página 1
Página 2
Página 3
Página 0
Página 1
Página 2
1
2
0
Tabla de páginas ABV BR BM
1 01 1
1 0
0 0
Tabla de páginas B
Proceso A
Proceso BBV BR BM
0 0
3
41 0
1 0
Página 0
Página 1
Página 3
Página 1
Página 2
Memoria física
Marco 0
Marco 1
Marco 2
Marco 3
Marco 4
Marco 5
96
Caso de estudio: Linux
Página 0
Página 1
Página 2
Página 3
Página 0
Página 1
Página 2
1
x
0
Tabla de páginas ABV BR BM
1 0
0 1
1 0
0 0
Tabla de páginas B
Proceso A
Proceso BBV BR BM
0 0
3
0 0
1 0
Página 0
Página 1
Página 3
Página 1
Memoria física
Edad de los marcos de página
7 9 0 3 0
0 1 2 3 4֠֠֠֠ kswapd
swap
1
x
2
1
0 2 4
free_area
Sistemas Operativos
Diaz Muñante Jorge 17
97
Caso de estudio: W2K / XP
� El gestor de memoria virtual de W2k utiliza un algoritmo de reemplazo de páginas local tipo FIFO y paginación por demanda
� La política de reemplazo sustituye la página más antigua del conjunto de páginas del proceso que causó el fallo
� Conjunto de trabajo (WS): número de páginas que el proceso tiene garantizadas en memoria mientras se está ejecutando
Páginas nuevas Páginas antiguasConjunto
de
trabajo98
Caso de estudio: W2K / XP
�Al crearse un proceso se le asigna un tamaño mínimo del WS
�El gestor varía el tamaño de los WS de los procesos según los requirimientos de memoria:
– Incrementa la memoria libre del sistema (recorte automático del WS) de un proceso si su tamaño es mayor que el mínimo
– Incrementa el tamaño del WS hasta un máximo si el proceso genera fallos de página y la memoria no está demasiado llena
– Si el proceso requiere más páginas, se eliminan páginas de su WS empleando el algoritmo FIFO
99
Caso de estudio: W2K / XP
�Las páginas eliminadas del WS pueden volver a él rápidamente sin realizar lectura del disco
�Permanecen en memoria en uno de estos estados:
– Standby: el proceso utiliza el marco de página pero ha sido eliminado del WS
– Modificado: = Standby pero el proceso ha escrito en la página sin actualización de disco
Conjunto de trabajo
lista de páginas en standby o modificadas
100
Caso de estudio: W2K / XP
Lista demarcos
Standby
Escritor de marcos
modific.
Lista demarcos Modific.
Lista de
marcos libres
WS
de
procesos
Hilode marco
Cero
Lista de
marcos Cero
Lista de marcos erróneos
Fallosde
página “soft”
Sustitución en el WS
Finaliza el proceso
Lectura de página del disco o núcleoFallo de páginacero