Sie sind auf Seite 1von 74

Sistemas Operativos I

Tema 3. Gestin de Memoria

Problemas Resueltos
Tema 3. Gestin de Memoria
Gestin de memoria: Asignacin contigua
1. Se tiene un sistema de particiones mltiples con un soporte hardware basado en la tcnica de
registros base y lmite. Dado un programa P que ocupa T palabras y se encuentra ubicado en
memoria a partir de la posicin de memoria fsica C.
a) Cul es el valor de cada registro para el programa P?
b) Cul es el rango de las direcciones que emite P?
c) Cul es el rango de direcciones reales en que se transforman las direcciones queemite P?
Solucin
a) El registro base y lmite se usa en esquemas basados en reubicacin en tiempo de
ejecucin. El valor del registro base ser C y el valor del registro lmite ser T.
b) El rango de direcciones de P es entre 0 y T-1.
c) Las direcciones fsicas reales en las que se ha de transformar se encuentran en el
rango entre C y C+T-1.
2. Analizar los esquemas de proteccin de particiones mltiples desde el punto de vista de la
reubicacin.
Solucin
Con particiones mltiples de memoria, aparecen dos opciones que el tamao sea fijo, o
que el tamao de la particin sea variable. En las de tamao fijo aparece el problema de
la fragmentacin interna y en las de tamao variable aparece el problema de la
fragmentacin externa. Los esquemas de proteccin que se utilizan para particiones
variables son: registro cota inferior y registro cota superior o registro base y registro
lmite. En el primero la traduccin de direcciones se realiza en tiempo de compilacin
resultando direcciones absolutas de memoria y procesos no reubicables. En el esquema
de registro base y lmite la traduccin de direcciones lgicas a fsicas se realiza en
tiempo de ejecucin resultados por tanto procesos reubicables.
3. Sea un sistema gestionado con un mecanismo de particiones variables en el que la memoria
fsica tiene 4200 palabras. En un instante la memoria est ocupada por 3 bloques de
cdigo/datos de la forma:
Direccin inicial
1000
2900
3400

longitud
1000
500
800

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.

4199

3400

Bloque 3

Bloque 1

Bloque 2

3399

2899
2900

2000

1999

1000

0999

0000

Solucin
La situacin inicial de la memoria seria la siguiente:

Bloque 3

4199

3400

3399

Bloque 2

2900

2499

2000
Bloque 4

Bloque 1

1999

1000

0999

0000

A partir de este momento cargamos los nuevos bloques, comenzando por el bloque 4 de
500 palabras utilizando el mejor ajuste.

Bloque 3

4199

3400

3399

Bloque 2

2899
2900

1500

1499

1000

Bloque 4

Bloque 1

0999

0000

El siguiente bloque que se ha de ubicar en memoria es el bloque 5 con 1200 palabras.


Hay espacio suficiente en memoria pero aparece el problema de la fragmentacin
externa por tanto se hace necesario utilizar un algoritmo de compactacin.

Sistemas Operativos I

Tema 3. Gestin de Memoria

Bloque 3

4199

3400

3399

Bloque 2

2900
Bloque 6

Bloque 5

2699

1500

1499

1000

Bloque 4

Bloque 1

0999

0000

Despus de la compactacin han quedado libres 1400 palabras contiguas en un nico


hueco, la suma de los tamaos de los bloques 5 y 6 son de 1400 por tanto no habra
problema para la ubicacin.

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
180K

libre
400 K

P2
100K

libre
150 K

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
180K

P5
200K

P6
80K

libre
120K

P2
100K

P4
120 K

libre
30K

Sistemas Operativos I

Tema 3. Gestin de Memoria

b) Debera moverse el proceso P4 al hueco de 120K, con lo cual quedara un nico


hueco de 150K.
c) Todos los registros bases quedan igual que antes de la compactacin exceptiuando el
del proceso P4 cuyo B4 contendr 460 K (se ha considerado que P1 se encuentra
ubicado en las direcciones ms bajas 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.

Sistemas Operativos I

Tema 3. Gestin de Memoria

8. Qu tipo de algoritmos se utilizan para gestionar sistemas con asignacin contigua de


memoria? Qu tipo de fragmentacin se puede producir en estos sistemas?
Solucin
Los algoritmos que se pueden utilizar para gestionar los sistemas con asignacin
contigua de memoria son: el primer ajuste (first fit), el mejor ajuste (best fit), el
peor ajuste (worst fit). Sin embargo, en particiones variables de tamao fijo, no tiene
sentido el uso del algoritmo del peor ajuste, ya que la fragmentacin interna que se
produce no puede ser aprovechada por otro proceso (slo un proceso por particin). En
la asignacin contigua con particiones de tamao variable puede aparecer la
fragmentacin externa, siendo necesario el uso de algoritmos de compactacin. Mientras
que en las de tamao fijo aparece la fragmentacin interna.
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.

Gestin de memoria: paginacin y segmentacin


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.
11. En un sistema de gestin de memoria por paginacin, es recomendable que el tamao de
pgina sea potencia de 2?. Justifquese la respuesta.
Solucin
Si. Porque facilita la traduccin de una direccin lgica a un nmero de pginas y
desplazamiento. Los bits de mayor peso se ded ican al nmero de pgina, y los de menor
peso al desplazamiento dentro de la pgina. De esta manera se ahorra una operacin
aritmtica de divisin, que tiene un coste mayor.
Se puede aprovechar totalmente el espacio de direcciones.

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

Tamao de pgina (en palabras)

512

512

1024

1024

Tamao de palabra (en bits)

16

32

16

32

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
Tamao de pgina
(en palabras)
Tamao de palabra
(en bits)
Tamao de la tabla de
pginas (en descriptores)
Tamao de memoria
virtual en pginas del
sistema

A
512

B
512

C
1024

D
1024

16

32

16

32

128
descriptores

8M
descriptores

64
descriptores

4M
descriptores

128 pginas

8M pginas

64 pginas

4M pginas

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
(en palabras)
Tamao de procedimiento
( en palabras )

1200

2500

3600

4700

700

700

700

700

Sistemas Operativos I

Fragmentacin interna
(en palabras)

Tema 3. Gestin de Memoria

500

1800

2900

4000

Tamao de pgina
(en palabras)
Tamao de procedimiento
( en palabras )
Fragmentacin interna
(en palabras)

1200

2500

3600

4700

200

200

200

200

1000

2300

3400

4500

Tamao de pgina
(en palabras)
Tamao de procedimiento
( en palabras )
Fragmentacin interna
(en palabras)

1200

2500

3600

4700

500

500

500

500

700

2000

3100

4200

15. Explique la motivacin y las ventajas de la tcnica de compartir pginas.


Solucin
Cuando dos o ms procesos ejecutan un mismo programa, la tcnica de comparticin de
pginas permite no tener que duplicar el cdigo en memoria con lo que se ahorra espacio
en la misma. Piense en un sistema de tiempo compartido donde existen varios usuarios
que se encuentran utilizando a la vez un mismo editor o compilador.
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.

Sistemas Operativos I

Tema 3. Gestin de Memoria

En los sistemas de segmentacin paginada no hay fragmentacin externa, slo interna,


ya que lo que se ubica en memoria son pginas del proceso que pertenecen a un
segmento u otro, del mismo.
La direccin lgica 4800 en este sistema pertenece al segmento 0, pgina 4,
desplazamiento 704.
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.

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

----segmento-----

11 10

-desplazamiento-

Se tienen un total de 14 bits para la pgina y se necesitarn 214 = 16384 descriptores de


pginas por segmento.
El tamao de la tabla de pginas = 16384 * 4 bytes = 65536 = 64 KB
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

Sistemas Operativos I

Tema 3. Gestin de Memoria

Pg.
1024
512
direccin
lgica
18004
596
84
fsica
1108
84
84
Para esta direccin es vlida un tamao de pgina de 512 o menor. Ahora ser necesario
comprobarlo para el resto de direcciones.
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

Fsica

Tema 3. Gestin de Memoria

1327

1327 / 128 = 10 n de marco


1327 mod 128 = 47 desplazamiento
Fsica
1211
1211 / 128 = 9 n de marco
1211 mod 128 = 59 desplazamiento
Necesitamos un nmero de bits f para referenciar de manera que 2f 9, con lo que f=4.
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:
Proceso

Registro base Registro lmite

1360

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
Direc. fsica

(B,530)
4020+530= 4550

(A,0,130)
Error no vale este
formato

(C, 1046)
1400+1046=2246

11

Sistemas Operativos I

Tema 3. Gestin de Memoria

b)
Direc. lgica
Direc. fsica

530
3*256+18= 786

(0,130)
1046
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.

Direc. lgica
Direc. fsica

530
ERROR, no vale este
formato

c)
(0,130)
5*128+2= 642

1046
ERROR, no vale
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).

Desplazamiento

1620
1620
Direccin
vlida

4004
4004
Direccin
No vlida

Direcciones fsicas
8004
9812
3908
1620
Direccin
Direccin
No vlida
vlida

23720
3240
Direccin
No vlida

b) Peor, ya que se requerira hardware adicional en la unidad de gestin de memoria


para descomponer la direccin lgica en sus diferentes partes.
c) Respuesta las direcciones fsicas base de segmento podran ser 0 y 8192.
Nos encontramos en un sistema de segmentacin paginada, es decir, siempre se
mapean pginas en memoria. Esto implica que los segmentos siempre se comienzan a
ubicar en direcciones mltiplo del tamao de pgina. De las mencionadas en el
enunciado las nicas que son mltiplo de 4096 son la 0 y la 8192.

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:
Pgina 0 desplazamiento 2638
Pgina 1 desplazamiento 2638
Pgina 2 desplazamiento 2638
Pgina 3 desplazamiento 2638

0*4096 + 2638 = 2638


1*4096 + 2638 = 6734
2*4096 + 2638 = 10830
3*4096 + 2638 = 14926

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).
c) Respuesta: (0,2638), (0, 6734), (0,10830), (0, 14926).
Se trata de un sistema segmentado paginado por tanto lo que se ubica en memoria son
pginas, pudiendo haberse emitido una direccin lgica perteneciente a cualquier pgina
del proceso P1 con un desplazamiento igual al de la direccin fsica que se accede. Los
clculos son los mismos que los presentados en la solucin del apartado a) de este
problema. Por tanto las posibles direcciones lgicas son: (0,2638), (0, 6734), (0,10830),
(0, 14926).
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?.
Segmento-1: Tabla de pginas
13

Sistemas Operativos I

Tema 3. Gestin de Memoria

Solucin
Respuesta: direccin lgica (1, 2487) direccin fsica 8631, direccin lgica (1,635)
direccin fsica 3707.
Direccin lgica Campos de la direccin lgica
Direccin fsica (*)
Segmento =1
(1, 2487)
Pgina = 2 = 2487 div 1024
8631= 8*1024 + 439
Desplazamiento = 439 = 2487 mod 1024
Segmento =1
(1,635)
Pgina = 0 = 635 div 1024
3707= 3*1024 + 635
Desplazamiento = 635 = 635 mod 1024
(*) 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.
Direccin lgica Campos de la direccin lgica

(2, 1333)

Segmento =2
Pgina = 1 = 1333 div 1024
desplaz. = 309 = 1333 mod 1024

Direccin fsica (*)


3654
marco =3 =3654 div 1024
desplaz.= 582= 3654 mod 1024
2357
marco =2=2357 div 1024
desplaz.=309 = 2357 mod 1024

(*) 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
Directorio de pgina
pgina

11
0
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
Direccin Lgica
612

Direccin Lgica
38

Direccin Lgica
(3, 62)

15

Sistemas Operativos I

a) Direccin fsica
b) Direccin fsica
(paginacin)
c) Direccin fsica
(segmentacin)

Tema 3. Gestin de Memoria

ERROR, excede el
lmite.
ERROR, excede el
n de pginas del
proceso.
ERROR de formato
de direccin

Base + 38 = 188
1*128 +38 =166

ERROR de formato
de direccin
ERROR de formato
de direccin

ERROR de formato 320+62= 382


de direccin

Para el apartado b) es necesario conocer la pgina y desplazamiento de cada una de las


direcciones fsicas y en funcin de la pgina que obtengamos consultar la tabla de
pginas.
Direccin 612: Pgina = 612 div 128 = 4; Desplazamiento = 612 mod 128=102;
Direccin 38: Pgina = 38 div 128 = 0; Desplazamiento = 38 mod 128=38;
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
4095
4096
16383

Particin de
4K
Particin de
12K

16384
22527

Particin de
16K

22528
65535

Particin de
32K

Si se ha referenciado la direccin lgica 9701, en un modelo


de particiones fijas, esto implica que el proceso slo ha podido
ser ubicado en una particin cuyo tamao sea superior a 9701
bytes. Las posibilidades seran:
1) Que estuviese ubicado en la particin 2, con lo que la
direccin fsica vendra dada por 4096+9071= 13167.
2) Que estuviese ubicado en la particin 3, con lo que la
direccin fsica vendra da por 16384+9071= 26085. Esta
coincide con una de las opciones del enuciado.
3) Que estuviese ubicado en la particin 4, con lo que la
direccin fsica vendra da por 22528+9071= 31599.

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)
40960
b) Direccin lgica: (0, 17080)
33464

Direcciones fsicas: P1: 6000, P2: 18000, P3:


Direcciones fsicas: P1: 4792, P2: 17080, P3:

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.
Direccin lgica
(0,5120)
Segmentacin
Segmento=0
Desplaz. 5120
Segmentacin Paginada
Segmento=0
Pgina= 5120/4096=1
Desplaz.=
5120mod 4096= 1024

Direc. fsica P1

Direc. fsica P2

Direc. fsica P3

6000

18000

40960

Base segmento=
6000-5120=860
Marco=
6000/4096= 1
Desplaz.=
6000mod 4096=
1904

Base segmento=
1800-5120=12880
Marco=
18000/4096= 4
Desplaz.=
18000mod4096=
1616

Base segmento=
40960-5120= 35840
Marco=
40960/4096= 10
Desplaz.=
40960mod 4096= 0

b ) Respuesta: Se gmentacin paginada.


No es posible que se haya utilizado un modelos de segmentacin, ya que las direcciones
fsicas de los procesos no son superiores a el desplazamiento de la direccin lgica
17080. En un modelo de segmentacin paginada, los desplazamientos de la pgina y de
los marcos deben coincidir como ocurre en este caso.
Direccin lgica
(0,17080)
Segmentacin Paginada
Segmento=0
Pgina= 17080/4096=4
Desplaz.=
17080mod 4096= 696

Direc. fsica P1

Direc. fsica P2

Direc. fsica P3

4792
Marco=
4792/4096= 1
Desplaz.=
4792mod 4096=
696

17080
Marco=
17080/4096= 4
Desplaz.=
17080mod4096=
696

33464
Marco=
33464/4096= 8
Desplaz.=
33464mod 4096=
696

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):
00000000 10088000 : Cdigo y datos del programa
40000000 52000000 : Biblioteca dinmica

18

Sistemas Operativos I

Tema 3. Gestin de Memoria

BF000000 C0000000 : Pila


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:
29
Marco

Direccin fsica
12 11
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
Directorio de pgina
pgina

11
0
desplazamiento

Para calcular el tamao de la tabla de pginas necesitaremos conocer el nmero de


pginas que ocupa el proceso y el tamao de sus descriptores de pginas.
Descriptor de pgina = 24 bits = 3 bytes
-----------18 bits---------- --------------------6 bits-----------------
Nmero de Marco
1bit val.+3 bits proteccin+2 bits LRU
Nmero de pginas que ocupa el proceso:
Region cdigo: 0x10088000 / 4Kbytes = 0x10088 pginas = 65672 pags
Regin biblioteca dinmica: (52000-40000)= 0x12000 pags = 73728 pags
Region pila: (C0000BF000)= 0x1000 pags = 4096 pags
Total descriptores = 0x69198 = 65672+73728+4096=143.496 descriptores
Tamao descriptor = 18 + 1 + 3 + 2 = 24 bits = 3 bytes
Tamao tabla de pginas para el proceso =:143.496 x 3 = 430.488 bytes = 420.4 Kb
aproximadamente.
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).

Gestin de memoria: Memoria Virtual.


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.
Dir.
N marco
0
1
2
3
4

t=0
(P1,1023)
P1, Pg. 1
P1, Pg. 1
-----

t=1
(P2,0224)
P2, Pg. 0
P1, Pg. 1
P2, Pg. 0
----

t=3
(P1,0783)
P1, Pg. 0
P1, Pg. 1
P2, Pg. 0
P1, Pg. 0
---

t=4
(P3,3848)
P3, Pg. 3
P1, Pg. 1
P2, Pg. 0
P1, Pg. 0
P3, Pg. 3
--

t=5
(P3,1089)
P3, Pg. 1
P1, Pg. 1
P2, Pg. 0 (*a)
P1, Pg. 0
P3, Pg. 3
P3, Pg. 1 (*b)

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).
a) Algoritmo de reemplazo global.
t=6
t=7
t=8
t=9
(P3,0098)
(P2,2345)
(P1,0788)
(P1,1654)
P3, Pg. 0 P2, Pg. 2 P1, Pg. 0 P1, Pg. 1
P1, Pg. 1 P1, Pg. 1 P1, Pg. 1 P1, Pg. 1*
P3, Pg. 0 * P2, Pg. 2 P2, Pg. 2 P2, Pg. 2
P1, Pg. 0 P1, Pg. 0
P1, Pg. 0 P1, Pg. 0
P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3
P3, Pg. 1 P3, Pg. 1
P3, Pg. 1 P3, Pg. 1

t=10
(P3,2899)
P3, Pg. 2
P3, Pg. 2
P2, Pg. 2
P1, Pg. 0
P3, Pg. 3
P3, Pg. 1

t=11
(P3,3008)
P3, Pg. 3
P3, Pg. 2
P2, Pg. 2
P1, Pg. 0
P3, Pg. 3
P3, Pg. 1

t=12
(P3,1111)
P3, Pg. 1
P3, Pg. 2
P2, Pg. 2
P1, Pg. 0
P3, Pg. 3
P3, Pg. 1

Los * representan las victimas seleccionadas en el prximo instante de tiempo.


En los instantes t=8, t=9,t=11 y t=12 no es necesario elegir victima ya que la pgina
referenciada se encuentra en memoria.
b) Algoritmo de reemplazo local. Se selecciona la victima entre marcos ocupados por el
mismo proceso.
t=6
t=7
t=8
t=9
t=10
t=11
t=12
(P3,0098)
(P2,2345)
(P1,0788)
(P1,1654)
(P3,2899)
(P3,3008)
(P3,1111)
P3, Pg. 0 P2, Pg. 2 P1, Pg. 0 P1, Pg. 1 P3, Pg. 2 P3, Pg. 3 P3, Pg. 1
P1, Pg. 1 P1, Pg. 1 P1, Pg. 1 P1, Pg. 1 P1, Pg. 1 P3, Pg. 2 P3, Pg. 2
P2, Pg. 0 * P2, Pg. 2 P2, Pg. 2 P2, Pg. 2 P2, Pg. 2
P2, Pg. 2 P2, Pg. 2
P1, Pg. 0 P1, Pg. 0
P1, Pg. 0 P1, Pg. 0 P1, Pg. 0 P1, Pg. 0 P1, Pg. 0
P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3
P3, Pg. 0 P3, Pg. 1 P3, Pg. 1 P3, Pg. 1* P3, Pg. 2 P3, Pg. 2* P3, Pg. 1

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:

0
1
2
3

Tabla de pginas proceso A


Marco
Bit de Contador
validez
1
v
10
2
v
15
i
6
i
5

0
1
2
3
4

Tabla de pginas proceso B


Marco
Bit de Contador
validez
0
v
7
i
2
i
3
3
v
4
4
v
11

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.
marco t=15 LRU
0 B,0
7
1 A,0
10
2 A,1
15
3 B,3
4
4 B,4
11

0
1
2
3
4

B,0
t=20
B,0
A,3
A,1
B,1
B,4

Cont. B,2
LRU t=21
20
B,0
19
A,3
18
A,1
17
B,1
11
B,2

A,2
t=16
B,0
A,2
A,1
B,3
B,4

Cont.
LRU
7
16
15
4
11

B,1
t=17
B,0
A,2
A,1
B,1
B,4

Cont.
LRU
7
16
15
17
11

A,1
t=18
B,0
A,2
A,1
B,1
B,4

Cont.
LRU
7
16
18
17
11

A,3
t=19
B,0
A,3
A,1
B,1
B,4

Cont.
LRU
7
19
18
17
11

Cont. A,0 Cont. A,1 Cont. B,4 Cont. B,1 Cont.


LRU t=22 LRU t=23 LRU t=24 LRU t=25 LRU
20
B,0
20
B,0
20
B,0
20
B,1
25
19
A,3
19
A,1
23
A,1
23
A,1
23
18
A,0
22
A,0
22
A,0
22
A,0
22
17
B,1
17
B,1
17
B,4
24
B,4
24
21
B,2
21
B,2
21
B,2
21
B,2
21

22

Sistemas Operativos I

Tema 3. Gestin de Memoria

Direccin
Lgica =
U
(A, 2900)
(B,1200)
(A,1850)
(A, 3072)
(B,527)
(B,2987)
(A,27)
(A,2000)
(B,4800)
(B,1500)

Pgina =
U div 1024

Desplazamiento=
U mod 1024

2
1
1
3
0
2
0
1
4
1

852
176
826
0
527
939
27
976
704
476

Direccin fsica=
Marco * 1024 +
Desplazamiento
1*1024+852=1876
3*1024+176=3248
2*1024+826=2874
1*1024+0=1024
0*1024+527=527
4*1024+939=5035
2*1024+27=2075
1*1024+976=2000
3*1024+704=3776
0*1024+476=476

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:

0
1
2
3
4
5
6
7

Tabla de pginas
Marco Bit de validez
0
3
1
0
0
0
1
2
1
0
0

8
9
10
11
12
13
14
15

Tabla de pginas
Marco
Bit de validez
0
1
1
0
0
0
0
0
0

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
Direccin lgica 1112
1645
2049
622
2776
Pgina
2
3
4
1
5
desplazamiento 88
109
1
110
216
A continuacin representaremos la memoria tras estas referencias, aplicando el
algoritmo ptimo para reemplazo de pginas.
marco

Referencia Referencia Referencia


Referencia Referencia
inicial Pg. 2 *
Pg. 3 *
Pg. 4
Pg. 1
Pg. 5
0 Pg. 4
Pg. 4
Pg. 4
Pg. 4
Pg. 4
Pg. 4
1 Pg. 9
Pg. 2
Pg. 3
Pg. 3
Pg. 3
Pg. 3
2 Pg. 5
Pg. 5
Pg. 5
Pg. 5
Pg. 5
Pg. 5
3 Pg. 1
Pg. 1
Pg. 1
Pg. 1
Pg. 1
Pg. 1
El * indica que hay fallo de pgina, por lo tanto hay que seleccionar una victima. Se
elige como victima aquella que se tarda ms tiempo en volver a referenciar o que ya no
se vuelve a referenciar. Cuando se hace referencia a la pgina 2, se elige como victima la
pgina 9, que ya no se va a volver a referenciar. Cuando se referencia a la pgina 3 se
elige como victima a la 2 que ya no se vuelve a referenciar.
En este instante el contenido de la tabla de pginas ser el siguiente:

0
1
2
3
4
5
6
7

Tabla de pginas
Marco Bit de validez
0
3
1
0
1
1
0
1
2
1
0
0

8
9
10
11
12
13
14
15

Tabla de pginas
Marco
Bit de validez
0
1
0
0
0
0
0
0
0

c) La traduccin de direcciones se realiza consultando la tabla de pginas:


Dir. lgica

Pgina Desplazamiento Dir. Fsica


Marco*512 + desplazamiento
1628
3
92
1*512 + 92 = 604
851
1
339
3*512+339= 1875
2700
5
140
2*512+140= 1164
2432
4
384
0*512+384= 384
d) Si a continuacin se referencia la direccin lgica 1330 tendremos un fallo de pgina,
ya que esta direccin lgica pertenece a la pgina 2, cuyo bit de validez en la tabla de
pginas est a invalido.
24

Sistemas Operativos I

Tema 3. Gestin de Memoria

e) Depende del tipo de direccionamiento que se este empleando en el cdigo de la


pgina a compartir. Si se trata de direccionamiento relativo, esta procedimiento podra
estar ubicado en cualquier pgina del proceso Q, y por tanto el descriptor
correspondiente debera contener el marco 3. Si se trata de de direccionamiento
absoluto, debera aparecer en la misma entrada donde aparece para el proceso P, ya que
en caso contrario el cdigo presente en ella podra no funcionar bien (Si hay una
instruccin de salto que no es relativa al valor del contador de programa, y la posicin
destino de ese salto se encuentra en la misma pgina, se est obligando a que ese marco
est asociado siempre a la misma pgina para todos los procesos que lo utilicen). Por
tanto, ha de aparecer asociado a la pgina 1 del proceso Q.
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
0
1
2
3

Pg.
7
Pg.7
Pg.8
Pg.1
Pg.6

Pg.
8
Pg.7
Pg.8
Pg.1
Pg.6

Pg.
9
Pg.7
Pg.8
Pg.9
Pg.6

Pg.
7
Pg.7
Pg.8
Pg.9
Pg.6

Pg.
8
Pg.7
Pg.8
Pg.9
Pg.6

Pg.
9
Pg.7
Pg.8
Pg.9
Pg.6

Pg.
5
Pg.7
Pg.8
Pg.9
Pg.5

Pg.
4
Pg.4
Pg.8
Pg.9
Pg.5

Pg.
0
Pg.7
Pg.0
Pg.9
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.
Algoritmo de reemplazo LRU.
Se selecciona como victima la pgina de memoria que hace ms tiempo que no se ha
referenciado.
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.4 Pg.8
1 Pg.1 Pg.1 Pg.5 Pg.5 Pg.5 Pg.5 Pg.6 Pg.6 Pg.6
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.3 Pg.7 Pg.7
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.
Algoritmo de reemplazo PTIMO.
Se selecciona como victima aquella pgina de memoria que ms tiempo se va a tardar en
referenciar o que nunca se va a referenciar.
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.0 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5
1 Pg.1 Pg.1 Pg.1 Pg.1 Pg.1 Pg.1 Pg.6 Pg.6 Pg.8
2 Pg.2 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4
3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.7 Pg.7
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
0
1
2

longitud
1300
2100
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)
Calcular la correspondiente secuencia de direcciones fsicas que se generar si se utiliza un
algoritmo de reemplazo de pginas LRU.
Solucin
Tamao de pgina de 1000 palabras
(0, 0300) (0, 1200) (1, 0058) (0,1112) (1, 1048) (2, 0354) (0, 1035)
Seg.
0
0
1
0
1
2
0
Pag.
0
1
0
1
1
0
1
Desp.
300
200
58
112
48
354
35
(0, 0036) (1, 2050 (1, 0128)
Seg.
0
1
1
Pag.
0
2
0
Desp.
36
50
128
Supongamos que la memoria principal se encuentra inicialmente vaca, con lo que
insertaremos en ella 3 pginas. Los fallos de pgina se han resaltado en negrita
Seg, pag
Seg,pag Seg,pag Seg,pag Seg,pag Seg,pag Seg,pag Seg,pag
marco
(0,0),
0,1
1,1
2,0
0,1
0,0
1,2
1,0
(0,1) (1,0)
0
(0,0)
(0,0)
(1,1)
(1,1)
(1,1)
(0,0)
(0,0)
(0,0)
1
(0,1)
(0,1)
(0,1)
(0,1)
(0,1)
(0,1)
(0,1)
(1,0)
2
(1,0)
(1,0)
(1,0)
(2,0)
(2,0)
(2,0)
(1,2)
(1,2)
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
b) Algoritmo de reemplazo FIFO.
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
e
e
e
e
d
1
b
b
b
b
b
b
a
a
a
a
2
c
c
c
c
c
c
c
b
b
b
3
d
d
d
d
d
d
d
d
c
c
Los fallos de pgina se han resaltado en negrita
c) Algoritmo de reemplazo LRU.
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
a
1
b
b
b
b
b
b
b
b
b
b
2
c
c
c
c
c
e
e
e
e
d
3
d
d
d
d
d
d
d
d
c
c
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)
Nota: el par (a,x) indica (proceso, dir. lgica en decimal)
Solucin
Direccin lgica de 12 bits = 3 bits nmero de pg. + 9 bits de desplazamiento.
Tamao de pgina de 512 palabras.
La direccin fsica es de 11 bits = 2 bits nmero de marco + 9 bits de desplazamiento.
Los marcos se reparten por igual 2 marcos para el proceso A y 2 marcos para el
proceso B.

28

Sistemas Operativos I

Tema 3. Gestin de Memoria

A, 1035
B, 312
marco A, pg. 2 B, pg. 0
0
A,2
A,2
1
B,0
2
3

A, 530
A, pg. 1
A,2
B,0
A,1

B, 927
A,1030
B, pg. 1 A, pg. 1
A,3
A,3
B,2
B,2
A,1
A,1
B,1
B,1

A, 1720
A, pg. 3
A,3
B,2
A,1
B,1

marco
0
1
2
3

B,780
B, pg. 1
A,2
B,0
A,1
B,1

A, 600
A, pg. 1
A,2
B,0
A,1
B,1

A, 2000
A, pg. 3
A,3
B,0
A,1
B,1

B, 1400
B, pg.2
A,3
B,2
A,1
B,1

Los fallos de pgina se han resaltado en negrita


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
420

Seg 1

1299

300

Seg 1

829
Seg 2 1019

c) Suponiendo el formato (proceso, segmento, desplazamiento dentro del segmento), se


genera la siguiente secuencia de referencias a memoria: (A, 1, 27) (B, 2, 48) (A, 0, 411) (B, 2,
132) (B, 1, 400) (A, 1,428) (B, 0, 25) (B, 2, 177) (A, 1, 186) (B, 1, 280). La memoria est
inicialmente vaca, y la poltica de reemplazo es FIFO con mbito local. Determine a partir de
la situacin final cul es la direccin fsica correspondiente a cada una de las siguientes
direcciones lgicas: (A, 0, 350) (B, 2, 112) (A, 1, 422) (B, 0, 277) (A, 1, 604).
NOTAS:
si la direccin es errnea, escriba ERROR.
si est en disco, escriba DISCO.
suponga que la memoria se llena de menor a mayor nmero de marco.

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:

Seg 0

0
419
420

TABLA
tamao
420
880

PROCESO A
DE SEGMENTOS
Base tabla pginas
Base + 0
Base + 2

Seg 0

0
300

Seg 1

Seg 1

829
1299

Seg 2

PROCESO B
TABLA DE SEGMENTOS
tamao
Base tabla pginas
300
Base + 0
530
Base + 2
190
Base + 5

1019

c) El algoritmo de reemplazo es FIFO local.


A, 1, 27
B, 2, 48
marco A, 1, pg. 0 B, 2, pg. 0
0 A, 1, pg. 0 A, 1, pg. 0
1
B, 2, pg. 0
2
3

A, 0, 411
A, 0, pg. 1
A, 1, pg. 0
B, 2, pg. 0
A, 0, pg. 1

B, 2, 132
B, 2, pg. 0
A, 1, pg. 0
B, 2, pg. 0
A, 0, pg. 1

B, 1, 400
B, 1, pg. 1
A, 1, pg. 0
B, 2, pg. 0
A, 0, pg. 1
B, 1, pg. 1

B, 0, 25
B, 2, 177
A, 1, 186
B, 1, 280
marco B, 0, pg. 0 B, 2, pg. 0 A, 1, pg. 0 B, 1, pg. 1
0 A, 1, pg. 0 A, 1, pg. 0 A, 1, pg. 0 A, 1, pg. 0
1 B, 0, pg. 0 B, 0, pg. 0 B, 0, pg. 0 B, 1, pg. 1
2 A, 0, pg. 1 A, 0, pg. 1 A, 0, pg. 1 A, 0, pg. 1
3 B, 1, pg. 1 B, 2, pg. 0 B, 2, pg. 0 B, 2, pg. 0
Los fallos de pgina se han resaltado en negrita
La traduccin de las direcciones lgicas a fsicas ser la siguiente:
Direccin
A, 0, 350
B, 2, 112
A, 1, 422
B, 0, 277
lgica pg.1,des. 94
pg.0,des. 112 pg.1,des. 166 pg.1,des. 21
Direccin
2*256+94=
3*256+112=
DISCO
DISCO
fsica
606
880

B, 1, 428
B, 1, pg. 1
A, 1, pg. 0
B, 2, pg. 0
A, 0, pg. 1
B, 1, pg. 1

A, 1, 604
pg.2,des. 92
DISCO

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
Tabla segmentos
Tabla de pginas
tamao
btp
0
DISCO
710
0
1
DISCO
200
2
2
0
1040
3
3
DISCO
4
3
5
DISCO

Proceso B
Tabla segmentos Tabla de pginas
tamao
btp
0
1
100
0
1
DISCO
600
1
2
2
250
3
3
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.
marco
0
1
2
3

Contenido de memoria
Proceso A, seg 1, pg. 0
Proceso B, seg 0, pg. 0
Proceso B, seg 1, pg. 1
Proceso A, seg 2, pg. 0

Fragmentacin interna
512-200=312 palabras
412 palabras
1024-600= 424 palabras
0 palabras

El tamao total de memoria fsica es de 512 + 4= 2 K palabras.


La fragmentacin interna que hay en la memoria es de 312+424=736 palabras.
El porcentaje de fragmentacin interna vendr dado por 736/2048 *100= 35,93 %.
b) El algoritmo de reemplazo es OPTIMO LOCAL.
marco
0
1
2
3

Contenido de
memoria
A, 1, pg. 0
B, 1, pg. 0
B, 1, pg. 1
A, 2, pg. 0

A, 0, 100
(pg. 0)
A, 1, pg. 0
B, 1, pg. 0
B, 1, pg. 1
A, 0, pg. 0

A, 1, 25
(pg. 0)
A, 1, pg. 0
B, 1, pg. 0
B, 1, pg. 1
A, 0, pg. 0

B, 2, 200
(pg. 0)
A, 1, pg. 0
B, 2, pg. 0
B, 1, pg. 1
A, 0, pg. 0

A, 2, 1035
(pg. 2)
A, 2, pg. 2
B, 2, pg. 0
B, 1, pg. 1
A, 0, pg. 0

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, 2, 1030
lgica pg.2,des. 6
Direccin
512*0+6=6
fsica

B, 0, 400
pg.0,des. 400

A, 0, 700
pg.1,des. 188

B, 2, 100
pg.0,des. 100

512*1+400=912

DISCO

DISCO

Direccin
A, 0, 300
lgica pg.0,des. 300
Direccin
512*3+300=
fsica
1836

B, 0, 92
pg.0,des. 92
512*1+92=
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:
BUCLE_i:

Inicializar R0 a 11
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

a) Qu secuencia forman las pginas referenciadas a cada iteracin del BUCLE_j?


b) Suponiendo que cuando se vaya a ejecutar este fragmento de cdigo (desde INICIO hasta
FIN_BUCLE_i), la tabla de pginas contiene la siguiente informacin:
Tabla de pginas
0
1
v
1
i
2
2
v
3
0
v
y que se tienen nicamente 3 marcos en memoria, cuntos fallos de pgina provocara esta suma
de matrices cuando se utiliza una poltica de reemplazo de pginas PTIMO GLOBAL?. Calclese
el valor de la tasa de fallos de pgina (p).
Solucin
a) En primer lugar necesitaremos conocer cul es la secuencia de direcciones emitida en
cada iteracin del BUCLE_j. Por cada instruccin hay que acceder a la pgina del
cdigo, que es la 3 (para poder leer la instruccin y llevarla al procesador). Cuando la
instruccin accede a algn registro no hay que llevar a cabo ningn acceso adicional a
memoria, ya que los registros se encuentran en el procesador. Sin embargo, cuando se
acceda a una matriz habr que leer la pgina correspondiente (la 0 para la matriz C, la 1
para la A y la 2 para la B).
Por tanto, la secuencia de accesos a pginas que se efecta es la siguiente:
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.
b)Las instrucciones que estn incluidas en el BUCLE_i, pero no el BUCLE_j, son
instrucciones que no acceden a ninguna de las matrices. Por tanto, nicamente necesitan
un acceso a la pgina 3 de cdigo, cada una de ellas. Por tanto la serie de referencias es
la misma que la del apartado anterior. Los fallos de pgina que se dan en cada iteracin
del BUCLE_j siguiendo el algoritmo de reemplazo PTIMO GLOBAL vendr dado
por:
marco inicio Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg.
3
1
3
0
3
2
3
0
3
0
3
3
3
3
3
3
3
3
3
3
1
0
0
0
0
0
0
0
0
0
0
2
2
2
1
1
1
1
2
2
2
2

33

Sistemas Operativos I

Tema 3. Gestin de Memoria

Los fallos de pgina se han resaltado en negrita


Solo hay dos fallos de pgina en cada iteracin del BUCLE_i. El contenido de la
memoria al final de cada iteracin es el mismo que el del inicio, por tanto como el bucle
se realiza10 veces, esto implica que el nmero de fallos de pgina en cada ejecucin del
cdigo ser de 20.
La tasa de fallos viene dada por:
fallos de pgina
p=
nmero total de referencias
Necesitaremos conocer por tanto el nmero total de referencias que se han de realizar
para ejecutar este cdigo.
Cuantas Veces
Instruccin
Pginas pginas ejecuta
total
Inicialiar R0 a 11
3
1
1
1
Decrementar R0 en una unidad
3
1
11
11
Salto si cero a FIN_BUCLE_i
3
1
11
11
Inicializar R1 a 11
3
1
10
10
Decrementar R1 una unidad
3
1
110
110
Salto si cero a FIN_BUCLE_j
3
1
110
110
Cargar R3 con A[R0, R1]
3,1
2
100
200
Cargar R4 con C[R0, R1]
3,0
2
100
200
Cargar R5 con B[R0, R1]
3,2
2
100
200
R3 <- R3 + R5
3
1
100
100
R4 <- R4 + R3
3
1
100
100
Grabar en C[R0, R1] el contenido de R4
3,0
2
100
200
Salto a BUCLE_j
3
1
100
100
Salto a BUCLE_i
3
1
10
10
Total
1363
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
TABLA DE SEGMENTOS
tamao
0
160
1
200
2
1000

PROCESO B
TABLA DE SEGMENTOS
tamao
0
300
1
640

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.
marco B, 0, 209
(pg. 0)
0 B, 0, 0
1
2

A, 0, 27
(pg. 0)
B, 0, 0
A, 0, 0

A, 1, 171
(pg. 0)
B, 0, 0
A, 0, 0
A, 1, 0

B, 0, 180
(pg. 0)
B, 0, 0
A, 0, 0
A, 1, 0

A, 1, 25
(pg. 0)
B, 0, 0
A, 0, 0
A, 1, 0

A, 2, 638 A, 2, 815
(pg. 1) (pg. 1)
B, 0, 0
B, 0, 0
A, 2, 1
A, 2, 1
A, 1, 0
A, 1, 0

marco

B, 0, 200 A, 0, 155 B, 0, 193 B, 1, 608 A, 2, 715


(pg. 0)
(pg. 0)
(pg. 0)
(pg. 1)
(pg. 1)
0 B, 0, 0
B, 0, 0
B, 0, 0
B, 0, 0
B, 0, 0
1 A, 2, 1
A, 2, 1
A, 2, 1
B, 1, 1
B, 1, 1
2 A, 1, 0
A, 0, 0
A, 0, 0
A, 0, 0
A, 2, 1
El numero total de fallos de pgina son 7 y han sido resaltados en negrita.
Direccin
Lgica
B, 0, 209
A, 0, 27
A,1,171
B,0,180

Direccin
fsica
209
539
1195
180

Direccin
Lgica
A,1,25
A,2,638
A,2,815
B,0,200

Direccin
fsica
1049
638
815
200

Direccin
Lgica
A,0,155
B,0,193
B,1,608
A,2,715

Direccin
fsica
1179
193
608
1227

48. Un determinado sistema operativo gestiona la memoria virtual mediante segmentacin


paginada. Una direccin lgica tiene 24 bits, de los cuales 5 indican el nmero de segmento. Una
direccin fsica tiene 12 bits, y el tamao de la trama es de 1024 octetos. Suponga que hay 2
procesos en el sistema, con las siguientes tabla de segmentos:
Proceso A
Proceso B
Tabla de segmentos
Tabla de segmentos
tamao
tamao
0
100
0
950
1
2100
1
4120
2
1120
2
512
3
3450

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.
Considerando la memoria principal inicialmente vaca y aplicando el algoritmo LRU
GLOBAL se obtiene la siguiente ocupacin de memoria para las referencias anteriores:
marco B, 3, 2100 A, 2, 1100
(pg. 2)
(pg. 1)
0
B,3,2
B,3,2
1
A,2,1
2
3

B, 0, 800
(pg. 0)
B,3,2
A,2,1
B,0,0

marco A, 2, 1024 A, 1, 2000


(pg. 1)
(pg. 1)
0
A,0,0
A,0,0
1
A,2,1
A,2,1
2
B,0,0
B,0,0
3
B,2,0
A,1,1

B, 2, 300
(pg. 0)
B,3,2
A,2,1
B,0,0
B,2,0

B, 0, 3120
(pg. 3)
B,0,3
A,2,1
B,0,0
A,1,1

A, 0, 50
(pg. 0)
A,0,0
A,2,1
B,0,0
B,2,0

A, 2, 1050
(pg. 1)
B,0,3
A,2,1
B,0,0
A,1,1

B, 0, 300
(pg. 0 )
A,0,0
A,2,1
B,0,0
B,2,0

B, 0, 800
(pg. 0)
B,0,3
A,2,1
B,0,0
A,1,1

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
4
5
6
7

v
i
i
i
i

3
4

i
v

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

marco
0
1
2
3
4

Tema 3. Gestin de Memoria

Inicial
B,1

B ,2109
(pg. 2)
B,1

B,4
A,3
A,1

B,2
A,3
A,1

A,207
(pg. 0)
B,1
A,0
B,2
A,3
A,1

A,4444
(pg. 4)
B,1
A,0
B,2
A,3
A,4

B,2222
(pg 2)
B,1
A,0
B,2
A,3
A,4

A,2345
(pg. 2)
B,1
A,0
B,2
A,2
A,4

B,3471
(pg. 3)
B,3
A,0
B,2
A,2
A,4

marco

A,88
B,2000 A,1055 B,1093 B,5008 A,7815
(pg. 0) (pg. 1) (pg. 1) (pg. 1) (pg. 4) (pg. 7)
0
B,3
B,3
B,3
B,3
B,4
B,4
1
A,0
A,0
A,0
A,0
A,0
A,0
2
B,2
B,1
B,1
B,1
B,1
B,1
3
A,2
A,2
A,2
A,2
A,2
A,7
4
A,4
A,4
A,1
A,1
A,1
A,1
El numero total de fallos de pgina son 9 y han sido resaltados en negrita. De estos fallos
de pginas slo 7 han sido con reemplazo.
Las direcciones fsicas resultantes se calculan en la tabla siguiente:
Direccin
lgica
B ,2109
A,207
A,4444
(pg., despla) (2, 61)
(0,207)
(4, 348)
Direccin
DISCO 1024+207= DISCO
fsica
1231

B,2222
(2,174)
DISCO

A,2345
(2,297)
DISCO

B,3471
(3,399)
DISCO

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
correspondiendo (X,S,P) al proceso X, segmento S, pgina P (dentro del segmento).
a) Represente las tablas de segmentos y pginas correspondientes a esta situacin inicial,
sabiendo que:

38

Sistemas Operativos I

Tema 3. Gestin de Memoria

A est formado por 3 segmentos de tamaos 800, 600 y 500.


B est formado por 4 segmentos de tamaos 450, 600, 100 y 2000.
b) Si se utiliza un algoritmo de reemplazo PTIMO global, y a partir de la situacin inicial se
generan las siguientes direcciones lgicas: (B,3,1257) (A,0,12) (A,0,789) (B,3,789) (A,1,514)
(A,2,3) (B,0,415) (B,3,1100). Represente el mapa de ocupacin de la memoria e indique el
nmero de fallos de pgina producido.
Solucin
a) Tabla de pginas y de segmentos.
Proceso A
Tabla de segmentos
tamao
base
0
800
0
1
600
2
2
500
4

marco
0
1
2
3
4

4
1

Tabla de pginas
Bit de validez
i
i
i
v
v

Proceso B
0
1
2
3

Tabla de segmentos
tamao
base
450
0
600
1
100
3
2000
4

marco
0
1
2
3
4
5
6
7

Tabla de pginas
Bit de validez
i
v
i
i
i
v
i
i

b)Utilizando el algoritmo de reemplazo ptimo global se obtiene:


marco Inicial B ,3,1257
A,0,12
A,0,789
B,3,789
(pg. 2)
(pg. 0)
(pg. 1)
(pg 1)
0
B,3,2
B,3,2
B,3,2
B,3,2
1 A,2,0
A,2,0
A,2,0
A,2,0
A,2,0
2 B,1,0
B,1,0
A,0,0
A,0,1
A,0,1
3 B,3,1
B,3,1
B,3,1
B,3,1
B,3,1
4 A,1,1
A,1,1
A,1,1
A,1,1
A,1,1
marco
0
1
2
3
4

A,2,3
(pg. 0)
B,3,2
A,2,0
A,0,1
B,3,1
A,1,1

B,0,415
(pg. 0)
B,3,2
B,0,0
A,0,1
B,3,1
A,1,1

A,1,514
(pg. 1)
B,3,2
A,2,0
A,0,1
B,3,1
A,1,1

B,3,1100
(pg. 2)
B,3,2
B,0,0
A,0,1
B,3,1
A,1,1
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:
Direccin
Fsica
845
623
1024
1603

Clculo

Marco

Pgina

512+333
512+111
1024+0
1536+67

1
1
2
Error

A,1
A,1
B,0
Error

Direccin
Lgica
A,845
A,623
B,0
Error

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.
b) Partiendo de la situacin inicial reflejada en las tablas de pginas y utilizando un
algoritmo de reemplazo LRU global, para las referencias del enunciado se obtiene la
siguiente ocupacin de memoria:

40

Sistemas Operativos I

marco
0
1
2

Inicial

Tema 3. Gestin de Memoria

A,632
(pg. 1)
A,0
A,1
B, 0

A,1130
(pg. 2)
A,0
A,1
A,2

B,555
(pg. 1)
B,1,
A,1
A,2

B,28
(pg 0)
B,1,
B,0
A,2

A,1333
(pg. 2)
B,1,
B,0
A,2

B,446
(pg. 0)
B,1,
B,0
A,2

marco A,1422
(pg. 2)
0
A,0
1
B,0
2
A,2

B,111
(pg. 0)
A,0
B,0
A,2

A,999
(pg. 1)
A,1
B,0
A,2

B,28
(pg 0)
A,1
B,0
A,2

A,1222
(pg. 2)
A,1
B,0
A,2

A,888
(pg. 1)
A,1
B,0
A,2

A,0
A,1
B, 0

A,501
(pg. 0)
A,0
B,0
A,2

El numero total de fallos de pgina son 5 y han sido resaltados en negrita.


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.
Direccin lgica
ndice descriptor
1er nivel
ndice descriptor
2 nivel
(i,j)

7168

26624

16508

5120

12288

(0,7)

(3,2)

(2,0)

(0,5)

(1,4)

Como inicialmente la memoria se encuentra vaca, las cuatro primeras referencias a


pginas distintas sern las que ocupen los marcos. A partir de ese momento se emplea un
algoritmo de reemplazo ptimo:
7168,
26624,
16508,
5120
0
1
2
3

7168
(0,7)

26624
(3,2)

12288
(1,4)

7168
(0,7)

26624
(3,2)

16508
(2,0)

5120
(0,5)

12288
(1,4)

(0,7)
(0,7)
(0,7)
(0,7)
(0,7)
(0,7)
(0,7)
(0,7)
(0,7)
(3,2)
(3,2)
(3,2)
(3,2)
(3,2)
(3,2)
(3,2)
(3,2)
(3,2)
(2,0)
(2,0)
(2,0)
(2,0)
(2,0)
(2,0)
(2,0)
(0,5)
(0,5)
(0,5)
(0,5)
(0,5)
(1,4)
(1,4)
(1,4)
(1,4)
(1,4)
(1,4)
El numero total de fallos de pgina son 6, de los cuales dos son con reemplazo de
pgina. Los fallos de pgina se encuentran resaltados en negrita en la tabla anterior.

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
segmento
longitud
T
2500
D
1500
S
300

marco
0
1
2
3

Tabla-2
Segmento,pgina
T2
D0
T1
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
Tipo de fallo
(D,1000) Fallo
de pgina.
(T,3510)
Direccin fuera de
rango.
(D,1510) Fallo
de pgina.

(T,950): Sin fallo.

Manejo
La pgina D1 debe cargarse en memoria reemplazando a una de las
cuatro cargadas.
La direccin no est dentro del tamao del segmento. El sistema
abortar el proceso.
Aunque la direccin est fuera del rango actual del segmento D, el
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.
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
5
Nmero _ descriptores _ TLB =
= 3 = 2 = 32 descriptores en TLB
8

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
7
Nmero _ descriptores _ pgina =
= 3 = 2 = 128 descriptores en una pgina
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
Se necesitan por tanto 4 niveles de paginacin distribuidos como se aprecia en la tabla
anterior.
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:
RO

LIST-SEG

etc.

N Marco

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 ...
Sobre el sistema anterior existe definida una operacin de copia de segmentos
copiar(Id: Identificador_De_Segmento) return
Identificador_De_Segmento
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:
Seg. A
0
1
2
3

Tabla de pginas
RO Lista-seg etc. N marco
0 0
A
...
10
1 0
A
...
11
2 0
A
...
12
3 0
A
...
13
4 -

Se Pide: El estado de los descriptores de segmento implicados y de la tabla de descriptores de


despus de cada una de las siguientes operaciones:
1.- B := Copiar(A)
2.- Escribir en la direccin (A , 365)
3.- Escribir en la direccin (B , 1100)
4.- C := Copiar(B)
5.- Escribir en la direccin (B , 3000)
6.- Escribir en la direccin (C , 3000)

45

Sistemas Operativos I

Tema 3. Gestin de Memoria

7.- Escribir en la direccin (A , 3000)

Solucin
1.- B := Copiar(A)
Seg.A SegB Seg. C
0
0
1
1
2
2
3
3

RO
1
1
1
1

seg
AB
AB
AB
AB

2.- Escribir en la direccin (A , 365)


Seg.A Seg. B Seg. C
RO
0
4
0
0
1
1
1
1
2
2
2
1
3
3
3
1
4
0

seg
B
ABB
AB
AB
A

0
1
2
3
4
5

marco
10
11
12
13

marco
10
11
12
13
15

1
2
3
4
5
6

Listaseg
BC
B
A
ABC
ABC
A
BC

N
marco
10
11
12
13
15
23

marco

9
10

13

R
O
1
0
1
1
0
1

marco

RO seg

11
12

N
marco
10
11
12
13
15
23

seg

3.- Escribir en la direccin (B , 1100)


Seg.
Seg.
Seg.
R ListaA
B
C
O seg
0
4
0
0
B
1 0
1
5
B
A
2
2
2
1
AB
3 1
3
3
AB
4 0
A
5 0
B
4.- C := Copiar(B)
Seg.
Seg.
Seg.
A
B
C
4
0
0
1
5
5
2
2
2
3
3
3

RO
7
8
9
1
10
1
13
2

R
O

Listaseg

N
marco

R
O

Listaseg

N
marco

7
8
9
10
11
12
13

7
8
9
10
11
12
13

46

Sistemas Operativos I

Tema 3. Gestin de Memoria

5.- Escribir en la direccin (B , 3000)


Seg.
Seg.
R ListaB
C
O seg
0
0
0
1
BC
1 0
5
5
B
A
2 1
6
2
AC
3
3
3
1
ABC
4 0
A
5 1
BC
6 0
B

N
marco
10
11
12
13
15
23
40

6.- Escribir en la direccin (C , 3000)


Seg.
Seg.
Seg.
R ListaA
B
C
O seg
0 1
4
0
0
BC
1
1
5
5
0
B
A
2 0
2
6
7
A
3 1
3
3
3
ABC
4 0
A
5 1
BC
6 0
B

N
marco
10
11
12
13
15
23
40

Seg.
A
4
1
2
3

R
O

Listaseg

N
marco

R
O
0

Listaseg
C

N
marco
75

R
O
0

Listaseg
C

N
marco
75

7
8
9
10
11
12
13

7
8
9
10
11
12
13

7.- Escribir en la direccin (A , 3000)


Seg.
A
4
1
2
3

Seg.
B
0
5
6
3

Seg.
C
0
5
7
3

0
1
2
3
4
5
6

R
O
1
0
0
1
0
1
0

Listaseg
BC
B
A
A
ABC
A
BC
B

N
marco
10
11
12
13
15
23
40

7
8
9
10
11
12
13

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

dicho incremento no se solucionaba el problema de hiperpaginacin. Razone si es posible o


no que ocurriera lo anteriormente descrito y porque.
Solucin
a) Direccin Lgica
Bit 13
1er nivel
2 bits

Bit 0
Desplaz. Pgina
10 bits

2 nivel
2 bits

Direccin Fsica
Bit 12
Marco
3 bits

Bit 0
Desplazamiento
10 bits

b1)

Valor del descriptor de pgina


8008
Proceso P1
Tablas de pginas 2 nivel
marco
Bit validez

Proceso P1
Tabla de pginas
1er nivel
8000
8008
8016
8024

0
1
2
3

0
5
6
2

b2)
Proceso P2
Tabla de pginas
1er nivel
8032
8040
8048
8056

Proceso P2
Tablas de pginas 2 nivel
marco
Bit validez
0
1
2
3

1
3
4

1
1
1

0
1
2
3

1
1
1
1
Valor del
descriptor
pgina
8048

Valor del
descriptor
de pgina
8040

c)

49

Sistemas Operativos I

Tema 3. Gestin de Memoria

Proceso P1
Tabla de pginas
1er nivel
8000
8008
8016
8024

Proceso P2
Tabla de pginas
1er nivel
8032
8040
8048
8056

Proceso P1
Tablas de pginas 2 nivel
marco
Bit validez
0
1
2
3

0
5
6
2

1
1
1
1

Proceso P2
Tablas de pginas 2 nivel
marco
Bit validez
0
1
2
3

1
3
4

1
1
1

0
1
2
3

Valor del
descriptor
de pgina
8008

Valor del
descriptor
de pgina
8048

Valor del
descriptor
8040

d) Porque presenta la anomala de Belady o no se ha incrementado suficientemente la


memoria.
58. A continuacin se describe un modelo de memoria basado en la tcnica de segmentacin. En
dicho modelo (ver figura), la imagen interna de un proceso est compuesta por cuatro
segmentos (cdigo, datos, espacio intermedio y pila). Este modelo, similar al que utiliza el sistema
operativo Minix, se caracteriza porque los cuatro segmentos residen siempre de forma contigua
en memoria, utilizndose el segmento de espacio intermedio para prever las ampliaciones de los
segmentos de datos y/o pila. Por ejemplo si un proceso tiene 4K de Cdigo, 2K de Datos y 1 de
Pila y en la cabecera del ejecutable (a.out) se ha marcado un tamao total del proceso de 40 K,
el Espacio intermedio dispondr de 33K.
Pila
Espacio
Intermedio
Datos
Cdigo

1K
33K
2K
4K

Se definen los siguientes comandos:

CHMEM: que permite reajustar el espacio dedicado a pila y espacio intermedio de


un fichero ejecutable. Un ejemplo de llamada: chmem 10240 a.out cambiara el
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.
Se pide completar para la siguiente la tabla
Proceso
Segmento

Tamao

Dir. base

Para cada operacin de la siguiente secuencia:


a) Se realiza la operacin exec b.out.
b) Se realiza la operacin exec c.out.
c) El proceso b.out realiza una operacin brk(512).
d) Se realiza una operacin chmem 8192 c.out.
e) El proceso b.out realiza como ltima instruccin de su cdigo una operacin exit.
f) Se realiza la operacin exec c.out.
Solucin
a) Se realiza la operacin exec b.out.
Proceso
Segmento
b.out
cdigo
b.out
datos
b.out
intermedio
b.out
pila

Tamao
2 Kb
2 Kb
7 Kb
1 Kb

Dir. base
204800
206848
208896
216064

51

Sistemas Operativos I

b) Se realiza la operacin exec c.out.


Proceso
Segmento
b.out
cdigo
b.out
datos
b.out
intermedio
b.out
pila
c.out
cdigo
c.out
datos
c.out
intermedio
c.out
pila

Tema 3. Gestin de Memoria

Tamao
2 Kb
2 Kb
7 Kb
1 Kb
1 Kb
3 Kb
10 Kb
1Kb

Dir. base
204800
206848
208896
216064
217088
218112
221184
231424

c) El proceso b.out realiza una operacin brk(512).


Proceso
Segmento
Tamao
b.out
cdigo
2 Kb
b.out
datos
2,5 Kb
b.out
intermedio
6,5 Kb
b.out
pila
1 Kb
c.out
cdigo
1 Kb
c.out
datos
3 Kb
c.out
intermedio
10 Kb
c.out
pila
1Kb

Dir. Base
204800
206848
209408
216064
217088
218112
221184
231424

d) Se realiza una operacin chmem 8192 c.out.


Proceso
Segmento
Tamao
b.out
cdigo
2 Kb
b.out
datos
2,5 Kb
b.out
intermedio
6,5 Kb
b.out
pila
1 Kb
c.out
cdigo
1 Kb
c.out
datos
3 Kb
c.out
intermedio
10 Kb
c.out
pila
1Kb

Dir. Base
204800
206848
209408
216064
217088
218112
221184
231424

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

f) Se realiza la operacin exec c.out.

52

Sistemas Operativos I

Tema 3. Gestin de Memoria

Proceso
c.out-2
c.out-2
c.out-2
c.out-2
c.out
c.out
c.out
c.out

Segmento
cdigo
datos
intermedio
pila
cdigo
datos
intermedio
pila

Tamao
1 Kb
3 Kb
7 Kb
1Kb
1 Kb
3 Kb
10 Kb
1Kb

Dir. base
204800
205824
208896
216064
217088
218112
221184
231424

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

En un determinado instante, la situacin del sistema es la siguiente

53

Sistemas Operativos I

Tema 3. Gestin de Memoria

Existen cuatro procesos en el sistema, siendo los tamaos de sus segmentos:


proceso cdigo
datos
pila
A
57500
14000
13000
B
3100
2400
6900
C
3300
3300
4300
D
6400
9800
19000
La memoria central instalada es de 128.000 bytes y ocupacin actual es:
Posicin inicial proceso segmento
0
A
cdigo
57500
B
cdigo
60600
C
cdigo
63900
D
cdigo
70300
A
datos
84300
C
datos
87600
A
pila
100600
B
pila
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
100.600 V
pila
87.600 V
-I
-I
b) Todas las referencias son a segmentos que ya se encuentran en memoria excepto la
referencia al segmento de pila del proceso D, que es necesario ubicarlo en memoria.
Como hay hueco para ubicar el segmento de pila del proceso D, el contenido de la
memoria queda de la siguiente manera:

54

Sistemas Operativos I

posicin
inicial
0
57500
60600
63900
70300
84300
87600
100600

Tema 3. Gestin de Memoria

proceso

segmento

A
B
C
D
A
C
A
B

cdigo
cdigo
cdigo
cdigo
datos
datos
pila
pila

posicin
inicial
107.500

proceso

segmento

pila

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
C
cdigo
60600
D
cdigo
63900
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.
61. En un sistema de gestin de memoria virtual se decide utilizar paginacin y un algoritmo de
reemplazo LOCAL basado en una aproximacin al LRU, denominada SEGUNDA
OPORTUNIDAD. En el sistema se ejecutan actualmente 3 procesos A, B y C. Cada acceso se

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.
Memoria
0
A1
1
B0
2
C3
3
A0
4
B1
5
A3
6
B3
7
C0

Pg.
0
1
2
3
4
5
6

Tabla Pag. A
marco
Bit ref.
3
1
0
1
5
1
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
7
1
2
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.
Memoria
0
A1
1
B0
2
C1
3
A0
4
B1
5
A3
6
B3
7
C0

Tabla Pag. A
Pg. marco
Bit ref.
0
3
1
1
0
1
2
3
5
1
4
5
6
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
7
0
2
1
0
-

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.
Memoria
0
A1
1
B0
2
C1
3
A0
4
B1
5
A3
6
B3
7
C0

Pg.
0
1
2
3
4
5
6

Tabla Pag. A
marco
Bit ref.
3
1
0
1
5
1
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
7
1
2
1
0
-

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

Memoria
0
A2
1
B0
2
C1
3
A0
4
B1
5
A3
6
B3
7
C0

Tema 3. Gestin de Memoria

Pg.
0
1
2
3
4
5
6

Tabla Pag. A
marco
Bit ref.
3
0
0
0
1
5
0
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
7
1
2
1
0
-

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.
Memoria
Tabla Pag. A
Tabla Pag. B
Tabla Pag. C
0
A2
Pg. marco
Bit ref.
marco Bit ref.
marco Bit ref.
1
B0
0
0
1
1
7
1
2
C1
1
3
1
4
1
2
1
3
A1
2
0
1
4
B1
3
5
0
6
1
0
5
A3
4
6
B3
5
7
C0
6
Con lo que el orden FIFO de las pginas para el proceso A queda A3,A2, A1.
A
A3
A2
A1
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.

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.
Memoria
Tabla Pag. A
Tabla Pag. B
Tabla Pag. C
0
A2
Pg. marco
Bit ref.
marco Bit ref.
marco Bit ref.
1
B0
0
0
1
1
0
2
C1
1
3
1
4
1
2
0
3
A1
2
0
1
7
1
4
B1
3
5
0
6
1
0
5
A3
4
6
B3
5
7
C2
6
Con lo que el orden FIFO de las pginas para el proceso C queda C1,C2.
A
A3
A2
A1
Orden FIFO
B
B0
B1
B3
C
C1
C2
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.
Memoria
0
A2
1
B0
2
C1
3
A1
4
B1
5
A3
6
B3
7
C2

Pg.
0
1
2
3
4
5
6

Tabla Pag. A
marco
Bit ref.
0
3
1
0
1
5
1
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
0
2
0
7
1
0
-

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

Memoria
0
A2
1
B0
2
C3
3
A1
4
B1
5
A3
6
B3
7
C2

Tema 3. Gestin de Memoria

Pg.
0
1
2
3
4
5
6

Tabla Pag. A
marco
Bit ref.
0
3
1
0
1
5
1
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
0
0
7
1
2
1
-

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.
Memoria
0
A2
1
B0
2
C3
3
A1
4
B1
5
A4
6
B3
7
C2

Tabla Pag. A
Pg. marco
Bit ref.
0
0
1
3
0
2
0
0
3
0
4
5
1
5
6
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
0
0
7
0
2
1
-

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

A1
C0
A2

A1
A0
B0

Memoria
0
A2
1
B0
2
C3
3
A1
4
B1
5
A4
6
B3
7
C2

Tema 3. Gestin de Memoria

B0
B0
B0

C3
A2
C2

A0
A2
C3

A1
A1
A0

B0
C0
C2

Tabla Pag. A
Pg. marco
Bit ref.
0
0
1
3
0
2
0
1
3
0
4
5
1
5
6
-

B1
C1
C0

A3
B1
A4

B3
C2
C0

C0
A3
A1

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

C1
C3
A0.

C1
A4

A1
C3

Tabla Pag. C
marco Bit ref.
0
0
7
1
2
1
-

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.
Memoria
0
A2
1
B0
2
C3
3
A0
4
B1
5
A4
6
B3
7
C2

Pg.
0
1
2
3
4
5
6

Tabla Pag. A
marco
Bit ref.
3
1
0
0
0
0
5
1
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
0
0
7
1
2
1
-

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

Memoria
0
A2
1
B0
2
C3
3
A0
4
B1
5
A4
6
B3
7
C0

Tema 3. Gestin de Memoria

Pg.
0
1
2
3
4
5
6

Tabla Pag. A
marco
Bit ref.
3
1
0
0
0
0
5
1
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
7
1
0
0
2
0
-

Con lo que el orden FIFO de las pginas para el proceso C queda C3,C0.

Orden FIFO

A
B
C

A2
B0
C3

A4
B1
C0

A0
B3
-

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.
Memoria
0
A1
1
B0
2
C3
3
A0
4
B1
5
A4
6
B3
7
C0

Pg.
0
1
2
3
4
5
6

Tabla Pag. A
marco
Bit ref.
3
1
0
1
0
0
5
1
-

Tabla Pag. B
marco Bit ref.
1
1
4
1
6
1
-

Tabla Pag. C
marco Bit ref.
7
1
0
0
2
0
-

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
Se continua con la ultima referencia a A0 y como no haya fallo de pgina y su bit de
referencia se encuentra a 1, las ultimas tablas representan el estado de la memoria.
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.

Gestin de Memoria: Hiperpaginacin y rea activa.


-Tanto en los enunciados como en las soluciones de los problemas de este apartado
se emplean un conjunto de siglas que pasamos a definir:

TAA = Tamao de rea activa.

63. Proporcione una definicin precisa de la hiperpaginacin o thrashing.


Solucin
Si consideramos que un programa est compuesto por diferentes localidades que se
pueden solapar, la hiperpaginacin se puede definir formalmente de la siguiente manera:
hiperpaginacin = ( tamaos_ de _ localidad ) > (tamao _ de _ memoria _ total)
donde se considera:
Localidad: como el conjunto de pginas que un proceso utiliza conjuntamente.
Principio de localidad de referencia: un proceso va pasando de una localidad a
otra de una forma lenta y progresiva.
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

De las referencias a pginas propuestas en el enunciado, si se extraen ordenadamente


para cada proceso y se analizan en intervalos de 4 referencias se obtiene lo siguiente:
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
65. Justifique la relacin entre el principio de localidad y el concepto de rea activa.
Solucin
El rea activa de un proceso trata de reflejar la localidad de dicho proceso definida como
el conjunto de pginas que se estn usando activamente juntas.
66. Indicar brevemente en qu consiste el rea activa o working-set.
Solucin
Es un modelo usado para determinar la localidad de los procesos. Utiliza un parmetro
ventana del rea activa que representa el nmero de referencias a considerar hasta el
momento actual, tal conjunto de pginas constituye el rea activa.
El S.O., conociendo el rea activa de cada proceso, ha de asignar marcos suficie ntes para
que cada uno pueda mantenerla en memoria. Si la suma de los tamaos de las reas
activas excede del total de marcos disponibles, el S.O. seleccionar un proceso, guardar
sus pginas en el dispositivo de paginacin y reasignar sus marcos a los dems
procesos.
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

En este sistema los parmetros que lo caracterizan son los siguientes:


El nmero de referencias que se utilizan para calcular el rea activa es 3
Existen 8 marcos en memoria fsica
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
B
C
D

0
8
3
0

0
3
4
1

0
5
5
2

7
1
6
2

8
5
7
1

T
T
T
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.
Tabla que muestra el contenido de memoria en cada instante:
Instante Proceso Marco Marco Marco Marco Marco Marco Marco Marco
Pgina
0
1
2
3
4
5
6
7
0
A0
A0
1
B8
A0
B8
2
C3
A0
B8
C3
3
D0
A0
B8
C3
D0
4
A0
A0
B8
C3
D0
5
B3
A0
B8
C3
D0
B3
6
C4
A0
B8
C3
D0
B3
C4
7
D1
A0
B8
C3
D0
B3
C4
D1
8
A0
A0
B8
C3
D0
B3
C4
D1
9
B5
A0
B8
C3
D0
B3
C4
D1
B5
10
D2
A0
B8
D2
D0
B3
D1
B5
11
A7
A0
B8
D2
D0
B3
A7
D1
B5
12
B1
A0
B1
D2
D0
B3
A7
D1
B5
13
D2
A0
B1
D2
B3
A7
D1
B5
14
A8
A0
B1
D2
A8
B3
A7
D1
B5
15
B5
A0
B1
D2
A8
A7
D1
B5

66

Sistemas Operativos I

16
17
18
19
20
21
22
23

D1
AT
BT
C5
DT
C6
C7
CT

Tema 3. Gestin de Memoria

A0
C3
C3
C3
C3
C6
C6

B1
B1
C5
C5
C5
C5

D2
D2
D2
D2

A8
C4
C4
C4
C4
C4
C7

A7

D1
D1
D1
D1

B5
B5

Tabla que muestra el rea activa de cada proceso en cada instante:


rea activa
rea activa
rea activa
rea activa
Proceso A
Proceso B
Proceso C
Proceso D
Instante 10
0
8, 3, 5
3, 4, 5
0, 1
Se suspende C
Instante 11
0, 7
8, 3, 5
Suspendido
0, 1, 2
Instante 12
0, 7
3, 5, 1
Suspendido
0, 1, 2
Instante 13
0, 7
3, 5, 1
Suspendido
1, 2
Instante 14
0, 7, 8
3, 5, 1
Suspendido
1, 2
Instante 15
0, 7, 8
5, 1
Suspendido
1, 2
Instante 16
0, 7, 8
5, 1
Suspendido
1, 2
Instante 17
Libera
5, 1
Se ubica su
1, 2
memoria
rea activa
Instante 18
----Libera
Se ubica su
1, 2
memoria
rea activa
Instante 19
--------3, 4, 5
1, 2
Instante 20
--------3, 4, 5
Libera
memoria
Instante 21
--------4, 5, 6
----Instante 22
--------5, 6, 7
----Instante 23
--------Libera
----memoria
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.

Paginacin por demanda: Anlisis de eficiencia.


-Tanto en los enunciados como en las soluciones de los problemas de este apartado
se emplean un conjunto de siglas que pasamos a definir:
TAE = TAEF=Tiempo de acceso efectivo.
MMU= Unidad de manejador de memoria.
TLB= registros asociativos, la bsqueda en ellos es por
contenido.
TAM= tiempo de acceso a memoria.
-El Tiempo de Acceso Efectivo (TAE) en los sistemas donde se utiliza paginacin
por demanda, se define como:

TAE = (1 - p ) * TAM + p * (1 + pm) * TTP


donde:
TAM: Tiempo de acceso a memoria.
TTP: Tiempo de transferencia pgina/disco.
p: Tasa de fallos de pgina.
pm: Probabilidad de que la pgina a reemplazar haya sido
modificada.
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

Se considera un descriptor de pginas de tamao igual a una palabra.


Se consideraremos el siguiente criterio para el dirty_bit:
dirty_bit=0 la pgina no ha sido modificada, mientras se encontraba en
memoria y por tanto si es reemplazada no es necesario actualizarla en el
disco.
dirty_bit=1 la pgina si ha sido modificada, mientras se encontraba en
memoria y por tanto si es reemplazada es necesario actualizarla en el disco.
Como se trata de un sistema de memoria paginado cada vez que se haga referencia a una
direccin lgica habr que consultar las tablas pginas, que en nuestro caso se encue ntra
en memoria, para localizar el marco de la direccin fsica correspondiente.
Mejor caso en el nmero de accesos, no hay fallo de pgina:
La pgina referenciada se encuentra en memoria 1 acceso a memoria para consultar
tabla de pginas y otro acceso a memoria a la direccin fsica correspondiente. Total 2
accesos a memoria = 2 TAM.
Casos con fallo de pgina y reemplazo:
Pueden ocurrir dos posibilidades que la pgina a reemplazar tenga el dirty_bit a 0 a 1.
Es decir que sea necesario actualizar o no la pgina en el disco.
Fallo de pgina con reemplazo y dirty_bit=0.
o Leer descriptor de pgina en tabla de pginas en memoria = 1 TAM.
o Leer pgina referenciada en el DISCO= TADR.
o Escribir pgina en memoria = TAMW = 2N*TAM.
o Actualizar tabla de pginas en memoria = 1TAM.
o Se reinicia la solicitud de referencia.
Total _ accesos = 2 (1 + N ) TAM + TADR
Fallo de pgina con reemplazo y dirty_bit=1.
o Leer descriptor de pgina en tabla de pginas en memoria = 1 TAM.
o Actualizar pgina victima en el DISCO= TADW = 2 TADR.
o Leer pgina referenciada en el DISCO= TADR.
o Escribir pgina en memoria = TAMW =2N*TAM .
o Actualizar tabla de pginas en memoria = 1TAM.
o Se reinicia la solicitud de referencia.
Total _ accesos = 2 (1 + N ) TAM + 3 TADR
71. En un sistema de gestin de memoria segmentado-paginado se tiene una MMU donde
nicamente se permiten 8 segmentos por proceso y se emplean dos niveles de paginacin,
implementando ambos en memoria principal. La tabla de segmentos se ha implementado en
registros, con un tiempo de acceso igual a 2 ns. El tiempo de acceso a memoria (TAM) es igual a
20 ns. Para mejorar el rendimiento, se tiene un conjunto de registros asociativos (TLB), donde se
guarda como clave tanto el nmero de segmento como los dos nmeros de pgina. El tiempo
de acceso para estos registros asociativos es igual a 10 ns. Indique cul ser el tiempo de acceso
efectivo (TAE) de este sistema, si las direcciones lgicas a traducir se encuentran en el TLB en el
90% de los accesos.
Solucin
Tiempo de acceso a registros= Treg= 2 ns
TAM=20 ns
69

Sistemas Operativos I

Tema 3. Gestin de Memoria

Tiempo de acceso a TLB=Ttlb=10 ns.


Porcentaje de aciertos en TLB= 90% tasa de aciertos= p= 0.9
Porcentaje de fallos en TLB=10% tasa de fallos=1- p= 0.1
Como se trata de un sistema de memoria segmentado paginado (no hay paginacin por
demanda), se supone que todo el proceso se encuentra en memoria, por tanto no hay
fallos de pgina, sino simplemente fallos en la bsqueda de descriptores en TLB.
Para poder traducir la direccin lgica a fsica habr que conocer el segmento a que
pertenece, consultar la tabla de segmentos para comprobar si la direccin es correcta y
acceder a tablas de los dos niveles de paginacin.
Cuando se emite una direccin lgica en el sistema se sigue el siguiente esquema:
Se accede a los registros de la MMU para consultar la tabla de
segmentos Treg.
A continuacin se realiza una bsqueda en las TLB con el nmero de
segmento y los nmero de pginas de los dos nivelesTtlb.
o Si hay acierto en la bsqueda, la TLB contiene el marco donde se
encuentra la pgina referenciada y se accede a memoria para
satisfacer la solicitud TAM.
o Si no hay acierto en la bsqueda de las TLB, entonces hay que
consultar las dos tablas de pginas que se encuentran en memoria,
para encontrar el marco donde se encuentra la pgina referenciada y
se accede a memoria para satisfacer la solicitud 3TAM.
Con todo ello el tiempo efectivo de acceso a memoria vendr dado:
TAE = (Treg + TAM + Ttlb ) p + (1 p )(3 TAM + Ttlb + Treg )
TAE = (2 + 20 + 10) 0.9 + 0.1 (3 20 + 10 + 2) = 36 ns
En este ejercicio se ha considerado que las pginas referenciadas siempre estaban en
memoria, y la diferencia radicaba en el camino que se ha seguido para buscar el marco
donde se encuentra la pgina.
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
Caso de que la tabla de pginas se encuentre en registros del procesador:
En este caso no hay posibilidad de fallo a la hora de encontrar el descriptor
de pginas, por tanto cada vez que se emita una direccin lgica se consultan
los registros del procesador y se accede a la direccin fsica solicitada
Treg_proc +TAMTAM
Caso con TLB y tabla de pginas en memoria:

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.
=
TAM
;
TAE 1

TAE = p TAM + (1 p ) 2 TAM = 0.85 TAM + 0.15 2 TAM = 1.15 TAM ;


TAE TAE = 0.15 TAM
2
2

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
1.15
TAE 2
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).
Con todo ello el tiempo efectivo de acceso a memoria vendr dado:
71

Sistemas Operativos I

Tema 3. Gestin de Memoria

TAE = (TAM + Ttlbusq ) p + (1 p )(2 TAM + Ttlbusq _ act )


TAE = (100 + 20 ) 0.8 + 0.2 (2 100 + 40 ) = 144 ns
En este ejercicio se ha considerado que las pginas referenciadas siempre estaban en
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).
Con todo ello el tiempo efectivo de acceso a memoria vendr dado:
TAE = (TAM + Ttlbusq) p + (1 p )(2 TAM + Ttlbusq) < 50ns
TAE = (30 + 5) p + (1 p) (2 30 + 5) = 35 p + 65 65 p = 65 30 p < 50 ns
15
p>
= 0,5
30
En este ejercicio se ha considerado que las pginas referenciadas siempre estaban en
memoria.
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
Referencia
1-p

No hay fallo
de pgina
Hay fallo
de
pgina

pm

1-pm

Hay marcos libres


pb

Dirty bit = 0

1-pb

Dirty bit = 1

No hay marcos libres

Consideraremos el tiempo de acceso a estos registros es despreciable Treg0.


Tiempo de servicio de fallo de pgina cuando hay marcos libres= TFP1=8ms.
Tiempo de servicio de fallo de pgina con dirty bit a 0= TFP1=8ms
Tiempo de servicio de fallo de pgina con dirty bit a 1= TFP2=20ms.
Pm= 0.5
1-pb=0.7; pb=0.3;
TAM = 100seg.
Como se trata de un sistema de memoria con paginacin por demanda para traducir
direcciones l gicas a fsica habr que consultar las tablas pginas.
Como la tabla de pginas se encuentra en registros, cada vez que se emite una direccin
lgica se realiza una bsqueda en registros Treg0.
Si no hay fallo de pgina, lo cual ocurre con una probabilidad p, se accede a
la posicin de memoria referenciada TAM p. TAM.
Si hay fallo de pgina, lo cual ocurre con una probabilidad 1-p, entonces hay
que traerse la pgina de disco y ubicarla en memoria
o Si hay marcos libres lo cual ocurre con una probabilidad pm (pm
*TFP1)
o Si no hay marcos libre lo cual ocurre con una probabilidad 1-pm
tendremos dos casos:
Dirty bit =0 (1-pm)*pb*TFP1
Dirty bit =0 (1-pm)*(1-pb)*TFP2.
Con todo lo cual el tiempo de acceso efectivo a memoria quedar:

73

Sistemas Operativos I

Tema 3. Gestin de Memoria

TAE = p TAM + (1 p )( pm TFP 1 + (1 pm )( pb TFP 1 + (1 pb)TFP 2)) < 200 s


TAE = p TAM + (1 p )( pm TFP 1 + (1 pm )(2.4ms + 14 ms )) < 200
TAE = p TAM + (1 p )(4ms + 8.2ms ) < 200 s
TAE = p 100 s + (1 p)(12200 s ) = 12200 12100 p < 200 s
12000
p>
= 0,9917
12100

74

Das könnte Ihnen auch gefallen