Gestin de memoria
Fundamentos de Computadores II
Sistemas Operativos
ndice
1. Objetivos del sistema de gestin de memoria
2. Modelo de memoria de un proceso
3. Esquemas de memoria basados en asignacin
contigua
4. Memoria virtual
5. Archivos proyectados en memoria
6. Servicios de gestin de memoria
Fundamentos de Computadores II
Sistemas Operativos
Fundamentos de Computadores II
Sistemas Operativos
Fundamentos de Computadores II
Sistemas Operativos
adecuado
C a b e c e ra
LO A D R 1, #1000
LO A D R 2, #2000
L O A D R 3 , /1 5 0 0
L O A D R 4 , [R 1 ]
S T O R E R 4 , [R 2 ]
IN C R 1
IN C R 2
D E C R 3
J N Z /1 2
.................
Fundamentos de Computadores II
Sistemas Operativos
Fundamentos de Computadores II
Sistemas Operativos
M e m o r ia
0
4
8
12
16
20
24
28
32
36
....
LO AD R 1, #1000
LO AD R 2, #2000
L O A D R 3 , /1 5 0 0
L O A D R 4 , [R 1 ]
S T O R E R 4 , [R 2 ]
IN C R 1
IN C R 2
D EC R 3
J N Z /1 2
.................
S is te m a O p e r a tiv o
Funcin de traduccin:
Traduccin(IdProc, dir_lgica) dir_fsica
Ejemplo:
El programa tiene asignada memoria a partir de la direccin 10000
Reubicacin: sumar 10000 a direcciones lgicas
Implementacin:
o Hardware
o Software
Fundamentos de Computadores II
Sistemas Operativos
Proceso:
Programa se carga en memoria sin modificar
El S.O. almacena por cada proceso su funcin de traduccin
El S.O. especifica a la MMU qu funcin aplicar para cada proceso
M e m o ria
P ro c e s a d o r
PC
8
R . I n s tr u c c i n
L O A D R 3 , /1 5 0 0
Fundamentos de Computadores II
Sistemas Operativos
H W tr a d u c c i n
10000
1500
11 5 0 0
10000
10004
10008
10012
10016
10020
10024
10028
10032
10036
..........
LO AD R 1, #1000
LO AD R 2, #2000
L O A D R 3 , /1 5 0 0
L O A D R 4 , [R 1 ]
S T O R E R 4 , [R 2 ]
IN C R 1
IN C R 2
D EC R 3
J N Z /1 2
.................
Fundamentos de Computadores II
Sistemas Operativos
M e m o r ia
10000
10004
10008
10012
10016
10020
10024
10028
10032
10036
..........
L O A D R 1 , # 110 0 0
LO AD R 2, #12000
L O A D R 3 , /1 1 5 0 0
L O A D R 4 , [R 1 ]
S T O R E R 4 , [R 2 ]
IN C R 1
IN C R 2
D EC R 3
J N Z /1 0 0 1 2
.................
Fundamentos de Computadores II
Sistemas Operativos
10
M e m o r ia
z o n a p r iv a d a 1
z o n a c o m p a r tid a
z o n a p r iv a d a 2
z o n a p r iv . 1 ( P 1 )
z o n a p r iv . 1 ( P 2 )
z o n a c o m p a r tid a
M a p a p ro c e s o 2
z o n a p r iv a d a 1
z o n a p r iv . 2 ( P 2 )
z o n a p r iv . 2 ( P 1 )
z o n a c o m p a r t id a
z o n a p r iv a d a 2
Fundamentos de Computadores II
Sistemas Operativos
11
Problemas:
Requiere
asignacin
no
contigua
Si la posicin
de zona
compartida
contiene
referencia a otra posicin de
la zona compartida, no se
puede saber a qu direccin
se refiere puesto que cada
proceso
ligero
ver
esa
direccin de forma diferente
Ejemplo: Si el cdigo, que es comn,
contiene una bifurcacin, no se
podr determinar a qu direccin
se debe saltar, dependiendo del
proceso que est ejecutando el
cdigo
Fundamentos de Computadores II
Sistemas Operativos
M a p a p ro c e s o 1
M e m o r ia
2000
z o n a c o m p a r t id a
10000
z o n a c o m p a r t id a
110 0 21 0 0 ?
10100
M a p a p ro c e s o 2
1000
z o n a c o m p a r t id a
lgico
fsico
12
Fundamentos de Computadores II
Sistemas Operativos
13
Aprovechamiento de memoria
ptimo es irrealizable!!!!
Tablas de gestin demasiado
grandes
M e m o r ia
0
D ir e c c i n 5 0 d e l p r o c e s o 4
D ir e c c i n 1 0 d e l p r o c e s o 6
D ir e c c i n 9 5 d e l p r o c e s o 7
D ir e c c i n 5 6 d e l p r o c e s o 8
D ir e c c i n 0 d e l p r o c e s o 1 2
D ir e c c i n 5 d e l p r o c e s o 2 0
D ir e c c i n 0 d e l p r o c e s o 1
.........................................
.........................................
N -1
D ir e c c i n 8 8 d e l p r o c e s o 9
D ir e c c i n 5 1 d e l p r o c e s o 4
14
un
tamao
adecuado
Acciones
Utilizar Memoria Virtual
Hacer que el usuario disponga virtualmente de una enorme cantidad
de memoria fsica
Fundamentos de Computadores II
Sistemas Operativos
15
2. Modelo de memoria de un
proceso
2.1.
2.2.
2.3.
2.4.
Introduccin
Fases en la generacin de un ejecutable
Mapa de memoria de un proceso
Operaciones sobre regiones
Fundamentos de Computadores II
Sistemas Operativos
16
17
Compilacin:
Montaje (o enlace):
Fundamentos de Computadores II
Sistemas Operativos
M d u lo
fu e n te A
M d u lo
fu e n te B
C o m p ila d o r
M d u lo
o b je t o A
M d u lo
o b je t o B
B ib lio te c a s
M o n ta d o r
F ic h e r o
e je c u t a b le
18
Tipos:
Estticas: el montaje enlaza los mdulos
objeto del programa y de las bibliotecas,
dando
como
resultado
un
ejecutable
autocontenido.
Desventajas:
Ejecutables grandes
Cdigo de funcin de biblioteca
repetido
Mltiples copias en memoria del
cdigo de funcin de biblioteca
La
actualizacin
de
biblioteca
implicara volver a montar
Fundamentos de Computadores II
Sistemas Operativos
M a in
F u n c i n A
C d ig o
F u n c i n B
F u n c i n d e b ib lio t e c a F 1
F u n c i n d e b ib lio te c a F 2
19
Fundamentos de Computadores II
Sistemas Operativos
20
Desventajas:
Mayor tiempo de ejecucin debido a carga y montaje. Se
trata de un retraso tolerable, ya que se compensan el resto
de las ventajas
Ejecutable no autocontenido
Fundamentos de Computadores II
Sistemas Operativos
21
Fundamentos de Computadores II
Sistemas Operativos
22
Fundamentos de Computadores II
Sistemas Operativos
23
Fundamentos de Computadores II
Sistemas Operativos
24
C a b e c e ra
F ic h e r o E je c u ta b le
N m e r o m g ic o
C o n t a d o r d e p r o g r a m a in ic ia l
....................
T a b la d e s e c c io n e s
1000
C d ig o
D e s p l.
C d ig o
1000
D a t o s c o n v .i. 5 0 0 0
D a t o s s in v .i. - - -- -..... ... .......... .... ........
Tam .
4000
1000
500
........
T . S m b o lo s
1000
8000
5000
S e c c io n e s
D a to s c o n v a lo r in ic ia l
. . . . . . . . . . . . . . . .
8000
Fundamentos de Computadores II
Sistemas Operativos
T a b la d e s m b o lo s
25
Fundamentos de Computadores II
Sistemas Operativos
26
Variables globales
Estticas
Se crean al iniciarse programa
Existen durante toda la ejecucin del proceso
Direccin fija en memoria y en ejecutable
Fundamentos de Computadores II
Sistemas Operativos
27
Ejemplo:
int x=8;
int y;
f(int t){
int z;
.......
}
main(){
.......
}
/* Parmetro */
/* Variable local */
Fundamentos de Computadores II
Sistemas Operativos
28
Cada regin:
Tiene asociada una informacin (un objeto de memoria)
Consiste en una zona contigua tratada como unidad al proteger o
compartir
Se caracteriza por:
Direccin de comienzo y tamao inicial
Soporte: donde se almacena su contenido inicial (soporte en
archivo y sin soporte, es decir, objeto sin contenido inicial)
Proteccin: RWX
Uso compartido o privado
Tamao fijo o variable
Fundamentos de Computadores II
Sistemas Operativos
29
Fundamentos de Computadores II
Sistemas Operativos
30
Fichero ejecutable
Nmero mgico
Contador de programa
inicial
Cabecera
1000
Secciones
Tabla de secciones
Cdigo
5000
8000
Mapa de memoria
0
Cdigo
4000
Datos con valor
inicial
5000
5500
Tabla de smbolos
Pila
31
Fundamentos de Computadores II
Sistemas Operativos
32
Soporte
Cdigo
Fichero
RX
Compartida Fijo
RW
Privada
Fijo
Sin soporte RW
Privada
Fijo
Pilas
Sin soporte RW
Privada
Variable
Heap
Sin soporte RW
Privada
Variable
F. Proyect.
Fichero
M. Comp.
Fundamentos de Computadores II
Sistemas Operativos
33
Fundamentos de Computadores II
Sistemas Operativos
34
35
Esquema hardware
Gestin del SO
Poltica de asignacin de espacio
Valoracin del esquema contiguo
Fundamentos de Computadores II
Sistemas Operativos
36
37
Memoria
Proceso 4
Procesador
PC
10000
R. lmite
4000
Registro instruccin
LOAD R3, /1500
21000
NO
>
SI
Excepcin
Fundamentos de Computadores II
Sistemas Operativos
R. base
10200
Proceso 7
15036
Proceso 3
20500
21000
22500
Proceso 2
25000
N
38
39
40
Valoracion:
Espacios independientes para procesos: mediante registros valla
Proteccin: mediante registros valla
Compartir memoria: no es posible
Soporte de regiones:
No existe (no hay mecanismo de permisos sobre el espacio
asignado a cada proceso)
Se reserva espacio para huecos, ya que el espacio asignado al
proceso en primera instancia debe servir para todo su tiempo de
vida
Maximizar rendimiento:
Mal aprovechamiento de memoria por fragmentacin externa
Mapas de MV de tamao adecuado:
No permite memoria virtual
Fundamentos de Computadores II
Sistemas Operativos
41
4. Intercambio
Fundamentos de Computadores II
Sistemas Operativos
42
Intercambio
Qu hacer si no caben todos los programas en memoria principal?
Usar disco (dispositivo swap) como respaldo de la memoria principal. Si
no caben en memoria todos los procesos activos, se elige un proceso
residente y se copia en disco su imagen de memoria
Expulsar (swap-out) a los procesos bloqueados. El proceso de
expulsin no implica copiar toda la imagen del proceso (por ejemplo, no
es preciso ocupar los huecos ni el cdigo, al poder recuperarse
fcilmente del ejecutable). Un proceso expulsado vuelve a cargarse
(swap-in) cuando est listo para ejecutar y haya espacio en memoria.
Polticas de asignacin de espacio en swap:
Preasignacin: al crear el proceso se reserva espacio de swap.
NO Preasignacin: slo se reserva espacio de swap al expulsar.
(Semejanza con estado suspendido?)
Fundamentos de Computadores II
Sistemas Operativos
43
5. Memoria virtual
5.1.
5.2.
5.3.
5.4.
5.5.
5.6.
5.7.
Introduccin
Paginacin
Segmentacin
Segmentacin paginada
Paginacin por demanda
Polticas de reemplazo
Poltica de asignacin de marcos de
pgina
5.8. Hiperpaginacin
5.9. Gestin del espacio de swap
5.10. Operaciones sobre las regiones de un
proceso
Fundamentos de Computadores II
Sistemas Operativos
44
Memoria virtual
5.1. Introduccin
La tcnica de la MV se usa prcticamente en todos los SSOO modernos.
Esta tcnica se basa en transferir informacin entre memoria
principal y memoria secundaria (por lo que involucra varios niveles
de la jerarqua de memoria)
Suele implementarse en un esquema de paginacin (es decir, la unidad
de informacin intercambiada entre los diferentes niveles de la jerarqua
de memoria es la pgina)
Elemento Clave: Proximidad referencial habitual de los procesos. Esta
propiedad permite que un proceso puede funcionar disponiendo en
memoria de una parte de su imagen de memoria (conjunto residente).
Objetivo final: conseguir que la informacin necesaria para un proceso
(conjunto de trabajo) vaya ocupando la memoria principal segn se va
necesitando (es decir, conjunto de trabajo === conjunto
residente)
Fundamentos de Computadores II
Sistemas Operativos
45
Memoria virtual
Ventajas:
a) Aumento del grado de multiprogramacin. Por tanto, aumento
en el rendimiento del sistema
b) Posibilidad de ejecutar programas ms grandes que la MV
disponible
El uso de la MV no implica que se acelere la ejecucin del programa
(ms bien al contrario, debido a la sobrecarga asociada a los
movimientos de informacin entre niveles de la jerarqua). Este
mecanismo no es apropiado para sistemas de tiempo real.
Fundamentos de Computadores II
Sistemas Operativos
46
Memoria virtual
5.2. Paginacin
Fundamentos de Computadores II
Sistemas Operativos
47
Memoria virtual
Fundamentos de Computadores II
Sistemas Operativos
48
Memoria virtual
Fundamentos de Computadores II
Sistemas Operativos
49
Memoria virtual
Direccin lgica
Pgina
0
1
2
3
Byte
Marcos de pgina
Registro base de la TP
(RIED)
50
Memoria virtual
T. Pginas Proceso 1
Pgina 0
Marco 2
Pgina 1
Marco N
..............
Pgina M
Marco 3
T. Pginas Proceso 2
Pgina 0
Marco 4
Pgina 1
Marco 0
..............
Pgina P
Memoria
Pg. 1 Pr. 2
Marco 0
Pg. P Pr. 2
Marco 1
Pg. 0 Pr. 1
Marco 2
Pg. M Pr. 1
Marco 3
Pg. 0 Pr. 2
Marco 4
............
Pg. 1 Pr. 1
Marco N
Marco 1
Fundamentos de Computadores II
Sistemas Operativos
51
Memoria virtual
Otras cuestiones:
En este esquema, el S.O. mantiene una tabla de pginas por
cada proceso. Cuando se produce un cambio de contexto se indica
a la MMU qu tabla de pginas usar
El S.O. mantiene una nica tabla de pginas para s mismo. As,
todos los procesos comparten el SO. Cuando un proceso se ejecuta
en modo sistema accede directamente a su mapa y al del SO
S.O. mantiene tabla de marcos, como forma de mantener
informacin de estado de la memoria principal. De cada marco se
conoce su estado (libre, ocupado, etc)
S.O. mantiene tabla de regiones por cada proceso, indicando las
caractersticas de cada regin y qu rango de pginas pertenecen a
cada regin
Desperdicio de espacio: Mucho mayor gasto en tablas que con
asignacin contigua: es el precio de mucha mayor funcionalidad
Fundamentos de Computadores II
Sistemas Operativos
52
Memoria virtual
Fundamentos de Computadores II
Sistemas Operativos
53
Memoria virtual
TLB (Translation Look-aside Buffer): Consta de una memoria asociativa con
informacin sobre ltimas pginas accedidas.
Para el multiproceso, existen varias posibilidades:
La TLB no incluye informacin del proceso. En este caso, habr que
invalidar la TLB en los cambios de contexto
Entradas en TLB incluyen informacin sobre proceso: en este caso,
debe existir un registro de UCP para mantener la identificacin del
proceso actual
Implementacin
HW: La MMU consulta la TLB y si falla, se usa la TP en memoria.
Ventajas: Es un proceso muy rpido
Inconvenientes: Actualizar la TP en cambios de contexto y hay que
invalidar la TLB cuando se produce un cambio de contexto (si no tiene
informacin del PID)
SW: La MMU no usa la TP, sino que slo consulta TLB. En caso de fallo,
se activa el SO, que ha de buscar la entrada en la tabla de pginas
(mediante programa), e insertar en la TLB la traduccin hecha, de forma
que se pueda reutilizar.
Ventajas: flexibilidad, ya que la tabla de pginas puede ser definida a
conveniencia, sin restricciones impuestas por el hardware
Inconvenientes: Es menos eficiente, ya que parte del proceso de
traduccin se realiza mediante programa.
Fundamentos de Computadores II
Sistemas Operativos
54
Memoria virtual
Una de las opciones disponibles para disminuir el tamao requerido por las
tablas de pginas es la tabla de pginas multinivel
Fundamentos de Computadores II
Sistemas Operativos
55
Memoria virtual
Pgina
1er nivel
2 nivel
Direccin lgica
Byte
0
1
2
3
Marcos de pgina
0
1
2
3
Registro base de la TP
(RIED)
n
0
1
2
3
Fundamentos de Computadores II
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II
Sistemas Operativos
57
Memoria virtual
m e m o r ia
ta b la s d e p g in a s
s e g u n d o n iv e l
P g in a 2 0 4 8
..
.
P g in a 1 0 2 3
T a b la d e p g in a s
p r im e r n iv e l
V
..
.
P g in a 1 0 2 4
V
I
I
V
P g in a 0
P g in a 2 0 4 7
..
.
P g in a 3 0 7 1
..
.
P g in a 1 0 4 8 5 7 5 ( 2 ^ 2 0 - 1 )
P g . 1 0 4 7 5 5 2 (2 ^2 0 -1 0 2 4 )
Fundamentos de Computadores II
Sistemas Operativos
58
Memoria virtual
Otra alternativa para disminuir el espacio necesario por la tabla de pginas
es la tabla de pginas invertida
Organizacin:
La tabla contendr tantas entradas como marcos de pgina haya.
Cada entrada almacena la pgina cargada en dicho marco junto con
sus caractersticas:
Nmero de pgina,
Proceso dueo de la pgina
El tamao de la tabla de pginas es proporcional a la memoria
disponible.
Accesos:La MMU usa una TLB convencional, pero si falla la traduccin se
accede a la tabla de pginas invertida. Al estar la tabla organizada por
marcos no se puede hacer una bsqueda directa. Debera accederse a
todas las entradas en busca de la pgina correspondiente. Por esta
razn se suele organizar como una tabla hash
Ahorro de espacio: Se reduce el espacio de almacenamiento necesario,
ya que slo se guarda informacin sobre las pginas vlidas
Fundamentos de Computadores II
Sistemas Operativos
59
Memoria virtual
Direccin lgica
pid
Pgina
Byte
i
pid
pgina
Byte
Direccin fsica
Fundamentos de Computadores II
Sistemas Operativos
60
Memoria virtual
5.3. Segmentacin
Con la paginacin la MMU no dispone de informacin sobre las regiones
de los procesos y slo entiende de pginas. Por esta razn, el SO debe
mantener una lista de las pginas que componen cada regin, lo
que supone varias desventajas:
Al crear una regin hay que cuidar que todas las pginas
asociadas tengan la misma informacin de control
Para poder compartir una regin es preciso que las entradas de
varios procesos apunten a los mismos marcos
Segmentacin: es un esquema HW que intenta dar soporte directo a las
regiones. En l se considera el mapa de memoria como compuesto por
varios segmentos.
Se puede considerar que consisten en una generalizacin de los
registros valla base y lmite, pero usando un par de registros por
cada segmento
Fundamentos de Computadores II
Sistemas Operativos
61
Memoria virtual
d
t a b la d e s e g m e n t o s
base
lm ite
>
N O
m e m o r ia
S I
E x c e p c i n
Fundamentos de Computadores II
Sistemas Operativos
62
Memoria virtual
Fundamentos de Computadores II
Sistemas Operativos
63
Memoria virtual
Valoracin:
Espacios independientes para procesos: mediante su propia TS, que
crea un espacio lgico independiente
Proteccin: mediante TS, ofreciendo espacios disjuntos de memoria
Compartir memoria: bajo control del SO es posible que dos o ms
procesos tengan un segmento asociado a la misma zona de
memoria
Soporte de regiones: bits de proteccin
Maximizar rendimiento : No lo maximiza, por la fragmentacin
externa
Mapas de tamao adecuado: No cumple este objetivo porque no
permite implementar eficientemente un sistema de memoria virtual
Fundamentos de Computadores II
Sistemas Operativos
64
Memoria virtual
5.4. Segmentacin paginada
Se intenta aunar las ventajas de ambos esquemas: segmentacin y
paginacin:
Segmentacin: soporte para regiones.
Paginacin: mejor uso del espacio de memoria.
Organizacin:
Entrada en TS apunta a una TP para el segmento.
El espacio del segmento est compuesto de varias pginas, de forma
que su espacio no tiene que ser contiguo.
Fundamentos de Computadores II
Sistemas Operativos
65
Memoria virtual
Traduccin:La traduccin se lleva a cabo segn se indica.
d ir e c c i n l g ic a
s
d
t a b la d e s e g m e n t o s
d ir. T . P g .
lm ite
>
NO
SI
E x c e p c i n
Fundamentos de Computadores II
Sistemas Operativos
t a b la d e p g in a s
p a ra s e g m e n to s
m e m o r ia
d ir e c c i n
f s ic a
66
Memoria virtual
Valoracin:
Espacios independientes para procesos: mediante TS
Proteccin: mediante TS
Compartir memoria: bajo control del SO, podemos hacer que una
misma entrada aparezca en diferentes TS (es decir, pueda ser usado
por varios procesos)
Soporte de regiones: bits de proteccin
Maximizar rendimiento: la paginacin aprovecha eficientemente el
espacio de memoria.
Mapas de tamao adecuado: permite esquemas de memoria virtual
Fundamentos de Computadores II
Sistemas Operativos
67
Memoria virtual
5.5. Paginacin por demanda
Una vez analizados los diferentes esquemas hardware vamos a ver cmo
se articulan para construir un esquema de memoria virtual (estos
esquemas tambin pueden usarse sin memoria virtual, pero en la
actualidad su uso est siempre vinculado a la memoria virtual)
Fundamentos de Computadores II
Sistemas Operativos
68
Memoria virtual
Fundamentos de Computadores II
Sistemas Operativos
69
Memoria virtual
Veamos cmo se gestiona la ocurrencia de un fallo de pgina:
La MMU genera una excepcin. Normalmente deja en un registro
especial la direccin que caus el fallo
Se activa el SO, que comprueba:
Si la pgina es invlida, se aborta el proceso (solucin normal,
aunque tambin podra bastar con el envo de una seal).
Si la pgina es ausente se siguen los pasos siguientes:
a) Se consulta la tabla de marcos para ver si hay algn hueco
libre:
i. Si no hay ningn marco libre se aplica el algoritmo de
reemplazo, que decidir el marco a desalojar. La pgina
almacenada hasta entonces se marca como invlida. 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, marcndose como vlida
dicha entrada en la TP y apuntando el marco en que est
almacenada
Fundamentos de Computadores II
Sistemas Operativos
70
Memoria virtual
Poltica de reemplazos:
Reemplazo local: Slo puede usarse para reemplazo un marco
asignado al proceso que causa fallo
Reemplazo global: Puede usarse para reemplazo cualquier marco
Fundamentos de Computadores II
Sistemas Operativos
71
Memoria virtual
5.6. Polticas de reemplazo
Algoritmos a estudiar
A. ptimo
B. FIFO
C. Reloj (o segunda oportunidad)
D. LRU
E. Buffering de pginas
F. Retencin de pginas en memoria
Fundamentos de Computadores II
Sistemas Operativos
72
Memoria virtual
A) Algoritmo ptimo
Fundamentos de Computadores II
Sistemas Operativos
73
Memoria virtual
B) Algoritmo FIFO
Implementacin: Fcil
Pginas residentes en orden FIFO se expulsa la primera
No requiere hardware especial
En el caso de estrategia local se mantiene una lista de pginas por
cada proceso. En el caso global, basta con una nica lista
Problema:
Una pgina que lleva mucho tiempo residente puede seguir
accedindose frecuentemente.
Su criterio no se basa en el uso de la pgina.
Anomala de Belady: Se pueden encontrar ejemplos en que al
aumentar el nmero de marcos aumenta el nmero de fallos de
pgina
Fundamentos de Computadores II
Sistemas Operativos
74
Memoria virtual
C) Algoritmo de segunda oportunidad o del reloj
Se trata de una modificacin del algoritmo FIFO, para evitar que una
pgina residente desde hace tiempo sea desalojada pese a estar siendo
usada. Para ello se usa el bit de referencia Ref de las pginas, con lo
que se detecta su uso
Criterio:
Si la pgina elegida por FIFO no tiene activo el bit Ref, es la pgina
expulsada
Si lo tiene activo se da 2 oportunidad antes de expulsar: se
desactiva el bit Ref, se pone pgina al final de FIFO, se aplica
criterio a la siguiente pgina
Fundamentos de Computadores II
Sistemas Operativos
75
Memoria virtual
D) Algoritmo LRU (last recently used)
Fundamentos de Computadores II
Sistemas Operativos
76
Memoria virtual
E) Buffering de pginas
Implementacin:
Mantiene una reserva de marcos libres. Cuando se produce un
fallo de pgina, siempre se usa un marco libre (es decir, en verdad
no hay reemplazo)
Cuando el nmero de marcos libres queda por debajo de cierto
umbral se activa un demonio de paginacin, que aplica
repetidamente el algoritmo de reemplazo:
Pginas no modificadas pasan a lista de marcos libres
Pginas modificadas pasan a lista de marcos modificados:
cuando se escriban a disco pasan a lista de libres; suelen
escribirse en tandas (lo que mejora el rendimiento)
Si se referencia una pgina mientras est en estas listas: se
recupera directamente de la lista (no hay E/S), lo que puede
mejorar el comportamiento de algoritmos poco eficientes
Fundamentos de Computadores II
Sistemas Operativos
77
Memoria virtual
F) Retencin de pginas en memoria
Aplicacin:
Se aplica a pginas del propio S.O: si sus pginas estn fijas en
memoria, su gestin es ms sencilla
Tambin se aplica mientras se hace DMA sobre una pgina. La
pgina no ser reemplazable hasta que finalice la operacin sobre
ella
Fundamentos de Computadores II
Sistemas Operativos
78
Memoria virtual
5.7. Poltica de asignacin de marcos de pgina
El SO deber decidir cuntos marcos de pgina asigna a cada proceso:
a) Asignacin Fija
b) Asignacin Dinmica
A) Asignacin fija
Fundamentos de Computadores II
Sistemas Operativos
79
Memoria virtual
B) Asignacin dinmica
Fundamentos de Computadores II
Sistemas Operativos
80
Memoria virtual
5.8. Hiperpaginacin (thrashing)
Fundamentos de Computadores II
Sistemas Operativos
81
U t iliz a c i n d e la U C P
Memoria virtual
g r a d o d e m u lt ip r o g r a m a c i n
82
Memoria virtual
A) Estrategia del conjunto de trabajo
Proceso:
Si el conjunto de trabajo decrece se liberan marcos.
Si el conjunto de trabajo crece se asignan nuevos marcos.
Si no hay marcos disponibles se suspender algn(os) proceso(s), que
se reactivan cuando haya marcos suficientes
Fundamentos de Computadores II
Sistemas Operativos
83
Memoria virtual
B) Estrategia basada en frecuencia de fallos de pgina
Objetivo: Controlar la tasa de fallos de pgina por proceso
Proceso:
Si tasa < lmite inferior, se liberan marcos aplicando un algoritmo de
reemplazo
Si tasa > lmite superior, se asignan nuevos marcos. Si no hay
marcos libres se suspende algn proceso
ta s a d e fa llo s d e p g in a
l m it e s u p e r io r
l m it e in f e r io r
n m e ro d e m a rc o s
Fundamentos de Computadores II
Sistemas Operativos
84
Memoria virtual
C) Estrategia de control de carga para algoritmos de
reemplazo globales
Fundamentos de Computadores II
Sistemas Operativos
85
Memoria virtual
5.9. Gestin del espacio de swap
La asignacin del espacio de swaping puede seguir dos tcnicas:
a) Preasignacin de swap:
Al crear la nueva regin se reserva espacio de swap para ella. Al
expulsar una pgina, con esta estrategia, ya habr espacio de
swap para almacenar su contenido
b) Sin preasignacin de swap:
Al crear una regin no se hace reserva de swap. Las pginas de la
regin se irn trayendo a MP por demanda desde el soporte de
la regin. Slo se reserva espacio de swap para una pgina
cuando es expulsada por primera vez
Tendencia actual: Se suele utilizar ms la estrategia sin preasignacin,
puesto que la preasignacin de swap conlleva un peor aprovechamiento
de memoria secundaria (toda pgina debe tener reservado espacio de
swap).
Fundamentos de Computadores II
Sistemas Operativos
86
Memoria virtual
5.10. Operaciones sobre regiones de un proceso
Se considerarn a continuacin las siguientes operaciones sobre las
regiones de un proceso en un sistema con memoria virtual:
a) Creacin de regin:
Al crear el mapa inicial o por solicitud posterior
b) Liberacin de regin:
Al terminar el proceso o por solicitud posterior
c) Cambio de tamao de regin:
Aumento de tamao: hay que comprobar que no se solape con
otra regin y equiparar las nuevas pginas a las ya existentes
en la regin.
El caso de expansin de la pila es algo ms complejo.
Disminucin de tamao
d) Duplicado de regin:
Operacin requerida por el servicio fork de POSIX
Se duplica todo y se trata de una operacin costosa
Fundamentos de Computadores II
Sistemas Operativos
87
Memoria virtual
a) Creacin de nueva regin
Acciones:
Al crear una regin no se asigna MP ( se har por demanda).
Se marcarn las pginas como no residentes y vlidas (fallo de
pgina cuando se intenten acceder)
El S.O. actualiza la tabla de regiones y guarda la informacin
correspondiente a las pginas de la regin, rellenando las entradas de la
TP. Debe buscar un hueco en el mapa de memoria para asignar a nueva
regin.
Segn el soporte:
Soporte en archivo: Pginas marcadas como Cargar de archivo
(CA) y se almacena direccin del bloque del archivo correspondiente
Sin soporte: Pginas marcadas como Rellenar con ceros (RC) y se
inicializa cuando hay un fallo de pgina.
Si la regin es privada con preasignacin de swap, se reserva espacio
de swap
Si la regin es la pila:
Se copian los argumentos iniciales del proceso en bloque(s) de swap
Fundamentos de Computadores II
Sistemas Operativos
88
Memoria virtual
Algoritmo de expulsin:
Si la regin es privada se escribe pgina en swap. Si no hay
preasignacin de espacio swap, en la primera expulsin se reserva
espacio. Posteriores fallos se sirven de ese bloque de swap
Si la regin es compartida se escribe pgina en soporte, para que
todos los procesos puedan ver las modificaciones. Todos los fallos se
sirven del soporte
Fundamentos de Computadores II
Sistemas Operativos
89
Memoria virtual
Swap
1 p g .
C d ig o
A B lo q u e T ( a r c h .)
...........................
1 p g .
B lo q u e U ( a r c h . )
D a t .v . i. R W A
...........................
1 p g .
R W A R e lle n a r c o n 0
D a t .n o .v . i.
...........................
1 p g .
P ila
A r c h iv o E je c u ta b le
T a b la d e p g in a s
R X
RW
B lo q u e S ( s w a p )
B lo q u e T
B lo q u e U
C a b e c e ra
C d ig o
D a t o s c o n v a lo r in ic ia l
. . . . . . . . . . . . . . . .
B lo q u e S
P ila
90
Memoria virtual
b) Liberacin de regin
Acciones:
Actualizar tabla de regiones para eliminar regin
Marcar como invlidas pginas asociadas
Si la regin es privada, se libera el espacio de swap asociado
Cuando:
Solicitud explcita (p.ej. desproyeccin de regin).
Finalizacin del proceso (exit en POSIX).
El servicio exec de POSIX libera el mapa actual del proceso antes de
construir un nuevo mapa vinculado al ejecutable a usar
Fundamentos de Computadores II
Sistemas Operativos
91
Memoria virtual
c) Cambio de tamao
Acciones:
Si disminuye:
Se ajusta la tabla de regiones.
Se marcan pginas como invlidas.
Se libera espacio de swap
Si aumenta:
Se comprueba que no haya solapamiento.
Se fijan nuevas pginas como no residentes y con las mismas
caractersticas que otras pginas de la regin.
Si hay preasignacin se reserva espacio en swap para las nuevas
pginas.
Casos especiales:
Expansin del heap: Solicitada por programa mediante servicios
del S.O. Se marcan las pginas correspondientes como RC,
privadas, RW
Expansin de pila no proviene de una solicitud del proceso, sino
de la propia evolucin de la pila. Por esta razn esta operacin es
automtica
Fundamentos de Computadores II
Sistemas Operativos
92
Memoria virtual
d) Duplicado de una regin
Acciones:
Se duplican las regiones privadas del padre y se comparten las no
privadas
Fundamentos de Computadores II
Sistemas Operativos
93
Memoria virtual
Implementacin de COW
Se comparten las pginas de regiones duplicadas
Se marcan de slo lectura y con bit de COW.
Al realizar la primera escritura se produce un fallo de protecccin y
se genera una copia privada para el proceso que escribe.
Lo normal es que haya varios procesos con misma regin duplicada,
por lo que existe un contador de uso por pgina.
Cada vez que se crea copia privada se decrementa contador, ya que
hay un proceso menos trabajando sobre la copia compartida.
Si llega a 1, se desactiva el bit COW, al no haber duplicados
FORK con COW. Se comparten todas las regiones. Las regiones privadas
se marcan como COW en padre e hijo, el resultado de la optimizacin es
que en vez de duplicar todo el espacio de memoria slo se duplica la TP.
Fundamentos de Computadores II
Sistemas Operativos
94
5. Archivos proyectados en
memoria
Fundamentos de Computadores II
Sistemas Operativos
95
En qu consiste?
Recordemos que en un sistema con MV se hacen corresponder las
entradas de la TP con bloques de un archivo ejecutable.
La tcnica de la proyeccin permite usar esta misma idea, pero con
cualquier archivo.
El S.O. permite que un programa solicite la correspondencia de una
zona de su mapa de memoria con los bloques de un archivo
cualquiera (ya sea completo o en parte).
En la solicitud el programa indicar el tipo de acceso que desea para
las pginas asociadas al archivo.
Servicio:
La generalizacin de la tcnica de memoria virtual permite ofrecer a
los usuarios una forma alternativa de acceder a los archivos.
Fundamentos de Computadores II
Sistemas Operativos
96
C d ig o
T a b la d e p g in a s
D a t o s c o n v a l o r in ic i a l
...........................
R W A B lo q u e 0 ( a r c h .)
...........................
R W A B lo q u e N ( a r c h .)
...........................
A r c h iv o
D a t o s s i n v a l o r i n i c ia l
B lo q u e 0
B lo q u e 1
10240
B lo q u e 2
A r c h iv o P r o y e c t a d o
.............
B lo q u e N
P il a
Fundamentos de Computadores II
Sistemas Operativos
97
Fundamentos de Computadores II
Sistemas Operativos
98
6. Servicios de gestin de
memoria
Fundamentos de Computadores II
Sistemas Operativos
99
Fundamentos de Computadores II
Sistemas Operativos
100
101
Fundamentos de Computadores II
Sistemas Operativos
102