Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Problemas Memoria 02 PDF
Problemas Memoria 02 PDF
Gestin de Memoria
Problemas Resueltos
1
Sistemas Operativos I Tema 3. Gestin de Memoria
La estrategia utilizada cuando se carga un nuevo bloque en memoria es la del mejor ajuste en primer
lugar. Si falla, se crea un hueco mayor desplazando los bloques en memoria hacia la direccin 0.
Esta accin siempre empieza con el bloque actualmente en la direccin de memoria ms baja, y
prosigue nicamente hasta encontrar un hueco suficiente para el nuevo bloque.
A partir de ese momento, hay que cargar tres bloques de 500, 1200 y 200 (en ese orden). Describir el
contenido de la memoria una vez satisfechas las peticiones.
Solucin
La situacin inicial de la memoria seria la siguiente:
0000
0999
1000
1999
2000
2899
2900
3399
3400
4199
Bloque 2
Bloque 3
Bloque 1
A partir de este momento cargamos los nuevos bloques, comenzando por el bloque 4 de
500 palabras utilizando el mejor ajuste.
2000
2499
0000
0999
1000
1999
2900
3399
3400
4199
Bloque 2
Bloque 4
Bloque 1
Bloque 3
0999
1499
1500
2900
3399
3400
4199
2899
Bloque 1
Bloque 2
Bloque 3
Bloque 4
2
Sistemas Operativos I Tema 3. Gestin de Memoria
0999
1000
1499
1500
2900
3399
3400
2699
4199
Bloque 5
Bloque 2
Bloque 1
Bloque 6
Bloque 3
Bloque 4
4. Sea un sistema donde se utiliza un esquema de asignacin con mltiples particiones de tamao
fijo. Qu determinara el lmite del grado de multiprogramacin de dicho sistema?
Solucin
Es un esquema donde la memoria se encuentra dividida en varias particiones de tamao
fijo, cada particin nicamente puede contener un proceso y el grado de
multiprogramacin est limitado por el nmero de particiones.
5. Sea un sistema gestionado por particiones mltiples de tamao variable con compactacin. En
un instante dado, se tiene la siguiente ocupacin de la memoria:
P1 libre libre
180K P2 150 K
400 K
100K
Se utiliza la tcnica del mejor ajuste. En la cola de trabajos tenemos en este orden: P4(120K),
P5(200K) y P6(80K), los cuales deben ser atendidos en orden FIFO. Suponiendo que no finaliza
ningn proceso y tras intentar cargar en memoria todos los procesos que estn en la cola.
a) Indicad cuntas particiones quedan libres y de qu tamao son.
b) Si en esta situacin se aplica compactacin, indicar qu proceso o procesos deberan moverse
para que el nmero de Kbytes manejados fuese el menor posible y quede un nico hueco.
c) Si los registros base de cada proceso son, respectivamente, B1, B2, B3, B4, B5 y B6, indicar
cmo han cambiado los registros base correspondientes al proceso o procesos que se han
movido debido a la compactacin.
Solucin
a) Quedan dos particiones de tamaos 120K y 30 K respectivamente.
P1 P5 P6 libre P4 libre
180K 200K 80K 120K P2 120 K 30K
100K
3
Sistemas Operativos I Tema 3. Gestin de Memoria
6. Indique si las siguientes afirmaciones son verdaderas (V) o falsas (F) y justifiquelo.
a) La gestin de memoria basada en particiones fijas utiliza el mtodo de compactacin para
resolver el problema de fragmentacin externa.
b) El mtodo de superposiciones ("overlays") se puede utilizar en un sistema que no gestione
memoria virtual.
c) El espacio de direcciones fsicas depende del bs de direcciones del sistema.
d) El espacio de direcciones lgicas est limitado por el tamao de la memoria fsica.
e) La compactacin de un proceso slo se puede realizar en un mtodo de reubicacin dinmica
de la memoria.
Solucin
a) FALSA. No es posible, ya que las particiones de tamao fijo no presentan el
problema de la fragmentacin externa.
b) VERDADERA. Las superposiciones es un mtodo que se emplea cua ndo no existe
memoria virtual para poder ejecutar procesos cuyo tamao es superior al de la
memoria fsica. El programador deba definir donde comenzaban y acababan las
superposiciones.
c) VERDADERA. No se puede emitir una direccin de mayor nmero de bits que el
permitido por el sistema.
d) FALSO. Las direcciones lgicas son emitidas por la CPU y slo dependen del
nmero de bits que esta sea capaz de emitir. El espacio de direcciones lgicas de un
proceso depende del tamao del proceso.
e) VERDADERO. Si los proceso no son reubicables, no se pueden utilizar algoritmos
de compactacin, ya que la ejecucin de los mismos podra ser errnea, por estar
accediendo a direcciones de memoria donde no se encuentran ubicadas sus
instrucciones.
7. Suponga un sistema en el que no se dispone de MMU. Existe alguna tcnica que permita
ejecutar en dicho sistema un programa cuyas necesidades de memoria superen la cantidad de
memoria fsica total disponible?.
Solucin
S, utilizando superposiciones. Dividiendo el programa en diferentes fragmentos que no
deban estar todos ellos simultneamente en memoria se puede reducir significativamente
la cantidad de memoria fsica que el programa necesitar.
4
Sistemas Operativos I Tema 3. Gestin de Memoria
9. Cite tres ventajas ofrecidas por las bibliotecas de enlace dinmico cuando se las compara con las
bibliotecas enlazadas estticamente para formar un fichero ejecutable.
Solucin
Cuando se emplea enlace dinmico los ficheros ejecutables ocuparn menos espacio, ya
que no contienen el cdigo de las bibliotecas.
Los procesos pueden compartir memoria.
Los programas no tendrn que ser recompilados ni reenlazados para tener acceso a las
mejoras de implementacin efectuadas en las bibliotecas.
10. Suponga que un proceso emite una direccin lgica igual a 2453 y que se utiliza la tcnica de
paginacin, con pginas de 1024 palabras.
a) Indique el par de valores (nmero de pgina, desplazamiento) que corresponde a dicha
direccin.
b) Es posible que dicha direccin lgica se traduzca en la direccin fsica 9322?. Raznelo.
Solucin
a) pgina =2 y desplazamiento = 405.
b) No porque el desplazamiento de la direccin lgica 9322 es 106 ((9322 mod 1024) =
106 ) y debera ser 405 para que fuese posible.
5
Sistemas Operativos I Tema 3. Gestin de Memoria
12. Considere los 4 sistemas con gestin de memoria mediante paginacin A, B, C y D siguientes:
Sistema A B C D
Asumiendo que slo hay una tabla de pginas para todo el sistema y que la direccin lgica ocupa
una palabra (de 16 o 32 bits, segn el caso), determine para cada sistema:
a) El tamao de la tabla de pginas (nmero de entradas).
b) El tamao de la memoria lgica (nmero de pginas).
Solucin
Sistema A B C D
Tamao de pgina 512 512 1024 1024
(en palabras)
Tamao de palabra 16 32 16 32
(en bits)
Tamao de la tabla de 128 8M 64 4M
pginas (en descriptores) descriptores descriptores descriptores descriptores
Tamao de memoria
virtual en pginas del 128 pginas 8M pginas 64 pginas 4M pginas
sistema
13. Indique en cuales de los siguientes mecanismos de gestin de memoria puede producirse
fragmentacin externa: particiones variables, paginacin, segmentacin paginacin por
demanda, segmentacin por demanda.
Solucin
Los mecanismos que pueden producir fragmentacin externa son: particiones variables y
segmentacin. En ambos casos pueden quedar en memoria huecos no contiguos cuya
suma de tamaos sea suficiente para ubicar un nuevo proceso.
14. Sea un sistema de gestin de memoria basado en la tcnica de la paginacin. Sean tres
procedimientos que ocupan 700, 200 y 500 palabras respectivamente. Determine cunta
memoria se pierde por fragmentacin interna cuando estos procedimientos se cargan en
memoria si el tamao de la pgina es de: 1200 palabras, 2500 palabras, 3600 palabras 4700
palabras.
Solucin
Tamao de pgina 1200 2500 3600 4700
(en palabras)
Tamao de procedimiento 700 700 700 700
( en palabras )
6
Sistemas Operativos I Tema 3. Gestin de Memoria
16. Los sistemas que usan tabla de pginas invertidas, pueden tener problemas para que los
procesos compartan pginas. Indique porqu y como podra solucionarse.
Solucin
En los sistemas de pginas invertidas la tabla de marcos asocia a cada entrada una
pgina de un determinado proceso. Sin embargo para poder compartir pginas, un
mismo marco se ha de encontrar asociado al menos a dos pginas de diferentes procesos.
Por lo tanto una entrada de la tabla de pginas invertidas debera poder asociarse a ms
de una direccin lgica de distintos procesos.
17. Sea un sistema de gestin de memoria basado en la tcnica segmentacin paginada. Las
direcciones lgicas tienen en total 28 bits, de los cuales 10 indican el nmero de pgina. Las
pginas fsicas o marcos son de 1024 octetos, mientras que las direcciones fsicas son de 24 bits.
Suponga que un segmento determinado contiene 4800 octetos. Cunta memoria se
desperdicia en fragmentacin interna y externa por causa de dicho segmento?. Justifique la
respuesta.
NOTA: considere nicamente la memoria asignada al segmento, sin tener en cuenta las tablas de
segmentos ni de pginas.
Solucin
Respuesta fragmentacin interna 320 octetos.
7
Sistemas Operativos I Tema 3. Gestin de Memoria
27 20 19 10 9 0
00000000 0000000100 1011000000
N de segmento N de pgina desplazamiento
Por tanto la fragmentacin interna vendr dada por 1024 704 = 320 octetos.
18. Compare la fragmentacin interna provocada por un sistema de memoria virtual con
segmentacin paginada frente a uno que nicamente utiliza paginacin.
Solucin
(Consultar el material proporcionado para las clases de teora y la bibliografa).
19. Enuncie los diferentes esquemas de gestin de memoria vistos en clase detallando, para cada
uno, el hardware que requieren y su problemtica de fragmentacin.
Solucin
(Consultar el material proporcionado para las clases de teora).
20. Razone las ventajas de utilizar la tcnica de compartir segmentos en la llamada al sistema
exec() de Unix desde los puntos de vista de gestin de la memoria y de accesos a disco.
Solucin
Gestin de la memoria: Resulta sencillo compartir el segmento de cdigo con otros
procesos que estn ejecutando el mismo programa que se ha especificado como
argumento de exec(). Basta para ello, con tener en el PCB de cada proceso un atributo
que indique el nombre del programa que est ejecutando. Los segmentos de datos y pila
no deben compartirse (no hay que hacer nada especial para ello. El de datos inicializados
hay que leerlo del fichero ejecutable).
Accesos a disco: Podemos ahorrar algunos accesos si el programa ya est siendo
ejecutado por otro proceso y el sistema guarda una copia de la cabecera del fichero
ejecutable en memoria (para ese caso). Si el programa no est siendo ejecutado hay que
efectuar, como mnimo, la lectura de la cabecera del ejecutable para obtener una
descripcin de su mapa de memoria. Normalmente no hay que leer nada ms, pues en la
actualidad se utilizan tcnicas de memoria virtual y los segmentos de cdigo, datos,
pila y bibliotecas dinmicas se van asignando (y leyendo del disco) a medida que se
necesitan.
21. Sea un sistema de memoria segmentado-paginado. Los espacios de direcciones lgicas son de
8Gbytes y el tamao de pgina es de 2Kbytes. Un espacio de direcciones puede tener hasta
256 segmentos y los descriptores de pgina tienen 4 bytes. Diga cual ser el tamao de la tabla
de pginas de un segmento.
8
Sistemas Operativos I Tema 3. Gestin de Memoria
Solucin
La solucin es 64Kb.
Ser necesario conocer el nmero mximo de pginas que puede tener un segmento y
multiplicarlo por el tamao del descriptor de segmento. Para conocer el nmero mximo
de pginas ser necesario conocer el nmero de bits destinado a la pgina en la direccin
lgica.
Los espacios de direcciones lgicas son de 8Gb Dir. lgicas de 33 bits.
El nmero mximo de segmentos de un proceso 256 segmentos 8 bits de la direccin
para el nmero de segmento.
El tamao de pgina es de 2Kb 11 bits de la direccin para el desplazamiento dentro
de la pgina.
El nmero de bits para el n de pgina vendr dado por: 33 (8 + 11) = 33 19 = 14
Con lo que los campos y bits de la direccin lgica quedaran:
32 25 24 11 10 0
----segmento----- -desplazamiento-
22. Suponga que un proceso emite las direcciones lgicas (2,18004) (1, 2735) (5, 12219) utilizando
un modelo de gestin de memoria basado en segmentacin paginada y que estas tres
direcciones lgicas producen respectivamente las tres siguientes direcciones fsicas: 1108, 1327
y 1211.
a) Cul es el nmero mximo de bits que se estn utilizando para el desplazamiento dentro
de una pgina?
b) Cul es el nmero mnimo de bits que se estn utilizando para indicar un nmero de
pgina?
c) Cul es el nmero mnimo de bits que se estn utilizando para indicar un nmero de
marco?
Solucin
a) La solucin es 7 bits.
Necesitamos conocer el tamao de la pgina. Para ello el enunciado nicamente nos
indica la correspondencia entre direcciones lgicas y fsicas. Por lo tanto ser necesario
ir probando diferentes tamaos de pginas hasta encontrar uno donde los
desplazamientos de la direccin fsica y la direccin lgica coincidan. Los tamaos de
pgina han de ser potencia de dos y adems ha de ser igual en todo el sistema.
Comenzaremos probando por un tamao de pgina de 1024 e iremos calculando el resto
de dividir las respectivas direcciones por dicho tamao. Si coinciden los
desplazamientos ser necesario probar con un tamao mayor de pgina y si no coinciden
probaremos con tamaos menores.
Tamao
9
Sistemas Operativos I Tema 3. Gestin de Memoria
Tamao
Pg. 512 128
direccin
lgica 2735 175 47
fsica 1327 303 47
Para esta direccin es vlida un tamao de pgina de 128 o menor. Ahora ser necesario
comprobarlo para la ultima direccin que nos proporciona el enunciado.
Tamao
Pg. 128
direccin
lgica 12219 59
fsica 1211 59
El tamao mximo de pgina que puede estar utilizando este sistema es de 128 palabras,
por tanto el nmero mximo de bits que se estn utilizando para el desplazamiento es de
7 bits.
b) La solucin es 8 bits.
Teniendo en cuenta el tamao de pgina calculado en el apartado anterior se puede
calcular el nmero de pginas que como mnimo contienen los segmentos de las
direcciones lgicas referenciadas.
Tamao
Pg. 128
direccin
lgica (2,18004) 18004 / 128 = 140 n de pgina
18004 mod 128 = 84 desplazamiento
lgica (1,2735) 2735 / 128 = 21 n de pgina
2735 mod 128 = 47 desplazamiento
lgica (5,12219) 12219 / 128 = 95 n de pgina
12219 mod 128 = 59 desplazamiento
Necesitamos un nmero de bits m para indicar las pginas de manera que 2m 140, con
lo que m=8.
c) La solucin es 4 bits.
El tamao de pgina y de marco ha de ser el mismo por tanto dividiendo la direccin
fsica ms alta por el tamao de pgina calculado en el apartado a) obtendremos el
nmero de marcos que como mnimo hay en el sistema.
Tamao
marco 128
direccin
Fsica 1108 1108/ 128 = 8 n de marco
1108 mod 128 = 84 desplazamiento
10
Sistemas Operativos I Tema 3. Gestin de Memoria
23. A continuacin se presentan varias situaciones en las que uno o ms procesos generan varias
direcciones lgicas. Indique las direcciones fsicas correspondientes segn cada esquema de
gestin de memoria. Si no es posible indique ERROR.
a) Considere un esquema de particiones variables. Las direcciones lgicas generadas son:
(B,530), (A,0,130), (C,1056). Situacin de los procesos:
A 0 1360
B 4020 6300
C 1400 2600
b) Considere un esquema de paginacin, con un tamao de pgina de 256 palabras. Las
direcciones lgicas generadas son 530, (0, 130), 1046. El contenido de la tabla de pginas
es el siguiente:
Tabla de pginas
0 4
1 5
2 3
3 6
c) Considere un esquema de segmentacin paginada con un tamao de pgina 128. Las
direcciones lgicas generadas son 530, (0, 130), 1046. El contenido de la memoria fsica es
el siguiente
N de Marco (segmento, pgina)
0 (0, 3)
1 (1, 0)
2 (2, 0)
3 --
4 (1, 2)
5 (0, 1)
6 (0, 2)
7 (1,3)
Solucin
a)
Direc. lgica (B,530) (A,0,130) (C, 1046)
Direc. fsica 4020+530= 4550 Error no vale este 1400+1046=2246
formato
11
Sistemas Operativos I Tema 3. Gestin de Memoria
b)
Direc. lgica 530 (0,130) 1046
Direc. fsica 3*256+18= 786 ERROR no vale ERROR (*)
este formato
(*) Esta direccin corresponde a la pgina 4 del proceso y segn la tabla de pginas del
enunciado esa pgina no existe.
c)
Direc. lgica 530 (0,130) 1046
Direc. fsica ERROR, no vale este 5*128+2= 642 ERROR, no vale
formato este formato
24. Suponga que un proceso emite una direccin lgica (5, 18004) utilizando un modelo de gestin
de memoria basado en segmentacin paginada, con pginas de 4096 bytes.
a) Indique qu direcciones fsicas de entre las siguientes corresponden a dicha direccin lgica:
1620, 4004, 8004, 9812, 23720.
b) Razone si sera mejor o peor utilizar un tamao de pgina de 4000 bytes.
c) Indique qu direcciones de entre las siguientes: 0, 18004, 5000, 8192, 23000. Podran ser
vlidas como direcciones fsicas base del segmento 5 referenciado en la direccin lgica (5,
18004).
Solucin
La direccin (5, 18004) corresponde a una direccin lgica del segmento 5, pgina 4 y
desplazamiento 1620.
a) Respuesta 1620, 9812.
Para que en este sistema una direccin fsica dada, pueda corresponderse con una lgica
los desplazamiento de ambas han de coincidir. Los desplazamientos corresponden al
resto obtenido como resultado de dividir la direccin por el tamao de pgina (direccin
mod 4096 = desplazamiento).
Direcciones fsicas
1620 4004 8004 9812 23720
Desplazamiento 1620 4004 3908 1620 3240
Direccin Direccin Direccin Direccin Direccin
vlida No vlida No vlida vlida No vlida
12
Sistemas Operativos I Tema 3. Gestin de Memoria
25. En un sistema con una memoria fsica de 64K bytes, se accede a la direccin fsica 27214 como
respuesta a una direccin lgica emitida por el proceso P1 cuyo tamao es de 15535 bytes.
Deducir la(s) direccin(es) lgica emitida(s) por el proceso en cuestin para que haya ocurrido
dicho acceso en los siguientes casos:
a) Suponiendo un modelo de gestin de memoria paginada con pginas de 4K bytes.
b) Suponiendo un modelo de gestin de memoria segmentado con segmentos de 16K bytes.
Asuma que los segmentos comienzan siempre en una direccin mltiplo de 16 K bytes y
que P1 est contenido en un nico segmento.
c) Suponiendo un modelo de gestin de memoria segmentada paginada con pginas de 4K
bytes y segmentos de 16K bytes. Asuma que P1 est contenido en un nico segmento.
Solucin
a) Respuesta: 2638, 6734, 10830 y 14926.
Seran todas aquellas direcciones lgicas que no excedan el tamao del proceso y cuyo
desplazamiento sea el mismo que en el de la direccin fsica.
Direccin fsica 27214 27214 mod 4096 = 2638 desplazamiento 2638
Direcciones lgicas posibles:
b) Respuesta: (0,10830)
Como las direcciones base de segmentos tienen que ser mltiplo de 16Kbytes,
tendramos como posibilidades que el segmento se ubique a partir de la direccin 0,
16384 (16K) 32768 (32K). Para que se haya accedido a la direccin fsica 27214 la
direccin base del segmento debe ser 16384. Teniendo en cuenta que:
base de segmento + desplazamiento = direccin fsica
desplazamiento = direccin fsica base de segmento
desplazamiento = 27214 16384 =10830
La direccin lgica que se ha emito es: (0,10830).
26. Supongamos un sistema de gestin de memoria con segmentacin paginada, con pginas de
1Kb. Un proceso emite las siguientes direcciones lgicas: (1, 2487) y (1, 635). A continuacin se
muestra la tabla de pginas del segmento 1. Cules sern las direcciones fsicas
correspondientes?.
13
Sistemas Operativos I Tema 3. Gestin de Memoria
0 3
1 7
2 8
Solucin
Respuesta: direccin lgica (1, 2487) direccin fsica 8631, direccin lgica (1,635)
direccin fsica 3707.
(*) Para calcular las direcciones fsicas se ha de consultar los descriptores de pginas 2 y
0 de la tabla de pginas, cuyo contenido representa el marco donde se encuentra ubicada,
dicha pgina.
27. En un esquema de segmentacin paginada con pginas de 1Kb, Es posible que la direccin
lgica (2, 1333) se pudiera traducir a la direccin fsica 3654?. Y a la direccin fsica 2357?.
Raznelo.
Solucin
Respuesta: No es posible 3654, si es posible 2357.
Para que las direcciones fsicas 3654 y 2357 sean accedidas como respuesta a la emisin
de la direccin lgica (3, 1333) en este sistema, los desplazamiento dentro del marco y
de la pgina han de coincidir.
(*) Para que las direcciones fsicas sean vlidas sus desplazamiento deben ser de 309, es
decir exactamente igual al de la lgica.
14
Sistemas Operativos I Tema 3. Gestin de Memoria
28. Se tiene un sistema de memoria con paginacin a dos niveles que permite agrupar las pginas
en directorios de pginas. Cada directorio de pginas puede contener hasta 256 pginas. Los
espacios de direcciones lgicas de este sistema son de 4Gbytes y el tamao de pgina es de
4Kbytes. El espacio de direcciones fsicas que puede tener hasta 1Gb. Describa la estructura de
las direcciones lgicas y de las direcciones fsicas de este sistema de memoria virtual.
Solucin
El espacio de direcciones fsicas es de 1Gbyte = 2 30 byte
Se trata de un sistema con tcnica de paginacin, cuyo tamao de pgina es de 4Kbytes=
212 bytes.
Por tanto la direccin fsica 30 bits vendr dada por:
Direccin fsica
29 12 11 0
Marco Desplazamiento
El espacio de direcciones lgicas es de 4Gbyte = 2 32 byte
Se trata de un sistema con tcnica de paginacin a dos niveles, cuyo tamao de pgina es
de 4Kbytes= 212 bytes. Las pginas se encuentran agrupadas de 256 en 256 en
directorios.
Por tanto la direccin lgica de 32 bits vendr dada por los siguientes campos:
Direccin lgica
31 20 19 12 11 0
Directorio de pgina pgina desplazamiento
29. Un proceso genera las siguientes direcciones lgicas: 612, 38 y (3,62). Indica las direcciones
fsicas correspondientes segn cada esquema de gestin de memoria. Si no es posible indicar
ERROR.
a) Particiones Variables con Registro Base=150 y Registro Lmite=220.
b) Paginacin, con un tamao de pgina de 128 palabras. La tabla de pginas del proceso es
la siguiente:
Tabla de pginas
0 1
1 4
2 2
3 5
c) Segmentacin. La tabla de segmentos del proceso es la siguiente:
Base Lmite
0 200 20
1 50 10
2 105 49
3 320 70
Solucin
15
Sistemas Operativos I Tema 3. Gestin de Memoria
30. Suponga que un proceso emite la direccin lgica (2,18004) utilizando un modelo de gestin de
memoria basado en segmentacin y el espacio de memoria fsica es de 64K bytes.
a) A qu direcciones fsicas de las siguientes (11084, 33270 y 22112) , sera posible traducir
dicha direccin lgica ?
b) Cual sera el resultado de traducir la direccin lgica (0,65536) en dicho sistema ? Justificar
la respuesta.
Solucin
a) Respuesta 33270 y 22112.
Sera con aquellas direcciones fsicas superiores a 18004, para que fuese posible un
desplazamiento de ese tamao. Por tanto sera 33270, con un contenido del registro base
de segmento de 15266 (registro base segmento = 33270-18004=15266). Y la direccin
22112, con un contenido del registro base de segmento de 4108 (registro base segmento
= 22112-18004=4108).
b) Respuesta: dara error.
La direccin lgica (0, 65536) se debe corresponder con una direccin fsica que tenga
un desplazamiento de 65536. El tamao de la memoria fsica es de 64K bytes = 65536
bytes, por tanto la direccin ms alta de memoria es la 65535 y no puede haber un
desplazamiento superior a ese tamao.
31. En el caso de utilizar un modelo de memoria basado en particiones fijas (tamao de las
particiones 4K, 12K, 16K, 32K bytes respectivamente y ubicadas en orden de direcciones
crecientes) a qu direcciones fsicas de las siguientes (9701, 26085, 32768) se puede
corresponder la direccin lgica 9701?
Solucin
Respuesta: la direccin lgica 9701 se puede corresponder con la fsica 26085.
Las particiones fijas se encontraran ubicadas en memoria de la siguiente manera:
16
Sistemas Operativos I Tema 3. Gestin de Memoria
Memoria Principal
0 Si se ha referenciado la direccin lgica 9701, en un modelo
Particin de de particiones fijas, esto implica que el proceso slo ha podido
4095 ser ubicado en una particin cuyo tamao sea superior a 9701
4K
4096 bytes. Las posibilidades seran:
Particin de 1) Que estuviese ubicado en la particin 2, con lo que la
16383
12K direccin fsica vendra dada por 4096+9071= 13167.
16384 2) Que estuviese ubicado en la particin 3, con lo que la
Particin de direccin fsica vendra da por 16384+9071= 26085. Esta
22527
16K coincide con una de las opciones del enuciado.
22528
3) Que estuviese ubicado en la particin 4, con lo que la
Particin de
65535 direccin fsica vendra da por 22528+9071= 31599.
32K
32. De entre todos los esquemas de gestin de memoria estudiados (tanto con asignacin contigua
como con asignacin dispersa), indique cules cumplen cada una de las siguientes
caractersticas:
a) Posibilidad de compartir memoria.
b) Presentan fragmentacin externa.
Solucin
a) Los esquemas de gestin de memoria que permiten compartir la misma por varios
procesos son: segmentacin, paginacin y segmentacin paginada.
b) Fragmentacin externa presentan los esquemas de particiones de tamao variable y
segmentacin.
33. En un PC con un Intel Pentium (pginas de 4 Kbytes), tres procesos P1, P2 y P3 han emitido
algunas direcciones lgicas que la MMU ha traducido en sus direcciones fsicas asociadas.
Asuma que los tres procesos estn en memoria y que no se utiliza memoria virtual ni
intercambio. Indique qu tipo (o tipos) de gestin de memoria pueden utilizarse en ese sistema
para que se haya podido dar esa traduccin, cuando los tres procesos emitan la misma direccin
lgica. Elija entre: segmentacin, paginacin, segmentacin paginada e imposible (la traduccin
no puede llevarse a cabo suponiendo que los tres procesos estn a la vez en memoria).
a) Direccin lgica: (0, 5120) Direcciones fsicas: P1: 6000, P2: 18000, P3:
40960
b) Direccin lgica: (0, 17080) Direcciones fsicas: P1: 4792, P2: 17080, P3:
33464
Solucin
Por el formato de la direccin lgica nicamente pueden ser segmentacin o
segmentacin paginada.
a) Respuesta: segmentacin.
17
Sistemas Operativos I Tema 3. Gestin de Memoria
Todas las direcciones fsicas de los procesos P1, P2 y P3 son superiores a 5120, por
tanto se podra estar utilizando la tcnica de segmentacin, teniendo en cuenta que para
cada proceso tiene el segmento ubicado a partir de una direccin fsica determinada.
En el caso de utilizar un modelo de segmentacin paginada, los desplazamientos de la
pgina y de los marcos deberan coincidir para que fuese posible la traduccin de
direcciones. En este caso no coinciden por lo tanto no es posible esta tcnica.
34. Se tiene un sistema de memoria con paginacin a dos niveles en el que las pginas se agrupan
en directorios de pginas, cada uno de los cuales contiene 256 pginas. Los espacios de
direcciones lgicas son de 4Gbytes y el tamao de pgina es de 4Kbytes. El espacio de
direcciones fsicas que puede tener hasta 1Gb. Este sistema est soportado por una MMU en el
que los descriptores de pgina contienen un bit de validez, tres bits para proteccin y dos bits
para implementar un algoritmo de aproximacin al LRU (adems de la informacin para la
traduccin de direcciones). Se tiene un determinado proceso con el siguiente espacio de
direcciones lgicas disperso con las siguientes regiones (las direcciones son en hexadecimal):
18
Sistemas Operativos I Tema 3. Gestin de Memoria
Cual ser el tamao de la tabla de pginas de dicho proceso, y cual sera el tamao mximo que
podra llegar a tener?.
Solucin
Respuesta: El tamao de la tabla de pginas de este proceso ser aproximadamente de
420,4 Kbytes, mientras que el tamao mximo permitido en este sistema es de 3Mbytes.
El espacio de direcciones fsicas es de 1Gbyte = 2 30 byte. Se trata de un sistema con
tcnica de paginacin, cuyo tamao de pgina es de 4Kbytes= 212 bytes. Por tanto la
direccin fsica 30 bits vendr dada por:
Direccin fsica
29 12 11 0
Marco Desplazamiento
Direccin lgica
31 20 19 12 11 0
Directorio de pgina pgina desplazamiento
El tamao mximo de la tabla de pginas que podr tener un proceso en este sistema,
vendr delimitado por el espacio mximo de direccionamiento lgico. Por tanto
tendremos que :
Tamao mximo del proceso = 4 Gb = 22 230 = 232 / 212 pags = 1 Mpags
Tamao mximo de la tabla de pginas = 1M x 3 bytes = 3 Mb
19
Sistemas Operativos I Tema 3. Gestin de Memoria
35. Describa cul es la forma de detectar una direccin no vlida en los siguientes mtodos de
gestin de memoria.
a) Paginacin.
b) Segmentacin.
c) Segmentacin paginada.
Solucin
a) En paginacin la forma de detectar una direccin no vlida es mediante la
comprobacin en su tabla de pginas de la no existencia de la pgina a la que
pertenece dicha direccin, para el proceso que la ha emitido.
b) En segmentacin la forma de detectar una direccin no vlida es mediante la
comprobacin de que el desplazamiento de la direccin lgica emitida ha de ser
menor que el tamao del segmento correspondiente, el cual se encuentra
almacenado en su tabla de segmentos.
c) En segmentacin paginada la forma de detectar una direccin no vlida es la misma
que se realiza en segmentacin (apartado b).
36. Existe alguna incompatibilidad entre los algoritmos de asignacin (reparto) de marcos entre
procesos (asigancin equitativa, proporcional, prioritaria) y el mbito de reemplazo de pginas
(local o global)?. Justifque la respuesta.
Solucin
El algoritmo de asignacin de marcos establece la poltica de reparto de la memoria
fsica a los procesos. Es decir, el nmero de marcos que debe tener asignado cada
proceso. Si el algoritmo de reemplazo utilizado es global, el nmero de marcos asignado
a cada proceso se puede modificar dinmicamente, por lo que el algoritmo de asignacin
podra no respetarse, o bien slo tendra sentido inicialmente. Por el contrario, si el
mbito del algoritmo de reemplazo es local (slo afecta a los marcos asignados al
proceso), no hay ninguna incompatibilidad, ya que en todo momento se respeta la
asignac in de memoria.
37. Sea un sistema de gestin de memoria virtual con paginacin por demanda, con un tamao de
memoria principal de 5000 palabras y un tamao de pgina de 1000 palabras. En un momento
determinado se tienen 3 procesos P1, P2 y P3 en el sistema que generan la siguiente secuencia
de direcciones lgicas (se han representado pares compuestos por proceso y la direccin
lgica): (P1,1023) (P2,0224) (P1,0783) (P3,3848) (P3,1089) (P3,0098) (P2,2345) (P1,0787)
(P1,1654) (P3,2899) (P3,3008) (P3,1111). Realice un diagrama de la situacin de cada pgina
en memoria fsica en los siguientes casos:
a) Utilizando un algoritmo de reemplazo global segn la poltica ptima.
b) Utilizando un algoritmo de reemplazo local segn la poltica ptima.
Solucin
La memoria fsica estar formada por 5 marcos que inicialmente supondremos vacos.
20
Sistemas Operativos I Tema 3. Gestin de Memoria
El algoritmo ptimo elige como pgina a reemplazar aquella que tardar ms tiempo en
ser referenciada.
Mientras no se encuentren ocupados los marcos de memoria no ser necesario
reemplazar, por tanto, si indicamos con t el instante de tiempo, tendremos que las 5
primeras a pginas ocuparan los 5 marcos.
A partir de este instante ser necesario hacer reemplazos y seleccionar victima. Los *
representan las victimas seleccionadas en el prximo instante de tiempo. As (*a) es para
la solucin del apartado a) y (*b) para la solucin del apartado b).
21
Sistemas Operativos I Tema 3. Gestin de Memoria
38. Un determinado sistema operativo gestiona la memoria virtual mediante paginacin por
demanda. La direccin lgica tiene 24 bits, de los cuales 14 indican el nmero de pgina. La
memoria fsica tiene 5 marcos. El algoritmo de reemplazo de pginas es el LRU LOCAL, y se ha
implementado mediante un contador asociado a cada pgina que indica el instante de tiempo en
que se referenci la pgina por ltima vez. Las tablas de pginas en el instante 16 son:
Indique las direcciones fsicas generadas para la siguiente secuencia de direcciones lgicas: (A,
2900) (B, 1200) (A, 1850) (A, 3072) (B, 527) (B, 2987) (A, 27) (A, 2000) (B, 4800) (B, 1500).
Solucin
Para poder traducir las direcciones lgicas a fsicas hay que conocer el marco donde se
ha ubicado la pgina correspondiente.
En este caso el tamao de pgina es de 1024 palabras, ya que la direccin lgica es de 24
bits de los cuales 14 son para indicar la pgina quedan 10 bits para el desplazamiento
dentro de la pgina.
Consultando la tabla de pginas podemos componer el estado inicial de la memoria. Por
comodidad al lado de cada marco se representar el contado LRU. Por lo tanto en la
memoria principal tendremos:
N Inicial Cont. A,2 Cont. B,1 Cont. A,1 Cont. A,3 Cont.
marco t=15 LRU t=16 LRU t=17 LRU t=18 LRU t=19 LRU
0 B,0 7 B,0 7 B,0 7 B,0 7 B,0 7
1 A,0 10 A,2 16 A,2 16 A,2 16 A,3 19
2 A,1 15 A,1 15 A,1 15 A,1 18 A,1 18
3 B,3 4 B,3 4 B,1 17 B,1 17 B,1 17
4 B,4 11 B,4 11 B,4 11 B,4 11 B,4 11
B,0 Cont. B,2 Cont. A,0 Cont. A,1 Cont. B,4 Cont. B,1 Cont.
t=20 LRU t=21 LRU t=22 LRU t=23 LRU t=24 LRU t=25 LRU
0 B,0 20 B,0 20 B,0 20 B,0 20 B,0 20 B,1 25
1 A,3 19 A,3 19 A,3 19 A,1 23 A,1 23 A,1 23
2 A,1 18 A,1 18 A,0 22 A,0 22 A,0 22 A,0 22
3 B,1 17 B,1 17 B,1 17 B,1 17 B,4 24 B,4 24
4 B,4 11 B,2 21 B,2 21 B,2 21 B,2 21 B,2 21
22
Sistemas Operativos I Tema 3. Gestin de Memoria
39. Un sistema de memoria virtual con paginacin por demanda, tiene un tamao de pgina de 512
palabras, una memoria virtual de 16 pginas numeradas del 0 al 15 una memoria fsica de 4
marcos (frames) numerados de 0 a 3. El contenido actual de la memoria es:
N marco
0 Pg. 4 del proceso P
1 Pg. 9 del proceso P
2 Pg. 5 del proceso P
3 Pg. 1 del proceso P
a) Mostrar el contenido de la tabla de pginas .
b) Suponiendo un algoritmo de reemplazo de pginas con estrategia ptima, mostrar el
contenido de la tabla de pginas, tras generar cada una de las siguientes direcciones lgicas:
1112, 1645, 2049, 622, 2776 .
c) Direcciones fsicas equivalentes a las lgicas 1628, 851, 2700 y 2432.
d) Qu pasa cuando se referencia la direccin lgica 1330?.
e) Si la pgina cargada en el marco 3 es un procedimiento que otro proceso Q quiere
compartir, dnde debe aparecer en la tabla de pginas de Q?
Solucin
a) Mirando el contenido de la memoria principal y teniendo en cuenta que la tabla de
pginas para el proceso tendr un descriptor por cada pgina obtenemos que:
23
Sistemas Operativos I Tema 3. Gestin de Memoria
b) En primer lugar ser necesario conocer a que pgina pertenece cada una de las
direcciones lgicas, para ello realizaremos la operacin:
Pgina = direccin_lgica div tamao_pgina= direccin_lgica div 512
Desplazamiento = direccin_lgica mod tamao_pgina
24
Sistemas Operativos I Tema 3. Gestin de Memoria
40. En un determinado sistema con memoria virtual con paginacin por demanda, una direccin
lgica consta de 16 bits, 10 de offset (desplazamiento) y 6 para el nmero de pgina. Se dispone
de 4 marcos. Dada la siguiente secuencia de direcciones lgicas:
512 1102 2147 3245 5115 5200 4090 4207 1070 6200
7168 8200 7200 8300 9300 7410 8525 9700 5300 4387 1007
Se pide:
a) Dar la secuencia de referencias a pginas.
b) Contar el nmero de fallos de pgina suponiendo los algoritmos de reemplazo FIFO, LRU y
PTIMO.
Solucin
Tamao de pgina es de 1024 bytes = 2 10
a) La secuencia de referencia de pginas representa la secuencia de pginas que han
sido accedidas durante cierto periodo de tiempo.
Pgina = direccin_lgica div 1024
Secuencia de referencia pginas = 0, 1, 2, 3, 4, 5, 3, 4, 1, 6, 7, 8, 7, 8, 9, 7, 8, 9, 5, 4, 0.
b) Se supone inicialmente la memoria vaca, con lo que habr 4 fallos de pgina hasta
llenarla.
Algoritmo de reemplazo FIFO.
Se elige como victima la pgina que mas tiempo lleva en memoria.
marco Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg.
0,1,2,3 4 5 3 4 1 6 7 8
0 Pg.0 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.7 Pg.7
1 Pg.1 Pg.1 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.8
2 Pg.2 Pg.2 Pg.2 Pg.2 Pg.2 Pg.1 Pg.1 Pg.1 Pg.1
3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.6 Pg.6 Pg.6
marco Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg.
7 8 9 7 8 9 5 4 0
0 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.4 Pg.7
1 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.0
2 Pg.1 Pg.1 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9
3 Pg.6 Pg.6 Pg.6 Pg.6 Pg.6 Pg.6 Pg.5 Pg.5 Pg.5
25
Sistemas Operativos I Tema 3. Gestin de Memoria
Los fallos de pgina se han resaltado en negrita. Total de fallos de pgina = 14.
marco Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg.
7 8 9 7 8 9 5 4 0
0 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.0
1 Pg.6 Pg.6 Pg.6 Pg.6 Pg.6 Pg.6 Pg.5 Pg.5 Pg.5
2 Pg.1 Pg.1 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9
3 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.4 Pg.4
Los fallos de pgina se han resaltado en negrita. Total de fallos de pgina = 14.
marco Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg.
7 8 9 7 8 9 5 4 0
0 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.0
1 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8
2 Pg.4 Pg.4 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9
3 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.4 Pg.7
Los fallos de pgina se han resaltado en negrita. Total de fallos de pgina = 12.
41. Supongamos un sistema de gestin de memoria virtual basado en segmentacin paginada, con
un tamao de pgina de 1000 palabras y una memoria principal de 3000 palabras. Las tablas
de segmentos y las de pgina asociadas a cada segmento estn ubicadas en registros (no
ocupan espacio en memoria principal). Cada proceso consta de un espacio de direcciones
lgicas dividido en 3 segmentos, uno para los datos (seg 0), otro para el cdigo (seg 1) y el ltimo
para la pila (seg 2). En el sistema tenemos actualmente un solo proceso de las siguientes
dimensiones (en palabras):
26
Sistemas Operativos I Tema 3. Gestin de Memoria
segmento longitud
0 1300
1 2100
2 1000
Suponiendo que ha sido generada la siguiente secuencia de direcciones lgicas durante la ejecucin
del proceso en cuestin: (0, 0300) (0, 1200) (1, 0058) (0, 1112) (1, 1048) (2, 0354) (0, 1035) (0, 0036)
(1, 2050) (1, 0128)
42. En un sistema paginado con 4 marcos en memoria, se hacen las siguientes referencias a
pginas: {c, a, d, b, e, b, a, b, c, d}. Suponiendo que tenemos inicialmente en memoria las
pginas {a, b, c, d} (en ese orden), analcese el contenido en memoria para cada una de las
siguientes polticas de reemplazo:
a) PTIMO.
b) FIFO.
c) LRU.
Solucin
Las referencias a pgina son: {c, a, d, b, e, b, a, b, c, d}.
a) Algoritmo de reemplazo ptimo.
27
Sistemas Operativos I Tema 3. Gestin de Memoria
marco inicial Ref. c Ref. a Ref. d Ref. b Ref. e Ref. a Ref. b Ref. c Ref. d
0 a a a a a a a a a d
1 b b b b b b b b b b
2 c c c c c c c c c c
3 d d d d d e e e e e
Los fallos de pgina se han resaltado en negrita
43. Sea un sistema de memoria virtual por paginacin por demanda, en el que:
Una direccin lgica consta de 12 bits, de los cuales 3 son para el nmero de
pgina.
Una direccin fsica contiene 11 bits.
Existen dos procesos (A y B), y toda la memoria fsica se reparte entre estos dos
procesos por igual.
Se utiliza un algoritmo de reemplazo local de pginas LRU.
Dar, para la siguiente secuencia de direcciones lgicas, el correspondiente mapa de memoria: (A,
1035) (B, 312) (A, 530) (B, 780) (A, 600) (A, 2000) (B, 1400) (B, 927) (A, 1030) (A, 1720)
28
Sistemas Operativos I Tema 3. Gestin de Memoria
44. Un sistema de gestin de memoria por segmentacin paginada posee las siguientes
caractersticas:
Una direccin lgica se compone de 12 bits.
Una direccin fsica se compone de 10 bits.
El mximo nnmero de segmentos en un programa es 4 (segmentos 0 a 3).
Hay 4 marcos en memoria.
Se pide:
a) Cul es el mximo nmero posible de pginas en un segmento?
b) Rellena las tablas de segmentos para los procesos A y B:
PROCESO A PROCESO B
TABLA DE SEGMENTOS TABLA DE SEGMENTOS
Seg 0 0 tamao Base tabla pginas Seg 0 0 tamao Base tabla pginas
419 300
420 Seg 1
Seg 1 829
1299 Seg 2 1019
29
Sistemas Operativos I Tema 3. Gestin de Memoria
Solucin
a) La respuesta es 4 pginas.
La direccin fsica est formada por 10 bits = 2 bits nmero marco + 8 bits desplazamiento.
La direccin lgica est formada por 12 bits = 2 para el segmento + 2 bits para el nmero
de pgina + 8 bits para el desplazamiento de pgina.
Con dos bits para el nmero de pgina, el nmero mximo de pginas de un segmento es 4.
b) El tamao de pgina es de 256 palabras. Suponiendo una nica tabla de pginas para
cada proceso, la tabla de segmentos quedar:
PROCESO A PROCESO B
TABLA DE SEGMENTOS TABLA DE SEGMENTOS
Seg 0 0 tamao Base tabla pginas Seg 0 0 tamao Base tabla pginas
419 420 Base + 0 300 300 Base + 0
420 880 Base + 2 Seg 1 530 Base + 2
Seg 1 829 190 Base + 5
1299 Seg 2 1019
45. Sea un sistema con memoria virtual por segmentacin paginada, con algoritmo de reemplazo
ptimo local. La memoria principal est organizada en 4 marcos de 512 palabras cada uno. En
un instante Ti nicamente tenemos a los procesos A y B en el sistema, y el S.O. mantiene la
siguiente informacin:
30
Sistemas Operativos I Tema 3. Gestin de Memoria
Proceso A Proceso B
Tabla segmentos Tabla de pginas Tabla segmentos Tabla de pginas
tamao btp 0 DISCO tamao btp 0 1
710 0 1 DISCO 100 0 1 DISCO
200 2 2 0 600 1 2 2
1040 3 3 DISCO 250 3 3 DISCO
4 3
5 DISCO
NOTA.- btp (base de la tabla de pginas) representa el desplazamiento en la tabla de pginas (una
tabla de pginas para todos los segmentos) de un mismo proceso.
a) Con esta situacin, qu porcentaje de memoria se desperdicia debido a la fragmentacin
externa?; y debido a la interna?.
b) A partir de ese instante, contina la ejecucin concurrente de ambos procesos, y se generan
las siguientes direcciones lgicas: (A, 0, 100) (A, 1, 25) (B, 2, 200) (A, 2, 1035) (B, 0, 10) (A, 0,
450) (B,1, 580). Considere el instante Tj, que es el que ocurre tras generar las direcciones
lgicas anteriores. Calcule, para cada una de las siguientes direcciones lgicas, la direccin
fsica equivalente, considerando la situacin del instante Tj: (A, 2, 1030) (B, 0, 400) (A, 0, 700)
(B, 2, 100) (A, 0, 300) (B, 0, 92)
NOTA.- Si es una direccin errnea, conteste ERROR, y si es correcta pero la direccin equivalente
no est en memoria fsica, escriba DISCO.
Solucin
a) En segmentacin paginada slo hay fragmentacin interna. El tamao de pgina es
de 512 palabras, por tanto la segmentacin interna vendr dada por la diferencia
entre el tamao de pgina y el nmero de palabras ocupadas.
31
Sistemas Operativos I Tema 3. Gestin de Memoria
B, 0, 10 A, 0, 450 B, 1, 580
marco (pg. 0) (pg. 0) (pg. 1)
0 A, 2, pg. 2 A, 2, pg. 2 A, 2, pg. 2
1 B, 0, pg. 0 B, 0, pg. 0 B, 0, pg. 0
2 B, 1, pg. 1 B, 1, pg. 1 B, 1, pg. 1
3 A, 0, pg. 0 A, 0, pg. 0 A, 0, pg. 0
Los fallos de pgina se han resaltado en negrita.
En esta situacin de la memoria la traduccin de direcciones lgicas a fsicas quedar:
Direccin A, 0, 300 B, 0, 92
lgica pg.0,des. 300 pg.0,des. 92
Direccin 512*3+300= 512*1+92=
fsica 1836 604
46. Dado un sistema con memoria virtual con paginacin por demanda y el siguiente fragmento de
cdigo, con su correspondiente traduccin a ensamblador:
FOR i := 1TO 10 DO
FOR j := 1 TO 10 DO
C[i, j] := C[i, j] + A[i, j] + B[i, j];
En ensamblador
INICIO: Inicializar R0 a 11
BUCLE_i: Decrementar R0 una unidad
Salto si cero a FIN_BUCLE_i
Inicializar R1 a 11
BUCLE_j: Decrementar R1 una unidad
Salto si cero a FIN_BUCLE_j
Cargar R3 con A[R0, R1]
Cargar R4 con C[R0, R1]
Cargar R5 con B[R0, R1]
R3 <- R3 + R5
R4 <- R4 + R3
Grabar en C[R0, R1] el contenido de R4
Salto a BUCLE_j
FIN_BUCLE_j: Salto a BUCLE_i
FIN_BUCLE_i: ...
Donde cada instruccin ocupa una palabra y R0 ... R5 son registros del procesador. Suponiendo que
la paginacin del programa ha quedado como:
MATRIZ C pgina 0
MATRIZ A pgina 1
MATRIZ B pgina 2
Cdigo y variables pgina 3
32
Sistemas Operativos I Tema 3. Gestin de Memoria
Instruccin Pginas
Decrementar R1 una unidad 3
Salto si cero a FIN_BUCLE_j 3
Cargar R3 con A[R0, R1] 3,1
Cargar R4 con C[R0, R1] 3,0
Cargar R5 con B[R0, R1] 3,2
R3 <- R3 + R5 3
R4 <- R4 + R3 3
Grabar en C[R0, R1] el contenido de R4 3,0
Salto a BUCLE_j 3
Con ello, la secuencia ha sido 3, 3, 3, 1, 3, 0, 3, 2, 3, 3, 3, 0, 3. Es decir, un total de 13
accesos. Esto da origen a la siguiente serie de referencias: 3, 1, 3, 0, 3, 2, 3, 0, 3.
33
Sistemas Operativos I Tema 3. Gestin de Memoria
Obsrvese que las dos primeras instrucciones de cada bucle (tanto del interno como del
externo) se ejecutan una vez ms que el resto. Esto es debido a que, para comprobar la
finalizacin del bucle, se necesita efectuar de nuevo la operacin de decremento del
registro y la de comprobacin. Esto hace que las instrucciones Decrementar R0 una
unidad y Salto si cero a FIN_BUCLE_i se ejecuten 11 veces, mientras que Decrementar
R1 una unidad y Salto si cero a FIN_BUCLE_j deban ejecutarse 110 (ya que iteran 11
veces cada vez que se ejecuta el BUCLE_j, pero al estar encerrado dentro del BUCLE_i,
se repite su ejecucin 10 veces).
Por tanto, la tasa de fallos de pgina para este cdigo vend r dada por:
fallos de pgina 20
p= = = 0.014735 = 1.46%
nmero total de referencias 1363
47. Sea un sistema de memoria virtual con segmentacin paginada y Algoritmo de Reemplazo LRU
Global. El tamao de pgina es de 512 palabras y en memoria fsica hay en total 3 tramas,
inicialmente vacas. Suponiendo que hay dos procesos en el sistema (A y B) con las siguientes
tablas de segmentos (especificando nicamente la longitud de cada uno):
34
Sistemas Operativos I Tema 3. Gestin de Memoria
PROCESO A PROCESO B
TABLA DE SEGMENTOS TABLA DE SEGMENTOS
tamao tamao
0 160 0 300
1 200 1 640
2 1000
Se generan las siguientes direcciones lgicas: (B,0,209) (A,0,27) (A,1,171) (B,0,180) (A,1,25) (A,2,638)
(A,2,815) (B,0,200) (A,0,155) (B,0,193) (B,1,608) (A,2,715). Supngase que las tramas se asignan de
menor a mayor (primero la 0). Calcular las direcciones fsicas a que dan lugar ,y el nmero de fallos
de pgina provocados.
Solucin
El algoritmo de reemplazo es el LRU GLOBAL y el tamao de pgina de 512 palabras.
35
Sistemas Operativos I Tema 3. Gestin de Memoria
Las tablas de segmentos y pginas no consumen memoria fsica. Inicialmente la memoria est
vaca. Indique las direcciones fsicas generadas, si se utiliza un algoritmo de reemplazo de pginas
LRU GLOBAL, para la siguiente secuencia de direcciones lgicas: (A, 3, 2100) (A, 2, 1100) (B, 0,
800) (B, 2, 300) (A, 0, 50) (B, 0, 300) (A, 2, 1024) (A, 1, 2000) (B, 1, 3120) (A, 2, 1050) (B, 0, 800) (A, 1,
2100).
Solucin
Cada direccin fsica tiene 12 bits, de ellos 10 se emplean para desplazamiento dentro
de la trama (log2 1024 = 10), y el resto 2 para especificar el nmero de trama. La
memoria principal estar formada por: 22 = 4 tramas.
Las direcciones lgicas que especifica el enunciado estn en el formato de proceso,
segmento y desplazamiento dentro del segmento. Para que una direccin lgica sea
correcta ha de ser menor que el tamao del segmento al que pertenece. Como se trata de
segmentacin paginada es necesario identificar la pgina del segmento a la que
corresponde cada direccin lgica para ubicarla en memoria.
El numero total de fallos de pgina son 7 y han sido resaltados en negrita. De estos fallos
de pginas slo 3 han sido con reemplazo.
Para traducir direcciones lgicas a fsicas se emplea la siguiente expresin:
direccin _ fsica = marco 1024 + desplazamiento _ de _ pgina
Direccin lgica Direccin lgica
Pr, seg, Pr, seg, pg, Direccin Pr, seg, Pr, seg, pg, Direccin
desp_seg. desp_pag Fsica desp_seg. desp_pg Fsica
(A, 3, 2100) (A, 3, 2, 52) 52 (A, 2, 1024) (A, 2, 1, 0) 1024
(A, 2, 1100) (A, 2, 1, 76) 1100 (A, 1, 2000) (A, 1, 1, 976) 4048
(B, 0, 800) (B, 0, 0, 800) 2848 (B, 1, 3120) (B, 1, 3, 48) 48
(B, 2, 300) (B, 2, 0, 300) 3372 (A, 2, 1050) (A, 2, 1, 26) 1050
(A, 0, 50) (A, 0, 0, 50) 50 (B, 0, 800) (B, 0, 0, 800) 2848
(B, 0, 300) (B, 0, 0, 300) 2348 (A, 1, 2100) ERROR ERROR
36
Sistemas Operativos I Tema 3. Gestin de Memoria
49. Sea un sistema de memoria virtual con paginacin por demanda, con algoritmo de reemplazo
LRU local y con las siguientes caractersticas:
Tamao de Pgina: 1024 palabras.
Nmero de tramas en memoria: 5.
Asignacin de tramas: proporcional al tamao del proceso (medido en pginas).
El tamao de las tablas de pginas est ajustado al tamao de cada proceso.
Suponiendo dos procesos (A y B) en el sistema, donde las tablas de pginas contiene inicialmente
(siendo v=vlido, i=no vlido):
Proceso A Proceso B
Tabla de Pginas Tabla de Pginas
marco Bit validez marco Bit validez
0 i 0 i
1 4 v 1 0 v
2 i 2 i
3 3 v 3 i
4 i 4 2 v
5 i
6 i
7 i
Siendo, hasta este momento, las ltimas referencias a pginas: (B,1), (A,3). Se generan las
siguientes direcciones lgicas: (B,2109) (A,207) (A,4444) (B,2222) (A,2345) (B,3471) (A,88) (B,2000)
(A,1055) (B,1093) (B,5008) (A,7815)
a) Aplicar el algoritmo de reemplazo, mostrando el contenido de memoria en una tabla.
b) Calcular las direcciones fsicas a que dan lugar esas mismas direcciones lgicas cuando se
atienden, y el nmero de fallos de pgina provocados.
Solucin
a) EL proceso A tiene 8 pginas y el proceso B 5 pginas, por tanto la asignacin de
tramas proporcional al tamao del proceso quedar:
nm _ pg _ A 8
N _ tramas _ A = * nm _ tramas = 5 = 3,07
nm _ pg _ A + nm _ pg _ B 8+5
nm _ pg _ B 5
N _ tramas _ B = * nm _ tramas = 5 = 1,92
nm _ pg _ A + nm _ pg _ B 8+5
Por tanto de las 5 tramas que tiene la memoria principal 3 se asignan al proceso A y 2 al
proceso B.
Teniendo en cuenta las tablas de pginas, podemos saber que pginas hay en memoria y
en que marcos a partir de ese momento se aplica para las referencias propuestas un
algoritmo de reemplazo LRU local obtenindose:
37
Sistemas Operativos I Tema 3. Gestin de Memoria
Direccin
lgica B ,2109 A,207 A,4444 B,2222 A,2345 B,3471
(pg., despla) (2, 61) (0,207) (4, 348) (2,174) (2,297) (3,399)
Direccin DISCO 1024+207= DISCO DISCO DISCO DISCO
fsica 1231
Direccin
lgica A,88 B,2000 A,1055 B,1093 B,5008 A,7815
(pg., despla) (0,88) (1,976) (1,31) (1,69) (4,912) (7,647)
Direccin 1024+88= 2048+976= 4096+31= 2048+69= 0+912= 3072+647=
fsica 1112 3024 4127 2117 912 3719
50. Sea un sistema de memoria virtual por segmentacin paginada. La memoria est organizada
en 5 marcos de 512 palabras cada uno. En este momento nicamente se tienen 2 procesos: A y
B. La situacin inicial de los marcos es:
Memoria
N marco (X,S,P)
0
1 A,2,0
2 B,1,0
3 B,3,1
4 A,1,1
38
Sistemas Operativos I Tema 3. Gestin de Memoria
Proceso B
Tabla de segmentos Tabla de pginas
tamao base marco Bit de validez
0 450 0 0 i
1 600 1 1 2 v
2 100 3 2 i
3 2000 4 3 i
4 i
5 3 v
6 i
7 i
39
Sistemas Operativos I Tema 3. Gestin de Memoria
El numero total de fallos de pgina son 4 y han sido resaltados en negrita. De estos fallos
de pginas slo 3 han sido con reemplazo.
51. Sea un sistema de memoria virtual por paginacin por demanda. Las direcciones lgicas tienen
11 bits, de los cuales 2 se interpretan internamente como nmero de pgina. La memoria est
organizada en 3 marcos. En este momento nicamente tenemos 2 procesos: A y B. La situacin
inicial de las pginas es:
Proceso A Proceso B
Tabla de pginas Tabla de pginas
marco marco
0 0 0 2
1 1 1 i
2 i 2 i
3 i 3 i
a) Si se obtuviera de la situacin inicial cada una de las siguientes direcciones fsicas (sin
relacin de orden entre s) 845, 623, 1024, 1603, calcule las direcciones lgicas de las que
proceden.
b) Si se utiliza un algoritmo de reemplazo LRU global, y a partir de la situacin inicial se generan
las siguientes direcciones lgicas: (A, 632), (A, 1130), (B, 555), (B, 28), (A, 1333), (B, 446), (A,
501), (A, 1422), (B, 111), (A, 999), (A, 1222), (A, 888) realice el mapa de ocupacin de la
memoria e indique el nmero de fallos de pgina producido.
Nota importante: Las ltimas referencias a pginas antes de la situacin inicial han sido: B0, A1, A0
(en este orden).
Solucin
a) La direccin lgica es de 11 bits de los cuales 2 bits son para el nmero de pgina y
9 bits para el desplazamiento dentro de la pgina, por tanto el tamao de pgina es de
512 palabras.
Las direcciones lgicas a las que corresponden las direcciones fsicas del enunciado
sern:
El tamao de la memoria fsica es 1536, por tanto la direccin fsica 1603 excede el
tamao de la memoria y es por tanto imposible acceder ha dicha posicin.
40
Sistemas Operativos I Tema 3. Gestin de Memoria
52. Sea un sistema con doble nivel de paginacin donde las direcciones lgicas tienen 15 bits, el
tamao de pgina es de 1Kbyte y cada tabla de primer nivel puede contener cuatro descriptores
de tablas de segundo nivel. Las tablas del primer y segundo nivel las gestiona el sistema
operativo y por tanto no esta en el rea de memoria destinada a los procesos. Se tiene 4 marcos
ubicados en las direcciones ms baja de la memoria fsica asignable a los procesos, dichos
marcos se encuentran inicialmente vacos, los marcos libres se asignan en orden creciente.
Suponga que se emite la siguiente secuencia de direcciones lgicas: 7168, 26624, 16508, 5120,
7168, 26624, 12288, 7168, 26624, 16508, 5120, 12288. Esta secuencia se repite
indefinidamente.
Diga qu pgina ocupar cada marco de la memoria fsica despus de la primera repeticin de la
secuencia suponiendo que el algoritmo de reemplazo de pginas es el OPTIMO y utilizando la
siguiente notacin:(i,j): identifica la pgina cuyo descriptor de primer nivel es el i, y cuyo descriptor
de segundo nivel es el j.
Solucin
Las direcciones lgica son de 15 bits.
El tamao de pginas es de 1Kbyte=210 bytes 10 bits para el desplazamiento dentro
de la pginas.
Las tablas de pginas del primer nivel contiene n 4 descriptores 2 bits para utilizarlo
de ndice en las tablas de primer nivel. Por tanto la direccin lgica la podemos
considerar formada por los siguientes campos:
Direccin lgica
1er nivel paginacin 2 nivel paginacin desplazamiento
2 bits 3 bits 10 bits
Por tanto, dada una direccin lgica en decimal el valor de los bits correspondientes al
primer nivel de paginacin vendr dado por el cociente de la siguiente divisin entera:
direccin _ lgica direccin _ lgica
primer _ nivel = =
8 1024 8192
41
Sistemas Operativos I Tema 3. Gestin de Memoria
Por tanto, dada una direccin lgica en decimal el valor de los bits correspondientes al
segundo nivel de paginacin vendr dado por el cociente de la siguiente divisin entera:
( direccin _ lgica mod 8192 )
segundo _ nivel =
1024
donde mod representa el resto de la divisin entera.
7168,
26624,
16508, 7168 26624 12288 7168 26624 16508 5120 12288
5120 (0,7) (3,2) (1,4) (0,7) (3,2) (2,0) (0,5) (1,4)
53. Se tiene un sistema con memoria virtual que utiliza la tcnica de la segmentacin paginada por
demanda. En este sistema se ejecuta un proceso A con tres segmentos T (cdigo), D (datos) y S
(pila). Los segmentos de datos y de pila pueden crecer. Las longitudes de estos segmentos se
especifican en la tabla 1. La memoria fsica consta de 4 marcos de 512 bytes cuyo contenido en
un instantet es el de la tabla 2, donde la nomenclatura Ti indica la pgina lgica i del segmento T
(ej: D0 es la pgina 0 del segmento D).
Tabla-1 Tabla-2
segmento longitud marco Segmento,pgina
T 2500 0 T2
D 1500 1 D0
S 300 2 T1
3 S0
Si en ese instante t se produjese la referencia a memoria que se especifica en los siguientes casos,
diga si se producira fallo de pgina y, en caso afirmativo, el tipo de fallo (violacin de proteccin,
42
Sistemas Operativos I Tema 3. Gestin de Memoria
direccin fuera de rango, pgina en disco, ...) y el manejo o tratamiento que recibira por parte del
sistema operativo.
a) Acceso a la direccin (D,1000) para escribir en una variable.
b) Acceso a la direccin (T, 3510) para ejecutar una instruccin.
c) Acceso a la direccin (D, 1510) para crear una variable dinmica.
d) Acceso a la direccin (T,950) para ejecutar una instruccin.
Solucin
Referencia y Manejo
Tipo de fallo
(D,1000) Fallo La pgina D1 debe cargarse en memoria reemplazando a una de las
de pgina. cuatro cargadas.
(T,3510) La direccin no est dentro del tamao del segmento. El sistema
Direccin fuera de abortar el proceso.
rango.
(D,1510) Fallo Aunque la direccin est fuera del rango actual del segmento D, el
de pgina. sistema permite que crezca dicho segmento. La pgina D2 ser
asignada al proceso (puede que no se necesite cargarla desde disco si
todava no ha sido utilizada y pertenece al rea de datos sin valores
iniciales), reemplazando a una de las ya cargadas.
(T,950): Sin fallo. Es una direccin de la pgina T1, ya presente en memoria. Por tanto, se
atender la solicitud de dicha direccin
54. Suponga que en un sistema de memoria virtual se desea realizar una implementacin de los
siguientes algoritmos:
LRU (Last Recently Used)
SEGUNDA OPORTUNIDAD
LFU (Least Frequently Used)
Diga, para cada uno de ellos, qu registros hardware sera estrictamente necesario que la MMU
actualizase cada vez que se referencia una pgina, para poder realizar una implementacin de
dichos algoritmos. Los posibles registros hardware son: Bit de modificacin, Bit de referencia, Bit de
validez, Contador del nmero de veces que una pgina ha sido referenciada, Tiempo de la ltima
referencia a una pgina, Registro de desplazamiento en el que el bit de referencia se introduce como
bit de mayor peso.
Solucin
LRU (least recently used): Se elige como victima aquel que hace ms tiempo que se ha
referenciado, por tanto sera necesario actualizar el registro del Tiempo de la ltima
referencia a pgina. El registro de desplazamiento para el bit de referencia no sera
siempre utilizable porque para implementar exactamente este algoritmo debera disponer
de un nmero muy grande de bits y el desplazamiento debera realizarse tras cada
acceso, no peridicamente como se explic en clase.
SEGUNDA OPORTUNIDAD: Este algoritmo slo necesitara actualizar el del Bit de
referencia.
43
Sistemas Operativos I Tema 3. Gestin de Memoria
LFU (least frequently used): Se elige como victima aquel que se ha referenciado menos
veces por tanto es necesario llevar la contabilidad del nmero de referencias que se han
realizado a una pgina, el registro que se necesita para ello es del Contador de
referencias.
55. Dado un sistema de gestin de memoria basado en mltiples niveles de paginacin, se trata de
determinar el nmero de niveles necesarios para que la tabla de primer nivel pueda caber en una
TLB de 256 bytes. Se supone que la direccin lgica tiene un formato de 32 bits, el tamao de
pgina es de 1024 bytes, el tamao de los descriptores de cualquiera de las tablas de pginas
es de 8 bytes y que cada tabla de nivel superior al primero ocupa el tamao de una pgina.
Solucin
La direccin lgica es de 32 bits y el tamao de pgina es de 1024 bytes, por tanto
tendremos una estructuracin de la direccin lgica como sigue:
22 bits 10 bits
Niveles de paginacin Desplazamiento de pgina
Hay que calcular cuantos niveles de paginacin se necesitan.
El primer nivel de paginacin ha de caber en la TLB, el tamao de la TLB es de 256
bytes y el descriptor de pgina es de 8 bytes, por tanto tendremos:
8
256 2
Nmero _ descriptores _ TLB = = 3 = 2 = 32 descriptores en TLB
5
8
2
Por tanto de los bits de la direccin lgica dedicados a niveles de paginacin los 5 de
mayor peso ser para el primer nivel:
5 bits 17 bits 10 bits
Primer nivel Otros niveles de paginacin Desplazamiento de pgina
Las pginas son de 1024 bytes, por tanto el nmero de descriptores que puede contener
una pgina vendr dado por:
10
1024 2
Nmero _ descriptores _ pgina = = 3 = 2 = 128 descriptores en una pgina
7
8
2
Con lo que la composicin final de la direccin lgica ser:
22 bits 10 bits
5 bits 7 bits 7 bits 3 bits 10 bits
Primer nivel Segundo nivel Tercer nivel Cuarto nivel Desplazamiento de pgina
56. Se tiene un sistema de gestin de memoria segmentado paginado con pginas cuya longitud es
1Kb. Este sistema dispone de una tabla de descriptores de pgina donde cada descriptor
guarda, entre otros, la siguientes datos:
44
Sistemas Operativos I Tema 3. Gestin de Memoria
RO: bit de proteccin frente escrituras. (1: slo lectura, 0:lectura / escritura).
LIST-SEG: Lista de segmentos que comparten la pgina.
N Marco: Nmero de marco.
En este sistema cuando se produce un fallo de pgina no se aplica el algoritmo de reemplazo ya que
un proceso del sistema ("demonio'') se encarga de mantener una lista de marcos libres
quitndoselos, cuando sea preciso, a los procesos ubicados en memoria. La lista de marcos libres
que gestiona el demonio es: 15, 23, 40, 75, 90, 110, 125, 140, 142, 156, 200, 215 ...
Esta operacin toma como parmetro el identificador del segmento a copiar y devuelve el
identificador de un nuevo segmento que es copia del anterior. La copia de segmentos se realiza
utilizando la tcnica de copy-on-write (copiar al escribir) consistente en lo siguiente: Cuando se invoca
s2 := copiar(s1) el sistema operativo crea un segmento s2 que comparte todas sus pginas
con las del segmento s1. Slo en el instante en que se intente realizar una operacin de modificacin
de un segmento, se producir un fallo de proteccin y el sistema operativo realizar una copia privada
de la pgina que se desea modificar para el segmento en el que va a producirse la modificacin. El
sistema operativo debe fijar los bits de proteccin de una pgina de tipo "copy-on-write'' para que los
intentos de escritura provoquen un fallo de proteccin. La rutina de tratamiento de fallo de proteccin
debe ocuparse de realizar la copia de la pgina.
En el sistema de gestin de memoria descrito existe un segmento de 3500 bytes de longitud, que se
representar como segmento A. Los descriptores de segmento en este sistema son una lista de
referencias a una tabla de pginas global. De acuerdo con sto, el descriptor del segmento A y el
estado de la tabla de pginas en el instante que se considera son:
Tabla de pginas
Seg. A RO Lista-seg etc. N marco
0 0 0 A ... 10
1 1 0 A ... 11
2 2 0 A ... 12
3 3 0 A ... 13
4 - - -
45
Sistemas Operativos I Tema 3. Gestin de Memoria
4.- C := Copiar(B)
Seg. Seg. Seg. R Lista- N R Lista- N
A B C O seg marco O seg marco
4 0 0 0 1 BC 10 7
1 5 5 1 0 B
A 11 8
2 2 2 2 1 ABC 12 9
3 3 3 3 1 ABC 13 10
4 0 A 15 11
5 1 BC 23 12
6 13
46
Sistemas Operativos I Tema 3. Gestin de Memoria
57. Sea un sistema con Memoria Virtual que utiliza paginacin multinivel con dos niveles de
paginacin. El tamao de la direccin fsica es de 13 bits , el tamao de marco es de 1024 bytes
y el nmero mximo de entradas de las tablas de pginas de ambos niveles es de 4 descriptores
de pgina en cada nivel.
a) Indique cada uno de los campos de la direccin lgica y fsica de este sistema, as como el
nmero de bits de dichos campos.
b) En la actualidad en dicho sistema se estn ejecutando dos procesos P1 y P2, y el contenido
de la memoria principal es el que se muestra a continuacin:
47
Sistemas Operativos I Tema 3. Gestin de Memoria
Memoria Principal
Nm. marco Contenido
(proceso,pgina)
0 (P1, 4)
1 (P2, 8)
2 (P1, 7)
3 (P2, 10)
4 (P2, 11)
5 (P1, 5)
6 (P1, 6)
7 Tabla pg.
B1)Teniendo en cuenta el contenido de la memoria y el de la tabla de pginas del primer nivel del
proceso P1, indique el contenido de las tablas de pginas del 2 nivel para el proceso P1. Indique
tambin el descriptor de pgina de primer nivel que sera necesario utilizar con el fin de acceder a las
pginas que estn ubicadas en memoria. Cada descriptor de pginas ocupa dos bytes
Proceso P1
Tabla de pginas
1er nivel
8000
8008
8016
8024
B2)Teniendo en cuenta el contenido de la memoria y el de la tabla de pginas del primer nivel del
proceso P2, indique el contenido de las tablas de pginas del 2 nivel para el proceso P2. Indique
tambin el descriptor de pgina de primer nivel que sera necesario utilizar con el fin de acceder a las
pginas que estn ubicadas en memoria. Cada descriptor de pginas ocupa dos bytes.
Proceso P2
Tabla de pginas
1er nivel
8032
8040
8048
8056
c) Ambos procesos utilizan los mismos datos de entrada, sobre los que nicamente acceden
para lectura. Dichos datos corresponden a los contenidos de las pginas 7 para ambos
procesos P1 y P2. Indique como se habran de modificar los contenidos de las tablas de
pginas del apartado anterior para que sea posible la comparticin de los datos de entrada.
d) En dicho sistema, utilizando la tcnica de paginacin por demanda con un algoritmo de
reemplazo FIFO se produce hiperpaginacin para una secuencia de solicitudes dada de un
conjunto de procesos. Para eliminar la hiperpaginacin se decidi incrementar la memoria
principal de dicho sistema y por tanto el nmero de marcos, finalmente se comprob que con
48
Sistemas Operativos I Tema 3. Gestin de Memoria
Direccin Fsica
Bit 12 Bit 0
Marco Desplazamiento
3 bits 10 bits
b1)
Valor del descriptor de pgina
8008
Proceso P1
Proceso P1 Tablas de pginas 2 nivel
Tabla de pginas marco Bit validez
1er nivel
8000 0 0 1
8008 1 5 1
8016 2 6 1
8024 3 2 1
c)
49
Sistemas Operativos I Tema 3. Gestin de Memoria
Proceso P1
Proceso P1 Tablas de pginas 2 nivel
Tabla de pginas Valor del
marco Bit validez
descriptor
1er nivel
de pgina
8000 0 0 1 8008
8008 1 5 1
8016 2 6 1
8024 3 2 1
Valor del
descriptor
Proceso P2 de pgina
Proceso P2 Tablas de pginas 2 nivel 8048
Tabla de pginas marco Bit validez
1er nivel
8032 0 1 1
8040 1 - -
8048 2 3 1
Valor del
8056 3 4 1
descriptor
8040
0 - -
1 - -
2 - -
3 2 1
Pila 1K
Espacio 33K
Intermedio
Datos 2K
Cdigo 4K
50
Sistemas Operativos I Tema 3. Gestin de Memoria
tamao total del proceso de 40K a 16K (10240 bytes + tamao cdigo y datos), de
los que el bloque de 1K ms alto pertenecera a la pila.
BRK: que permite ampliar el segmento de datos segn el tamao que se
especifique en la llamada. Esta ampliacin la realiza a costa de reducir el segmento
de espacio intermedio. Un ejemplo: brk(2048) aumentara en 2K el tamao del
segmento de datos y reducira en 2K el segmento de espacio intermedio. En caso
de no existir el suficiente espacio intermedio la llamada se abortara y devolvera un
mensaje de error.
Otros comandos relacionados con el manejo de procesos son: FORK (que realiza un duplicado del
proceso que lo invoca p.e. a.out y lo pone en ejecucin, a.out), EXEC (que ubica el ejecutable
invocado en memoria y lo pone en ejecucin) y EXIT (que finaliza la ejecucin del proceso y libera su
memoria).
Se supone que la memoria est disponible a partir de la direccin 204800 y que la asignacin de
memoria sigue una poltica del primer hueco disponible y se realiza en orden de direcciones
ascendente. Se consideran los siguientes ejecutables disponibles:
a.outcon 2K de cdigo, 1K de datos y 1K de pila. El espacio total del proceso es
de 9K.
b.outcon 2K de cdigo, 2K de datos y 1K de pila. El espacio total del proceso es
de 12K.
c.outcon 1K de cdigo, 3K de datos y 1K de pila. El espacio total del proceso es
de 15K.
51
Sistemas Operativos I Tema 3. Gestin de Memoria
e) El proceso b.out realiza como ltima instruccin de su cdigo una operacin exit.
Proceso Segmento Tamao Dir. base
c.out cdigo 1 Kb 217088
c.out datos 3 Kb 218112
c.out intermedio 10 Kb 221184
c.out pila 1Kb 231424
52
Sistemas Operativos I Tema 3. Gestin de Memoria
59. En la versin 1.0 del sistema operativo OS/2 se utiliz la tcnica de la segmentacin por
demanda (sin paginacin), dado que el procesador destino de este operativo fue el Intel 80286,
el cual fue diseado para soportar esta tcnica de gestin de memoria. De esta forma, un
proceso puede ejecutarse sin necesidad de que todos sus segmentos estn presentes en
memoria, cargndose estos bajo demanda cuando sea necesario.
En la versin 1.0, para la gestin de la segmentacin por demanda, se utilizan los siguientes criterios:
Los procesos en OS/2 disponen de tres segmentos (cdigo, datos y pila).
El segmento de cdigo de un proceso debe estar siempre presente en memoria
central.
Bsqueda de hueco: utiliza la tcnica del mejor ajuste.
Compactacin: cuando se aplica, se genera un nico hueco en memoria a partir
de la direccin fsica 0, desplazando todos los segmentos hacia direcciones altas.
Seleccin de segmento vctima: se elige el segmento al cual hace ms tiempo que
no se accede (LRU GLOBAL).
Algoritmo de fallo de pgina es el que se expone a continuacin:
hueco_encontrado:= falso
mientras no hueco_encontrado
si existe un hueco en memoria suficientemente grande
entonces
hueco_encontrado := cierto
H := MEJOR_AJUSTE
si_no
si el sumatorio de los huecos en memoria
es lo suficientemente grande
entonces
compactar
hueco_encontrado:= cierto
H := HUECO_EN_INICIO_MEMORIA
si_no
desalojar de memoria un segmento completo segn LRU GLOBAL
fin_si
fin_si
fin_mientras
retorna H
53
Sistemas Operativos I Tema 3. Gestin de Memoria
Asuma que las ltimas direcciones generadas han sido (B,pila,398) (A,pila,1274) (C,datos,2091)
(A,datos,97).
Se pide :
a) Completen las tablas de segmentos para que reflejen la situacin descrita anteriormente
indicando el bit de validez..
b) Tras producirse la siguiente secuencia de direcciones lgicas, describa el estado de la
memoria central : (A, cdigo, 1020) (B, pila, 300) (A, cdigo , 37200) (C, cdigo, 200) (D, pila,
500) (A, pila, 32)
c) Suponga que ahora se crea al proceso E, de tal forma que sea una rplica exacta del
proceso A. La creacin obliga al sistema a ubicar en memoria nicamente el segmento de
cdigo de este proceso. Describa cmo queda el estado de la memoria central .
Solucin
a) Consultando el contenido de la memoria principal y las caractersticas de cada
proceso se rellenan las tablas de segmento para cada proceso.
proceso A Proceso B Proceso C Proceso D
Dir. Bit Dir Bit Dir. Bit Dir. Bit
Base validez .base validez base validez base validez
cdigo 0 V 57.500 V 60.600 V 63.900 V
datos 70.300 V -- I 84.300 V -- I
pila 87.600 V 100.600 V -- I -- I
54
Sistemas Operativos I Tema 3. Gestin de Memoria
c) El segmento de cdigo del nuevo proceso no cabe en memoria, por lo tanto hay que
buscarle un hueco y aplicar el algoritmo de fallo de pgina. Finalmente el contenido de
la memoria que como sigue:
posicin proceso segmento posicin proceso segmento
inicial inicial
0 A cdigo
57500 B cdigo
60600 C cdigo
63900 D cdigo
70300 E cdigo
60. Justifique por qu se puede emplear un algoritmo LRU para gestionar la cach de bloques del
sistema operativo, pero no hay apenas ningn sistema que emplee ese mismo algoritmo para
reemplazar pginas en la gestin de la memoria virtual (se utilizan aproximaciones en este
segundo caso, pero no el algoritmo tal cual es).
Solucin
En la cach de bloques es muy fcil anotarse cundo ha sido accedido un bloque (que es
la informacin que necesita el algoritmo LRU), pues para ello hay que efectuar una
llamada al sistema y poco se notar si el sistema operativo se anota esta informacin en
alguna estructura de datos (por ejemplo, en una cola ordenada de bloques que se va
modificando a medida que se realizan los accesos, ubicando el bloque accedido al final
de la cola y tomando como vctima aquel bloque que est en la cabeza).
En el caso del reemplazo de pginas resulta extremadamente caro anotar por cada acceso
a memoria la ocurrencia de tal acceso. Ninguna MMU se permite el lujo de guardar tal
informacin en un contador, cola o alguna estructura similar. Como mximo
proporcionan un bit de referencia con el que se puede saber si cada pgina ha sido
accedida o no, pero se desconoce cuntos accesos ha sufrido y en qu momento. Con
este bit de referencia se pueden implementar aproximaciones al LRU, pero no el
algoritmo exacto.
55
Sistemas Operativos I Tema 3. Gestin de Memoria
codifica de forma que el primer smbolo representa el proceso que lo realiza y el segundo la
pgina accedida (se supone que todas las pginas accedidas estn dentro del espacio lgico del
proceso).
La secuencia de accesos a analizar es la siguiente: A1, A1, B0, C3, A0, A1, B0, B1, A3, B3, C0, C1,
C1, A1, C0, A0, B0, A2, A2, A1, C0, C1, B1, C2, A3, C3, A4, C3, A2, B0, B0, C2, C3, A0, C2, C0, A4,
C0, A1, A0.
Se pide:
a) Determinar el contenido de la tabla de pginas asignada a cada proceso, una vez que la
memoria se ha llenado por primera vez. La memoria consta de 8 marcos que se asignan en
orden de direcciones crecientes (desde el marco 0 al 7) e inicialmente estn vacos. Cada
descriptor de pgina consta de dos campos: primero el nmero de marco asignado a la
pgina y segundo el bit de referencia asociado. Si la pgina no est en memoria, ello se
indica con un guin (-) en el nmero de marco correspondiente a dicha pgina.
b) Determinar el contenido de los descriptores de pgina, cada vez que se produzca un fallo de
pgina (indicar qu pgina falla y a qu proceso pertenece). El contenido de dichos
descriptores debe reflejar el estado posterior al fallo y su actualizacin se limitar a los
descriptores de pgina del proceso que ha producido el fallo de pgina.
c) A qu algoritmo de reemplazo equivale el de SEGUNDA OPORTUNIDAD, si todos los bits
de referencia de la tabla de pginas estn puestos a 1 en el momento previo al fallo de
pgina.
Solucin
a) Dada la secuencia de referencias propuesta en el enunciado la memoria se llenara con
las 8 primeras referencia a pginas distintas. Esto es: A1, A1, B0, C3, A0, A1, B0, B1,
A3, B3, C0,.... En las tablas de pginas todas estas pginas aparecern con el bit de
referencia a 1.
b) El primer fallo de pgina ocurre al referenciar por primera vez C1, en la siguiente
tabla se ha sombreado en gris las referencias ya realizadas.
A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1
C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3
A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.
El algoritmo de fallo de reemplazo es el de SEGUNDA OPORTUNIDAD LOCAL, por
lo tanto slo afectar a los marcos de memoria que contienen pginas del proceso C. El
56
Sistemas Operativos I Tema 3. Gestin de Memoria
orden FIFO en que la pginas del proceso C se ubicaron en memoria es C3, C0. Por
tanto se comienza dando una segunda oportunidad a la pgina 3 y a continuacin a la 0.
Se pone en primer lugar el bit de referencia de la pgina 3 a 0 y a continuacin el de la 0,
eligindose como victima la pgina 3.
Con lo que el orden FIFO de las pginas para el proceso C queda C0,C1.
A A1 A0 A3
Orden FIFO B B0 B1 B3
C C0 C1 -
Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de
referencia correspondientes.
A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1
C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3
A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.
Fallo de pgina al referenciar A2. El orden FIFO en que la pginas del proceso A se
ubicaron en memoria es A1, A0, A3. Se comienza dando una segunda oportunidad a la
pgina A1. Se pone por tanto en primer lugar el bit de referencia de la pgina A1 a 0,
continuando con el de A0, y A3 y eligindose como victima la pgina 1.
57
Sistemas Operativos I Tema 3. Gestin de Memoria
Con lo que el orden FIFO de las pginas para el proceso A queda A0,A3,A2.
A A0 A3 A2
Orden FIFO B B0 B1 B3
C C0 C1 -
Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de
referencia correspondientes.
A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1
C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3
A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.
Fallo de pgina al referenciar A1. El orden FIFO en que la pginas del proceso A se
ubicaron en memoria es A0, A3, A2. Se comienza mirando el bit de referencia de la
pgina A0, este bit est a 0 y por tanto la pgina A0 se elige como victima.
Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de
referencia correspondientes.
A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1
C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3
A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.
58
Sistemas Operativos I Tema 3. Gestin de Memoria
Fallo de pgina al referenciar C2. El orden FIFO en que la pginas del proceso C se
ubicaron en memoria es C0, C1. Se comienza mirando el bit de referencia de la pgina
C0, este bit est a 1, y por tanto se le da una segunda oportunidad y se pone su bit de
referencia a 0, igualmente se hace para la pgina C1, se elige como victima, la pgina
C0.
Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de
referencia correspondientes.
A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1
C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3
A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.
Fallo de pgina al referenciar C3. El orden FIFO en que la pginas del proceso C se
ubicaron en memoria es C1, C2. Se comienza mirando el bit de referencia de la pgina
C1, este bit est a 0. Se elige como victima, la pgina C1.
59
Sistemas Operativos I Tema 3. Gestin de Memoria
Con lo que el orden FIFO de las pginas para el proceso C queda C2,C3.
A A3 A2 A1
Orden FIFO B B0 B1 B3
C C2 C3 -
Se continua con las referencias mientras no haya fallo de pgina actualizando los bits
de referencia correspondientes.
A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1
C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3
A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.
Fallo de pgina al referenciar A4. El orden FIFO en que la pginas del proceso A se
ubicaron en memoria es A3,A2, A1. Se comienza mirando el bit de referencia de la
pgina A3, este bit est a 1 y por tanto se le da una segunda oportunidad y se pone su bit
de referencia a 0, igualmente se hace para la pgina A2, y A1. Se elige como victima, la
pgina A3.
Con lo que el orden FIFO de las pginas para el proceso A queda A2,A1,A4.
A A2 A1 A4
Orden FIFO B B0 B1 B3
C C2 C3 -
Se continua con las referencias mientras no haya fallo de pgina actualizando los bits
de referencia correspondientes.
60
Sistemas Operativos I Tema 3. Gestin de Memoria
A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1
C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3
A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.
Fallo de pgina al referenciar A0. El orden FIFO en que la pginas del proceso A se
ubicaron en memoria es A2, A1, A4. Se comienza mirando el bit de referencia de la
pgina A2, este bit est a 1 y por tanto se le da una segunda oportunidad y se pone su bit
de referencia a 0, se mira el bit de referencia de la pgina A1, este bit est a 0. Se elige
como victima, la pgina A1.
Con lo que el orden FIFO de las pginas para el proceso A queda A1,A4,A0.
A A2 A4 A0
Orden FIFO B B0 B1 B3
C C2 C3 -
Se continua con las referencias mientras no haya fallo de pgina actualizando los bits
de referencia correspondientes.
A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1
C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3
A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.
Fallo de pgina al referenciar C0. El orden FIFO en que la pginas del proceso C se
ubicaron en memoria es C2,C3. Se comienza mirando el bit de referencia de la pgina
C2, este bit est a 1 y por tanto se le da una segunda oportunidad y se pone su bit de
referencia a 0, igualmente con el bit de referencia de la pgina C3. Se elige como
victima, la pgina C2.
61
Sistemas Operativos I Tema 3. Gestin de Memoria
Con lo que el orden FIFO de las pginas para el proceso C queda C3,C0.
A A2 A4 A0
Orden FIFO B B0 B1 B3
C C3 C0 -
Se continua con las referencias mientras no haya fallo de pgina actualizando los bits
de referencia correspondientes.
A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1
C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3
A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.
Fallo de pgina al referenciar A1. El orden FIFO en que la pginas del proceso A se
ubicaron en memoria es A2, A4, A0. Se comienza mirando el bit de referencia de la
pgina A2, este bit est a 0. Se elige como victima, la pgina A2.
Con lo que el orden FIFO de las pginas para el proceso A queda A4, A0, A1.
A A4 A0 A1
Orden FIFO B B0 B1 B3
C C3 C0 -
c) Al algoritmo FIFO.
62
Sistemas Operativos I Tema 3. Gestin de Memoria
62. Explique brevemente cual es el principal inconveniente que puede presentar la segmentacin por
demanda.
Solucin
El algoritmo de fallo de segmento es ms complicado que el de fallo de pgina: Puede
que no baste con seleccionar un solo segmento vctima (el espacio requerido por el
segmento que provoc el fallo puede ser mayor que el liberado por el segmento vctima).
Tambin puede necesitarse compactacin tras haber extrado de la memoria mltiples
segmentos vctimas.
Al igual que ocurre con la paginacin por demanda, otro inconveniente es el thrashing
(hipersegmentacin): Si no hay suficiente memoria fsica para el conjunto de procesos
actualmente en funcionamiento, puede que se pierda ms tiempo gestionando fallos de
segmento que ejecutando procesos.
64. En un sistema de gestin de memoria virtual se decide utilizar un modelo de rea activa para
controlar la demanda de memoria. En el sistema se ejecutan actualmente 3 procesos A, B y C.
Cada acceso se codifica de forma que el primer smbolo representa el proceso que lo realiza y el
segundo la pgina accedida (se supone que todas las pginas accedidas estn dentro del
espacio lgico del proceso).
Suponiendo que el tamao de la ventana de rea activa es 4, calcule el mnimo y mximo tamao de
rea activa de cada proceso despus de la siguiente secuencia de accesos y suponiendo que el
muestreo se inicia inmediatamente antes del primer acceso a cada proceso: A1, A1, B0, C3, A0, A1,
B0, B1, A3, B3, C0, C1, C1, A1, C0, A0, B0, A2, A2, A1, C0, C1, B1, C2, A3, C3, A4, C3, A2, B0, B0,
C2, C3, A0, C2, C0, A4, C0, A1, A0, A0, C0.
Solucin
rea activa es conjunto de pginas accedidas en las ltimas D (en nuestro caso D=4)
referencias. El tamao del rea activa del proceso pi es el nmero de pginas
referenciadas en la ventana ms reciente.
63
Sistemas Operativos I Tema 3. Gestin de Memoria
Referencias al proceso A
A1, A1, A0, A1, A3, A1, A0, A2, A2, A1, A3, A4, A2, A0, A4, A1, A0, A0.
Se observa que para el proceso A en esta secuencia de referencias el nmero mnimo de
pginas distintas que se referencia tomando una ventana de 4 referencias es 2 pginas y
el mximo es de 4 pginas distintas. Por tanto tendremos:
mx TAA A = 4; min TAA A = 2
Referencias al proceso B
B0, B0, B1,B3, B0, B1,B0, B0.
Se observa que para el proceso B en esta secuencia de referencias el nmero mnimo de
pginas distintas que se referencia tomando una ventana de 4 referencias es 2 pginas y
el mximo es de 3 pginas distintas. Por tanto tendremos:
mx TAA B = 3; min TAA B = 2
Referencias al proceso C
C3, C0, C1, C1, C0, C0, C1, C2, C3, C3, C2, C3, C2, C0, C0, C0.
Se observa que para el proceso C en esta secuencia de referencias el nmero mnimo de
pginas distintas que se referencia tomando una ventana de 4 referencias es 2 pginas y
el mximo es de 3 pginas distintas. Por tanto tendremos:
mx TAA C = 4; min TAA C = 2
67. Diga si las siguientes afirmaciones sobre el modelo del rea activa son verdaderas (V) o falsas
(F) y justifique su respuesta:
a) Si la suma de los tamaos de las ventanas del rea activa de los distintos procesos de un
sistema es mayor que el nmero de marcos de memoria fsica, entonces en el sistema se
produce hiperpaginacin.
b) Si el espacio de direcciones lgicas de un proceso es de 1024 pginas y el tamao del rea
64
Sistemas Operativos I Tema 3. Gestin de Memoria
activa en un instante dado es de 512 pginas, entonces puede asegurarse que elproceso
provocar hiperpaginacin en todos los casos.
c) Una MMU que pudiese provocar una interrupcin cada cierto nmero fijo de referencias a
memoria y gestionase el bit de referencia, podra calcular de forma exacta el tamao del rea
activa.
d) En un sistema cuyo tamao de ventana de rea activa es 1024, el tamao del rea activa en
un instante t vale 1024 si, y solo si, las ltimas 1024 pginas de una serie de referencias son
distintas.
e) Si se aumenta el nmero de marcos que tiene asignados un proceso, entonces aumentar
el tamao del rea activa.
Solucin
a) FALSA. El tamao del rea activa del proceso pi es el nmero de pginas
referenciadas en la ventana ms reciente, por tanto la suma de los tamaos de ventana de
rea activa no tiene sentido.
b)FALSA. El que provoque hiperpaginacin depender de cuantas pginas necesite el
proceso tener en memoria a la vez para poder ser ejecutado.
c)FALSA: Lo podra calcular nicamente de forma aproximada.
d) VERDADERO. Ya que el tamao del rea activa del proceso pi es el nmero de
pginas referenciadas en la ventana ms reciente. Slo sera falso si alguna de esas
referencias fuese incorrecta.
e)FALSO. EL tamao de rea activa depende de la referencias que haya solicitado ese
proceso y del tamao de la ventana que se escoja para calcularlo.
68. En un sistema operativo se ha decidido utilizar el modelo del rea activa para controlar el nmero
de pginas que deben residir en memoria por cada proceso. La estrategia utilizada es la
siguiente:
Cada vez que se realiza un acceso a memoria por parte de un proceso, su rea
activa es recalculada.
En todo momento slo deben estar presentes en memoria las pginas que forman
las reas activas de todos los procesos, siempre y cuando exista disponibilidad de
memoria fsica.
Si al recalcular el rea activa de un proceso P, se detecta que no hay suficiente
memoria fsica, este proceso P es eliminado completamente de memoria y es
suspendido.
Cuando se produzca nueva disponibilidad de memoria fsica, debe cargarse en
memoria el rea activa del primer proceso que se encuentre suspendido
Inicialmente la memoria fsica esta vaca y llegan simultneamente, pero en el orden indicado, cuatro
procesos (A, B, C y D). En la siguiente tabla se indica la secuencia de accesos a pginas que realiza
cada proceso dentro de su espacio lgico de direcciones. En el ltimo acceso aparece la letra T, la
65
Sistemas Operativos I Tema 3. Gestin de Memoria
cual indica que el proceso termina, lo que implica que sus pginas deben ser eliminadas de memoria
y debe antenderse la reanudacin de un proceso suspendido si fuera necesario.
A 0 0 0 7 8 T
B 8 3 5 1 5 T
C 3 4 5 6 7 T
D 0 1 2 2 1 T
El sistema atiende a los procesos siguiendo un turno rotatorio, de tal forma que permite a un proceso
emitir una direccin y luego se lo permite al siguiente. Ejemplo: A0, B8, C3, D0, A0, B3 ......
Complete la siguiente tabla de tal forma que describa para cada acceso a memoria en que estado
queda la memoria fsica tras dicho acceso, expresando para cada marco el identificativo del proceso
y el nmero de pgina que alberga.
Instante Proceso Marco Marco Marco Marco Marco Marco Marco Marco
Pgina 0 1 2 3 4 5 6 7
Solucin
Se tienen cuatro procesos en el sistema y 8 marcos, la ventana de rea activa es de 3.
Se ubican las pginas en memoria por orden de referencia, teniendo en cuenta que
ningn proceso puede tener ms de tres pginas en memoria (la ventana de rea activa es
de 3) y mientras queden marcos libres.
En el instante 9 y despus de hacer referencia a la pgina 5 del proceso B, la memoria se
encuentra totalmente llena. En el instante 10 el rea activa del proceso C no puede ser
ubicada en memoria y el proceso C es suspendido y libera memoria.
66
Sistemas Operativos I Tema 3. Gestin de Memoria
16 D1 A0 B1 D2 A8 A7 D1 B5
17 AT C3 B1 D2 C4 D1 B5
18 BT C3 D2 C4 D1
19 C5 C3 C5 D2 C4 D1
20 DT C3 C5 C4
21 C6 C6 C5 C4
22 C7 C6 C5 C7
23 CT
69. Dada la siguiente lista de referencias emitida por cierto proceso: ... 5 5 8 3 2 2 3 2 3 5 8 2 9
7 (instante1) 7 9 2 2 9 10 9 10 9 10 9 10 10 2 (instante2) ... si se utiliza el modelo del rea
activa con =10. Indique si las siguientes afirmaciones son verdaderas (V) o falsas (F) y justifique
su respuesta.
a) El tamao del rea activa en instante1es 10 y en instante2, tambin.
b) El rea activa en instante 2 est formada por los marcos {2, 9, 10}.
c) El rea activa en instante 1 est formada por las pginas {2, 3, 5, 7, 8, 9}.
d) Con la informacin presentada no se puede saber qu pginas forman las reas activas de
este proceso en los instantes 1 y 2, deberamos conocer tambin su localidad de referencia.
e) El tamao del rea activa en instante2 es 4.
f) Si este proceso tiene 6 marcos asignados en el instante 1 a las pginas de su rea activa (y
no tiene otros marcos), no dar ningn fallo de pgina entre los instantes 1 y 2.
67
Sistemas Operativos I Tema 3. Gestin de Memoria
Solucin
a) FALSO. El rea activa en el instante 1 es de 6 pginas y en el instante 2 de 3
pginas, que son el nmero de pginas distintas que aparecen en las ltimas 10
referencias.
b) FALSO. El rea activa no esta formada por marcos, si no por pginas.
c) VERDADERO. El conjunto de pginas distintas que aparecen en las ltimas 10
referencias antes del instante 1 son: {2, 3, 5, 7, 8, 9}.
d) FALSO. Es suficiente con la informacin de las referencias y el tamao de ventana
para poder calcular el rea activa.
e) FALSO. El tamao de rea activa en el instante 2 es de 3 pginas.
f) FALSO. Si que da fallo de pgina, ya que hay referencias a pginas distintas a las
que componen el rea activa en el instante 1, a partir de dicho instante.
70. Sea un esquema de paginacin por demanda, donde la tabla de pginas reside en memoria y
los descriptores de pgina poseen un bit de modificacin (dirty bit). Discuta cules son los
nmeros mximo y mnimo de accesos a memoria y disco posibles tras la emisin de una
direccin por parte de un proceso.
Solucin
Se utilizaran en la solucin las siguientes abreviaturas:
N= nmero de palabras de una pgina
TAM = tiempo de acceso a una posicin de memoria para lectura.
2*TAM = tiempo de acceso a una posicin de memoria para escritura.
TAMR=Tiempo de lectura de una pgina en memoria = N * TAM
TAMW= tiempo de escritura de una pgina en memoria =N *2* TAM.
TADR= Tiempo de lectura de un pgina en disco.
TADW= Tiempo de escritura de un pgina en disco = 2*TADR.
68
Sistemas Operativos I Tema 3. Gestin de Memoria
69
Sistemas Operativos I Tema 3. Gestin de Memoria
72. Se tiene un sistema de memoria virtual con paginacin a un nivel que no utiliza intercambios y
cuya tabla de pginas se encuentra en memoria principal. Este sistema utiliza una TLB
(Translation Look-aside Buffers) cuyo porcentaje de aciertos es del 85%. Cunto empeora el
TAE respecto a un sistema que tuviese la tabla de pginas ntegramente en registros del
procesador?. Considere que el tiempo de acceso a los registros internos del procesador y a la
TLB es despreciable frente al TAM (Tiempo de Acceso a Memoria).
Solucin
70
Sistemas Operativos I Tema 3. Gestin de Memoria
En este caso cada vez que se emita una direccin lgica se ha de consultar
en TLB Ttlb0.
o Si hay acierto en la bsqueda, lo cual ocurre con una probabilidad p
(p=0.85), se accede a memoria a la direccin fsica solicitada
TAM pTAM.
o Si no hay acierto en la bsqueda, lo cual ocurre con una probabilidad
1-p (1-p=0.15), hay que acceder dos veces a memoria una para
encontrar el descriptor de pgina y otra para acceder a la direccin
fsica solicitada 2*TAM (1-p)TAM.
TAE 1 = TAM ;
El porcentaje de mejora que se consigue utilizando los registros del procesador vendr
dado por:
TAE 2 TAE1 100 = 0.15 100 TAM = 13.04% TAM
TAE 2 1.15
73. En un sistema de gestin de memoria paginado, se han incluido unos registros asociativos (TLB)
para mejorar el rendimiento del sistema. La bsqueda en estos registros cuesta 20 ns, mientras
que su bsqueda y actualizacin cuesta 40 ns. El tiempo de acceso a memoria (TAM) es igual a
100 ns. Suponiendo que la tasa de acierto en el TLB es de un 80%, calcular el tiempo de acceso
efectivo a memoria en este sistema.
Solucin
TAM=100 ns
Tiempo de bqueda en TLB=Ttlbusq=20 ns.
Tiempo de bqueda y actualizacin en TLB=Ttlbusq_act=40 ns.
Porcentaje de aciertos en TLB= 80% tasa de aciertos= p= 0.8
Porcentaje de fallos en TLB=20% tasa de fallos=1- p= 0.2
Como se trata de un sistema de memoria paginada, sin memoria virtual, para pode r
traducir la direccin lgica a fsica habr consultar las tablas pginas.
Cuando se emite una direccin lgica se realiza una bsqueda en las TLB con el nmero
de pgina de dicha direccin lgica Ttlbusq.
Si hay un acierto en la bsqueda, lo cual ocurre con una probabilidad p, la
TLB contiene el descriptor de la pgina referenciada y a continuacin se
accede a la posicin de memoria referenciada TAM p. TAM.
Si no hay acierto en la bsqueda de las TLB, lo cual ocurre con una
probabilidad 1-p, entonces hay que consultar la tabla de pginas en memoria
TAM y actualizar las TLB para que contenga el descriptor de la nueva
pgina referenciada Ttact. Una vez se conoce el marco donde se encuentra la
pgina se ha de acceder a memoria para satisfacer la solicitud TAM (1-p)
(2TAM+Ttact).
71
Sistemas Operativos I Tema 3. Gestin de Memoria
74. Dado un esquema de gestin de memoria basado en paginacin y donde parte de la tabla de
pginas se almacena en una TLB, indique cul sera el porcentaje de aciertos en la TLB para
obtener un TAE inferior a 50 ns. El tiempo de acceso a la TLB es de 5 ns y el tiempo de acceso
a memoria (TAM) es 30 ns.
Solucin
TAM=30 ns
Tiempo de bqueda en TLB=Ttlbusq=5 ns.
TAE<50ns
Como se trata de un sistema de memoria paginada, sin memoria virtual, para poder
traducir la direccin lgica a fsica habr consultar las tablas pginas.
Cuando se emite una direccin lgica se realiza una bsqueda en las TLB con el nmero
de pgina de dicha direccin lgica Ttlbusq.
Si hay un acierto en la bsqueda, lo cual ocurre con una probabilidad p, la
TLB contiene el descriptor de la pgina referenciada y a continuacin se
accede a la posicin de memoria referenciada TAM p. TAM.
Si no hay acierto en la bsqueda de las TLB, lo cual ocurre con una
probabilidad 1-p, entonces hay que consultar la tabla de pginas en memoria
TAM. Una vez se conoce el marco donde se encuentra la pgina se ha de
acceder a memoria para satisfacer la solicitud TAM (1-p) (2TAM).
75. Sea un sistema con paginacin por demanda donde la tabla de pginas se implementa en
registros. El tiempo de servicio de un fallo de pgina en caso de que haya marcos libres o la
pgina reemplazada no ha sido modificada (dirty bit a 0) es de 8 ms, mientras que el tiempo de
servicio en caso de que la pgina a reemplazar haya sido modificada (dirty bit a 1), el tiempo de
servicio es de 20 ms. La probabilidad de encontrar un marco libre cuando se produce un fallo de
pgina es de 0.5. La pgina a reemplazar tiene el dirty bit a 1 el 70% de las ocasiones. El tiempo
de acceso a memoria fsica es de 100s. Cul es la mayor tasa de fallos de pgina (p)
aceptable para que el tiempo de acceso efectivo no exceda de 200 s?.
72
Sistemas Operativos I Tema 3. Gestin de Memoria
Solucin
Consideraremos que la tabla de pginas est completa en los registros y por tanto slo
puede haber fallo de pgina de la pgina donde se encuentra la referencia solicitada (no
puede haber fallo de pgina de las pginas de la tabla de pginas).
Cada vez que se emita una direccin lgica en este sistema las situaciones que pueden
aparecer son las siguientes:
p No hay fallo
de pgina
Referencia
pm Hay marcos libres
1-p Hay fallo
de pb Dirty bit = 0
pgina
1-pm No hay marcos libres
1-pb Dirty bit = 1
73
Sistemas Operativos I Tema 3. Gestin de Memoria
74