Professional Documents
Culture Documents
Mdulo 9
Departamento de Ciencias e Ingeniera de la Computacin
Universidad Nacional del Sur
Alocacin de Cuadros
Thrashing
Alocacin de la Memoria en el Kernel
Otras Consideraciones
Ejemplos
JRA 2009
Objetivos
Describir los beneficios de l sistema de memoria virtual
Explicar los conceptos de paginado por demanda,
algoritmos de reemplazo de pginas y alocacin de
cuadros de pginas
Discutir el principio del modelo de working-set
JRA 2009
Base
Memoria Virtual separacin de la memoria lgica del
usuario de la memoria fsica.
Solo parte del programa necesita estar en memoria
para su ejecucin.
El espacio de direcciones lgicas puede ser ms
grande que el espacio de direcciones fsicas.
JRA 2009
JRA 2009
JRA 2009
JRA 2009
Bit Vlido-Invlido
Se asocia a cada entrada a la tabla de pginas un bit vlido
invlido
(1 en memoria, 0 no en memoria)
Inicialmente el bit vlidoinvlido es puesto a 0 en todas las
entradas.
cuadro #
bit vlido-invlido
1
1
1
1
0
0
0
tabla de pginas
Durante la traduccin de la direccin, si el bit vlidoinvlido en la
entrada de la tabla de pginas es 0 falta de pgina.
JRA 2009
JRA 2009
Falta de Pgina
Si hay una referencia a una pgina, la primer
referencia hace un trap al SO falta de pgina
El SO mira la tabla para decidir:
Referencia Invlida aborto.
No est en memoria.
Toma un cuadro libre.
Lleva la pgina al cuadro.
Reestablece las tablas, bit de validacin = 1.
Reinicio de la instruccin:
Movimiento de bloque
locacin con auto incremento/decremento
JRA 2009
JRA 2009
JRA 2009
JRA 2009
Creacin de Procesos
La memoria virtual permite otros beneficios durante la
cracin de procesos:
Copy-on-Write
Archivos mapeados en memoria
JRA 2009
JRA 2009
Reemplazo de Pginas
Se previene sobrealocacin de memoria por modificacin de la rutina de servicio de falta de pginas para
incluir el reemplazo de pginas.
Uso del bit de modificado (sucio) para reducir la
sobrecarga de la transferencia de pginas solo las
pginas modificadas son escritas en disco.
El reemplazo de pginas completa la separacin entre
memoria lgica y memoria fsica puede ser provista
una gran memoria lgica en una pequea memoria
fsica.
JRA 2009
JRA 2009
Reemplazo de Pgina
1. Encontrar la locacin de la pgina deseada en el
disco
2. Encontrar un cuadro libre:
- Si hay un cuadro libre, usarlo
- Si no hay cuadro libre usar un algoritmo de
reemplazo de pgina para seleccionar el cuadro
vctima.
JRA 2009
10
Reemplazo de Pgina
JRA 2009
JRA 2009
11
Nmero de cuadros
Sistemas Operativos Memoria Virtual
JRA 2009
proceso)
1
4 4 4 5 5 5 5 5 5
2 1 1 1 1 1 3 3 3
3 3 2 2 2 2 2 4 4
1 1 5 5 5 5 4 4
2 2 2 1 1 1 1 5
3 3 3 3 2 2 2 2
4 4 4 4 4 3 3 3
4 cuadros
9 faltas de pginas
10 faltas de pginas
JRA 2009
12
Anomala de Belady
Nmero de cuadros
JRA 2009
Secuencia de referencia
Cuadros de pginas
JRA 2009
13
Algoritmo ptimo
Reemplace la pgina que no ser usada por un perodo
largo de tiempo.
Ejemplo con 4 cuadros
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1
1 1 1 1 1 1 4 4
2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
4 4 5 5 5 5 5 5
6 faltas de pginas
JRA 2009
Secuencia de referencia
Cuadros de pginas
JRA 2009
14
1 1 1 1 1 1 1 5
2 2 2 2 2 2 2 2
3 3 5 5 5 5 4 3
4 4 4 4 4 3 3 4
8 faltas de pginas
JRA 2009
Cuadros de pginas
JRA 2009
15
Pgina referenciada:
se
mueve al tope
Requiere
cambios de punteros
JRA 2009
Secuencia de referencia
stack
antes de a
JRA 2009
stack
despus de b
16
0
Cuando la pgina es referenciada el bit es puesto a 1.
Reemplace aquella en la cual es 0 (si existe). No se conoce el
orden.
Segunda oportunidad
Necesita el bit de referencia.
Reemplazo circular (Clock).
Si la pgina a ser reemplazada (en orden circular) tiene el bit
de referencia = 1 entonces:
Se pone el bit de referencia en 0.
Se deja la pgina en memoria.
Se reemplaza la siguiente pgina (en el orden circular),
sujeta a las mismas reglas.
JRA 2009
pginas
bits de
referencia
pginas
prxima
victima
JRA 2009
17
Algoritmos de Cuenta
Se mantiene un contador del nmero de referencias
que han sido hechas a la misma pgina.
Algoritmo LFU : reemplaza la pgina con la menor
cuenta.
Algoritmo MFU : basado en el argumento que la
pgina con la cuenta mas chica fue recien puesta y
todava tiene que ser usada.
JRA 2009
Alocacin de Cuadros
Cada proceso necesita un nmero mnimo de pginas.
Ejemplo: IBM 370 6 pginas para manejar la
instruccin SS MOVE :
JRA 2009
alocacin fija
18
Alocacin Fija
Alocacin igualitaria p.e., si hay 100 cuadros y 5
del proceso.
m = 64
S = si
si =10
s2 =127
si
m
S
10
64 5
137
127
a2 =
64 59
137
a1 =
JRA 2009
JRA 2009
19
JRA 2009
Thrashing
Si un proceso no tiene suficientes pginas, el ritmo de
JRA 2009
20
Utilizacin de CPU
Diagrama de Thrashing
Grado de multiprogramacin
JRA 2009
Thrashing
Por qu trabaja el paginado?
Modelo de Localidad
JRA 2009
21
si D > m Thrashing
JRA 2009
Modelo de Working-set
JRA 2009
22
referencia
Ejemplo: = 10,000
Las interrupciones del Timer se producen cada
5000 unidades de tiempo.
Se mantienen en memoria 2 bits por cada pgina.
tiempo.
Sistemas Operativos Memoria Virtual
JRA 2009
Lmite
superior
Lmite inferior
Decremente el nmero de
cuadros
Nmero de cuadros
23
usuario
Frecuentemente alocada desde un pool de memoria
libre
El Kernel requiere memoria para estructuras de
determinados tamaos
JRA 2009
Es
JRA 2009
24
fragmentacin
tamao de tabla
sobrecarga de E/S
localidad
JRA 2009
TLB
Alcance del TLB = (entradas al TLB ) X (tamao de pgina)
Idealmente, el working set de cada proceso es almacenado
en el TLB
JRA 2009
25
JRA 2009
26
JRA 2009
JRA 2009
27
Windows XP
Usa demanda de pginas con clustering. Es decir trae las
JRA 2009
Solaris
Mantiene una lista de pginas libres para asignar a procesos en
falta
Lotsfree parmetro umbral (cantidad de memoria libre) para
comenzar a paginar
Desfree parmetro umbral para incrementar el paginado
Minfree parmetro umbral para ser intercambiadas las
pginas
El paginado es realizado por un proceso pageout
Pageout barre las pginas usando un algoritmo de reloj
modificado
Scanrate es la frecuencia con que las paginas son barridas.
28
JRA 2009
Fin
Mdulo 9
Departamento de Ciencias e Ingeniera de la Computacin
Universidad Nacional del Sur
29