Download - Gestion de Memoria
-
7/17/2019 Gestion de Memoria
1/102
Fundamentos de Computadores II 1Sistemas Operativos
Captulo 4Gestin de memoria
-
7/17/2019 Gestion de Memoria
2/102
Fundamentos de Computadores II 2Sistemas Operativos
ndice
1. Objetivos del sistema de gestin de memoria2. Modelo de memoria de un proceso3. Esquemas de memoria basados en asignacin
contigua
4. Memoria virtual5. Arcivos pro!ectados en memoria". #ervicios de gestin de memoria
-
7/17/2019 Gestion de Memoria
3/102
Fundamentos de Computadores II 3Sistemas Operativos
1. Objetivos del sistema degestin de memoria
-
7/17/2019 Gestion de Memoria
4/102
Fundamentos de Computadores II 4Sistemas Operativos
$ En sistemas con multiproceso% el #.O. debe &repartir' los
recursos entre los procesos e(istentes)* +eparto de procesador) Gestin de procesos* +eparto de memoria)Gestin de memoria
$ Objetivos del ,estor de Memoria
A. Espacios lgicos independientes-. roteccin entre procesos/./omparticin de Memoria 0procesos ligeros.#oporte a las regiones del procesoE. Ma(imiar el grado de multiprogramacin
. Mapas de memoria de un tamao adecuado0normalmente grandes
1. Objetivos del sistema de gestin de memoria
-
7/17/2019 Gestion de Memoria
5/102
Fundamentos de Computadores II 5Sistemas Operativos
A.Espacios lgicos independientes
$ A priori no se conoce la posicin de memoria que ocuparunprograma cuando va!a a ejecutarse 0estado de ocupacin de lamemoria
$ /digo en ejecutable genera re6erencias entre 7 ! 8$ Ejemplo) rograma que copia un vector
L O A D R 1 , # 1 0 0 0L O A D R 2 , # 2 0 0 0L O A D R 3 , / 1 5 0 0L O A D R 4 , [ R 1 ]
S T O R E R 4 , [ R 2 ]I N C R 1I N C R 2D E C R 3J N Z / 1 2. . . . . . . . . . . . . . . . .
C a b e c e r a
! c " e r E $ e c % & a b ' e
04. . . .( )1 0 01 0 41 0 *1 1 2
1 1 )1 2 01 2 41 2 *1 3 21 3 )
*9ector destino a partir dedireccin 2777
*:amao del vector en direccin1577
*9ector origen a partir de direccin
1777
1. Objetivos del sistema de gestin de memoria
-
7/17/2019 Gestion de Memoria
6/102
Fundamentos de Computadores II 6Sistemas Operativos
#e supone que el cdigo del #O reside en
las posiciones m;s altas.El programa se carga en la posicin 7 ! paraque se ejecute a de pas;rsele el control0es decir% que el contador del programaapunte a esta posicin.
$ roblema)/omo se ve% no coinciden las
direcciones usadas en el programa con laposicin a partir de la cual se carga elprograma. #uponer por ejemplo% que elprograma se cargara a partir de laposicin 17777....
$ !olucin) "eubicacin de direccioneslgicas a 6
-
7/17/2019 Gestion de Memoria
7/102
Fundamentos de Computadores II 7Sistemas Operativos
$ "eubicacin) :raducir direcciones lgicas a direcciones 6a
reubicacin permite crear un espacio lgico independiente para cadaproceso ! el #.O. debe poder acceder a los espacios lgicos para realiarla traduccin.* irecciones lgicas) direcciones de memoria generadas por el
programa
* irecciones 6
-
7/17/2019 Gestion de Memoria
8/102
Fundamentos de Computadores II 'Sistemas Operativos
$ "eubicacin $ard%are) la MM 0memor! management unit seencarga de la traduccin
$ roceso)* rograma se carga en memoria sin modi6icar* El #.O. almacena por cada proceso su 6uncin de traduccin* El #.O. especi6ica a la MM quB 6uncin aplicar para cada proceso
L O A D R 1 , # 1 0 0 0L O A D R 2 , # 2 0 0 0L O A D R 3 , / 1 5 0 0L O A D R 4 , [ R 1 ]S T O R E R 4 , [ R 2 ]I N C R 1
I N C R 2D E C R 3J N Z / 1 2. . . . . . . . . . . . . . . . .
M e m o r i a
1 0 0 0 01 0 0 0 41 0 0 0 *1 0 0 1 21 0 0 1 )1 0 0 2 0
1 0 0 2 41 0 0 2 *1 0 0 3 21 0 0 3 ). . . . . . . . . .
P r o c e s a d o r
R . I - & r % c c !
& r a % c c !
L O A D R 3 , / 1 5 0 0
1 1 5 0 01 0 0 0 0
+1 5 0 0
C
*
1. Objetivos del sistema de gestin de memoria
-
7/17/2019 Gestion de Memoria
9/102
Fundamentos de Computadores II Sistemas Operativos
$ "eubicacin so&t%are) traduccin dedirecciones durante carga del programa.
Esta solucin se usa en sistemas sin elard=are espec
-
7/17/2019 Gestion de Memoria
10/102
Fundamentos de Computadores II 1)Sistemas Operativos
(.roteccin entre procesos>a proteccin es di6erente segCn sea un sistema Mono o Multi programado)
#istema Monorogramado) >a intrusin se dar; solamente entre elprograma ! el #.O.
#istema Multirogramado) >a intrusin puede venir tanto de otrosprocesos como de otros usuarios adem;s del riesgo del sistemaMonoprogramado.
$ Acciones* >a traduccin de direcciones debe crear espacios disjuntos* Es necesario validar todas las direcciones que genera el programa
$ >a deteccin de alguna intrusin debe realiarla el ard=are delprocesador 0MM% !a que a! que realiarla en tiempo deejecucin
$ El tratamiento de alguna intrusin lo ace el #O* En sistemas con mapa de ED# ! memoria comCn)* :raduccin permite impedir que los procesos accedan directamente
a dispositivos de ED#
1. Objetivos del sistema de gestin de memoria
-
7/17/2019 Gestion de Memoria
11/102
Fundamentos de Computadores II 11Sistemas Operativos
C. Comparticin de )emoria *procesos ligeros+
>a comparticin de memoria entre procesos da soporte a la creacin deprocesos ligeros ! est; controlado por el #.O.
$ Acciones)* >as direcciones lgicas de 2 o m;s procesos se corresponder;n con
una misma direccin 6a memoria asignada a cada proceso no puede ser !a contigua.
* >a 6uncin de traduccin en estos casos se va aciendo m;scompleja.
$ ,entajas)* rocesos ejecutando mismo
programa comparten sucdigo
* Mecanismo de comunicacinentre procesos mu! r;pido
6 a c a r & ! a
6 a c a r & ! a
6 a r ! a a 1
6 a r ! a a 2
6 a r ! a a 1
6 a r ! a a 2
+ a a r c e - 1
+ a a r c e - 26 a c a r & ! a
+ e r ! a
6 a r ! . 1 7 2 8
6 a r ! . 1 7 1 8
6 a r ! . 2 7 1 8
6 a r ! . 2 7 2 8
1. Objetivos del sistema de gestin de memoria
-
7/17/2019 Gestion de Memoria
12/102
Fundamentos de Computadores II 12Sistemas Operativos
$ roblemas)
* +equiere asignacin nocontigua
* #i la posicin de onacompartida contienere6erencia a otra posicin dela ona compartida% no se
puede saber a quB direccinse re6iere puesto que cadaproceso ligero ver; esadireccin de 6orma di6erente
Ejemplo) #i el cdigo% que es comCn%contiene una bi6urcacin% no se
podr; determinar a quB direccinse debe saltar% dependiendo delproceso que estB ejecutando elcdigo
6 a c a r & ! a
6 a c a r & ! a
+ a a r c e - 1
+ a a r c e - 2
6 a c a r & ! a
+ e r ! a
1 0 0 0
2 0 0 0
9 1 1 0 0 2 1 0 0 :1 0 0 0 0
1 0 1 0 0
lgico 6
-
7/17/2019 Gestion de Memoria
13/102
Fundamentos de Computadores II 13Sistemas Operativos
'. !oporte de las regiones del proceso
El mapa de memoria de un proceso no es omogBneo% !a que las regionescontienen di6erentes tipos de in6ormacin 0cdigo% datos ! pila
normalmente ! poseen di6erentes caracter
-
7/17/2019 Gestion de Memoria
14/102
Fundamentos de Computadores II 14Sistemas Operativos
El reparto de memoria debe ser tal quema(imie el grado de multiprogramacinpara evitar el desperdicio de memoria
$ )emoria desperdiciada* +estos 0uecos inutiliables
06ragmentacin* :ablas requeridas por gestor de
memoria$ Acciones
* /rear bloques de asignacin demenor tamao
* ,estionar las tablas de asignacinm;s e6icientemente
* #e opta por la paginacin* so de memoria virtual para
aumentar grado demultiprogramacin
D ! r e c c ! 5 0 e ' r c e - 4
D ! r e c c ! 1 0 e ' r c e - )
D ! r e c c ! ( 5 e ' r c e - ;
D ! r e c c ! 5 ) e ' r c e - *
D ! r e c c ! 0 e ' r c e - 1 2
D ! r e c c ! 5 e ' r c e - 2 0
D ! r e c c ! 0 e ' r c e - 1
D ! r e c c ! 5 1 e ' r c e - 4
D ! r e c c ! * * e ' r c e - (
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+ e r ! a
0
1
2
3
4
5
)
N < 1
N
Aprovec-amiento de memoriaptimo es irrealiable////0ablas de gestin demasiado
grandes
1. Objetivos del sistema de gestin de memoria
E. )aimiar el grado de multiprogramacin
-
7/17/2019 Gestion de Memoria
15/102
Fundamentos de Computadores II 15Sistemas Operativos
#. )apas de memoria de un tama2o adecuado
*normalmente grandes+>os procesos necesitan cada ve mapas m;s grandes) aplicaciones m;snovedosas% m;s recursos gr;6icos% m;s carga computacional....
$ Acciones* tiliar Memoria 9irtual* @acer que el usuario disponga virtualmente de una enorme cantidad
de memoria 6
-
7/17/2019 Gestion de Memoria
16/102
Fundamentos de Computadores II 16Sistemas Operativos
3. )odelo de memoria de unproceso
3.1. ntroduccin3.3. #ases en la generacin de un ejecutable3.5. )apa de memoria de un proceso3.4. Operaciones sobre regiones
-
7/17/2019 Gestion de Memoria
17/102
Fundamentos de Computadores II 17Sistemas Operativos
3.1. ntroduccin
* El #.O. es el responsable de la gestin de memoria de
cualquier proceso.
* El mapa inicial de memoria de un proceso est; relacionado
con el arc-ivo ejecutableque generar; el proceso
* Cmo generar el mapa de memoria inicial a partir del
ejecutableF
* Cmo se organiael mapa de memoriaF
* /u;les son sus caractersticasb;sicasF* GuB operaciones se pueden realiar en el mapa de
memoriaF
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
18/102
Fundamentos de Computadores II 1'Sistemas Operativos
$ Aplicacin) conjunto de mdulos en lenguaje de alto nivel$ rocesado en dos 6ases) /ompilacin ! Montaje
$ /ompilacin)* #e asignan direcciones a los
s
-
7/17/2019 Gestion de Memoria
19/102
Fundamentos de Computadores II 1Sistemas Operativos
$ :ipos)Estticas) el montaje enlaa los mdulos
objeto del programa ! de las bibliotecas%dando como resultado un ejecutableautocontenido.
$ esventajas)* Ejecutables grandes* /digo de 6uncin de biblioteca
repetido
* MCltiples copias en memoria delcdigo de 6uncin de biblioteca
* >a actualiacin de bibliotecaimplicar
% c ! e b ! b ' ! & e c a 1
% c ! e b ! b ' ! & e c a 2
)odelo de memoria de un proceso
(iblioteca) coleccin de mdulos objeto relacionados. Algunas bibliotecasson proporcionadas a los usuarios 0bibliotecas del sistema% mientras
que otras abr;n sido creadas por los usuarios 0propias 0por ejemplo%bibliotecas de entrada salida% inclu!endo las 6unciones como print6%getcar% etc% o las llamadas al sistema de O#?H
-
7/17/2019 Gestion de Memoria
20/102
Fundamentos de Computadores II 2)Sistemas Operativos
'inmicas6 la carga ! montaje se ace en tiempo de ejecucin. Elejecutable contiene Cnicamente el nombre de la biblioteca ! la
rutina de carga ! montaje en tiempo de ejecucin$ roceso de carga)* >a rutina de carga ! montaje incorpora la biblioteca
correspondiente.* #e ajustan las instruccionesque realian las re6erencias
a dico s
-
7/17/2019 Gestion de Memoria
21/102
Fundamentos de Computadores II 21Sistemas Operativos
$ 9entajas)
* Menor tamao ejecutables* /digo de rutinas de biblioteca slo en arcivo de biblioteca* rocesos pueden compartir cdigo de biblioteca* Actualiacin autom;tica de bibliotecas) uso de versiones.
#uele aber en un sistemas varias versiones de la mismabiblioteca. /uando un programa ace re6erencia a uno de
sus s
-
7/17/2019 Gestion de Memoria
22/102
Fundamentos de Computadores II 22Sistemas Operativos
$ orma de uso )1. Enlace din;mico implcito) #e especi6ica en tiempo de
montaje quB biblioteca usar% pero se pospone su carga !montaje a tiempo de ejecucin.
2. so eplcito)I +equerido por aplicaciones que determinan en tiempo
de ejecucin quB bibliotecas deben usarI 8o se especi6ica la biblioteca en mandato de montaje
I Es el programa quien solicita la carga de bibliotecasmediante servicio del sistema 0d"openen 8?H !+oad+i,rar*en Jin32
I El acceso a los s
-
7/17/2019 Gestion de Memoria
23/102
Fundamentos de Computadores II 23Sistemas Operativos
$ El uso de bibliotecas din;micas es transparente. Es decir% losmandatos de compilacin ! montaje son idBnticos que en el caso de lasest;ticas
$ #i la biblioteca din;mica contiene re6erencias internas 0a s
-
7/17/2019 Gestion de Memoria
24/102
Fundamentos de Computadores II 24Sistemas Operativos
#ic-eros ejecutables
$ istintos 6abricantes usan di6erentes 6ormatos
* Ejemplo) En >inu( /0ecuta,"e and +ina,"e Format0E>
$ Estructura) /abecera ! conjunto de secciones
$ Cabecera) in6ormacin de control que permite interpretar el contenidodel ejecutable. #uele incluir la siguiente in6ormacin)* 78mero mgico que identi6ica a ejecutable. or ejemplo% en
6ormato E> el primer b!te debe contener el valor e(adecimal K6%los tres siguientes los caracteres E% > !
* unto de entradadel programa) es decir% el valor que inicialmentecontendr; el contador del programa
* 0abla de secciones. ara cada una de ellas se especi6ica) tipo%direccin de comieno en el arcivo ! tamao.
Ejemplo)I :abla de sista de bibliotecas din;micas usadas
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
25/102
Fundamentos de Computadores II 25Sistemas Operativos
C a b e c e r a
F i c h e r o E j e c u t a b l eN m e r o m g i c o
C o n t a d o r d e p r o g r a m a i n i c i a l
T a b l a d e s e c c i o n e s
C d i g o
D a t o s c o n a l o r i n i c i a l
T a b l a d e s ! m b o l o s
" " " " " " " " " " " " " " " " " " " "
C d i g o
D a t o s c o n " i "
D a t o s s i n " i "
" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "
T " # ! m b o l o s
$ % % %
& % % %' ' ' ' ' '
( % % %
) % % %
$ % % %
& % %
$ % % %
D e s p l " T a m "
" " " " " " " " " " " " " " " "
%
$ % % %
& % % %
( % % %
# e c c i o n e s
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
26/102
Fundamentos de Computadores II 26Sistemas Operativos
$ >as secciones ms relevantesse volcar;n en el mapa de memoria delproceso) cdigo% datos con valor inicial ! datos sin valor inicial
* Cdigo0te(to) contiene el cdigo del programa
* 'atos con valor inicial) variables globales inicialiadas
* 'atos sin valor inicial) variables globales no inicialiadas) aunque
aparece en la tabla de secciones no se almacena en el ejecutable% !aque su contenido no es relevante
$ 8o a! seccin vinculada a variables locales% !a que estas tienencar;cter din;mico 0se crear;n en la pila del proceso% cuando losprocedimientos en que aparecen sean invocados
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
27/102
Fundamentos de Computadores II 27Sistemas Operativos
$ ,ariables globales* Est;ticas* #e crean al iniciarse programa* E(isten durante toda la ejecucin del proceso* ireccin 6ija en memoria ! en ejecutable
$ ,ariables locales 9 parmetros* in;micas* #e crean al invocar la 6uncin* #e destru!en al retornar* >a direccin se calcula en tiempo de ejecucin* +ecursividad) varias instancias de una variable
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
28/102
Fundamentos de Computadores II 2'Sistemas Operativos
$ Ejemplo)
int x=8; /* Variable global con valor inicial */ int y; /* Variable global sin valor inicial */
f(int t){ /* Parmetro */
int z; /* Variable local */
.......
main(){
.......
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
29/102
Fundamentos de Computadores II 2Sistemas Operativos
$ El mapa de memoria o imagen del proceso estar; compuesto por unconjunto de regiones o segmentosL cada una de ellas almacenacierto tipo de in6ormacin
$ Cada regin)
* :iene asociada una in6ormacin 0un &objeto de memoria'* /onsiste en una ona contigua tratada como unidad al proteger o
compartir* #e caracteria por)
$ ireccin de comieno ! tamao inicial
$ #oporte) donde se almacena su contenido inicial 0soporte enarcivo ! sin soporte% es decir% objeto sin contenido inicial$ roteccin) +JH$ so compartido o privado$ :amao 6ijo o variable
3.5. )apa de memoria de un proceso
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
30/102
Fundamentos de Computadores II 3)Sistemas Operativos
$ >a ejecucin de un programa crea un mapa de memoriaa partir
del arcivo ejecutable. /ada seccin del ejecutable da lugar a unaregin del mapa inicial.
* /digo 0te(to) compartida% lectura ! ejecucin% tamao 6ijo%soporte en arcivo ejecutable
* atos con valor inicial) privada% lectura ! escritura% tamao 6ijo%soporte en arcivo ejecutable
* atos sin valor inicial) privada% lectura ! escritura% tamao 6ijo% sinsoporte 0se rellena a ceros en algunos lenguajes
* ila) privada% lectura ! escritura% tamao variable% sin soporte. /receacia direcciones m;s bajas. >a pila inicial slo contiene losargumentos de llamada al programa
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
31/102
Fundamentos de Computadores II 31
Sistemas Operativos
/abeceraicero ejecutable7
1777
5777
#ecciones
777
8Cmero m;gico/ontador de programa
inicial
:abla de secciones
/digo
atos con valorinicial
:abla de s
-
7/17/2019 Gestion de Memoria
32/102
Fundamentos de Computadores II 32
Sistemas Operativos
$ 'urante ejecucinde proceso se crean nuevas regiones. Es decir% el mapa
de memoria tiene un car;cter din;mico. >as nuevas regiones creadas en tiempode ejecucin pueden ser)* +egin de @eap
$ #oporte de memoria din;mica 0mallocen /$ rivada% lectura ! escritura% tamao variable% sin soporte 0inicialiada a
cero$ /rece acia direcciones m;s altas
* Arcivo pro!ectado$ +egin asociada al arcivo pro!ectado$ :amao variable% soporte en arcivo$ roteccin ! car;cter compartido o privado especi6icado en la pro!eccin
* Memoria compartida$ +egin asociada a la ona de memoria compartida$ /ompartida% tamao variable% sin soporte 0inicialiada a 7
$ roteccin especi6icada en pro!eccin* ilas de treads$ /ada pila de tread corresponde con una regin.$ Estas regiones constan de las mismas caracter
-
7/17/2019 Gestion de Memoria
33/102
Fundamentos de Computadores II 33
Sistemas Operativos
"egin !oporte roteccin Comp:riv 0ama2o
/digo 4icero +H /ompartida 4ijo
at. con v.i. 4icero +J rivada 4ijo
at. sin v.i. #in soporte +J rivada 4ijo
ilas #in soporte +J rivada 9ariable
@eap #in soporte +J rivada 9ariable
4. ro!ect. 4icero por usuario /omp.Driv. 9ariable
M. /omp. #in soporte por usuario /ompartida 9ariable
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
34/102
Fundamentos de Computadores II 34
Sistemas Operativos
)odelo de memoria de un proceso
-
7/17/2019 Gestion de Memoria
35/102
Fundamentos de Computadores II 35
Sistemas Operativos
ara estudiar la evolucin del mapa de memoria a lo largo de la ejecucinde un proceso% se pueden distinguir las siguientes operaciones)
* /rear regin) ?mpl
-
7/17/2019 Gestion de Memoria
36/102
Fundamentos de Computadores II 36
Sistemas Operativos
5. Es;uemas de memoria basadosen asignacin contigua
5.1. Es;uema -ard%are5.3. Gestin del !O5.5. oltica de asignacin de espacio5.4. ,aloracin del es;uema contiguo
-
7/17/2019 Gestion de Memoria
37/102
Fundamentos de Computadores II 37
Sistemas Operativos
El mapa de proceso se ubica en una ona contigua de la memoriaprincipal.
roceso)* El #.O. busca un -ueco en memoria de tamao su6iciente para
alojar su mapa de memoria del proceso que comiena.
* El #.O. reserva la parte del ueco necesaria ! crea en ella elmapa inicial del proceso* #e establece la &uncin de traduccin% de 6orma que las
direcciones del programa se correspondan con las direccionese(istentes en el ueco asignado.
@ard=are requerido)* "egistros valla0registro base ! registro los registros valla est;n desocupados cuando el #.O. toma el controlpara acceder a todo el mapa de memoria.
5.1. Es;uema $ard%are
Es;. de mem. basados en asignacin contigua
-
7/17/2019 Gestion de Memoria
38/102
Fundamentos de Computadores II 3'
Sistemas Operativos
$ "egistro lmite) #e comprobar; que las direcciones usadas por elproceso no e(cedan el valor almacenado en Bl.
$ "egistro base) na ve realiada la comprobacin anterior% se suma acada direccin el valor contenido en este registro% de 6orma que seobtiene la direccin 6
-
7/17/2019 Gestion de Memoria
39/102
Fundamentos de Computadores II 3
Sistemas Operativos
El !.O. almacena en el (C cules son los valores de los registrosvalla.
edica una estructura para conocer en todo momento el estado de lamemoria% identi6icando quB uecos est;n libres. 8ormalmente se usa
una lista en la que se almacena la direccin inicial ! el tamao de cadaueco.
>a gestin de esta lista obliga a comprobar% al desocupar espacio% si elnuevo espacio libre puede unirse a uecos vecinos.
roblema)#egCn se van ejecutando procesos van quedando 6ragmentos dememoria libres% que debido a su tamao no podr;n ser usados enasignaciones de espacio a memoria. Este problema se denomina&ragmentacin eterna ! conlleva una mala gestin de memoria.
#olucin tradicional) /ompactar los uecos de 6orma que quedencontiguos. ara ello es necesario reajustar los registros valla de losprocesos. ?8E?/?E8:E.
5.3. Gestin del !O
Es;. de mem. basados en asignacin contigua
-
7/17/2019 Gestion de Memoria
40/102
Fundamentos de Computadores II 4)
Sistemas Operativos
El !.O. debe considerar quB espacio% de los uecos libres% se usar;intentando encontrar un equilibrio entre buen aprovecamiento deespacio ! tiempo de respuesta corto% es decir% se aplica un algoritmode decisin ;ue debe ser e&iciente.
Este problema es un cl;sico) Cmo asignar espacio para suaprovec-amiento ptimoF. E(isten tres posibles en6oques)
a Mejor ajuste 0bestQ6it. #e elige la ona libre m;s pequea dondequepa el mapa del proceso.$ roblema) /onlleva crear nuevos uecos de tamao pequeo.
Adem;s% elegir el ueco m;s pequeo obliga a mantenerordenados por tamao los uecos disponibles. 8o es e6iciente
b eor ajuste. #e busca el ueco m;s grande% intentando evitar la
generacin de uecos pequeos. #igue precisando mantener elcontrol de los tamaosc El primero que ajuste 06irstQ6it. #uele ser la mejor pol
-
7/17/2019 Gestion de Memoria
41/102
Fundamentos de Computadores II 41
Sistemas Operativos
5.4. ,aloracin del es;uema contiguo
$ 9aloracion)* Espacios independientes para procesos) mediante registros valla* roteccin) mediante registros valla* /ompartir memoria) no es posible* #oporte de regiones)
$ 8o e(iste 0no a! mecanismo de permisos sobre el espacio
asignado a cada proceso$ #e reserva espacio para uecos% !a que el espacio asignado al
proceso en primera instancia debe servir para todo su tiempo devida
* Ma(imiar rendimiento)$ Mal aprovecamiento de memoria por 6ragmentacin e(terna
* Mapas de M9 de tamao adecuado)$ 8o permite memoria virtual
Es;. de mem. basados en asignacin contigua
-
7/17/2019 Gestion de Memoria
42/102
Fundamentos de Computadores II 42
Sistemas Operativos
4. ntercambio
-
7/17/2019 Gestion de Memoria
43/102
Fundamentos de Computadores II 43
Sistemas Operativos
BuD -acer si no caben todos los programas en memoria principalF
sar disco 0dispositivoswap como respaldo de la memoria principal. #ino caben en memoria todos los procesos activos% se elige un procesoresidente ! se copia en disco su imagen de memoria
Epulsar *swap-out+ a los procesos blo;ueados. El proceso dee(pulsin no implica copiar toda la imagen del proceso 0por ejemplo% no
es preciso ocupar los uecos ni el cdigo% al poder recuperarse6;cilmente del ejecutable. n proceso e(pulsado vuelve a cargarse0swap-in cuando estB listo para ejecutar ! a!a espacio en memoria.
olticas de asignacin de espacio en s%ap)reasignacin) al crear el proceso se reserva espacio de s=ap.
8O reasignacin) slo se reserva espacio de s=ap al e(pulsar.0#emejana con estado &suspendido'F
ntercambio
-
7/17/2019 Gestion de Memoria
44/102
Fundamentos de Computadores II 44
Sistemas Operativos
>. )emoria virtual
>.1. ntroduccin>.3. aginacin>.5. !egmentacin>.4. !egmentacin paginada
>.>. aginacin por demanda>.. olticas de reemplao>.F. oltica de asignacin de marcos de
pgina>.@. $iperpaginacin>.. Gestin del espacio de s%ap>.1?. Operaciones sobre las regiones de un
proceso
-
7/17/2019 Gestion de Memoria
45/102
Fundamentos de Computadores II 45
Sistemas Operativos
>a tBcnica de la M9 se usa pr;cticamente en todos los ##OO modernos.Esta tBcnica se basa en trans&erir in&ormacin entre memoriaprincipal 9 memoria secundaria0por lo que involucra varios nivelesde la jerarqu
-
7/17/2019 Gestion de Memoria
46/102
Fundamentos de Computadores II 46
Sistemas Operativos
9entajas)
a Aumento del grado de multiprogramacin. or tanto% aumentoen el rendimiento del sistema
b osibilidad de ejecutar programas ms grandes que la M9disponible
El uso de la M9 no implica ;ue se acelere la ejecucin del programa0m;s bien al contrario% debido a la sobrecarga asociada a losmovimientos de in6ormacin entre niveles de la jerarqu
-
7/17/2019 Gestion de Memoria
47/102
Fundamentos de Computadores II 47
Sistemas Operativos
$ gina6 Iona contigua de memoria de determinado tama2o. 0ormotivos de e6iciencia se suele trabajar siempre con tamaos potenciade 2. Ej)4 R-.
$ Organiacin)S El mapa de memoria del proceso se considera dividido en p;ginas.
S >a memoria principal se considera dividida en marcos de p;gina0tamao de marco T tamao de p;gina.S >os marcos contendr;n p;ginas de los procesos en ejecucinS >a tabla de pginas 0: relaciona cada p;gina con el marco que
la contiene. El ard=are de traduccin 0MM usa la tabla dep;ginas para traducir direcciones lgicas a 6
-
7/17/2019 Gestion de Memoria
48/102
Fundamentos de Computadores II 4'
Sistemas Operativos
* /ada entrada de la tabla de p;ginas contendr;% adem;s del nCmerode marco asociado con la p;gina)
a+ n&ormacin de proteccin) tipo de acceso permitido +JHb+ (it de pgina vlida:invlida) para indicar si dica entradacontiene una traduccin asociada% es decir% si se corresponderealmente con un marco
c+ (it de pgina accedida *Ref+) activado cuando se acceded+ (it de pgina modi&icada *Mod+) activado cuando se escribee+ (it de desactivacin de cac-D) se usa cuando la entrada
corresponde con direcciones de ED#$ :amao de p;gina) >a eleccin de tama2o de pgina est;condicionada por diversos 6actores% entre los que a! que conseguirequilibrio)* otencia de 2 ! mCltiplo del tamao del bloque de disco* mejor pequeo por)
$ Menor 6ragmentacin$ #e ajusta mejor al conjunto de trabajo
* mejor grande por)$ :ablas m;s pequeas$ Mejor rendimiento de dispositivos de ED#
* /ompromiso 0entre 2R ! 1"R
)emoria virtual
i i l
-
7/17/2019 Gestion de Memoria
49/102
Fundamentos de Computadores II 4
Sistemas Operativos
$ ireccin)na direccin lgica se obtiene a partir de)
nU p;gina P desplaamiento$ roblema)
* >a paginacin no o&rece una solucin ptima. >o idealser
-
7/17/2019 Gestion de Memoria
50/102
Fundamentos de Computadores II 5)
Sistemas Operativos
;gina -!te
+egistro base de la :0+?E
7123
n
ireccin lgica
M) direcciones 6
-
7/17/2019 Gestion de Memoria
51/102
Fundamentos de Computadores II 51
Sistemas Operativos
$ roblema) ragmentacin% la memoria asignada es ma!or que lamemoria requerida ! por lo tanto% se desperdicia cierta cantidad deespacio
:. ;ginas roceso 1;gina 7
;gina 1
;gina M
Marco 2
Marco 3
Marco 8
..............
:. ;ginas roceso 2;gina 7
;gina 1
;gina
Marco 4
Marco 1
Marco 7
..............
Marco 7
Memoria
Marco 1
Marco 2
Marco 3
Marco 4
Marco 8
;g. 1 r. 2
............
;g. 7 r. 1
;g. 1 r. 1
;g. M r. 1
;g. 7 r. 2
;g. r. 2
)emoria virtual
) i i t l
-
7/17/2019 Gestion de Memoria
52/102
Fundamentos de Computadores II 52
Sistemas Operativos
$ Otras cuestiones)* En este esquema% el #.O. mantiene una tabla de pginas por
cada proceso. /uando se produce un cambio de conte(to se indicaa la MM quB tabla de p;ginas usar* El #.O. mantiene una 8nica tabla de pginas para s mismo. As
-
7/17/2019 Gestion de Memoria
53/102
Fundamentos de Computadores II 53
Sistemas Operativos
$ ?mplementacin de la tabla de p;ginas)* >as tablas de p;ginas se mantiene normalmente en memoria
principal. roblemas) e6iciencia ! gasto de almacenamientoa+E&iciencia) cada acceso lgico requiere dos accesos a memoriaprincipal% a la tabla de p;ginas P al propio dato o instruccin.#olucin) cacde traducciones *V :>-
b+Gasto de almacenamiento) tablas mu! grandes. Ejemplo)p;ginas 4R% dir. lgica 32 bits ! 4 b!tes por entrada% la tabla dep;ginas de cada proceso tendr; 4M-. #olucin) tablas
multinivel! tablas invertidas$ 9aloracin)* Espacios independientes para procesos) mediante tablas de p;ginas* roteccin) mediante tablas de p;ginas* /ompartir memoria) entradas corresponden con mismo marco 0bajo
supervisin del #O dos procesos pueden compartir una p;ginaasociada al mismo marco
* #oporte de regiones) bits de proteccin% bit de valide) no sereserva espacio para -uecos
* Ma(imiar rendimiento) #i% al permitir esquemas de memoria m;s6le(ibles
* Mapas de tamao adecuado) s
-
7/17/2019 Gestion de Memoria
54/102
Fundamentos de Computadores II 54
Sistemas Operativos
:>- 0:ranslation >ooNQaside -u66er) /onsta de una memoria asociativaconin6ormacin sobre Cltimas p;ginas accedidas.
$ ara el multiproceso% e(isten varias posibilidades)
* >a :>- no inclu9e in&ormacin del proceso. En este caso% abr; queinvalidar la :>- en los cambios de conte(to* Entradas en :>- inclu9en in&ormacinsobre proceso) en este caso%
debe e(istir un registro de / para mantener la identi6icacin delproceso actual
$ ?mplementacin* $J) >a MM consulta la :>- ! si 6alla% se usa la : en memoria.
$ 9entajas) Es un proceso mu! r;pido$ ?nconvenientes) Actualiar la : en cambios de conte(to ! a! que
invalidar la :>- cuando se produce un cambio de conte(to 0si no tienein6ormacin del ?
* !J6 >a MM no usa la :% sino que slo consulta :>-. En caso de 6allo%se activa el #O% que a de buscar la entrada en la tabla de p;ginas0mediante programa% e insertar en la :>- la traduccin eca% de 6ormaque se pueda reutiliar.
$ 9entajas) 6le(ibilidad% !a que la tabla de p;ginas puede ser de6inida aconveniencia% sin restricciones impuestas por el ard=are
$ ?nconvenientes) Es menos e6iciente% !a que parte del proceso detraduccin se realia mediante programa.
)emoria virtual
) i i t l
-
7/17/2019 Gestion de Memoria
55/102
Fundamentos de Computadores II 55
Sistemas Operativos
na de las opciones disponibles para disminuir el tamao requerido por lastablas de p;ginas es la tabla de pginas multinivel
$ Organiacin)#e trata de una tabla de p;ginas organiadas en M niveles)* Entrada de : de nivel R apunta a : de nivel RP1* Entrada de Cltimo nivel apunta a marco de p;gina
$ ireccin) >a direccin lgica especi6ica la entrada a usar en cada nivel
$ 1 campo por nivel P desplaamiento
$ Accesos)n acceso lgico supone M P 1 accesos a memoria. #olucin)uso de :>-
$ ?nvaliadacin)#i todas las entradas de una : son inv;lidas% no se
almacena esa : ! se pone inv;lida la entrada correspondiente de la :superior
$ Aorro de espacio)#i el proceso usa una parte pequea de su espaciolgico% se consigue aorro en espacio para almacenar :s
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
56/102
Fundamentos de Computadores II 56
Sistemas Operativos
1ernivel 2U nivel -!te
+egistro base de la :0+?E
7123
n
ireccin lgica
M) direcciones 6
-
7/17/2019 Gestion de Memoria
57/102
Fundamentos de Computadores II 57
Sistemas Operativos
$ Ejemplo) roceso que usa 12M- superiores ! 4M- in6eriores
* 2 niveles% p;ginas de 4R% dir. lgica 32 bits 017 bits por nivel ! 4b!tes por entrada
* :amao) 1 : 81P 4 : 82T 5 W 4R- T 27R- 06rente a 4M-
$ 9entajas adicionales) permite compartir :s intermedias ! slo serequiere que estB en memoria la : de nivel superior. >as restantes
pueden estar en disco ! traerse por demanda
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
58/102
Fundamentos de Computadores II 5'
Sistemas Operativos
, e , # r ! a
r ! , e r ! / e '
T a b ' a e @ ? ! a -
.
.
.
& a b ' a - e @ ? ! a -
- e ? % # ! / e '
.
.
.
.
.
.
.
.
.
r ! , e r ! / e '
T a b ' a e @ ? ! a -
A
A
A
A
I
I
@ ? ! a 0
@ ? ! a 1 0 2 3
@ ? ! a 1 0 2 4
@ ? ! a 2 0 4 ;
@ ? ! a 2 0 4 *
@ ? ! a 3 0 ; 1
@ ? ! a 1 0 4 * 5 ; 5 7 2 B 2 0 < 1 8
@ ? . 1 0 4 ; 5 5 2 7 2 B 2 0 < 1 0 2 4 8
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
59/102
Fundamentos de Computadores II 5
Sistemas Operativos
Otra alternativa para disminuir el espacio necesario por la tabla de p;ginases la tabla de pginas invertida
$ Organiacin)* >a tabla contendr; tantas entradas como marcos de p;gina a!a.* /ada entrada almacena la p;gina cargada en dico marco junto con
sus caractera MM usa una :>- convencional% pero si 6alla la traduccin se
accede a la tabla de p;ginas invertida. Al estar la tabla organiada pormarcos no se puede acer una bCsqueda directa. eber
-
7/17/2019 Gestion de Memoria
60/102
Fundamentos de Computadores II 6)
Sistemas Operativos
pid p;gina
-!te;ginapid
ireccin lgica
-!tei
i
ireccin 6
-
7/17/2019 Gestion de Memoria
61/102
Fundamentos de Computadores II 61
Sistemas Operativos
/on la paginacin la MM no dispone de in6ormacin sobre las regionesde los procesos! slo entiende de p;ginas. or esta ran% el #O debemantener una lista de las pginas ;ue componen cada regin% loque supone varias desventajas)$ Al crear una regin a! que cuidar que todas las p;ginas
asociadas tengan la misma in6ormacin de control$ ara poder compartir una regin es preciso que las entradas de
varios procesos apunten a los mismos marcos
!egmentacin) es un esquema @J que intenta dar soporte directo a lasregiones. En Bl se considera el mapa de memoria como compuesto por
varios segmentos.#e puede considerar que consisten en una generaliacin de los
registros valla base 9 lmite% pero usando un par de registros porcada segmento
>.5. !egmentacin
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
62/102
Fundamentos de Computadores II 62
Sistemas Operativos
$ ireccin)na direccin lgica estar; compuesta por un nCmero desegmento ! un desplaamiento en el mismo.
$ :raduccin) >a 6orma de realiar la traduccin puede apreciarse en laimagen siguiente)
e r ! a
& a b ' a e - e ? e & -
' ! & e b a - e
-
! r e c c ! ' ? ! c a
E c e c !
* +
S I
N O
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
63/102
Fundamentos de Computadores II 63
Sistemas Operativos
$ :abla de segmentos)En este caso% la MM usa una tabla de segmentos0:#.
$ Organiacin)* El #O mantiene una :# por proceso% de 6orma que en cada cambio
de conte(to se noti6ica a MM cu;l debe usar* /ada entrada de :# contiene 0entre otros)
$ +egistro base ! l
-
7/17/2019 Gestion de Memoria
64/102
Fundamentos de Computadores II 64
Sistemas Operativos
$ 9aloracin6
* Espacios independientes para procesos) mediante su propia :#% quecrea un espacio lgico independiente
* roteccin) mediante :#% o6reciendo espacios disjuntos de memoria* /ompartir memoria) bajo control del #O es posible que dos o m;s
procesos tengan un segmento asociado a la misma ona dememoria
* #oporte de regiones) bits de proteccin* Ma(imiar rendimiento ) 8o lo ma(imia% por la 6ragmentacine(terna
* Mapas de tamao adecuado) 8o cumple este objetivo porque nopermite implementar e6icientemente un sistema de memoria virtual
or tanto% tal ! como se a presentado se usa en mu9 pocos!O reales
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
65/102
Fundamentos de Computadores II 65
Sistemas Operativos
#e intenta aunar las ventajas de ambos es;uemas) segmentacin !paginacin)* #egmentacin) soporte para regiones.* aginacin) mejor uso del espacio de memoria.
$ Organiacin)* Entrada en :# apunta a una : para el segmento.* El espacio del segmento est; compuesto de varias p;ginas% de 6orma
que su espacio no tiene que ser contiguo.
>.4. !egmentacin paginada
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
66/102
Fundamentos de Computadores II 66
Sistemas Operativos
e r ! a
& a b ' a e - e ? e & -
' ! & e ! r . T . @ ? .
! r e c c ! ' ? ! c a
E c e c !
*S I
N O
-
! r e c c ! = - ! c a
& a b ' a e @ ? ! a - a r a - e ? e & -
)emoria virtual
$:raduccin)>a traduccin se lleva a cabo segCn se indica.
)emoria virtual
-
7/17/2019 Gestion de Memoria
67/102
Fundamentos de Computadores II 67
Sistemas Operativos
$ 9aloracin)
* Espacios independientes para procesos) mediante :#* roteccin) mediante :#* /ompartir memoria) bajo control del #O% podemos acer que una
misma entrada apareca en di6erentes :# 0es decir% pueda ser usadopor varios procesos
* #oporte de regiones) bits de proteccin
* Ma(imiar rendimiento) la paginacin aproveca e6icientemente elespacio de memoria.* Mapas de tamao adecuado) permite esquemas de memoria virtual
$ 9entajas) rente a paginacin sin segmentos 6acilita al #O la gestin delas regiones% pero requiere @J m;s complejo
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
68/102
Fundamentos de Computadores II 6'
Sistemas Operativos
na ve analiados los di6erentes esquemas ard=are vamos a ver cmose articulan para construir un esquema de memoria virtual 0estosesquemas tambiBn pueden usarse sin memoria virtual% pero en laactualidad su uso est; siempre vinculado a la memoria virtual
$ 8ormalmente la memoria virtual se constru!e sobre esquemas de
paginacin pura o segmentada. e esta 6orma% la unidad de in6ormacinintercambiada entre memoria principal ! secundaria es la p;gina.
$ 8ormalmente la trans6erencia de in6ormacin se lleva a cabo bajodemanda 0paginacin por demanda. e esta 6orma% cuando unproceso necesita acceder a una p;gina que no est; en memoria
principal% se genera un 6allo de p;gina ! el #O se encarga de trans6erirladesde la memoria secundaria. #i al traerla no a! espacio su6iciente enM% ser; necesario desalojar alguna de las p;ginas actuales 0ello seace mediante un algoritmo de reemplazo
>.>. aginacin por demanda
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
69/102
Fundamentos de Computadores II 6
Sistemas Operativos
$ >a construccin de un sistema de memoria virtual sobre un procesadorcon paginacin implica usar un bit de valide en las entradas de la
tabla de pginas% que indica si la p;gina es v;lida. Estar;n marcadascomo inv;lidas todas las p;ginas que no residen en M% as< como las queconstitu!en uecos en el mapa de memoria.
$ ara las entradas correspondientes a p;ginas no residentes en M% laentrada principal% en lugar de almacenar el marco donde reside
contendr; la direccin del dispositivo de memoria en ;ue seencuentra almacenada. e 6orma que cuando se produce un acceso auna de estas p;ginas% se produce una e(cepcin ! se activa el #O%responsable de acer la trans6erencia desde memoria secundaria.
$ Algunos sistemas tambiBn usan la tBcnica de prepaginacin. Al ocurrir
un 6allo de p;gina no slo traen la p;gina en cuestin% sino tambiBn lascercanas% al suponerse que se usar;n en un corto plao de tiempo. >ae6ectividad de esta tBcnica depender; del acierto de la prediccin.
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
70/102
Fundamentos de Computadores II 7)
Sistemas Operativos
9eamos cmo se gestiona la ocurrencia de un &allo de pgina)$ >a MM genera una e(cepcin. 8ormalmente deja en un registro
especial la direccin que caus el 6allo$ #e activa el #O% que comprueba)
* #i la p;gina es inv;lida% se aborta el proceso 0solucin normal%aunque tambiBn podr
-
7/17/2019 Gestion de Memoria
71/102
Fundamentos de Computadores II 71
Sistemas Operativos
$ En el peor de los casos un 6allo de p;gina puede suponer dosoperaciones de ED#)
a #alvaguarda de la p;gina e(pulsadab >ectura de la p;gina nueva
os pol
-
7/17/2019 Gestion de Memoria
72/102
Fundamentos de Computadores II 72
Sistemas Operativos
$ Objetivo) Minimiar la tasa de 6allos de p;gina.
$ /ada algoritmo descrito tiene versin local ! global)* >ocal) criterio se aplica a las p;ginas residentes del proceso* ,lobal) criterio se aplica a todas las p;ginas residentes
$ Algoritmos a estudiarA. Xptimo-. ?O/. +eloj 0o segunda oportunidad. >+
E. -u%%erin#de p;ginas. +etencin de p;ginas en memoria
>.. olticas de reemplao
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
73/102
Fundamentos de Computadores II 73
Sistemas Operativos
A+ Algoritmo ptimo
$ /riterio) ;gina residente que tardar; m;s en accederse$ ?mplementacin) ?rrealiable% !a que supone disponer de una prediccin
6iable del uso de las p;ginas en un 6uturo a medio plao$ 9ersin local ! global$ ?nterBs para estudios anal
-
7/17/2019 Gestion de Memoria
74/102
Fundamentos de Computadores II 74
Sistemas Operativos
$ /riterio) se elimina la p;gina que lleva m;s tiempo residente
$ ?mplementacin) ;cil* ;ginas residentes en orden ?O *V se e(pulsa la primera* 8o requiere ard=are especial
* En el caso de estrategia local se mantiene una lista de p;ginas porcada proceso. En el caso global% basta con una Cnica lista
$ roblema)* na p;gina que lleva muco tiempo residente puede seguir
accediBndose 6recuentemente.
* #u criterio no se basa en el uso de la p;gina.* Anomal
-
7/17/2019 Gestion de Memoria
75/102
Fundamentos de Computadores II 75
Sistemas Operativos
#e trata de una modi6icacin del algoritmo ?O% para evitar que unap;gina residente desde ace tiempo sea desalojada pese a estar siendousada. ara ello se usa el bit de re&erenciae% de las p;ginas% con loque se detecta su uso
$ /riterio)* #i la p;gina elegida por ?O no tiene activo el bit e% es la p;ginae(pulsada
* #i lo tiene activo se da 2Y oportunidad antes de e(pulsar) sedesactiva el bit e% se pone p;gina al 6inal de ?O% se aplicacriterio a la siguiente p;gina
$ ?mplementacin) #e puede implementar el orden ?O mediante unalista circular con una re6erencia a la primera p;gina de la lista) sevisualia como un reloj donde la re6erencia a la primera p;gina es laaguja del reloj
C+ Algoritmo de segunda oportunidad o del reloj
)emoria virtual
)emoria virtual
-
7/17/2019 Gestion de Memoria
76/102
Fundamentos de Computadores II 76
Sistemas Operativos
$ /riterio) -asado en pro(imidad temporal de re6erencias) p;ginaresidente menos recientemente usada como p;gina a eliminar
$ ?mplementacin)osible implementacin con @J espec
-
7/17/2019 Gestion de Memoria
77/102
Fundamentos de Computadores II 77
Sistemas Operativos
$ /riterio)Esta tBcnica intenta evitar el problema con las pginasmodi&icadas que an de ser desalojadas. En este caso% el tratamientodel 6allo de p;gina implica realiar dos accesos a disco% uno paraalmacenar la p;gina modi6icada ! para traer la nueva
$ ?mplementacin)* Mantiene una reserva de marcos libres. /uando se produce un
6allo de p;gina% siempre se usa un marco libre 0es decir% en verdadno a! reemplao* /uando el nCmero de marcos libres queda por debajo de cierto
umbral se activa un &demonio de paginacin'% que aplicarepetidamente el algoritmo de reemplao)
$ ;ginas no modi6icadas pasan a lista de marcos libres$ ;ginas modi6icadas pasan a lista de marcos modificados:
cuando se escriban a disco pasan a lista de libresL suelenescribirse en tandas 0lo que mejora el rendimiento
* #i se re6erencia una p;gina mientras est; en estas listas) serecupera directamente de la lista 0no a! ED#% lo que puedemejorar el comportamiento de algoritmos poco e6icientes
E+ (u&&ering de pginas
)emoria virtual
-
7/17/2019 Gestion de Memoria
78/102
Fundamentos de Computadores II 7'
Sistemas Operativos
$ /riterio67o todas las p;ginas son reemplaables
$ Aplicacin)* #e aplica a p;ginas del propio #.O) si sus p;ginas est;n 6ijas en
memoria% su gestin es m;s sencilla
* :ambiBn se aplica mientras se ace MA sobre una p;gina. >ap;gina no ser; reemplaable asta que 6inalice la operacin sobreella
$ ?mplementacin) Algunos #.O. o6recen a las aplicaciones un serviciopara &ijar en memoria una o m;s p;ginas de su mapa) adecuado para
procesos de tiempo real% aunque puede a6ectar al rendimiento delsistema. En O#?H se trata del servicio mlock
#+ "etencin de pginas en memoria
)emoria virtual
-
7/17/2019 Gestion de Memoria
79/102
Fundamentos de Computadores II 7
Sistemas Operativos
El #O deber; decidir cu;ntos marcos de p;gina asigna a cada proceso)a Asignacin ijab Asignacin in;mica
A Asignacin 6ija
$ 78mero constante de marcos asignados al proceso. uede dependerde las caractera arquitectura impone el 7K mnimo de marcos de pgina) m.F. oltica de asignacin de marcos de pgina
)emoria virtual
-
7/17/2019 Gestion de Memoria
80/102
Fundamentos de Computadores II ')
Sistemas Operativos
$ El n8mero de marcos asignados a un proceso es variabledependiendo del comportamiento del proceso 0! posiblemente de losdem;s procesos.
$ !e adaptaa las di6erentes 6ases por las que puede pasar un proceso$ #e pueden usar tanto estrategias de reemplao global como local.
* Asignacin din;mica P reemplao local) el proceso va aumentando odisminu!endo su conjunto residente dependiendo de sucomportamiento 0comportamiento relativamente predecible
* Asignacin din;mica P reemplao global) los procesos compiten por
el uso de las p;ginas entre ellos 0comportamiento di6
-
7/17/2019 Gestion de Memoria
81/102
Fundamentos de Computadores II '1
Sistemas Operativos
$ e6inicin):asa e(cesiva de 6allos de p;gina de un proceso o en elsistema% debido a que el nCmero de marcos de p;gina asignados esinsu6iciente para albergar el conjunto residente
* /on asignacin 6ija. @iperpaginacin en el proceso i siconjunto residente de iZ conjunto de trabajo i
* /on asignacin variable. @iperpaginacin en el sistema sinU marcos disponibles Z conjuntos de trabajo de los procesos
$ roblema) decae el grado de uso de la /. >os procesos est;n casisiempre en colas de dispositivo de paginacin.
$ #olucin) controlar la carga)
* isminuir el grado de multiprogramacin%* #uspender uno o m;s procesos liberando sus p;ginas residentes
$ /mo detectar esta situacinF
>.@. $iperpaginacin *t-ras-ing+
)emoria virtual
-
7/17/2019 Gestion de Memoria
82/102
Fundamentos de Computadores II '2
Sistemas Operativos
? r a e % ' & ! r ? r a a c !
E
&!'!6
a
c
!1
0
4
e
'a
E
C
5
#e ver;n a continuacin algunas estrategias de control de la carga detrabajo)A. Estrategia del conjunto de :rabajo-. Estrategia de administracin basada en la 6recuencia de 6allos
de p;gina/. Estrategia de control de carga para algoritmos de reemplao
globales
)emoria virtual
-
7/17/2019 Gestion de Memoria
83/102
Fundamentos de Computadores II '3
Sistemas Operativos
A+ Estrategia del conjunto de trabajo
$ Objetivo) eterminar el conjunto de trabajo de cada proceso% es decir% lasp;ginas usadas por el proceso en las Cltimas 8 re6erencias
$ roceso)* #i el conjunto de trabajo decrece se liberan marcos.* #i el conjunto de trabajo crece se asignan nuevos marcos.* #i no a! marcos disponibles se suspender; algCn0os proceso0s% que
se reactivan cuando a!a marcos su6icientes
$ /ondicin) #i el #O es capa de detectar el conjunto de trabajo de cadaproceso% puede especi6icarse una estrategia de asignacin dinmicacon reemplao local
$ ?mplementacin) 'i&cil% !a que precisar
-
7/17/2019 Gestion de Memoria
84/102
Fundamentos de Computadores II '4
Sistemas Operativos
$ Objetivo) /ontrolar la tasa de 6allos de p;gina por proceso$ roceso)* #i tasa Z l
-
7/17/2019 Gestion de Memoria
85/102
Fundamentos de Computadores II '5
Sistemas Operativos
$ Objetivo) /ontrolar la iperpaginacin utiliando un algoritmo de controlde carga. #e da en algoritmos de reemplao global.
$ roceso) Ejemplo) 8?H 4.3 -#
* +eemplao global con algoritmo del reloj. 9ariante con dos&manecillas') a! dos punteros en ve de uno* so de ,u%%erin#de p;ginas. n demonio de paginacin controla el
nCmero de marcos libres* #i el nCmero de marcos libres Z umbral% el demonio de paginacin
aplica reemplao
* #i se repite con 6recuencia la 6alta de marcos libres) un proceso&s=apper' suspende procesos
C+ Estrategia de control de carga para algoritmos dereemplao globales
)emoria virtual
-
7/17/2019 Gestion de Memoria
86/102
Fundamentos de Computadores II '6
Sistemas Operativos
>a asignacin del espacio de s=aping puede seguir dos tBcnicas)a reasignacin de s=ap)Al crear la nueva regin se reserva espacio de s=ap para ella. Al
e(pulsar una p;gina% con esta estrategia% !a abr; espacio des=ap para almacenar su contenido
b #in preasignacin de s=ap)
Al crear una regin no se ace reserva de s=ap. >as p;ginas de laregin se ir;n tra!endo a M por demanda desde el soporte dela regin. #lo se reserva espacio de s=ap para una p;ginacuando es e(pulsada por primera ve
:endencia actual) #e suele utiliar m;s la estrategia sin preasignacin%
puesto que la preasignacin de s=ap conlleva un peor aprovecamientode memoria secundaria 0toda p;gina debe tener reservado espacio des=ap.
>.. Gestin del espacio de s%ap
)emoria virtual
-
7/17/2019 Gestion de Memoria
87/102
Fundamentos de Computadores II '7
Sistemas Operativos
#e considerar;n a continuacin las siguientes operaciones sobre lasregiones de un proceso en un sistema con memoria virtual)a /reacin de regin)
Al crear el mapa inicial o por solicitud posteriorb >iberacin de regin)
Al terminar el proceso o por solicitud posterior
c /ambio de tamao de regin)Aumento de tamao) a! que comprobar que no se solape con
otra regin ! equiparar las nuevas p;ginas a las !a e(istentesen la regin.
El caso de e(pansin de la pila es algo m;s complejo.isminucin de tamao
d uplicado de regin)Operacin requerida por el servicio forkde O#?H#e duplica todo ! se trata de una operacin costosa
>.1?. Operaciones sobre regiones de un proceso
)emoria virtual
-
7/17/2019 Gestion de Memoria
88/102
Fundamentos de Computadores II ''
Sistemas Operativos
a /reacin de nueva reginAcciones)
$ Al crear una regin no se asigna M 0 se ar; por demanda.$ #e marcar;n las p;ginas como no residentes 9 vlidas 06allo de
p;gina cuando se intenten acceder$ El #.O. actualia la tabla de regiones ! guarda la in6ormacin
correspondiente a las p;ginas de la regin% rellenando las entradas de la:. ebe buscar un ueco en el mapa de memoria para asignar a nueva
regin.$ #egCn el soporte)* #oporte en arc-ivo) ;ginas marcadas como Car#ar de arcivo
(C.$ * se almacena direccin del bloque del arcivo correspondiente* #in soporte) ;ginas marcadas como e""enar con ceros (C$ ! se
inicialia cuando a! un 6allo de p;gina$ #i la regin es privada con preasignacin de sap% se reserva espacio
de sap$ #i la regin es la pila)
* #e copian los argumentos iniciales del proceso en bloque0s de sap
)emoria virtual
-
7/17/2019 Gestion de Memoria
89/102
Fundamentos de Computadores II '
Sistemas Operativos
$ Algoritmo de e(pulsin)* #i la regin es privada se escribe p;gina en sap #i no a!
preasignacin de espacio s=ap% en la primera e(pulsin se reservaespacio. osteriores 6allos se sirven de ese bloque de sap
* #i la regin es compartidase escribe p;gina en soporte% para quetodos los procesos puedan ver las modi6icaciones. :odos los 6allos sesirven del soporte
$ En la creacin del mapa inicial 0servicio execen O#?H% se crean lasregiones segCn sus caracteros uecos se marcan como p;ginas inv;lidas% tanto para el @J comopara el #.O.
)emoria virtual
-
7/17/2019 Gestion de Memoria
90/102
Fundamentos de Computadores II )
Sistemas Operativos
T a b ' a e @ ? ! a -
. . . . . . . . . . . . . . . . . . . . . . . . . . .
> ' G % e T 7 a r c " . 8R H A
> ' G % e 7 a r c " . 8R A
R e ' ' e a r c 0R A
> ' G % e S 7 - a 8R A
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
S a A r c " ! E $ e c % & a b ' e
C ! ?
D a & - c a ' r ! ! c ! a '
. . . . . . . . . . . . . . . .
C a b e c e r a
! ' a> ' G % e S
> ' G % e T
> ' G % e
1 @ ? .C ! ?
1 @ ? .D a & . . ! .
1 @ ? .
D a & . . . ! .
1 @ ? . ! ' a
Estado inicial de ejecucin en un sistema sin preasignacin de s=ap
)emoria virtual
-
7/17/2019 Gestion de Memoria
91/102
Fundamentos de Computadores II 1
Sistemas Operativos
b >iberacin de regin
$ Acciones)* Actualiar tabla de regiones para eliminar regin* Marcar como inv;lidas p;ginas asociadas* #i la regin es privada% se libera el espacio de sap asociado
$ /uando)* #olicitud e(pl
-
7/17/2019 Gestion de Memoria
92/102
Fundamentos de Computadores II 2
Sistemas Operativos
c /ambio de tamao
$ Acciones)* #i disminu!e)$ #e ajusta la tabla de regiones.$ #e marcan p;ginas como inv;lidas.$ #e libera espacio de s=ap
* #i aumenta)$ #e comprueba que no a!a solapamiento.
$ #e 6ijan nuevas p;ginas como no residentes ! con las mismascaracter
-
7/17/2019 Gestion de Memoria
93/102
Fundamentos de Computadores II 3
Sistemas Operativos
d uplicado de una regin$ Acciones)
* #e duplican las regiones privadas del padre ! se comparten las noprivadas
$ >a copia de una regin de un proceso en el mapa de memoria de otroproceso es una operacin costosa% !a que tambiBn se debe copiar elcontenido.
$ roblema) >a ejecucin de forkser
-
7/17/2019 Gestion de Memoria
94/102
Fundamentos de Computadores II 4
Sistemas Operativos
$ ?mplementacin de /OJ* #e comparten las p;ginas de regiones duplicadas
* #e marcan de slo lectura ! con bit de /OJ.* Al realiar la primera escritura se produce un 6allo de protecccin !se genera una copia privada para el proceso que escribe.
* >o normal es que a!a varios procesos con misma regin duplicada%por lo que e(iste un contador de uso por p;gina.
* /ada ve que se crea copia privada se decrementa contador% !a quea! un proceso menos trabajando sobre la copia compartida.
* #i llega a 1% se desactiva el bit /OJ% al no aber duplicados
$ O+R con /OJ. #e comparten todas las regiones. >as regiones privadasse marcan como /OJ en padre e ijo% el resultado de la optimiacin esque en ve de duplicar todo el espacio de memoria slo se duplica la :.
-
7/17/2019 Gestion de Memoria
95/102
Fundamentos de Computadores II 5
Sistemas Operativos
>. Arc-ivos pro9ectados en
memoria
Arc-ivos pro9ectados en memoria
-
7/17/2019 Gestion de Memoria
96/102
Fundamentos de Computadores II 6
Sistemas Operativos
$ En quB consisteF* +ecordemos que en un sistema con M9 se acen corresponder las
entradas de la : con bloques de un arcivo ejecutable.* >a tBcnica de la pro!eccin permite usar esta misma idea% pero con
cualquier arcivo.* El #.O. permite que un programa solicite la correspondencia de una
ona de su mapa de memoria con los bloques de un arcivocualquiera 0!a sea completo o en parte.
* En la solicitud el programa indicar; el tipo de acceso que desea paralas p;ginas asociadas al arcivo.
$ #ervicio)* >a generaliacin de la tBcnica de memoria virtual permite o6recer a
los usuarios una &orma alternativa de acceder a los arc-ivos.
Arc-ivos pro9ectados en memoria
-
7/17/2019 Gestion de Memoria
97/102
Fundamentos de Computadores II 7
Sistemas Operativos
T a b ' a e @ ? ! a -
. . . . . . . . . . . . . . . . . . . . . . . . . . .> ' # G % e 0 7 a r c " . 8R 3 A
> ' # G % e N 7 a r c " . 8R 3 A
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . A r c " ! / #
> ' # G % e 0
> ' # G % e 1
> ' # G % e 2
> ' # G % e N
> ' # G % e 2
. . . . . . . . . . . . .
1 0 2 4 0
+ a a e , e , # r ! a
C ! ? #
D a & # - c # / a ' # r ! ! c ! a '
D a & # - - ! / a ' # r ! ! c ! a '
5 ! ' a
A r c " !/ # 5 r # K e c & a #
1 J @ ? .A r c " ! / #
L ' & ! , a @ ? .A r c " ! / #
$roceso) #e rellenan las entradas de la : correspondientes con )S;gina no residente%
S/A 0cargar de arcivo%SrivadaDcompartida !Sroteccin 0indicada en la llamada.
e esta 6orma%cuando el
programa accedea una posicinde memoriaasociada alarcivo pro!ectado%est; accediendo
realmenteal arcivo
Arc-ivos pro9ectados en memoria
-
7/17/2019 Gestion de Memoria
98/102
Fundamentos de Computadores II '
Sistemas Operativos
$ 9entajas) #e trata por tanto de una 6orma alternativa de acceso aarcivos% 6rente a las llamadas readDrite e esta 6orma se producen)
* )enos llamadas al sistema lo que se traduce en una notablemejora de los tiempos de acceso.
* !e evitan copias intermedias de la in6ormacin !a que el #.O.trans6iere directamente la in6ormacin entre la regin de memoria !el arcivo.
* !e &acilita la programacin% !a que una ve pro!ectado se accede
al arcivo como si 6uera una estructura de datos en memoria
$ Ejemplo) :
-
7/17/2019 Gestion de Memoria
99/102
Fundamentos de Computadores II
Sistemas Operativos
. !ervicios de gestin de
memoria
!ervicios de gestin de memoria
-
7/17/2019 Gestion de Memoria
100/102
Fundamentos de Computadores II 1))
Sistemas Operativos
El gestor de memoria realia 6unciones internas. or eso% o6rece pocosservicios directos para las aplicaciones. -;sicamente est;n relacionados
con la pro!eccin de arcivos)
* O#?H$ ro!ectar un arcivo) mmap$ espro!ectar un arcivo) munmap
* Jin32$ ro!ectar un arcivo) 2 pasos)
* /rear pro!eccin) CreateFileMapping* +ealiar pro!eccin) MapViewOfFile
$ espro!ectar un arcivo) UnmapViewOfFile
!ervicios de gestin de memoria
-
7/17/2019 Gestion de Memoria
101/102
Fundamentos de Computadores II 1)1
Sistemas Operativos
void 8mmap(void 8direc si9e!t "on int prot int indic int desc o%%!t desp$:
Establece la pro!eccin entre el espacio de direcciones de un proceso ! unarcivo.
* evuelve la direccin de memoria donde se a pro!ectado el arcivo direc: direccin donde pro!ectar. ,eneralmente se utilia 8>>%
con lo que el #.O. elige la direccin por su cuenta
lon:especi6ica el nCmero de b!tes a pro!ectar prot: el tipo de acceso% lectura 0+O:[+EA% escritura0+O:[J+?:E o ejecucin 0+O:[EHE/% o cualquier combinacinde ellas
indic:propiedades sobre la regin% compartida 0MA[#@A+E% unproceso ijo compartir; la regin con el padre% privada0MA[+?9A:E% el ijo obtiene copia propia de la regin% 6ija
0MA[?HE% el arcivo a de pro!ectarse en una direc\cinespec
-
7/17/2019 Gestion de Memoria
102/102
void munmap(void 8direc si9e!t "on$:
espro!ecta parte del espacio de direcciones de un proceso desde ladireccin direcasta direc+lon.