Este documento trata sobre los sistemas operativos y la memoria virtual. Explica conceptos como la paginación, las tablas de páginas, los fallos de página y las estrategias para administrar la memoria virtual como la obtención, colocación y reemplazo de páginas. También describe cómo se traduce una dirección virtual a una dirección física mediante las tablas de páginas.
Sistemas Operativos: Memoria Virtual y Organización
1. Sistemas Operativos
Organización de la Memoria
Memoria Real Memoria Virtual
Sistemas Operativos Profesor:
Your picture here Un solo Multiprogramación
Ciclo 2012-1 Diaz Muñante Jorge proceso
Multiprogramación
Particiones
Particiones fijas
variables
Segmentada
Administración de la Memoria Virtual 1 Colas
Varias
colas
Paginada Segmentada + Paginada
Antecedentes Actividad de los procesos
Particiones Particiones Manejo de errores
Fijas Variables
Fragmentación Fragmentación :: :: :: :: :: :: :: :: :: ::
Interna Externa
E1 E2 E3 E4 E5 E1 E2 E3 E4 E5
Tamaño del Tamaño del
E6 E7 E8 E9 E10 E6 E7 E8 E9 E10
proceso limitado proceso limitado
por el tamaño de por el tamaño de E11 E12 E13 :: :: E11 E12 E13 :: ::
la partición la memoria real
:: :: :: :: :: :: :: :: :: ::
Asignación de Memoria
En la practica rara vez se presentan todos los
Tamaño total del proceso
errores en una misma ejecución.
4
Actividad de los procesos Actividad de los procesos
Manejo de tablas, vectores u otra estructura de datos
Software base: Editor de texto
:: :: :: :: :: :: :: :: :: ::
:: :: :: :: ::
V1 V2 V3 V4 V5 V1 V2 V3 V4 V5
Conversión de
V6 V7 V8 V9 V10 V6 V7 V8 V9 V10 Minusculas a
V11 V12 V13 V14V15 V11 V12 V13 V14V15 Mayusculas
:: :: :: :: :: :: :: :: :: ::
:: :: :: :: ::
En la practica solo usamos pocos elementos de las
En la practica usamos rara vez esta opción
estructuras de datos.
Ejm: Vector (100x100) y usamos solo (10x10)
5 6
Diaz Muñante Jorge 1
2. Sistemas Operativos
Principio de localidad Premisa
Referencias repetidas No se requiere que un proceso este almacenado en la memoria principal
initializacion Inicio del Fin del en forma completa
Cod. 1 Cod. 2 datos
datos codigo codigo Ventajas
Saltos esporadicos
– No hay limite para el tamaño de los procesos
working set: Fase inicial del Fase final del Fase Principal
proceso proceso del proceso – Aumenta el numero de procesos en memoria
– Disminución de las Operaciones e/s
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.
7 8
Memoria Virtual Jerarquía de Memoria
Es la separación de la memoria lógica del usuario de la memoria física Memoria Cache: Memoria real Memoria Virtual
Ilusion de una Costo razonable Ilusion de una memoria
memoria muy pero velocidad de gran tamaño
rapida intermedia
• Una gran memoria virtual cuando solo se dispone de una Virtual
memory
memoria física mas pequeña
Main memory
Cache
Registers
Words
Lines
(transferred Pages
explicitly (transferred
via load/store) automatically (transferred
upon cache miss) automatically
upon page fault)
9 10
La memoria virtual La paginación
La ilusión de la memoria infinita
- Consiste en dividir el espacio de direcciones virtual en unidades de
tamaño invariante llamadas páginas.
∞
TLB
Proceso A Proceso A
Tabla
Pagina
Memoria Disco
Memoria 500GB - Los marcos de página son la correspondencia de una página en la
Fisica
Virtual 1 GB memoria física, es decir, el espacio en la RAM donde realmente esta
4 GB 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.
Paginada Segmentada Segmentada Marco de
+ Paginada Página
Proceso A RAM
Página
Diaz Muñante Jorge 2
3. Sistemas Operativos
Memoria Virtual con paginas Configuracion de la memoria virtual
Continuidad Artificial
Pag 0 Marco 0
Pag 1 Marco 1
Pag 2 Marco 2 Memoria
Memoria real
Virtual Pag 3 Marco 3
Pag 4 Marco 4
Pag 5 Marco 5
Pag 6
Espacio de direcciones
Pag 7 4k reales
Espacio de direccionamiento
lógico 13 14
Memoria Virtual Estatica / Dinamica Tabla de Paginas
Memoria Secundaria
Principal (Disco Duro) Memoria
Virtual de Sistema Operativo
Proceso P
Tabla de
Página 0 Páginas de P Memoria Física
Página 1 Página 0 Marco 2 Principal (RAM)
0 1 2 3
Página 2 Página 1 Marco 0
Página 3 Página 2 Sistema
No está
Operativo
4 5 6 7 … Página 3 No está
P0 P1 P2 Página 4 Marco 6 Marco 0 Página 1
(direcciones lógicas)
8 9 10 11 … No Marco 1 Libre
están Marco 2 Página 0
P3 P4 P5 P6
(direcciones Físicas)
Marco 3 Libre
Página n- Marco 5
. 1 Marco 4 Página n
.
Página n Marco 4 Marco 5 Página n-1
.
Lista de Marco 6 Página 4
32 33 34 35 Marcos Libres
… Libres
Pn-1 Pn Marco 1
. Marco 3
Marco m Libre
.
Marco 7
.
… … D-1 D Página n …
Marco m
15 16
Fallo o falta de pagina Falla o falta de Pagina
La pagina esta en
El proceso trata de usar una pagina que no esta en memoria real. Sistema 3 memoria auxiliar
Pasos: operativo
– 1. Referencia a una pagina, verifica su bit de
2 Trampa
validez (esta invalida = i)
Cargar 1
Referencia Memoria
– 2. Ocurre una trampa M
Física
– 3. SO busca un marco libre
i
– 4. Lleva la pagina del disco a la memoria
6 Reinicia la libre
– 5. Actualiza la tabla de paginas instrucción Tabla de
paginas 4 Carga la
– 6. Reinicia la operación pagina
5 Restablece
17 tabla de pag.
18
Diaz Muñante Jorge 3
4. Sistemas Operativos
Estructura tabla de páginas Compartiendo paginas
Direcion Virtual # Pag Offset
r w x v re m s c su pid g gd other
otros Marco # (Proceso A):
PageTablePtrA pag #0 V,R
r Read (lectura) s Shared-compartida
pag #1 V,R
w Write (escritura) c caching
page #2
pag V,R,W
x Execute su super-pagina pag #3 V,R,W
Pagina
(ejecucion)
v valida pid process id pag #4 N
compartida
re referenciada g (extended) guard pag #5 V,R,W
m modificada gd guard data PageTablePtrB pag #0 V,R
pag #1 N
caching: páginas asociadas a registros de dispositivos pag #2 V,R,W Esta pagina fisica
referenciada: 1 cuando se hace una referencia a una página pag #3 N aparece en los 2
procesos
para leer o escribir page #4
pag V,R
V,R
modificada: recuperación marco, si página no ha sido pag #5 V,R,W
modificada no se escribe a disco
Valida o : 1 entrada valida y puede ser utilizada Direccion Virtual: # Pag Offset
Process B
presente/ausente 0 página no cargada en memoria 20
Traduccion de Direcciones Traduccion de direcciones
Memoria Real
Pagina # Memoria Real
0 1 2 3 4 5 6 7
Desplazamiento
“d” 2k d
DR instruccion Direccion Real = (5,10)
Instruccion DV Memoria Virtual
¿? 0 1 2 3 4 5 6 7
d
Direccion Virtual = (3,10)
Dir.Virtual=(# pag, d) <traducir> Dir.Real =(# mar,d)
21 22
Traduccion de direcciones Traduccion de direcciones
Registro base
Tab.Pag Dirección virtual
a Pagina p Desplazamiento Dirección virtual
d Page # d marco # d
a
+ a a
p + p d marco
a+p + b+d
b b
Dirección
Tabla de real Tabla de
paginas Programa paginas Memoria
física
23 paginación
24
Diaz Muñante Jorge 4
5. Sistemas Operativos
Tablas de 02 Niveles Tabla de 2 niveles
Direccion Marco
10 bits 10 bits 12 bits fisica: Page # Offset
Direccion P1 index P2 index Offset
virtual:
Dirección virtual
4KB
p1 p2 d
PageTablePtr
Dirección
real
4 bytes
m d
Arbol de tablas
Tablas tam. fijo (1024
entradas)
m
Tabla de 1er nivel Tablas de 2do nivel 4 bytes
25 26
Memoria asociativa Traduccion de direcciones
Memoria especial - TLB
– (Translation Look-aside Buffers)
Dirección lógica
– acceso rápido: . 10-20% del tiempo de acceso a memoria
p d
– pequeño tamaño: 64-1024 entradas
pagina marco
– solo contiene parte de la Tabla de Páginas acierto
m d
Memoria de acceso por contenido
– Se compara con todas las páginas disponibles a la vez Dirección
TLB real
– Si la página buscada no está hay que buscarla en la Tabla de Páginas
en memoria principal falla
m
– 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 Tabla de
consecutivas 27 paginas
28
Estrategias de Administración Estrategias de Administración
Estrategia de Obtencion: Determinan cuándo se debe cargar una página Estrategia de Colocacion:
en memoria
Determinan en donde 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
29 30
Diaz Muñante Jorge 5
6. Sistemas Operativos
Estrategias de Administración Reemplazo de Pagina
Estrategia de Reemplazo:
¿ Qué página se reemplaza en memoria principal cuando marco b.validz M.Real Sacar la pagina
victima
se debe cargar otra y no hay espacio para ella? Cambiar a
invalido
2 1
m0
/ vi
/
m
m v victima
nueva
4
Cambiar la tabla 3
Tabla de para la nueva
paginas pagina
Introducir la
pagina deseada
31 32
Algoritmo Optimo Algoritmo optimo
Cada página se va a etiquetar con:
Número de instrucciones antes de hacer la
1a. referencia a dicha página p3 p1 p2
Principio algoritmo:
eliminar página con la máxima etiqueta. 5 inst
10 inst.
30 inst.
Página 1 Página 2 Página 3
Etiqueta: 10 Etiqueta: 30 Etiqueta: 5 Ejecución
reemplazo
34
Algoritmo Optimo Algoritmo pésimo
¿cuál pagina involucra la peor decisión de reemplazo?
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
7 7 7 2
7 2 2 2 2 2 2 2 2 2 2 2 2
0 0 0 0 0 0 4
0 4 4 0
4 0 0 0 0 0
Marcos de página
1 1 1 3
1 3 3 3 3 3 3 3 3
1 1 1
7 1 0 4 3
8 fallos de página
35 36
Diaz Muñante Jorge 6
7. Sistemas Operativos
Algoritmo FIFO 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
p3 p4 p1 p2 la primera página la más antigua y la última la más reciente.
FIFO Optimo En un fallo de página se elimina la primera página y se
Pasado mas lejano Futuro mas lejano añade la nueva al final de la lista.
FIFO es muy pocas veces usada en su forma más pura.
Ejecución
reemplazo
37
Algoritmo FIFO Algoritmo FIFO
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
primera P1 P2 P3 P4 P5
P6
7 7 7 2
7 2 2 2 4
2 4 4 0
4 0 0 0 0 0
última
P3 0 0 0 0 3
0 3 3 2
3 2 2 2 2 1
2 1 1
Marcos de página
P4 1 1 1 1 0
1 0 0 3
0 3 3 3 3 2
3 2
siguiente P5
P6
P1 7 0 1 2 3 0 4 2 3
P2
12 fallos de página
40
Algoritmo FIFO No paginado
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
Diaz Muñante Jorge 7
8. Sistemas Operativos
Algoritmo de la Segunda Oportunidad
FIFO/3 Marco 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3 Modificación simple de FIFO
Marcos 0
1 evita deshacerse de una página de uso frecuente
2
inspeccionando el bit R de la página más antigua.
FIFO/4 Marco 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3 si (R = 0) => página antigua y no utilizada
marcos 0 se reemplaza en forma inmediata
1
2 si (R=1) => el bit se limpia
3 la página se coloca al final de la
lista, su tiempo de carga se
actualiza
43
Algoritmo de la Segunda Oportunidad Algoritmo de Reemplazo de Reloj
En FIFO la
Mantener páginas en una lista circular con forma de reloj.
Página 1 saldría Una manecilla apunta hacia la página más antigua.
Orden de entrada a la memoria
0 A
Pág 1 1 Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 L B
Se mira la primera página (la más vieja).
Tiene su bit de uso en 1, por lo tanto se le da K C
otra oportunidad. Se setea en cero R, y se
pasa a la cola 0
Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0 J D
Idem al caso anterior
I E
Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0 Pág 2 0
H F
G
Al encontrarse una página con el bit en cero,
se escoge para desalojo.
Al ocurrir un fallo de página se inspecciona la página a la que apunta la
manecilla.
En el caso de que todas las páginas hayan
tenido el bit de uso en cero, este algoritmo
Si bit R = 0 => página se retira de memoria, se inserta nueva página en
degrada en FIFO. su lugar en el reloj manecilla avanza una posición
Esto continua hasta encontar una página con R = 0.
Ejemplo de uso: Solaris
Ejemplo: Algoritmo de Reemplazo de Reloj Ejemplo: Algoritmo de Reemplazo de Reloj
Estado del buffer justo antes n 0 Estado del buffer justo antes n 0
de un reemplazo de un reemplazo
Pag 9 Pag 19 1 Pag 9 Pag 19 1
uso = 1 uso = 1 uso = 1 uso = 1
Pag 1 Pag 1
. uso = 0 . uso = 0
. 2 . 2
Puntero al Pag 45 Puntero al Pag 45
marco siguiente uso = 1 marco siguiente uso = 0
. .
Pag Pag
Pag 222 Pag 191 727 Pag 222 Pag 191 727
uso = 0 uso = 1 3 uso = 0 uso = 1 3
8 8
Pag 33 Pag 556 Pag 33 Pag 556
uso = 1 uso = 0 uso = 1 uso = 0
Pag 67 Pag 13 4 Pag 67 Pag 13 4
7 7
uso = 1 uso = 0 uso = 1 uso = 0
6 5 6 5
Diaz Muñante Jorge 8
9. Sistemas Operativos
Ejemplo: Algoritmo de Reemplazo de Reloj Ejemplo: Algoritmo de Reemplazo de Reloj
Estado del buffer justo antes n 0 Estado del buffer n 0
de un reemplazo después del reemplazo
Pag 9 Pag 19 1 Pag 9 Pag 19 1
uso = 1 uso = 1 uso = 1 uso= 1
Pag 1 Pag 1
. uso = 0 . uso = 0
. 2 . 2
Puntero al Pag 45 Puntero al Pag 45
marco siguiente uso = 0 marco siguiente uso = 0
. .
Pag
Pag 222 Pag 191 727 Pag 222 Pag 191
uso = 0 uso = 0 3 uso = 0 uso = 0 3
8 8
Pag 33 Pag 556 Pag 33 Pag 727
uso = 1 uso = 0 uso = 1 uso = 1
Pag 67 Pag 13 4 Pag 67 Pag 13 4
7 7
uso = 1 uso = 0 uso = 1 uso = 0
6 5 6 5
Algoritmo del Reloj Algoritmo del reloj
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 Ejemplo: Cadena de referencia
0 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
7 7 7 2
7 2 2 2 4 4 4 4 3 3 3 3 0
7 7 7 2
7 2 2 2 4 4 4 4 3 3 3 3 0
0 0 0 0
Marcos de página 2
0 0 0 2 2 2 2 1 1 1
0 0 0 0 0 0 0 2 2 2 2 2 1 1 1
1 1 1 3
1 3 3 3 3 0 0 0 0 2 2 Marcos de página
1 1 1 1
3 3 3 3 3 0 0 0 0 2 2
7 1 2 0 3 4 2 0 3
7 1 2 0 3 4 2 0 3
R R R R R
7 1 7 0 7 0 7 0 2 1 R
0 1
0 1 0 1 0 0 0 0 0 0 12 fallos de página
1 1
1 1 1 1 1 1 1 0 1 0
2 1
51 52
Algoritmo según el uso no tan reciente NRU - Ejemplo
- 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: (0,0) (1,0) (0,1) (1,0) Clase 0 = {a7,d5,a8,b4,d8}
- Clase 0: No solicitado, No Modificado a7 c2 d2 b3
- Clase 1: No solicitado, Modificado Clase 1 = {d2,a3,c6}
- Clase 2: Solicitado, No Modificado (1,1) (0,0) (1,0) (1,1)
- Clase 3: Solicitado, Modificado b1 d5 a2 c4 Clase 2 = {c2,b3,a2,d7}
- El algoritmo escoge una página partiendo desde las con clase menor. (0,0) (0,1) (0,0) (1,1) Clase 3 = {b1,c4,d9,a5}
a8 a3 b4 d7
- 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.
(1,1) (1,0) (0,1) (0,0)
a5 d9 c6 d8
54
Diaz Muñante Jorge 9
10. Sistemas Operativos
Ejemplo NRU Algoritmo LRU
Pag Bit R Bit M Pag Bit R Bit M
0 0 0 0 1 1
Quantum
1 0 0 1 1 0
2 0 0 2 0 0
3 0 0 Durante el quantum se 3 1 1
acceden las páginas 0, 1 Estado de la tabla de páginas en t1 p3 p4 p3 p4 p1 p2
Estado de la tabla de páginas en t0 y 3; y se escribe en las 0
y3 El SO apaga todos los
bits R para poder
determinar cuales de las
Será desalojada páginas han sido FIFO LRU Optimo
ocupadas
Quantum
Pasado mas Pasado mas Futuro mas
Pag Bit R Bit M Pag Bit R Bit M
0 1 1 0 0 1
lejano reciente lejano
1 1 0 1 0 0
2 0 0 Durante el siguiente cuantum 2 0 0 Ejecución
3 0 1 se hacen accesos a las 3 0 1
páginas 0 y 1, luego se pide reemplazo
Estado de la tabla de páginas en t3 la página 4 que no esta Estado de la tabla de páginas en t2
presente y se provoca un
Page Fault.
56
Algoritmo de la menor uso reciente (LRU) Algoritmo 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 Cadena de referencia
permanezcan sin uso por bastante tiempo.
Esto induce al siguiente algoritmo: 7 0 1 2 0 3 0 4 2 3 0 3 2 1
al ocurrir un fallo de página se elimina la página que no haya sido utilizada durante 2 0
el tiempo más grande.
LRU: realizable en teoría, no es barato. 7 7 7 2
7 2 2 2 4
2 4 4 4
0 0 0 1
0 1 1
0 0 0 0 0 0 0 0 3
0 3 3 3 3 3 3
0
Implementación: necesario mantener una lista de todas las páginas en memoria, en donde Marcos de página
la página de uso más reciente este al pri ncipio de la lista y la de uso menos reciente al final. 1 1 1 3
1 3 3 2
3 2 2 2 2 2 2 2
Dificultad:
la lista debe actualizarse en cada referencia a
7 1 2 3 0 4 0 3
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. 11 fallos de página
58
1a. Solución: caso más sencillo Ejemplo solución
Requiere de un contador de 64 bits, C, en hardware. Valor inicial cont = 0;
se incrementa en forma automática después de cada
instrucción.
P0 P1 P2 P3 cont = 1;
1 0 0 0
Cada entrada en tabla de páginas debe contener espacio
necesario para almacenar el contador. P0 P1 P2 P3 cont = 2;
1 2 0 0
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 P0 P1 P2 P3 cont = 3;
que se hizo referencia.
1 2 0 3
Fallo de página: P0 P1 P2 P3 cont = 4;
=> S.O. examina todos los contadores de la tabla 1 4 0 3
de páginas y elige el mínimo, (i.e. página de uso más
reciente). Página más recientemente usada: P1, (cont = 4)
Página menos usada: P2 , (cont = 0)
Diaz Muñante Jorge 10
11. Sistemas Operativos
2a. Solución: caso más sencillo Ejemplo de LRU con uso de una matriz
Máquina con cuatro márcos, con referencias a las páginas en el orden:
Máquina con n márcos para página, 0, 1, 2, 3, 2, 1, 0, 3, 2, 3
hardware LRU puede matriz de n x n, Después hacer referencia a la página 0 tenemos la situación siguiente:
matriz inicializada en cero. 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0
Referencia al marco k 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0
2 0 0 0 0 2 0 0 0 0 2 1 1 0 1 2 1 1 0 0
hardware primero activa todos los bits del renglón k 3 0 0 (a)
0 0 3 0 0 (b)
0 0 3 0 0 (d)
0 0 3 1 1 1 (d)
0
desactiva después todos los bits de la columna k.
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0
En cualquier instante: 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0
renglón con valor binario mínimo es de uso menos 2 1 1 0 1 2 1 0 0 1 2 0 0 0 1 2 0 0 0 0
frecuente, renglón con el siguiente valor más pequeño 3 1 1 0
(d) 0 3 1 0 0 0
(f) 3 0 0 0 0
(g) 3 1 1 1 (h)
0
es el segundo de uso menos reciente, etc.
0 1 2 3 0 1 2 3
0 0 1 0 0 0 0 1 0 0
1 0 0 0 0 1 0 0 0 0
2 1 1 0 1 2 1 1 0 0
3 1 1 0 0
(i) 3 1 1 1 0
(j)
Bancos libres en memoria Modelo del conjunto de trabajo
• Se basa en la localidad
Banco (pool) de marcos libres para poder leer
inmediatamente las paginas fallidas, antes de haber escrito a • Formado por las páginas recientemente accedidas
disco la victima. • Las páginas en uso se encuentran en el CdT
Sustitución y mantenimiento de páginas limpias • El conjunto de trabajo varía con el tiempo
– Cuando el disco está inactivo Número de páginas del
almacenamiento
Se sustituyen las páginas limpias que no hay que escribir en primario asignadas al proceso
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 Tiempo
memoria real.
63 64
Modelo de conjunto de trabajo ¿Cómo determinar el CdT?
Evolución del conjunto de trabajo
Inicio nueva fase Inicio nueva fase • El verdadero CdT lo forman las páginas que
Estabilización Estabilización deben estar en el almacenamiento primario para
nº de páginas en conjunto trabajo
Arranque en frío la ejecución eficaz del proceso
Estabilización
w Tiempo de ejecución
t-w t de un proceso
Las páginas referenciadas por el proceso
durante
este intervalo constituye el conjunto de
trabajos
W(t,w), del proceso
t
• W = tamaño de la ventana del CdT
Olvido de páginas de
Olvido de páginas de • ¿Cómo afecta el tamaño de W?
fase anterior
fase anterior 66
Diaz Muñante Jorge 11
12. Sistemas Operativos
Ejemplo Asignación global vs local
Ventana de 10 referencias Reemplazo global
– Tamaño de conjunto de trabajo = 4
– el marco a reemplazar se selecciona entre todo el
conjunto de marcos
Reemplazo local
215777775162937 WS(t1,10) = {1, 2, 5, 7} – el marco a reemplazar se selecciona solo de su
propio conjunto del proceso.
67 68
Desventajas global vs local Asignación de marcos
Reemplazo global
¿cómo asignamos una cantidad fija de
– un proceso no puede controlar su propia tasa de marcos a los distintos procesos?
fallos de paginas.
Se dispone de 93 marcos y llegan 02
– No depende solo del comportamiento del proceso
sino de todos. procesos
Reemplazo local –¿cuántos marcos obtiene cada proceso?
– impide a un proceso tener acceso a otras paginas
no usadas.
Por lo general el global brinda una mayor productividad.
69 70
Algoritmos de asignación de marcos Algoritmos de asignación de marcos … cont
Asignación equitativa Asignación proporcional
– 93 marcos libres y llegan 05 procesos – px = tamaño del proceso x
– cada proceso recibira 18 marcos. Los 03 – S = ∑ px
sobrantes son deposito de libres. – 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.
71 72
Diaz Muñante Jorge 12
13. Sistemas Operativos
Algoritmos por prioridades Algoritmos de asignación de marcos
En un esquema de asignacion proporcional por “tamaño” nos podríamos Consideraciones
basar en la “prioridad”.
– en ambas técnicas puede variar dependiendo del
Permitir que un proceso de alta prioridad reemplace paginas de otro
proceso de baja prioridad. nivel de multiprogramacion
– El numero de marcos de un proceso de alta – Si aumenta el nivel, cada proceso perdera algunos
prioridad aumentaría en perjuicio de otro de baja marcos para proporcionar a los nuevos.
prioridad. – Si disminuye el nivel, los marcos liberados se
distribuye entre los restantes.
73 74
Procesador Tamaño Niveles Espacio
Paginas Pequeñas
de página de paginación de usuario
Ej: Proceso de 25kb Alpha 8 kb 3 4 Tb
ARM 26 bit 16 ó 32 Kb 2 Hasta 26 MB
Tabla de Paginas Pagina = 2kb Pagina = 1kb
Pagina = 4kb 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
T. Pag = 7 entradas T. Pag = 13 entradas T. Pag = 25 entradas
Linux PARISC 4 Kb 2 ó 3 3 Gb
Fragmentación interna PowerPC 4 Kb 2 2 Gb
S390 4 Kb 2 2 Gb
13 Páginas de 2Kb 25 Páginas de 1Kb
7 Páginas de 4Kb
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
Desperdicio: 3kb Desperdicio: 1kb Desperdicio: 0kb
76
Hiperpaginacion Hiperpaginación
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. M.Real Sacar la pagina
Solución victima
– no superar cierto grado de multiprogramación. 1
– proporcionar a cada proceso las páginas que m
necesita en cada momento. victima
nueva
Es muy
2 intensa
Introducir la
pagina deseada
77 78
Diaz Muñante Jorge 13