Académique Documents
Professionnel Documents
Culture Documents
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
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
Sistemas Operativos I
Bloque 3
4199
3400
3399
Bloque 2
2900
Bloque 6
Bloque 5
2699
1500
1499
1000
Bloque 4
Bloque 1
0999
0000
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
Sistemas Operativos I
Sistemas Operativos I
12. Considere los 4 sistemas con gestin de memoria mediante paginacin A, B, C y D siguientes:
Sistema
512
512
1024
1024
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)
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
Sistemas Operativos I
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
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-
Sistemas Operativos I
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
1327
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
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
12
Sistemas Operativos I
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
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
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
(*) 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
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)
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
16
Sistemas Operativos I
Memoria Principal
0
4095
4096
16383
Particin de
4K
Particin de
12K
16384
22527
Particin de
16K
22528
65535
Particin de
32K
32. De entre todos los esquemas de gestin de memoria estudiados (tanto con asignacin contigua
como con asignacin dispersa), indique cules cumplen cada una de las siguientes
caractersticas:
a) Posibilidad de compartir memoria.
b) Presentan fragmentacin externa.
Solucin
a) Los esquemas de gestin de memoria que permiten compartir la misma por varios
procesos son: segmentacin, paginacin y segmentacin paginada.
b) Fragmentacin externa presentan los esquemas de particiones de tamao variable y
segmentacin.
33. En un PC con un Intel Pentium (pginas de 4 Kbytes), tres procesos P1, P2 y P3 han emitido
algunas direcciones lgicas que la MMU ha traducido en sus direcciones fsicas asociadas.
Asuma que los tres procesos estn en memoria y que no se utiliza memoria virtual ni
intercambio. Indique qu tipo (o tipos) de gestin de memoria pueden utilizarse en ese sistema
para que se haya podido dar esa traduccin, cuando los tres procesos emitan la misma direccin
lgica. Elija entre: segmentacin, paginacin, segmentacin paginada e imposible (la traduccin
no puede llevarse a cabo suponiendo que los tres procesos estn a la vez en memoria).
a) Direccin lgica: (0, 5120)
40960
b) Direccin lgica: (0, 17080)
33464
Solucin
Por el formato de la direccin lgica nicamente pueden ser segmentacin o
segmentacin paginada.
a) Respuesta: segmentacin.
17
Sistemas Operativos I
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
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
Direccin fsica
12 11
Desplazamiento
11
0
desplazamiento
19
Sistemas Operativos I
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).
20
Sistemas Operativos I
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
21
Sistemas Operativos I
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
0
1
2
3
4
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
22
Sistemas Operativos I
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
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
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
Sistemas Operativos I
1102 2147
4090
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
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
26
Sistemas Operativos I
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
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
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
Seg 1
1299
300
Seg 1
829
Seg 2 1019
29
Sistemas Operativos I
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
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
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
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
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
33
Sistemas Operativos I
34
Sistemas Operativos I
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
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
35
Sistemas Operativos I
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
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
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
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
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
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
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
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
41
Sistemas Operativos I
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)
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
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.
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
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
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 -
45
Sistemas Operativos I
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
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
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
N
marco
10
11
12
13
15
23
40
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
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
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
Bit 0
Desplaz. Pgina
10 bits
2 nivel
2 bits
Direccin Fsica
Bit 12
Marco
3 bits
Bit 0
Desplazamiento
10 bits
b1)
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
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
1K
33K
2K
4K
Sistemas Operativos I
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
Tamao
2 Kb
2 Kb
7 Kb
1 Kb
Dir. base
204800
206848
208896
216064
51
Sistemas Operativos I
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
Dir. Base
204800
206848
209408
216064
217088
218112
221184
231424
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
52
Sistemas Operativos I
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
53
Sistemas Operativos I
54
Sistemas Operativos I
posicin
inicial
0
57500
60600
63900
70300
84300
87600
100600
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
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
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
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
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
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
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
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
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.
Sistemas Operativos I
Sistemas Operativos I
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
65
Sistemas Operativos I
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
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
67
Sistemas Operativos I
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.
68
Sistemas Operativos I
Sistemas Operativos I
70
Sistemas Operativos I
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
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
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
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
Dirty bit = 0
1-pb
Dirty bit = 1
73
Sistemas Operativos I
74