memoria - sistemas operativos
TRANSCRIPT
-
7/21/2019 Memoria - Sistemas Operativos
1/62
1
Gestin de Memoria
Captulo 3
3.1 Gestin bsica de memoria
3.2 Intercambio (swapping)3.3 Memoria virtual
3.4 l!oritmos de sustitucin de p!inas
3." Modelando al!oritmos de sustitucin de p!inas
3.# Cuestiones de dise$o en sistemas pa!inados3.% Cuestiones de implementacin
3.& 'e!mentacin
-
7/21/2019 Memoria - Sistemas Operativos
2/62
2
Introduccin (1)
Idealmente los pro!ramadores *uieren memoria+ muc,a rpida no voltil barata
-istoria+ 1&/0s M' (#4) monousuario C5M overla6s
+ 1&/0s 78 (4Mb) multiusuario (docenas)
+ 2///0s 9indo:s #4Mb (normal "12 Mb)
;erar*ua de memorias+ Cac,s un problema de costes
-
7/21/2019 Memoria - Sistemas Operativos
3/62
3
Introduccin (2)
?raba@os del !estor de memoria+ Au< memoria est libre5ocupada
+ si!nacin5liberacin de memoria a procesos
+ Intercambio =MBdisco Clases de !estores de memoria
+ Con intercambio
':appin! 6 pa!inacin
+ 'in intercambio
-
7/21/2019 Memoria - Sistemas Operativos
4/62
4
'olo un pro!rama en memoria (@unto con el ') 'e car!a 6 se *ueda a, ,asta *ue acaba (C5M)
M''
DI'
(Dasic Inputuput '6stem)
palmTop, empotradosminis
Gestin bsica de memoria (1)Monopro!ramacin sin intercambio ni pa!inacin
-
7/21/2019 Memoria - Sistemas Operativos
5/62
"
Gestin bsica de memoria (2)Multipro!ramacin con particiones Ei@as
-
7/21/2019 Memoria - Sistemas Operativos
6/62
#
Planificacin *ueda libre una particin F*u< traba@o car!ar
+ >l primero en la cola *ue *uepa
Hra!mentacin interna+ >l ms !rande de la cola *ue *uepa
'e per@udica a los pe*ue$os (6 debe ser al rev
-
7/21/2019 Memoria - Sistemas Operativos
7/62%Ka utiliLacin de C es Euncin del nN. de procesos en memoria
Grado de multiprogramacin
Gestin bsica de memoria (4)Modelo de multipro!ramacin
-
7/21/2019 Memoria - Sistemas Operativos
8/62&
BKos procesos son independientesBn !rado de multipro!ramacin
Bp Eraccin de tiempo *ue un proceso est esperando una I5
BtiliLacin de la C O 1 + pn
BKos procesos no son independientes 1 sola CBP los otros en preparados (esperando).
proJimacin vlida. >@emplo
32Mb memoria
el ' ocupa 1#Mb
cada proceso de usuario 4Mb OP n O 4Q si pO/.& C O #/R
'i compramos 1#Mb OP n O &Q si pO/.& C O &3RQ !anancia 3&R
'i compramos otros 1#Mb CO3RQ !anancia 12R
Gestin bsica de memoria (")Modelo de multipro!ramacin
(Ka seccin 4.1.4 no entra para el eJamen)
-
7/21/2019 Memoria - Sistemas Operativos
9/62
Reubicacin Fdnde reside un pro!rama esttica dinmicaLas direcciones de un programa suelen ser relativas a su direccin de comienzo.PERO ... al montar un programa no se sabe dnde se va a ejecutar.
SOLUCIOES
!odi"icacin de direcciones durante la carga #est$tico%
Registro de Reubicacin #o registro base% #permite reubicacin din$mica%
&ir.'irtual
Registro deReubicacin
&ireccinReal(
6000
5166
4418
4200
2854
512
0
A
B
C
A
B
C
1345
0
747
0
2341
0
Espacio 'irtual Espacio Real
Ra) *+,-Rb) --+
Rc) ,*
Gestin bsica de memoria (#)=eubicacin 6 proteccin
-
7/21/2019 Memoria - Sistemas Operativos
10/62
1/
Proteccin acceso indiscriminado a cual*uier rea de memoria
RegistroL/mite
Registro0ase
&ireccin'irtual ( SEA!E53CI>
-
7/21/2019 Memoria - Sistemas Operativos
23/62
23
Memoria 7irtual (2). a!inacin
osicin 6 Euncin de la MM
-
7/21/2019 Memoria - Sistemas Operativos
24/62
24
Ka memoria virtual se divide enp!inas
Ka memoria Esica en marcos de p!inatama$o p!ina O tama$o marco
Conversin:
MOV R!" #$%ireccin # est& en '&ina #$ P&ina # est& en arco *$ %ireccin f+sica es ,1-*
MOV R!" ,1-*$%ireccin ,1-* est& en '&ina *$ P&ina * est& en arco $ %ireccin f+sica es *45/
0 MOV R!" */,# 2
Memoria 7irtual (3).a!inacin
-
7/21/2019 Memoria - Sistemas Operativos
25/62
2"
Memoria 7irtual (4). a!inacin
32%&/ est en la p!ina & (32%#&)
Ka p!ina tiene 8Ka MM !enera un ?=
3T de P6!78:
1. leir v+ctia*. scribir a disco (si 9ace falta)
. Carar la nueva '&ina.4. Reiniciar MOV R!" */,#
P.ee:1. V+ctia la del arco 1.*. 0escribir2 7ndicar ;ue '&ina 1: n un ordenador los procesos tienen un espacio de direccionamiento de1/24 p!inas 6 mantienen en memoria su tabla de p!inas. Ka sobrecar!a por
lectura de una palabra desde la tabla de p!inas es de " ns. ara reducir esta
sobrecar!a el ordenador tiene una ?KD con 32 entradas (p!ina virtual num.
marco) *ue tarda 1 ns en realiLar una consulta. FCul debe ser la tasa de aciertos
en dic,a memoria asociativa para reducir la sobrecar!a a 2 ns.
M i 7i t l (1")
-
7/21/2019 Memoria - Sistemas Operativos
36/62
3#
Memoria 7irtual (1")?abla de p!inas invertida5,as,
?abla de p!inas Velocidad de traduccin
(roceso p!ina virtual)
-
7/21/2019 Memoria - Sistemas Operativos
37/62
3%
Memoria 7irtual (1#).
T4.*1n ordenador con p!inas de &SD memoria principal de 2"#MD 6 un espaciode direccionamiento virtual de #4GD utiliLa una tabla de p!inas invertida paraimplementar su memoria virtual. FCmo de !rande debera ser la tabla ,as, para
ase!urar *ue por t
-
7/21/2019 Memoria - Sistemas Operativos
38/62
3&
Memoria 7irtual (1%)
T4.1*na m*uina tiene un espacio de direcciones de 32 bits 6 una p!ina de &S. latabla de p!inas est en ,ard:are con una palabra de 32 bits por cada entrada. liniciar un proceso la tabla de p!inas se copia al ,ard:are desde la memoria con una
palabra cada 1// ns. 'i cada proceso se e@ecuta durante 1// ms (inclu6endo el tiempo
de car!a de la tabla de p!inas) Fcul es la Eraccin del tiempo de C *ue se dedica
a la car!a de las tablas de p!inas
-
7/21/2019 Memoria - Sistemas Operativos
39/62
3
l!oritmos de sustitucin de p!inas (1)
'e produce una Ealta de p!ina 6 no ,a6 memoria libre
1. >le!ir victima
2. Klevar victima a disco (si sucia)
3. >n ? victima no presente
4. ?raer nueva p!ina al marco donde estaba la vctima". ctualiLar ? nueva est presente 6 marco 6 dems inEo
FCmo ele!ir la vctima
l!oritmos de sustitucin de p!inas
roblemas similares Memoria cac,< Cac,< de un servidor :eb
-
7/21/2019 Memoria - Sistemas Operativos
40/62
4/
b@etivo de todos los al!oritmos de sustitucin
>le!ir p!inas *ue !eneren el menor nUmero de Ealtas de p!ina.
>n todos los al!oritmos ,a6 una constante el nN de marcos eJistentes
lorito 'tio de sustitucin de '&inas
Auitar la p!ina *ue tardar ms tiempo en ser reEerenciada
Imposible implementar
l!oritmos de sustitucin de p!inas (2)
-
7/21/2019 Memoria - Sistemas Operativos
41/62
41
8o utiliDada recienteente (8RB: 8ot RecentlE Bsed)
Dasado en los bits R(reEerenciada) 6 M(modiEicada ensuciado)Inicialmente todas las p!inas (en ?) =O/ MO/
Cada interrupcin de relo@ todas las p!inas =O/
R MClase / / / no reEerenciada no modiEicada
Clase 1 / 1 no reEerenciada modiEicada
Clase 2 1 / reEerenciada no modiEicada
Clase 3 1 1 reEerenciada modiEicada
'eleccionar una p!ina de la menor clase no vaca.
For *u< es me@or eliminar de la clase 1 antes *ue de la clase 2
l!oritmos de sustitucin de p!inas (3)
-
7/21/2019 Memoria - Sistemas Operativos
42/62
-
7/21/2019 Memoria - Sistemas Operativos
43/62
43
373O (nomala de Delad6)'uposicin cuantos ms marcos menos Ealtas de p!ina \\ >= ]]
l!oritmos de sustitucin de p!inas (")
-
7/21/2019 Memoria - Sistemas Operativos
44/62
44
Feunda O'ortunidad (Fecond C9ance)7ariante del HIH para evitar sacar una p!ina (vie@a) mu6 utiliLada
'i es la ms vie@a 6 no ,a sido reEerenciada (=O/) es la vctima
'i es la ms vie@a 6 ,a sido reEerenciada (=O1) entonces
B =O/
B poner al Einal de la cola (como si Euese la ms nueva)
B Mirar la si!uiente p!ina en la lista
l!oritmos de sustitucin de p!inas (#)
-
7/21/2019 Memoria - Sistemas Operativos
45/62
4"
Feunda o'ortunidad (Relo)'e!unda oportunidad mueve p!inas al Einal de la lista'i todas tienen =O1 las mueve todas (al Einal es HIH)
Me@ora mantener una lista circular (en Eorma de relo@)
l!oritmos de sustitucin de p!inas (%)
-
7/21/2019 Memoria - Sistemas Operativos
46/62
4#
Menos recienteente utiliDada (RB: east RecentlE Bsed)
'upone *ue las p!inas utiliLadas recientemente se utiliLarn de nuevo
7ctima la p!ina *ue lleva ms tiempo sin ser reEerenciada
-a6 *ue mantener una lista de todas las p!inas en memoria
CabeLa ms recientemente utiliLada
Cola menos recientemente utiliLada
roblemas
\\actualiLar la lista en cada reEerencia a memoria]]
'obrecar!a en buscar una p!ina eliminarla moverla a la cabeLa
Implementaciones
+ or ,ard:are
+or soEt:are
l!oritmos de sustitucin de p!inas (&)
-
7/21/2019 Memoria - Sistemas Operativos
47/62
-
7/21/2019 Memoria - Sistemas Operativos
48/62
4&
Menos recienteente utiliDada (RB)/ 1 2 3 2
1 / 3 2 3
l!oritmos de sustitucin de p!inas (1/)
-
7/21/2019 Memoria - Sistemas Operativos
49/62
4
Menos recienteente utiliDada (RB)'oEt:are (1) Mantener una pila con las p!inas en memoria
B Cuando se reEerencia una p!ina a la cima
B Ka p!ina del Eondo de la pila es la menos recientemente usada
B roblemas eEiciencia actualiLar la pila en cada reEerencia amemoria
G
G * F - * F F * * G
G
G
*
*
*
F
*
F
F
-
-
*
-
*
F
*
F
*
F
F
*
F
*
F
*
*
*
G
G
G
12 Haltas de !ina. Con HIH 1"
cima
l!oritmos de sustitucin de p!inas (11)
-
7/21/2019 Memoria - Sistemas Operativos
50/62
"/
Menos recienteente utiliDada (RB)
'oEt:are (2) a!in!
B Cada p!ina con un contador inicialmente a /B Cada interrupcin de relo@ mirar el contador de cada p!ina
B esplaLar un bit a la derec,a cada contador
B 'umar a la iL*uierda el bit =
B Ka vctima es la p!ina con menor contador
B roblemasB o se distin!ue *u< p!ina Eue la Ultima reEerenciada en un mismo
intervalo de relo@
B Kos contadores tienen un nUmero Einito de bits
l!oritmos de sustitucin de p!inas (12)
-
7/21/2019 Memoria - Sistemas Operativos
51/62
"1
Menos recienteente utiliDada (RB)'oEt:are (2) a!in!
l!oritmos de sustitucin de p!inas (13)
-
7/21/2019 Memoria - Sistemas Operativos
52/62
"2
Resuen de los aloritos de sustitucin
O'tio o implementable8o utiliDada recienteente Ecil implementar pero los ,a6 me@ores
373O puede eJpulsar p!inas importantesFeunda o'ortunidad me@ora sobre HIHFeunda o'ortunidad (relo):ms eEiciente *ue el anteriorRB eJcelente pero diEcil de implementarin buena aproJimacin a K=
l!oritmos de sustitucin de p!inas (14)
(Kas secciones 4.4.& 6 4.4. no entra para el eJamen)
-
7/21/2019 Memoria - Sistemas Operativos
53/62
"3
T4.*-n ordenador tiene cuatro marcos de p!ina. >l tiempo de car!a el
tiempo del Ultimo acceso 6 los bits = 6 M para cada p!ina son los *ueaparecen a continuacin.
!ina car!ada Ultima reEerencia = M
/ 12# 2&/ 1 /
1 23/ 2#" / /
2 12/ 2%/ / / 3 1#/ 2&" 1 1
(a) FAu< pa!ina es reemplaLada por =
(b) FAu< pa!ina es reemplaLada por HIH
(c) FAu< pa!ina es reemplaLada por K=
(d) FAu< pa!ina es reemplaLada por se!unda oportunidad
l!oritmos de sustitucin de p!inas (1")
-
7/21/2019 Memoria - Sistemas Operativos
54/62
"4
Cuestiones de dise$o en sistemas pa!inados (1)
Conunto de Trabao E Trasieo
Kos pro!ramas eJ,iben localidad en sus reEerencias
Con@unto de ?raba@o
>l con@unto de p!inas *ue actualmente est usando un proceso
?rasie!o (?,ras,in!)
n proceso causa Ealtas de p!ina cada pocas instrucciones
Folucin mantener en memoria el con@unto de traba@o Problea FAu< p!inas Eorman el con@unto de traba@o
G (A"t) tama$o del con@unto de traba@oB en el instante tB tomando las AUltimas reEerencias
i d di i i d ( )
-
7/21/2019 Memoria - Sistemas Operativos
55/62
""
Conunto de Trabao E Trasieo
k
ebe determinarse el valor de para obtener :(t)
9(t) indica el con@unto de marcos *ue necesita un proceso en t
Cuestiones de dise$o en sistemas pa!inados (2)
k
C i d di i i d (3)
-
7/21/2019 Memoria - Sistemas Operativos
56/62
"#
Pol+tica de asinacin local vs. lobal
Kocal asi!nacin de memoria constante
Global asi!nacin de memoria variable
Cuestiones de dise$o en sistemas pa!inados (3)
C i d di $ i i d (4)
-
7/21/2019 Memoria - Sistemas Operativos
57/62
"%
Pol+tica de asinacin local vs. lobal
Ka !lobal da me@ores resultados si cambia el tama$o con@unto de traba@o
FCunta memoria se asi!na a cada proceso
l!oritmo P33(a!e Hault Hre*uenc6) indica cundo incrementar5decrementar el tama$o del con@unto de traba@o
no indica *u< p!ina reemplaLar Erente a una Ealta de p!ina
Cuestiones de dise$o en sistemas pa!inados (4)
C i d di $ i i d (")
-
7/21/2019 Memoria - Sistemas Operativos
58/62
"&
Control de cara
pesar de todo el sistema puede entrar en trasie!o
HH indica
+ l!Un proceso necesita ms memoria
+ ero no *ue un proceso necesita menos
'olucin
=educir el nUmero de procesos *ue compiten por memoria
+ 'acar uno o ms a disco 6 repartir sus p!inas
+ =econsiderar el !rado de multipro!ramacin
Cuestiones de dise$o en sistemas pa!inados (")
C i d di $ i i d (#)
-
7/21/2019 Memoria - Sistemas Operativos
59/62
"
Taa=o de la '&ina
eben considerarse varios Eactores en competencia.
o eJiste nin!Un ptimo !lobal
Si el tama;o de un programa nollena un nHmero e=acto de p$ginas
ueda espacio sin utilizaren la Hltima de ellas1 2
ProgramaB *J. b7tes5ama;o de p$ginaB -.KJ b7tes ecesita G p$ginas
Ocupa J p$ginas completasBJ=-.KJ ) *-.,GJ
&e la Hltima p$gina ocupaB *J.*-.,GJ ) .-*-
&esaprovec4aB -.KJ.-*- ) *.JG*
-
7/21/2019 Memoria - Sistemas Operativos
60/62
#/
Taa=o de la '&ina
PEROP$ginas pe6ue;as
!uc4as p$ginas
5abla de P$ginas grande N. m$s caro: m$6uina m$s cara
!$s tiempo de trans"erencia desde memoria secundaria
Cuestiones de dise$o en sistemas pa!inados (%)
C ti d di $ i t i d (&)
-
7/21/2019 Memoria - Sistemas Operativos
61/62
#1
Taa=o de la '&ina
'i solo consideramos la Era!mentacin interna 6 la tabla de p!inas
s tama$o del pro!rama (b6tes)
p tama$o de la p!ina (b6tes)
e tama$o de cada entrada a la ? (b6tes)
esperdicio O s_e5p Y p52
rimera derivada con respecto a p e i!ualando a /
Bs_e5p2 Y ` O /Q
2p se=
s O 1Mb e O & b6tes
p O 4b
Cuestiones de dise$o en sistemas pa!inados (&)
(Kas secciones 4.#.4 4.#." 4.#.# 6 4.#.% no entra para el eJamen)
C ti d di $ i t i d ()
-
7/21/2019 Memoria - Sistemas Operativos
62/62
T4.1 n ordenador proporciona a cada proceso #""3# b6tes de espacio virtual de
direccionamiento dividido en p!inas de 4SD. n pro!rama particular tiene unse!mento de teJto de tama$o 32%#& b6tes un tama$o de datos de 1#3 b6tes 6 un
tama$o de pila de 1"&%/ b6tes FCabe este pro!rama en el espacio de direccionamiento
'i el tama$o de la p!ina Euese de "12 b6tes Fcabra =ecuerde *ue una p!ina no debe
contener partes de dos se!mentos distintos.
Cuestiones de dise$o en sistemas pa!inados ()