Anda di halaman 1dari 25

SSOO

Problemas de administracin de memoria

PROBLEMAS DE ADMINISTRACIN DE MEMORIA


SISTEMAS OPERATIVOS
Problema 1.
Considerando un sistema con 32 MB de memoria principal, en el que la lista de particiones de
memoria libres es la siguiente: {0x2.4000, 0x1000}, {0x3.0000, 0x1800}, {0x6.0000, 0x1000},
{0x7.4000, 0x400}, {0x1A.8000, 0x5000}, {0x40.0000, 0x1.0000}, {0x100.0000, 0x100.0000}.
Qu algoritmo es ms probable que se haya utilizado para servir las peticiones de memoria
(el primer ajuste o el siguiente ajuste)? Por qu?
Considerando que a partir de este instante el sistema utiliza a) el primer ajuste y b) el siguiente
ajuste (suponer que en este caso la ltima solicitud fue atendida con memoria del hueco
{0x1A.8000, 0x5000}, mostrar cmo quedara la lista de particiones libres tras atender las
siguientes operaciones de asignacin y liberacin de memoria: solicitud de 0x2000, solicitud de
0x2000, liberacin de la particin {0x2.5000, 0xB000}, solicitud de 0x6000.
Problema 2.
Calcular la tasa de aciertos que debera alcanzar el TLB de un procesador para conseguir, con
la paginacin activada, un tiempo efectivo de acceso a memoria inferior a 50 ns. Datos: tiempo
de acceso a memoria con la paginacin desactivada = 45 ns., tiempo de acceso al TLB = 2 ns.
Problema 3.
Si es posible, mostrar cmo se podra conseguir, utilizando segmentacin como mtodo para
gestionar la memoria, que los procesos P1 y P2 compartiesen el cdigo mientras ninguno de los
dos tiene permitido ningn tipo de acceso ni a los datos ni a la pila del otro. Si no lo es, mostrar
cmo se podra conseguir utilizando paginacin.
Datos adicionales:
El tamao del cdigo es de 12 KB, el de los datos de P 1 de 1 KB, el de los datos de P 2 de 3
KB, el de la pila de cada uno de los dos de 4 KB y, si se utiliza paginacin, se debe
considerar un tamao de pgina de 4 KB.

La disposicin de la informacin en la memoria fsica es la que se muestra a continuacin.


0x0

0x2000

0x4000

Pila de P1

Pila de P2

Cdigo de P1 y P2

Datos de P1

Datos de P2

(Se pueden utilizar las direcciones lgicas que se desee, procurando realizar una asignacin
razonable: cada regin -cdigo, datos o pila- debe ocupar un segmento o un rango contiguo de
direcciones lgicas en el caso de la paginacin).
Problema 4.
Un procesador de 32 bits utiliza tablas de pginas de dos niveles. En este sistema, cada tabla
de pginas (tanto de primer nivel como de segundo nivel) ocupa una pgina completa y contiene
1024 entradas. Se desea cargar en memoria un proceso y conseguir que su espacio lgico de
direcciones sea el que aparece en la tabla 1.
Considerando que la lista de marcos libres es 0x15A0, 0x500, 0x4FF, 0x88, 0x400, 0x501,
0x2310 y 0x1FCA, mostrar cmo quedaran alojados en memoria fsica los datos del proceso y
29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

1 de 25

SSOO

Problemas de administracin de memoria

las tablas de pginas necesarias, as como el contenido de dichas tablas de pginas (por cada
entrada, especificar el n de marco de pgina y el bit de vlido).
Tabla 1: El espacio lgico de direcciones del proceso.

Direccin lgica
de comienzo
0x1000
0x4000
0xFFFF.F000

Tamao
(en bytes)
0x0432
0x1F10
0x1000

Descripcin del Contenido


Cdigo
Datos
Pila

Problema 5.
La instruccin movl -4(%ebp), %eax permite transferir el contenido (4 bytes) de la direccin
de memoria ebp - 4 (donde ebp es el contenido del registro base de pila del procesador) al
registro de propsito general eax. Sabiendo que la instruccin completa ocupa 3 bytes, cul
sera el mnimo nmero de marcos que tendra que tener asignado un proceso para poder
garantizar que ser capaz de ejecutarla?
Problema 6.
Un sistema utiliza paginacin para implementar memoria virtual. Sabiendo que la tasa de
aciertos del TLB es de 0'98, que el tiempo de acceso a memoria (con la paginacin desactivada)
es de 50 ns, que el tiempo medio de acceso a memoria con la memoria virtual activada es de 54
ns., que el 30 % de los fallos de pgina requieren la escritura de la pgina a ser reemplazada y
que la probabilidad de un fallo de pgina es de 810 -8, cul es el tiempo de acceso al TLB del
procesador? Datos adicionales: tratar un fallo de pgina requiere 10 ms. o 21 ms., dependiendo
de si es necesario volcar a disco la pgina a ser reemplazada o no.
Problema 7.
Si la lista de marcos de pgina de un sistema operativo es la que aparece en la tabla 2 y se
utiliza el algoritmo del reloj (el que tiene en cuenta el bit de modificado) para decidir sobre el
reemplazo de pginas, justificar cmo se trataran los tres primeros fallos de pgina, mostrando
cmo quedara finalmente la lista de marcos.
Tabla 2

Marco de pg.
Pgina
Accedida
Modificada

0
8
1
0

1
1
1
0

2
0
1
1
ltima

3
12
0
1

4
22
1
0

5
23
0
0

6
243
1
1

Nota: supngase que las tres pginas solicitadas son accedidas y modificadas inmediatamente
(es decir, cada una antes del siguiente fallo de pgina).
Problema 8.
Sabiendo que el sistema utiliza pginas de 4KB, calcular el nmero de fallos de pgina que
producira el proceso P1 si generase los accesos a memoria 0x7000, 0x35a3, 0x9123, 0x8fff,
0x5000, 0x9124, 0x7000, 0x35a4, 0x8ffe, 0x5001, 0x8ffd, 0x9125, 0x35a5, y se utilizase la
estrategia de asignacin de marcos de pgina mediante el conjunto de trabajo con un tamao de
ventana de 4.
Resulta adecuado este tamao de ventana en este caso concreto? Justificar la respuesta.
Nota: Suponer que inicialmente ninguna de las pginas reside en memoria.

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

2 de 25

SSOO

Problemas de administracin de memoria

PROBLEMAS DE OTROS CURSOS


Problema 1.
Considerando un espacio lgico de direcciones de 8 pginas de 1024 palabras cada una y
mapeadas en una memoria fsica de 32 tramas:
Cuntos bits debe haber como mnimo en una direccin lgica?
Y en una direccin fsica?
Solucin: 1- 13, 2- 15
Problema 2.
Dadas las particiones libres de memoria de la tabla 3. Cmo asignaran la memoria los
algoritmos del primer, el mejor y el peor acople a los procesos de la tabla 4?
Huecos Tamao
(en Kb)
1
100
2
500
3
200
4
300
5
600

Proceso
1
2
3
4

Tamao
(en Kb)
212
417
112
426

Tabla 4

Tabla 3

Considerar el modelo de mltiples particiones, tanto con particiones fijas como con
particiones flexibles.
Solucin: Primer ajuste: fijas = P1 en H2, P2 en H5, P3 en H3, P4 debe esperar; variables = P1
en H2, P2 en H5, P3 en H2, P4 debe esperar.
Mejor ajuste: fijas = P1 en H4, P2 en H2, P3 en H3, P4 en H5; variables = P1 en H4, P2
en H2, P3 en H3, P4 en H5
Peor ajuste: fijas = P1 en H5, P2 en H2, P3 en H4, P4 debe esperar; variables = P1 en
H5, P2 en H2, P3 en H5, P4 debe esperar.
Problema 3.
Considerando la TdS que se muestra en la tabla 5. Cules
son las direcciones fsicas para las siguientes direcciones
lgicas?
1. (0, 430)
2. (1, 10)
3. (1, 100)
4. (2, 500)
5. (3, 400)
6. (4, 112)

Segmento
0
1
2
3
4

Base
219
2300
90
1327
1952

Longitud
600
14
100
580
96

Tabla 5

Solucin: 1- 649, 2- 2310, 3- ERROR, 4- ERROR, 5- 1727, 6- ERROR.

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

3 de 25

SSOO

Problemas de administracin de memoria

Problema 4.
Sea un sistema con memoria paginada que disponga de registros asociativos para contener las
entradas de la TdP usadas ms recientemente. Si la TdP se mantiene en memoria y el tiempo de
acceso a la memoria es de 1 s,
cul es el tiempo efectivo de acceso si en el 95% de las referencias a memoria la entrada
de la TdP se encuentra en los registros asociativos?, y
cul sera el tiempo efectivo de acceso si la tasa de aciertos fuera del 50%?
(Suponer en ambos casos que el tiempo necesario para consultar los registros es despreciable.)
Solucin: 1- 1,05 s; 2- 1,5 s.
Problema 5.
Considerando un sistema con 32 Kb de memoria fsica, que utiliza paginacin y sabiendo que el
sistema dispone de 8 tramas, contestar a las siguientes cuestiones:
1. Cul es el tamao de pgina?
2. Considerando la tabla 6. Cuntos bits significativos hay en una Pgina Trama
direccin lgica?
0
7
3. Y en una fsica?
1
2
4. Utilizando para la traduccin la TdP que se muestra en la tabla 6,
2
1
cules son las direcciones fsicas que se generaran para las
siguientes direcciones lgicas: 0x1A00, 0x200F, 0x3F17, 0x0300.
3
3
Solucin: 1- 4096 palabras, 2- 14 bits, 3- 15 bits, 4- {0x1A00 - 0x2A00,
0x200F - 0x100F, 0x3F17 - 0x3F17, 0x0300 - 0x7300

Tabla 6

Problema 6.
Suponer un sistema con paginacin con demanda en el que la TdP se mantiene en registros. El
sistema tarda 8 ms en servir un fallo de pgina si hay una trama libre o si la pgina a reemplazar
no est modificada, y 20 ms si la pgina reemplazada est modificada. El tiempo de acceso a
memoria es de 100 ns.
Si es necesario reemplazar una pgina modificada en el 70% de los fallos de pgina, cul es
la mxima tasa de fallos de pgina para lograr un tiempo efectivo de acceso inferior a 200 ns?
Solucin: 6,110-6
Problema 7.
Considerando la siguiente secuencia de referencias a memoria de un programa de 460 bytes:
0x10, 0x11, 0x104, 0x170, 0x73, 0x309, 0x185, 0x245, 0x246, 0x434, 0x458, 0x364
a) Dar la cadena de referencia, sabiendo que el tamao de pgina es de 0x100 bytes.
b) Encontrar el nmero de fallos de pgina para la cadena de referencia del apartado anterior
para los siguientes algoritmos (sabiendo que el proceso tiene asignados 0x200 bytes de
memoria fsica): ptimo, FIFO y UMR.
Solucin: 1- {0, 1, 0, 3, 1, 2, 4, 3
2- ptimo = 5, FIFO = 6, UMR = 7
Problema 8.
Sea un sistema que emplea un modelo de memoria combinado en el que se utiliza paginacin por
demanda para implementar memoria virtual. En un momento dado se est ejecutando un proceso
que tiene asociadas la TdS y la TdP de las tablas 7 y 8, respectivamente.

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

4 de 25

SSOO

Problemas de administracin de memoria

Segmento
0x0
0x1
0x2

Base
0xB000
0x3000
0x0000

Lmite
0x1000
0x4A00
0x3000

Lect. Escr. Ejec.


1
0
0
1
0
1
1
1
1

Tabla 7: TdS

Sabiendo que el tamao de pgina es de 4096 palabras y que el


mecanismo de traduccin de direcciones es capaz de generar las
excepciones que se listan en la tabla 9.
1
2
3
4

segmento no vlido
acceso no vlido a segmento
desplazamiento excede lmite del segmento
fallo de pgina
Tabla 9: Excepciones

Pgina

Trama

0x0
0x1
0x2
0x3
...
0xB
...

0xA
0x8
0x0
0x5

Bit de
presen.
1
0
0
1

0x2

Se pide que, para cada una de las direcciones lgicas indicadas a


Tabla 8: TdP
continuacin, se calcule su direccin virtual y su direccin fsica.
En caso de producirse alguna excepcin indicar cul se producira y por qu.

a)
b)
c)
d)
e)
f)
g)
h)
i)

Direccin lgica
(0x1, 0x005A)
(0x0, 0x0FFF)
(0x1, 0x4A00)
(0x2, 0x257C)
(0x2, 0x0F8A)
(0x0, 0x0010)
(0x2, 0x15DD)
(0x1, 0x0AAA)
(0x3, 0x0000)

Tipo de acceso
lectura
lectura
lectura
lectura
lectura
ejecucin
escritura
ejecucin
lectura

Solucin: a- 0x505A, b- 0x2FFF, c- excepcin 3, d- excepcin 4, e- 0xAF8A, f- excepcin 2,


g- excepcin 4, h- 0x5AAA, i- excepcin 1.
Problema 9.
La memoria de un computador se gestiona mediante la tcnica de particiones dinmicas y en un
momento determinado la lista de huecos contiene los siguientes elementos: {0x10000, 0x9000,
{0x1A000, 0x3000, {0x30000, 0x4001
Cul ser el contenido de la lista tras haber atendido peticiones de 0x300, 0x2500 y 0x8000
en ese orden si se utiliza el algoritmo del primer ajuste? Y si se utiliza el del mejor ajuste?
Solucin: Primer ajuste - tras asignar 0x300 y 0x2500, la lista ser {0x12800, 0x6800},
{0x1A000, 0x3000, {0x30000, 0x400; y la tercera peticin no podr ser atendida.
Mejor ajuste - tras asignar todas la lista es {0x18000, 0x1000}, {0x1C500, 0xB00},
{0x30300, 0x100}.

Cada elemento de la lista contiene dos campos: direccin de comienzo del hueco y tamao del mismo, en ese
orden.
1

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

5 de 25

SSOO

Problemas de administracin de memoria

Problema 10.
El ncleo de un S.O. utiliza el modelo segmentado para
gestionar la memoria del computador. Considerando la
tabla de segmentos de la tabla 10, traducir las siguientes
direcciones lgicas a fsicas indicando, en caso de que no
sea posible traducirlas, por qu.
a) (0x1, 0x430)
b) (0x3, 0x0)
c) (0x0, 0x1FF0)
d) (0x1, 0x1000)

Segmento
0
1
2

Base
0x01000
0x10000
0x40000

Longitud
0x2000
0x1000
0x8000

Tabla 10

Solucin: a) 0x10430; b) Segmento invlido; c)


0x2FF0; d) Fuera de lmite
Problema 11.
Un computador con 16MB de memoria fsica utiliza pginas de 4KB.
Teniendo en cuenta la tabla de pginas de la tabla 11, traducir las
siguientes direcciones lgicas a fsicas:
a) 0x2F00
b) 0x0104
c) 0x0020

Pgina
0
1
2

Trama
0x0007
0x0F00
0x0040
Tabla 11

Solucin: a) 0x40F00; b) 0x7104; c) 0x7020


Problema 12.
Un computador incorpora un buffer de traduccin adelantada (TLB) que anuncia un 98% de
aciertos en la traduccin de direcciones. Si el tiempo de acceso a memoria es de 500 ns y el
tiempo de bsqueda en el TLB es de 10ns, cul es el tiempo efectivo de acceso a memoria?
Solucin: 520 ns
Problema 13.
En un computador se han estudiado la tasa de fallos de pgina y se ha llegado a la conclusin
de que es de 6 fallos por cada milln de accesos. En el 30% de los casos es necesario escribir
en disco la pgina a reemplazar.
Sabiendo que el tiempo de tratamiento del fallo de pgina es de 18 ms. si la pgina a
reemplazar haba sido modificada y de 10 ms. si no; y que el tiempo de acceso a memoria es
de 300 ns. Cul es el tiempo efectivo de acceso? Qu tasa de fallos de pgina sera
aceptable si el tiempo efectivo de acceso debe ser inferior a 325 ns.?
Solucin: 374'39 ns; menor que 2'016 10-16
Problema 14.
Un sistema operativo utiliza una estrategia local de asignacin de tramas y obtencin por
demanda. Un proceso tiene asignadas 4 tramas de pgina cuando comienza su ejecucin y realiza
los siguientes accesos a memoria 0x4010, 0x4014, 0x4018, 0x2100, 0x1500, 0x5504, 0x5500,
0x4010, 0x4014, 0x4018, 0x2200, 0x3A04, 0x4000, 0x4010, 0x4014, 0x4018, 0x2200, 0x3A04,
0x4014, 0x4018, 0x2200, 0x1100, 0x5000, 0x3000. Sabiendo que el tamao de pgina es de
4KB, cul es el mtodo que hace que se genere menor nmero de fallos de pgina: FIFO o
UMR?
Solucin: UMR, que genera 8 (frente a los 10 de FIFO)

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

6 de 25

SSOO

Problemas de administracin de memoria

Problema 15.
Sea un sistema que emplea un modelo de memoria combinado en el que se utiliza paginacin por
demanda para implementar memoria virtual. En un momento dado se est ejecutando un proceso
que tiene asociadas la TdS y la TdP de la tablas 12 y 13, respectivamente.
Segmento
0x0
0x1
0x2

Base
0x0000
0xA000
0x6000

Lmite
0x4000
0xA000
0x2000

Lect. Escr. Ejec.


1
0
1
1
0
0
1
1
0

Tabla 12: TdS

Sabiendo que el tamao de pgina es de 4096 bytes y que el


mecanismo de traduccin de direcciones es capaz de generar las
excepciones que se listan en la tabla 14.
1
2
3
4

segmento no vlido
acceso no vlido a segmento
desplazamiento excede lmite del segmento
fallo de pgina
Tabla 14: Excepciones

Pgina

Trama

0x0
0x1
0x2
0x3
...
0x6
...

0x1
0xA
0xF
0x3

Bit de
presen.
1
0
0
1

0x0

Tabla 13: TdP


Se pide que, para cada una de las direcciones lgicas indicadas
a continuacin, se calcule su direccin lineal y su direccin fsica. En caso de producirse alguna
excepcin indicar cul se producira y por qu.

a)
b)
c)
d)
e)
f)
g)

Direccin lgica
(0x1, 0x005A)
(0x3, 0x0FFF)
(0x2, 0x0000)
(0x2, 0x257C)
(0x0, 0x257C)
(0x0, 0x0010)
(0x0, 0x35DD)

Tipo de acceso
escritura
lectura
lectura
lectura
lectura
ejecucin
escritura

Solucin: a) excepcin 2; b) excepcin 1; c) dv = 0x6000, df = 0x0000; d) excepcin 3; e) dv =


0x257C, excepcin 4; f) dv = 0x0010, df = 0x1010; g) excepcin 2
Problema 16.
En un sistema segmentado, la lista de zonas libres de memoria (huecos) cuando se solicita la
creacin de un nuevo proceso es la siguiente: {0x01000, 0x40000}, {0x80000, 0x80000}.2 El
nuevo proceso consta de tres segmentos: uno de 128 KB para el cdigo, otro de 512 KB para los
datos y otro de 64 KB para la pila. Si el sistema operativo busca espacio para ellos en el orden
cdigo, datos y pila; y utiliza a) el primer ajuste, b) el mejor ajuste y c) el peor ajuste. En qu
casos sera capaz de crear inmediatamente el nuevo proceso?
Solucin: El tamao de lo segmentos en hexadecimal es: 0x20000 cdigo, 0x80000 datos y
0x10000 pila. Con el primer ajuste: el cdigo se aloja en el primer hueco (quedan
0x20000), los datos en el segundo (lo ocupan completamente) y la pila en el primero
2

Los elementos de la lista siguen la convencin {base, longitud}.

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

7 de 25

SSOO

Problemas de administracin de memoria

(quedan 0x10000). Con el mejor ajuste: como en el anterior, en este caso. Con el
peor ajuste: el cdigo se aloja en el segundo hueco (quedan 0x60000), no quedando
ningn hueco que pueda alojar los datos, por lo que la creacin del proceso debera
esperar.
Problema 17.
En un sistema con paginacin, el tiempo de acceso al TLB es de 1 ns, mientras que el tiempo de
acceso a memoria con la paginacin desactivada es de 60 ns. Si la tasa de aciertos del TLB es de
0'995, cul es el tiempo efectivo de acceso a memoria?
Solucin: 61'3 ns.
Problema 18.
Cul es la tasa de fallos de pgina que se le debe exigir a un sistema para conseguir un aumento
del tiempo efectivo de acceso inferior al 10%? Datos: el tiempo de acceso a memoria cuando no
se produce un fallo de pgina es es de 80 ns., y cuando s se produce es de 10 ms.
Solucin: menor que 810-7.
Problema 19.
Resolver el problema anterior considerando que el tiempo de acceso a memoria cuando se
produce un fallo de pgina depende de si es necesario reemplazar una pgina modificada (20 ms)
o no (10 ms) y sabiendo que el 75 % de los fallos de pgina no requieren que se escriba en disco
la pgina a modificar.
Solucin: menor que 6'410-7.
Problema 20.
Supngase que se tiene un computador con una instruccin de 3 direcciones para sumar el
contenido de dos posiciones de memoria y almacenar el resultado en una tercera posicin. En
ensamblador, la instruccin se asemejara a:
ADD A, B, C
/* (A) + (B) (C) */
Si la instruccin ocupa tres palabras y si todas las direcciones son directas (es decir, la
direccin efectiva forma parte de la propia instruccin), cul sera el nmero mnimo de marcos
que necesita esta instruccin para garantizar su ejecucin correcta. Explicar la respuesta.
Solucin: El peor caso se da cuando el cdigo (3 palabras) est almacenado entre dos
pginas, y cada uno de los dos operandos y el destino estn en pginas diferentes (3
en total). Por lo tanto, para estar seguros son necesarios 5 marcos (los dos del
cdigo y los otros 3).
Problema 21.
En un sistema con paginacin por demanda se crea un proceso que, al iniciar su ejecucin,
genera la siguiente cadena de referencias: 1, 2, 8, 9, 2, 8, 3, 8, 2, 8, 2, 5, 8, 2, 9, 2, 8.
1. Si al proceso se le asignan 4 marcos de pgina, cul ser el nmero de fallos de
pgina utilizando los algoritmos de reemplazo de pginas a) ptimo y b) FIFO?
2.

Y si se utiliza la estrategia de asignacin mediante el conjunto de trabajo y con un


tamao de ventana de 4?

Solucin: 1.a) 6, 1.b) 8, 2) 7.

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

8 de 25

SSOO

Problemas de administracin de memoria

Problema 22.
En un sistema, en un momento dado, se estn ejecutando 2 procesos: P 1 y P2. La tabla 15 muestra
la asignacin de la memoria fsica en ese momento y la tabla 16 describe el espacio lgico de
direcciones de cada proceso.
Rango de direcciones fsicas
0x0000-0x1FFF
0x3000-0x3FFF
0x4000-0x4FFF
0x5000-0x6FFF
0x7000-0x7FFF
0xA000-0xBFFF
0xE000-0xEFFF

Descripcin
Datos compartidos por P1 y P2
Cdigo de P1
Pila de P1
Cdigo de P2
Pila de P2
Datos de P1
Datos de P2

Tabla 15: Descripcin de la asignacin de memoria fsica.

Proceso P1
Rango de
direcciones lgicas
0x1000-0x1FFF
0x2000-0x3FFF
0x4000-0x5FFF
0x7000-0x7FFF

Descripcin
Cdigo privado
Datos privados
Datos compartidos
con P2
Pila (privada)

Proceso P2
Rango de
direcciones lgicas
0x1000-0x2FFF
0x3000-0x3FFF
0x5000-0x6FFF
0x7000-0x7FFF

Descripcin
Cdigo privado
Datos privados
Datos compartidos
con P1
Pila (privada)

Tabla 16: Espacio lgico de direcciones de los procesos P1 y P2.

Tomando como ejemplo la tabla 17, que muestra las dos primeras entradas de la tabla de
pginas de P1, y sabiendo que el tamao de pgina es de 4 Kb., se pide: mostrar cul debe ser el
contenido de la tabla de pginas de cada proceso para que pueda acceder exclusivamente a la
memoria fsica que tiene asignada. (Considerar tablas de pginas de 8 entradas.) Razonar la
respuesta.
N de entrada en la tabla Trama Bit de vlido
0 0x0
0
1 0x3
1
...
Tabla 17: Tabla de pginas del proceso P1.

Solucin: TdP de P13: {0, 0}, {3, 1}, {A, 1}, {B, 1}, {0, 1}, {1, 1}, {lo que sea, 0}, {4, 1}
TdP de P2: {0, 0}, {5, 1}, {6, 1}, {E, 1}, {lo que sea, 0}, {0, 1}, {1, 1}, {7, 1}
Problema 23.
Sea un sistema que emplea un modelo de memoria combinado en el que se utiliza paginacin por
demanda para implementar memoria virtual. En un momento dado se est ejecutando un proceso
que tiene asociadas la TdS y la TdP de las tablas 18 y 19, respectivamente.
Segmento
3

Base

Lmite

Lect. Escr. Ejec.

Notacin. Para cada entrada: {marco de pgina, bit de vlido}

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

9 de 25

SSOO

Problemas de administracin de memoria

0x0
0x1
0x2

0xA000
0xB000
0x0000

0x4000
0x1000
0x2000

0
1
1

0
1
0

1
0
0

Tabla 18: TdS

Sabiendo que el tamao de pgina es de 4096 palabras y que el


mecanismo de traduccin de direcciones es capaz de generar las
excepciones que se listan en la tabla 20.
1
2
3
4

segmento no vlido
acceso no vlido a segmento
desplazamiento excede lmite del segmento
fallo de pgina
Tabla 20: Excepciones

Pgina

Trama

0x0
...
0x4
...
0xA
0xB

0x4

Bit de
presen.
0

0x1

0xA
0x0

1
1

Tabla 19: TdP

Se pide que, para cada una de las direcciones lgicas indicadas a continuacin, se calcule su
direccin lineal y su direccin fsica. En caso de producirse alguna excepcin indicar cul se
producira y por qu.

a)
b)
c)
d)
e)

Direccin lgica
(0x1, 0x1000)
(0x1, 0x100)
(0x2, 0x0)
(0x2, 0x400)
(0x0, 0x100)

Tipo de acceso
lectura
escritura
ejecucin
lectura
ejecucin

Solucin: a) excepcin 3, b) lineal 0xB100, fsica 0x100, c) excepcin 2, d) lineal 0x400,


excepcin 4, e) lineal 0xA100, fsica 0xA100.
Problema 24.
El mdulo de gestin de memoria virtual de un sistema operativo utiliza el algoritmo del reloj
para el reemplazo de pginas y tiene en cuenta el bit de modificado para conseguir mejores
resultados. En un instante determinado el estado del sistema es el que se muestra en la tabla 21.
Qu pgina sera reemplazada? Y en el caso de la tabla 22? Justificar las respuestas
Marco de pg.
Pgina
Accedida
Modificada

0
3
0
1

1
20
1
0
ltima

2
5
1
1

3
22
0
1

4
6
1
1

5
7
1
0

6
1
0
1

3
22
1
1

4
6
1
1

5
7
1
0

6
1
1
1

Tabla 21

Marco de pg.
Pgina
Accedida
Modificada

0
3
1
0

1
20
1
0

2
5
1
1
ltima
Tabla 22

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

10 de 25

SSOO

Problemas de administracin de memoria

Solucin: Primera tabla. Se busca A=0 y M=0, no se encuentra. Se busca A=0 y M=1,
poniendo A=0 si A=1, se pone A a 0 en el marco 2 y se encuentra el marco 3 con
A=0 y M=1. Se selecciona el marco 3 (habr que volcar su contenido al disco antes
de leer la pgina solicitada).
Segunda tabla. Se busca A=0 y M=0, no se encuentra. Se busca A=0 y M=1, se
ponen a 0 todos los bits A (se completa la vuelta sin encontrar ninguno). Se busca
A=0 y M=0 de nuevo, esta vez se encuentra el marco 5, que puede ser rellenado
directamente.
Problema 25.
El estado de parte de la memoria fsica de un sistema de 32 bits que est utilizando paginacin
es el que aparece en la tabla.
Regin de memoria

Dir. de inicio

Tamao

Cdigo de P1 y P2
Datos de P1
Datos de P2
Pila de P1

crece hacia abajo, tiene asignada una pgina

Pila de P2

crece hacia abajo, tiene asignada una pgina

1. Qu tamaos de pgina puede estar utilizando?


2. Suponiendo que est utilizando pginas de 64 KB (0x10000 bytes), que existe un nico
nivel de tablas de pginas y que stas son directas, construir las tablas de pginas que
debera preparar el sistema operativo para ejecutar los procesos P1 y P2, sabiendo que el
cdigo comienza en la direccin lgica 0x100000, que los datos comienzan en 0xA00000 y
que la pila, que crece hacia abajo, comienza en 0xFFFFFFF.
3. Para este caso, calcular la fragmentacin (tanto interna como externa) que exista.

Respuesta
1. Tamaos de pgina.
Puesto que cada entrada en tabla de pginas de un proceso garantiza un determinado tipo de
acceso (ej: slo lectura) a todo el contenido de una pgina, no es posible almacer en el mismo
marco de pgina informacin correspondiente a dos procesos distintos (salvo que ambos
compartan dicha informacin) y tampoco es posible almacenar datos con diferente tipo de
acceso (ej: cdigo -slo lectura- con datos -lectura y escritura-). Por lo tanto, el tamao de
pgina ms grande ser aqul que respete esta separacin. Observando la disposicin de la
informacin en la memoria fsica, se puede ver que los datos de P1 estn alojados a partir de la
direccin 0x280000 y que el cdigo de P1 y P2 lo est a partir de la 0x300000. Por lo tanto, las
pginas no pueden ser mayores de 0x80000. Podemos comprobar que utilizando pginas de este
tamao es posible aislar cada regin en un conjunto propio de marcos de pgina, por lo cual
ste es el tamao mximo: 0x80000 (219 = 512 KB), y ser posible utilizar pginas de cualquier
tamao inferior a ste que sea potencia de 2, por ejemplo 256 KB, 128 KB, 64 KB...
2. Construccin de las tablas de pginas
Puesto que las pginas son de 64 KB (0x10000 bytes) y el cdigo comienza en la direccin
lgica 0x100000, la primera entrada vlida en la tabla de pginas de P1 ser la 0x10. Puesto
que la primera pgina de cdigo est almacenada en el marco de pgina 0x30, ste ser el
contenido de esta entrada, que evidentemente tendr el bit de vlido a 1. Las entradas de la 0 a

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

11 de 25

SSOO

Problemas de administracin de memoria

la 0xF tendrn el bit de vlido a 1. Como el cdigo tiene una longitud de 0x38fa0 tendr que
ocupar 4 pginas y, por lo tanto, tambin sern vlidas las pginas 0x11, 0x12 y 0x13. Puesto
que el cdigo est almacenado en marcos de pgina contiguos, el contenido de dichas entradas
ser 0x31, 0x32 y 0x33.
Siguiendo este mismo proceso para las dems regiones de P1 y P2, se obtienen las siguientes
tablas de pginas.
P1

P2

Entrada Marco V

Entrada Marco V

0x0

0x0

...

...

0x10

0x30

0x10

0x30

0x11

0x31

0x11

0x31

0x12

0x32

0x12

0x32

0x13

0x33

0x13

0x33

0x14

0x14

...

...

0xA0

0xA1

0xA1

...

...

0xFFF

0x1000

0x1000

...

...

0xA0

0xFFF

0x28

0xF

0x10

0xFF

3. Clculo de la fragmentacin
La fragmentacin interna se debe al espacio asignado a un proceso y que ste no utiliza. Por
lo tanto, para la regin de cdigo de P1 y P2, con un tamao de pgina de 64 KB hay asignados
64 KB * 4 marcos = 0x40000. De ellos, el cdigo ocupa 0x38fa0, por lo que se desaprovechan
0x7060 bytes. Del mismo modo, con los datos de P1 se desaprovechan 0x10000 - 0x4f00 =
0xB100 y con los de P2 0x10000 - 0x8ac4 = 0x753C. Puesto que no se conoce la zona de la pila
realmente utilizada (sera necesario conocer el puntero de pila de los procesos), no ser tenida
en cuenta y, por lo tanto, la fragmentacin interna ser 0x7060 + 0xB100 + 0x753C = 0x1969C
bytes. (Ntese que slo hay una copia del cdigo en memoria fsica, por lo que slo se produce
la fragmentacin una vez).
Tambin se podra considerar como fragmentacin interna el espacio ocupado por las tablas
de pginas del proceso. Utilizando el registro lmite de la tabla de pginas, sera posible utilizar
nicamente 0x1000 entradas por proceso (de la 0x0 a la 0xFFF). Si cada entrada ocupase 32
bits, que es el ancho de palabra del procesador, el espacio ocupado por cada tabla sera sera
0x20 * 0x1000 = 0x20000, es decir, dos marcos de pgina.
Finalmente, la fragmentacin externa no existe con la paginacin, ya que cualquier marco de
pgina puede ser utilizado para almacenar cualquier pgina.
Problema 26.
Un sistema que utiliza el algoritmo del reloj para seleccionar las pginas a ser reemplazadas se
halla en el estado que muestra la tabla cuando se produce el primer fallo de pgina. Sabiendo que
el algoritmo tiene en cuenta el bit de modificado, qu pginas seran reemplazadas durante el
29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

12 de 25

SSOO

Problemas de administracin de memoria

tratamiento del fallo de pgina indicado y de los dos siguientes? (Suponer que cuando se produce
el 2 fallo de pgina la primera pgina ha sido accedida, pero no modificada; que cuando se
produce el 3er fallo la segunda pgina ha sido modificada y que ninguna otra pgina es accedida
ni modificada en esos intervalos de tiempo).
Marco de pg.

Nmero de pg.

23

12

183

23223

32

64

90

8388

982

ltima

Respuesta
Cuando se produce el primer fallo de pgina se inicia el primer recorrido del algoritmo del
reloj, que busca pginas que no hayan sido accedidas ni modificadas (A=0, M=0). La bsqueda
se inicia en el marco 4, pues el ltimo reemplazo se haba realizado en el marco 3. La primera
pgina en este estado es la 8388, que reside en el marco 8, por lo que es reemplazada. Al cargar
la nueva pgina se ponen ambos bits (A y M) a 0, pues la nueva pgina no ha sido accedida ni
modificada todava.
Mientras se ejecutan los procesos hasta que se produce el segundo fallo de pgina, el
enunciado especifica que la nica pgina accedida es la que se acaba de cargar (la que reside
en el marco 8) y que es accedida, pero no modificada. Por lo tanto, cuando se produce el 2
fallo de pgina, el estado del sistema es el etiquetado como A2 (antes del 2 reemplazo). En este
caso, el primer recorrido buscando A= 0 y M=0 finaliza sin xito. Por lo tanto, se inicia un
nuevo barrido buscando pginas con A=0 y poniendo a 0 los bits de aqullas que lo tienen a 1.
La primera pgina que tiene este A a 0 es la que est en el marco 5 y, por lo tanto, es
reemplazada. Tras cargar la nueva pgina y poner sus bits a 0, el estado es el etiquetado como
D2 (despus del 2 reemplazo).
Cuando se produce el tercer fallo de pgina, la nica modificacin con respecto a D2 es que
la pgina reemplazada (marco 5) ha sido accedida y modificada, tal y como se muestra en A3.
Se inicia la bsqueda en el marco 5 de pginas con estado A=0 y M=0, encontrndose en
primer lugar la pgina alojada en el marco 9, que es reemplada.
A2

D2

A3

Marco Pg. A M

Marco Pg. A M

Marco Pg. A M

1 0

0 0

0 0

1 1

0 1

0 1

1 1

0 1

0 1

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

13 de 25

SSOO

Problemas de administracin de memoria

A2

D2

A3

1 1

0 1

0 1

1 0

0 0

0 0

0 1

0 0 lt

1 1 lt

0 1

0 1

0 1

0 1

0 1

0 1

1 0 lt.

1 0

1 0

1 0

0 0

0 0

Problema 27.
Cul debera ser la tasa de aciertos del TLB de un sistema que utiliza paginacin para que el
tiempo efectivo de acceso a memoria fuera solamente un 1% peor que el tiempo de acceso a
memoria con la paginacin desactivada, que es de 4 ns?
DATO: el tiempo de acceso al TLB es de 0'1 ns.

Respuesta
El tiempo efectivo de acceso a memoria cuando la paginacin est activada se puede
calcular mediante la siguiente frmula:
t eam =T A t TLB t m 1T A t TLB 2t m
donde team es el tiempo efectivo de acceso a memoria, TA es la tasa de aciertos del TLB, tTLB
es el tiempo de acceso al TLB y tm es el tiempo de acceso a memoria con la paginacin
desactivada. El enunciado del problema pregunta por la tasa de aciertos del TLB, dando como
datos las otras variables de la ecuacin, por lo que simplemente hay que sustituir, teniendo en
cuenta que el tiempo efectivo de acceso a memoria debera ser 1 % peor que el tiempo de acceso
a memoria, que es de 4 ns, por lo que deber ser de 4 ns (1 + 0,01) = 4,04 ns.
Sustituyendo y despejando el valor de la tasa de aciertos se obtiene una tasa de 1,015.
Lgicamente, la tasa de aciertos no puede ser mayor que uno, por lo que hay que concluir que
sera imposible conseguir un tiempo efectivo de acceso a memoria tan bajo cuando el tiempo de
acceso al TLB es tan parecido al tiempo de acceso a memoria.
Problema 28.
Un sistema multiprogramado tiene en memoria principal dos procesos (P1 y P2), tal y como
muestra la ilustracin 1.
0xA2000
Datos de P1

Cdigo P1 y P2
(compartido, slo lectura)

0x1000
0x8800
Ilustracin 1. (El dibujo no est a escala).

Pila de P2
0xA0000

0xAB000
Pila de P1
0xA8000

Datos de P2
0xB4000

0xBC000

1. Qu modelo de gestin de memoria est utilizando el sistema, segmentacin o


paginacin? Justificar la respuesta teniendo en cuenta que el procesador soporta ambos
mtodos de gestin y que en el caso del modelo paginado el tamao de pgina es de 4 KB.
2. Construir las estructuras de datos apropiadas (tablas de pginas o tablas de segmentos, en
funcin del mtodo de gestin utilizado) para que ambos procesos puedan utilizar las
siguientes direcciones lgicas.

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

14 de 25

SSOO

Problemas de administracin de memoria

Para la segmentacin: el cdigo utiliza el segmento 0, los datos el segmento 1 y la pila el


segmento 2.
Para la paginacin: el cdigo comienza en la direccin 0x1000, los datos en la 0x80000 y
la pila en la 0x1000000.

Respuesta
1. Segmentacin. El motivo es que la regin de cdigo comienza en la direccin 0x8800,
justo a continuacin de la regin de datos de P1. Utilizando paginacin sera imposible
permitir el acceso de P2 al comienzo del cdigo e impedir que accediese al final de los
datos de P1, ya que ambas regionen comparten el marco de pgina que comienza en la
direccin 0x8000. En cambio, utilizando segmentacin no surge ningn problema, ya que
los segmentos pueden comenzar en cualquier direccin fsica y tener la longitud
apropiada, tal y como se ver en la segunda parte.
2. Las estructuras de datos se muestran en las tablas 23 y 24. A modo de ejemplo, la entrada
0 de la tabla de segmentos de P1 debera contener como base la direccin 0x8800, que es
donde comienza la zoona de cdigo. Como lmite debe tener 0xA0000 0x8800 =
0x97800, que es el tamao de dicha zona. Finalmente, para permitir la ejecucin y la
lectura, los bits LEJ (Lectura, Escritura y eJecucin) deberan contener los valores 101,
respectivamente.
Segmen
to

Base

Lmite

LEJ

0x8800

0x97800

101

0x1000

0x7800

0xAB000

0x9000

Base

Lmite

0x8800

0x97800

101

110

0xB4000

0x8000

110

110

0xA2000

0x6000

110

Tabla 23: Tabla de segmentos del proceso P1.

Segmen
to

LEJ

Tabla 24: Tabla de segmentos del proceso P2.

Problema 29.
Un sistema utiliza tablas de pginas de dos niveles y, en un instante de su ejecucin, las tablas
de pginas del proceso P1 son las que aparecen a continuacin. Sabiendo que cada pgina ocupa
4 KB, que las entradas blancas de las tablas de pginas de segundo nivel apuntan a pginas de
cdigo, que las grises a datos, que las oscuras a la pila y que las entradas que no aparecen en las
tablas tienen el bit de vlido (V) a 0,
1. cul sera el espacio lgico de direcciones de P1?
2. en qu marcos de pgina estaran alojados los datos?
3. en qu direccin fsica estara alojada la direccin lgica 0x400301?
Marco

Marco

0 0x3A108 1

0 0x00333 1

1 0x00A10 1

1 0x00311 1

... ...

... ...

0x3FF 0xA0000 1

Tabla 26: TdP de 2 nivel


alojada en el marco
0x00A10

Tabla 25: tabla de pginas


(TdP) de primer nivel

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

15 de 25

SSOO

Problemas de administracin de memoria

Marco

0 0x00333 0

Marco
... ...

V
0

1 0x88A00 1

0x3FE 0xD30B2 1

2 0x000BF 1

0x3FF 0xD30B0 1

3 0x00001 1

Tabla 28: TdP de 2 nivel


alojada en el marco
0xa0000

4 0x54A12 1
... ...

0x3FD 0x01BA0 1
0x3FE 0x110B2 1
0x3FF 0x110B3 1
Tabla 27: TdP de 2 nivel
alojada en el marco
0x3A108

Respuesta
1. Cdigo: dado que el enunciado indica que las entradas de segundo nivel que apuntan a
marcos que contienen cdigo son las que aparecen en blanco, stas son las entradas de la 0 a
la 4, ambas inclusive (que la entrada 0 tenga el bit de vlido a 0 simplemente indica que la
pgina no est en memoria principal).
Qu direcciones lgicas se corresponden con estas entradas? Teniendo en cuenta que la
tabla de pginas (TdP) que las contiene se halla alojada en el marco 0x3a108, la entrada en
la TdP de 1er nivel que hace referencia a ella ser la 0. Por lo tanto, la primera pgina de
cdigo tendr como ndice de 1er nivel 0 y como ndice de 2 nivel 0 tambin, con lo que se
extender en el rango de direcciones lgicas que va de la 0x00000000 a la 0x00000fff. 4 El
resto de pginas vienen a continuacin, cambiando el ndice de segundo nivel por 1, 2...; por
lo tanto, el rango de direcciones lgicas ocupado por el cdigo es: 0x00000000-0x00004fff.
Datos: Siguiendo el mismo razonamiento para las entradas de datos de la TdP alojada en el
marco 0x3a108, tendramos el rango entre 0x003fd000 y 0x003ffffff.
Dado que la zona de datos tambin incluye las 2 primeras entradas de la TdP alojada en el
marco 0x00a10 y teniendo en cuenta que la entrada en la TdP de primer nivel que apunta
hacia ella es la 1, tendramos que estas pginas se corresponderan con las direcciones
lgicas que empezaran en la direccin 0000 0000 0100 0000 0000 0000 0000 0000 binaria, 5
es decir, en la 0x00400000 y que llegaran hasta la 0x00401fff.
Por tanto, el rango completo de la zona de datos es: 0x003fd000-0x00401fff.
Pila: para las dos pginas de la pila, el ndice de primer nivel ser 0x3ff (es esta entrada la
que apunta a la TdP alojada en el marco 0xa0000) y sus ndices de segundo nivel sern 0x3fe
y 0x3ff, respectivamente. Por lo tanto, el rango de direcciones lgicas ser 0xffffe0000xffffffff.
Resumiendo, el espacio lgico ser:
Cdigo: 0x00000000-0x00004fff
Datos: 0x003fd000-0x00401fff
Pila:
0xffffe000-0xffffffff
Claramente las direcciones lgicas son de 32 bits, pues hay 0x400 (210)entradas en cada TdP, lo cual significa
10 bits para el ndice de primer nivel, 10 bits para el de segundo y, puesto que en el enunciado se indica que el
tamao de pgina es 4 KB (212), 12 bits para el desplazamiento, 10+10+12=32 bits en total.
5
ndice de primer nivel = 1, ndice de primer nivel para la primera pgina = 0.
4

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

16 de 25

SSOO

Problemas de administracin de memoria

2. Teniendo en cuenta que las entradas en las tablas de pginas de segundo nivel contienen
directamente el nmero de marco de pgina en el que se halla alojada la pgina
correspondiente, los marcos de pgina seran: 0x0a1ba0, 0x110b2, 0x110b3, 0x00333 y
0x00311.
3. La direccin lgica 0x00400301 es, en binario, 0000 0000 0100 0000 0000 0011 0000 0001.
Los 10 bits ms significativos son 00 0000 0001, por lo que la entrada en la TdP de primer
nivel ser la 1. Los siguientes 10 bits son ceros, por lo que el ndice en la TdP de segundo
nivel ser el 0. Por lo tanto, para hallar la direccin fsica se utilizar la entrada 0 de la TdP
a la que apunte la entrada 1 de la TdP de primer nivel, que es la alojada en el marco
0x00a10. La entrada 0 de esta TdP contiene el nmero de marco 0x00333, por lo que la
direccin fsica ser 0x00333301, ya que los 12 bits menos significativos de la direccin
fsica son los 12 bits de desplazamiento de la direccin lgica, que no sufren modificacin
alguna.
Problema 30.
Un sistema multiprogramado tiene en memoria principal dos procesos (P1 y P2), tal y como
muestra el dibujo 1.
0xD000
Datos P2 Cdigo P1 y P2
(0-0xFFF)
(slo lectura)

Datos P2
(0x10000x3FFF)

Pila de P1

0x1E000
Datos P1

Pila P2

0x1000
0x2000
0x8000
0xB000
0x10000
0x20000
0x24000
Dibujo 1. El grfico no est a escala. Los valores numricos entre parntesis indican desplazamientos relativos
al comienzo de la seccin.

1. Qu modelo de gestin de memoria est utilizando el sistema, segmentacin o


paginacin? Justificar la respuesta teniendo en cuenta que el procesador soporta ambos
mtodos de gestin y que en el caso del modelo paginado el tamao de pgina es de 4 KB.
2. Construir las estructuras de datos apropiadas (tablas de pginas o tablas de segmentos, en
funcin del mtodo de gestin utilizado) para que ambos procesos puedan utilizar las
siguientes direcciones lgicas:
Para la segmentacin: el cdigo utiliza el segmento 0, los datos el segmento 1 y la pila
el segmento 2.
Para la paginacin: el cdigo comienza en la direccin lgica 0x1000, los datos en la
0x80000 y la pila en la 0x1000000.

Respuesta
1. Paginacin. Efectivamente, puesto que la zona de datos de P2 est dividida en dos zonas de
memoria fsica separadas y el enunciado especifica que debe ocupar un solo segmento, no es
posible utilizar segmentacin. Sin embargo, todas las direcciones tanto fsicas como lgicas
estn alineadas al tamao de pgina, que es 0x1000 bytes (4 KB).
2. Dado que el proceso de construccin de las tablas de pginas es repetitivo, se ilustrar el
proceso con la zona de cdigo de P1. Las direcciones lgicas de la seccin de cdigo
comienzan en la direccin 0x1000. Dado que el tamao de pgina es 4 KB (es decir 2 12), el
desplazamiento estar formado por los 12 bits menos significativos. Por lo tanto, el nmero
de la primera pgina de cdigo ser el 1. Dicha pgina estar almacenada en el marco 2
(aplicando el mismo proceso a la direccin fsica de comienzo de la zona de cdigo, 0x2000).
El cdigo ocupa desde la direccin 0x2000 a la 0x7fff, es decir, 6 marcos de pgina, del 2 al
7 (ambos inclusive). Por tanto, la seccin de cdigo estar formada por las pginas 1 a 6

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

17 de 25

SSOO

Problemas de administracin de memoria

(ambas inclusive). Con esta informacin es posible rellenar la primera parte de la tabla de
pgina de P1.
Siguiendo este mismo proceso con las dems secciones tanto de P1 como de P2, el resultado
es el que se muestra a continuacin, donde se ha establecido permiso de lectura y ejecucin
para el cdigo y de lectura y escritura para los datos y la pila, tanto de P1 como de P2. El
nico caso excepcional es la seccin de datos de P2, que est alojada en los marcos 1, 8, 9 y
A, en este orden.
P1

Marco

P2

Marco

...

...

80

1e

80

81

1f

81

82

82

83

83

84

84

...
1000

1000

20

1001

1001

21

1002

1002

22

1003

23

Problema 31.
El proceso P se est ejecutando en un sistema que utiliza tablas de pginas de dos niveles para
la gestin de memoria. En un momento determinado, slo algunas de sus pginas estn cargadas
en memoria principal y el contenido de sus tablas de pginas es el que se muestra a continuacin.
Las entradas relevantes de las tablas de pginas (TdP) de segundo nivel han sido etiquetadas con
C, D y P para indicar que la pgina es de cdigo, datos y pila, respectivamente. Sabiendo que el
tamao de pgina es de 4 KB, responder a las siguientes preguntas:
1. Cul es su espacio lgico de direcciones? (1 punto)
2. En qu direcciones fsicas estn alojadas las pginas cargadas en memoria principal?
(0,25 puntos)
3. Da dos ejemplos de direcciones lgicas correctas. Una que genere un fallo de pgina y
otra que no (en este segundo caso, justifica cul sera la direccin fsica a la que se
accedera). (0,25 puntos)

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

18 de 25

SSOO

Problemas de administracin de memoria

TdP de 2 nivel
(alojada a partir de la
direccin fsica 0x2000)

TdP de 1er nivel


marco
pg.

de V R W X

marco
pg.

de V

R W X

000F4

1 0 1

00002

00000

00004

1 0 1

00000

00003

1 0 1

00000

00001

1 0 1

0000A

0000A

1 0 1

0000B

00005

1 1 0

00000

00004

1 1 0

00003

1 1 0

00000

0 0 0

0 0 0

...
...
3F
F

00000

...
0

3F
F

00000

TdP de 2 nivel

TdP de 2 nivel

(alojada a partir de la
direccin fsica 0xA000)

(alojada a partir de la
direccin fsica 0xB000)

marco
pg.

de V R W X

00000

0 0 0 0

00000

0 0 0 0

00000

0 0 0 0

marco
pg.

de V

R W X

0000F

1 1 0

0000E

1 1 0

00000

0 0 0

...

...

3F
E

00000

0 0 0 0

3F
F

0000D

1 1 1 0

3F
E

00000

0 0 0

3F
F

00000

0 0 0

Respuesta
1. Comenzando por la regin de cdigo, se puede observar que a la primera pgina de la
regin se accede utilizando la entrada 1 de la TdP de 2 nivel alojada en el marco 2, as
que el ndice de 2 nivel de la direccin lgica ser 1. Tambin se puede observar que la
entrada en la TdP de primer nivel que apunta a esta tabla es la 0, as que el ndice de
primer nivel ser 0. Como cada TdP dispone de 0x400 entradas (0 a 0x3FF), esto
implica que el procesador utilizar los 10 bits (0x400 es 210) ms significativos de la
direccin lgica como ndice de primer nivel y los 10 bits siguientes como ndice de 2
nivel. El resto de la direccin lgica ser el desplazamiento, que ser de 12 bits, ya que
el tamao de pgina es 4 KB, tal y como dice el enunciado (4 KB es 2 2210, es decir, 212)
Por lo tanto, la primera direccin lgica de cdigo ser la siguiente:
29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

19 de 25

SSOO

Problemas de administracin de memoria

En binario:
0000 0000 0000 0000 0001 0000 0000 0000
En hexadecimal: 0x00001000
Aplicando el mismo procedimiento al resto de las pginas de cdigo, se puede ver cmo
el nico cambio es que los ndices de segundo nivel sern 2, 3 y 4, respectivamente. Por
lo tanto, esta regin incluir el rango de direcciones lgicas entre la 0x00001000 y la
0x00004FFF.
Repitiendo el mismo procedimiento para las regiones de datos y pila, se obtiene que el
espacio de direcciones lgico del proceso es:
Cdigo: 0x00001000 0x00004FFF
Datos: 0x00005000 0x00007FFF
Pila:
0x013FF000 0x01401FFF
(Para calcular la direccin de la primera pgina de pila basta con darse cuenta de que
el ndice de primer nivel ser 4 y el de segundo 0x3FF, por lo que la direccin lgica de
inicio ser 0000 0001 0011 1111 1111 0000 0000 0000 en binario y, lgicamente,
0x013FF000 en hexadecimal. Igualmente, para la segunda pgina basta con observar
que el ndice de primer nivel es 5 y el de segundo 0, por lo que la direccin lgica de
inicio es 0000 0001 0100 0000 0000 0000 0000 0000 en binario y 0x01400000 en
hexadecimal. Finalmente, la tercera y ltima pgina slo se diferencia de la anterior en
el ndice de segundo nivel, que ser 1, por lo que la direccin lgica de inicio ser 0000
0001 0100 0000 0001 0000 0000 0000 en binario y 0x01401000 en hexadecimal).
2. Las pginas cargadas en memoria principal son accesibles mediante las entradas en las
TdPs de 2 nivel que tienen el bit de vlido a 1. Su rango de direcciones fsicas sern los
que establezcan el marco de pgina contenido en la entrada correspondiente de la TdP
de 2 nivel y por los diferentes valores del desplazamiento, que pueden ir desde 0x000 a
0xFFF. Por tanto, la pgina alojada en la entrada 2 de la TdP alojada en el marco 2,
estar alojada el marco 3 y, por tanto, en el rango de direcciones fsicas que van de la
0x00003000 a la 0x00003FFF.
Repitiendo el procedimiento con el resto de las pginas se obtiene la lista completa:
TdP alojada en el marco 2:
entrada 2: 0x00003000 0x00003FFF
entrada 3: 0x00001000 0x00001FFF
entrada 5: 0x00005000 0x00005FFF
entrada 6: 0x00004000 0x00004FFF
TdP alojada en el marco 0xA:
entrada 0x3FF: 0x0000D000 0x0000DFFF
TdP alojada en el marco 0xB:
entrada 0: 0x0000F000 0x0000FFFF
entrada 1: 0x0000E000 0x0000EFFF
3. La direccin lgica 0x00001000 es un ejemplo de direccin vlida correcta que
generara un fallo de pgina, ya que en el apartado 1 se explica cmo el procesador
accedera a la entrada 1 de la TdP de 2 nivel alojada en el marco 2 y esta entrada tiene
el bit V a 0.
La direccin lgica 0x00002000 es un ejemplo de direccin vlida correcta que no
generara un fallo de pgina, ya que en el apartado 1 se explica cmo el procesador
accedera a la entrada 2 de la TdP de 2 nivel alojada en el marco 2 y esta entrada tiene
el bit V a 1. Tal y como se explica en el apartado 2, la direccin fsica que se generara
sera la 0x00003000.
Problema 32.
El espacio de direcciones lgico del proceso P, que todava no tiene asignado ningn marco de
pgina, debe ser el que se describe a continuacin:
29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

20 de 25

SSOO

Problemas de administracin de memoria

Direcciones lgicas

Descripcin

0x000010000x00004EF0

Cdigo

0x000050000x0000B001

Datos

0x005000000x00505555

Regin adicional de datos

0x7FFFC0000x7FFFFFFF

Pila

Suponiendo que la lista de marcos libres incluye los marcos del 0x4F8 al 0x1000, en ese
orden, que el tamao de pgina es 4 KB, que el sistema utiliza tablas de pginas de dos niveles
con 1024 entradas en cada nivel, y suponiendo que se desea que todo el espacio de direcciones de
P est en memoria principal, mostrar los siguientes elementos:
1. (0, 75 puntos) Las tablas de pginas de P.
2. (0, 50 puntos) Las direcciones de memoria fsica utilizadas por cada una de las regiones
de P (cdigo, datos, regin adicional de datos, pila).

Respuesta
1. Suponiendo que el sistema operativo comienza por asignar espacio para la tabla de
pginas de primer nivel, sta ocupara el marco 0x4F8.
Si ahora comenzara por la seccin de cdigo, observara que necesita de 4 marcos de
pgina, ya que la seccin ocupa 0x3EF0 bytes. Si ahora va llenando pgina a pgina,
la que contendra las direcciones 0x1000 a 0x1FFF se alojara en el marco 0x4F9.
La direccin lgica de esta pgina (0x00001000) sera dividida por el procesador en
tres partes: ndice de primer nivel, ndice de segundo nivel y desplazamiento. Ambos
ndices constan de 10 bits, ya que se especifica que cada tabla tiene 1024 (210) entradas.
El desplazamiento constar de 12 bits, ya que el tamao de pgina es de 4 KB (2 12). Por
lo tanto, la direccin 0x00001000, que en binario es 0000 0000 0000 0000
0001 0000 0000 0000 dara un ndice de primer nivel igual a 0 y un ndice de
segundo nivel igual 1. Por lo tanto, el SO debera rellenar la entrada 0 de la tabla de
pginas de primer nivel y la entrada 1 de la de segundo. Como la entrada 0 de la TdP de
primer nivel todava no apunta a ninguna TdP de segundo, ser necesario crear una, que
se alojar en el marco 0x4FA.
Teniendo en cuenta que la entrada de la TdP de primer nivel debe apuntar a la TdP de
segundo (que est alojada en el marco 0x4FA) y que la entrada en la TdP de segundo
debe apuntar a la primera pgina de cdigo (que est alojada en el marco 0x4F9), la
situacin tras cargar la primera pgina de cdigo en memoria y aadir la entrada en la
TdP, la situacin podra ser la siguiente:
TdP de 1er nivel

TdP de 2 nivel

(alojada en la d.f. 0x4F8000)

marco
pg.

(alojada en la d.f. 0x4fa000)

de V R W X

marco
pg.

de V

R W X

004FA

00000

0 0 0

00000

004F9

1 0 1

00000

00000

0 0 0

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

21 de 25

SSOO

Problemas de administracin de memoria

TdP de 1er nivel

TdP de 2 nivel

(alojada en la d.f. 0x4F8000)

(alojada en la d.f. 0x4fa000)

...
3F
F

...

00000

3F
F

00000

0 0 0

Siguiendo el mismo proceso, las 3 pginas restantes del cdigo seran alojadas en los
marcos 0x4FB, 0x4FC y 0x4FD. Estas pginas tendran todas ndice de primer nivel 0
y de segundo nivel 2, 3 y 4, respectivamente, por lo que el resultado sera el siguiente:
TdP de 1er nivel

TdP de 2 nivel

(alojada en la d.f. 0x4F8000)

(alojada en la d.f. 0x4FA000)

marco
pg.

de V R W X

marco
pg.

de V

R W X

004FA

00000

0 0 0

00000

004F9

1 0 1

00000

004FB

1 0 1

004FC

1 1 0 1

004FD

1 1 0 1

00000

0 0 0 0

...

...
3F
F

...

00000

3F
F

00000

0 0 0

Siguiendo el mismo procedimiento para las dems secciones, el resultado final podra
ser el siguiente:
TdP de 1er nivel

TdP de 2 nivel

(alojada en la d.f. 0x4F8000)

(alojada en la d.f. 0x4FA000)

marco
pg.

de V R W X

marco
pg.

de V

R W X

004FA

00000

0 0 0

00506

004F9

1 0 1

00000

004FB

1 0 1

...

...

004FC

1 1 0 1

004FD

1 1 0 1

004FE

1 1 1 0

004FF

1 1 1 0

1FE

00000

00500

1 1 1 0

1FF

0050D

00501

1 1 1 0

200

00000

00502

1 1 1 0

00503

1 1 1 0

00504

1 1 1 0

...

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

22 de 25

SSOO

Problemas de administracin de memoria

TdP de 1er nivel

TdP de 2 nivel

(alojada en la d.f. 0x4F8000)

(alojada en la d.f. 0x4FA000)


C

...

3F
F

00000

00000

0 0 0 0

...
0

3F
F

00000

0 0 0

TdP de 2 nivel

TdP de 2 nivel

(alojada en la d.f. 0x506000)

(alojada en la d.f. 0x50D000)

marco
pg.
0

00000

de V R W X
0

...

marco
pg.

de V

R W X

00000

0 0 0

...

0FF

00000

100

00505

1 1 1 0

101

00507

1 1 1 0

102

00508

1 1 1 0

103

00509

1 1 1 0

104

0050A

1 1 1 0

3FB

00000

105

0050B

1 1 1 0

3FC

0050C

1 1 1 0

106

00000

3FD

0050E

1 1 1 0

3FE

0050F

1 1 1 0

3FF

00000

1 1 1 0

...
3FF

00000

...

2. Una vez rellenas las tablas de pginas, las direcciones fsicas se obtienen aadiendo el
desplazamiento a los marcos de pgina especificados por las tablas de pginas de
segundo nivel. Por ejemplo, la seccin de cdigo ocupa los marcos 0x4F9 y del 0x4FB
al 0x4FD, por lo que ocupara las direcciones fsicas de la 0x4F9000 a la 0x4F9FFF
y de la 0x4FB000 a la 0x4FDEF0 (aunque tendra asignada hasta la 0x4FDFFF).
De forma similar, la seccin de datos ocupara de la direccin 0x4FE000 a la
0x504001, la seccin adicional de datos de la 0x505000 a la 0x505FFF y de la
0x507000 a la 0x50B555; y la seccin de pila de la 0x50C000 a la 0x50CFFF y
de la 0x50E000 a la 0x50FFFF.
Problema 33.
Un sistema multiprogramado tiene en memoria principal dos procesos (P1 y P2), tal y como
muestra el dibujo 2.
0xD000
Datos P1 Cdigo P1 y P2
(0-0xFFF)
(slo lectura)

Datos P1
(0x10000x3FFF)

Pila de P1

0x1E000
Datos P2

Pila P2

0x1000
0x2000
0x8000
0xB000
0x10000
0x20000
0x24000
Dibujo 2. El grfico no est a escala. Los valores numricos entre parntesis indican desplazamientos relativos
al comienzo de la seccin.

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

23 de 25

SSOO

Problemas de administracin de memoria

1. (0'5 puntos) Qu modelo de gestin de memoria est utilizando el sistema, segmentacin


o paginacin? Justificar la respuesta teniendo en cuenta que el procesador soporta ambos
mtodos de gestin y que en el caso del modelo paginado el tamao de pgina es de 4
KB.
2. (1'25 puntos) Construir las estructuras de datos apropiadas (tablas de pginas o tablas de
segmentos, en funcin del mtodo de gestin utilizado) para que ambos procesos puedan
utilizar las siguientes direcciones lgicas:

Para la segmentacin: el cdigo utiliza el segmento 0, los datos el segmento 1 y la


pila el segmento 2.

Para la paginacin: el cdigo comienza en la direccin lgica 0x1000, los datos en la


0x80000 y la pila en la 0x1000000.

Respuesta
1. El sistema solamente puede estar utilizando paginacin. En efecto, puede ser paginacin
porque todas regiones estn alineadas en direcciones que son mltiplos del tamao de
pgina (4 KB = 0x1000 bytes). No puede ser segmentacin, ya que la regin de datos de
P1 est dividida en dos zonas disjuntas de memoria fsica.
2. Un tamao de pgina de 4 KB (212 bytes) supone 12 bits de desplazamiento. Por lo tanto,
el cdigo comenzar en la pgina 1 (direccin lgica 0x1000) y ocupar tambin las
pginas 2 a la 6, puesto que ocupa 6 marcos de pgina (del 2 al 7). De forma similar, la
seccin de datos ocupar las pginas 80 a 83 en el caso de P1 (marcos 1, 8, 9 y A) y las
pginas 80 y 81 en el de P2 (marcos 1E y 1F). Aplicando el mismo procedimiento para
las pilas de los procesos,6 se obtienen las siguientes tablas de pginas.
TdP de P1
marco
0

TdP de P2
V R W X

marco

R W X

00000

0 0 0

00002

1 1 0 1

00002

1 0 1

00003

1 1 0 1

00003

1 0 1

00004

1 1 0 1

00004

1 0 1

00005

1 1 0 1

00005

1 0 1

00006

1 1 0 1

00006

1 0 1

00007

1 1 0 1

00007

1 0 1

7
...

0
...

80

00001

1 1 1 0

80

0001E

1 1 0

81

00008

1 1 1 0

81

0001F

1 1 0

82

00009

1 1 1 0

82

83

0000A

1 1 1 0

84

0
...

0
...
0FFC 00023

1 1 0

Suponiendo que las pilas crecen hacia abajo.

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

24 de 25

SSOO

Problemas de administracin de memoria

TdP de P1

TdP de P2

0FFD 0000F

1 1 1 0

0FFD 00022

1 1 0

0FFE 0000E

1 1 1 0

0FFE 00021

1 1 0

0FFF 0000D

1 1 1 0

0FFF 00020

1 1 0

29 de enero de 2016

Rafael Martnez y Carlos Prez


Departamento de Informtica UVEG

25 de 25

Anda mungkin juga menyukai