Ejercicios01v 2013
Ejercicios01v 2013
Ejercicios01v 2013
Ejercicio 1
Sea un sistema con gestión de memoria segmentada y capacidad máxima de direcciona-
miento, virtual y real, de 4 GB. El número de segmento se indica con 16 bits.
1. ¿Cuál ese tamaño de una dirección virtual? ¿Y de una dirección física en memoria
principal?
SOLUCIÓN:
4. El tamaño máximo de segmento vendrá dado por el desplazamiento que se pueda rea-
lizar dentro de este. Con los 16 bits del campo desplazamiento, podemos desplazarnos
entre 216 posiciones de memoria.
Si estas posiciones son de tamaño byte, el tamaño máximo de un segmento es de 64
Kbytes.
1
Sistemas Operativos Avanzados Ejercicios del tema 1: Gestión de memoria
5. Una entrada en la tabla de segmentos está formada por un campo base, que identifica
la posición en memoria principal donde comienza a almacenarse un segmento, y un
campo límite, que indica el tamaño de dicho segmento.
Por tanto, la base de un segmento identificará una dirección de memoria principal,
con 32 bits. Y el límite tendrá tantas líneas como pueda requerir un segmento de
tamaño máximo, 16 bits.
El formato de una entrada en la tabla de segmentos es: Base (32 bits) | Límite (16
bits).
Ejercicio 2
Sea un sistema con gestión de memoria segmentada y capacidad máxima de direcciona-
miento, virtual y real, de 16 MB. El número de segmento se indica con 8 bits.
SOLUCIÓN:
Ejercicio 3
Sea un sistema con gestión de memoria paginada. La capacidad máxima de direcciona-
miento virtual es de 4 GB y la memoria principal es de 256 MB. El desplazamiento dentro
de una página y de un marco se realiza con 12 bits.
6. Según la solución del apartado anterior, diseñe una arquitectura para el nuevo sistema
de gestión de memoria. Respete el tamaño del campo desplazamiento.
SOLUCIÓN:
1. En ambos casos el campo desplazamiento es de 12 bits, con los que se pueden direc-
cionar 212 posiciones de memoria = 4 KB, suponiendo direccionamiento a nivel de
byte.
3. El número máximo de páginas que puede tener un proceso vendrá dado por la capa-
cidad de direccionamiento del campo P de una dirección virtual. Con 20 bits pueden
identificarse 220 páginas.
Por tanto el número máximo de páginas que puede tener un proceso es 1 Mpáginas.
4. La tabla de páginas contiene los marcos de memoria principal, 16 bits, que identifican
la parte alta de una dirección de memoria.
El formato de una entrada en la tabla de páginas consta al menos del campo Marco
(16 bits).
Ejercicio 4
En el sistema del Ejercicio 1 se ejecuta el proceso P1. La unidad de gestión de memoria
utiliza la tabla de segmentos mostrada en la tabla 1, donde se referencia para cada segmento
de memoria virtual, la dirección de inicio en memoria principal y el límite de cada segmento.
1. Dibuje el mapa del espacio de direccionamiento virtual y físico del proceso P1.
a) 0x0004 0202
b) 0x0004 D898
c) 0x0003 000A
d ) 0x0000 0509
e) 0x0001 06FF
f ) 0x0002 0701
g) 0x0005 0001
SOLUCIÓN:
3. a) 0x0004 0202
Segmento: 0x4 < RLTS: 0x5.
La base del segmento es: 0x0301 0000 y el límite 0xC000.
Ejercicio 5
Siguiendo la arquitectura de la memoria virtual planteada en el ejercicio 3, se rediseña la
tabla del mapa de páginas (TMP) añadiendo un conjunto de bits que indican, si dicha pá-
gina está presente en memoria (bit P), si ha sido modificada (bit M), si ha sido referenciada
(R), si es compartida con otro proceso (bit S), si es de lectura (bit R), si es de escritura
(bit W) o si es de ejecutable (X).
1. ¿Qué páginas de memoria virtual están ubicadas en marcos de memoria física? ¿Cuál
es la correspondencia?
a) 0x0000 0202
b) 0x0000 2898
c) 0x0000 500A
d ) 0x0000 7509
e) 0x0000 66FF
f ) 0x0000 8701
SOLUCIÓN:
1. En memoria principal están ubicadas las páginas cuyo bit de presencia es 1. Estas
son, la página 2 ubicada en el marco 0x0007, la página 4 ubicada en el marco 0x0006
y la página 7 ubicada en el marco 0x000A.
2. a) 0x0000 0202
Página: 0x0 < RLTP: 0x8 es FALSO.
La entrada 0 de la tabla de páginas tiene el bit P (presencia) = 0.
Se genera una excepción, fallo de página, ya que la página referenciada no se
encuentra ubicada en ningún marco de memoria principal.
b) 0x0000 2898
Página: 0x2 < RLTP: 0x8.
La entrada 2 de la tabla de páginas tiene el bit P (presencia) = 1. El marco de
página es: 0x0007.
Desplazamiento: 0x898.
Se concatena el marco de página con el desplazamiento para obtener la dirección
en memoria principal: 0x000 7898.
c) 0x0000 500A
Página: 0x5 < RLTP: 0x8.
La entrada 5 de la tabla de páginas tiene el bit P (presencia) = 1. El marco de
página es: 0x0006.
Desplazamiento: 0x00A.
Se concatena el marco de página con el desplazamiento para obtener la dirección
en memoria principal: 0x000 600A.
d ) 0x0000 7509
Página: 0x7 < RLTP: 0x8.
La entrada 7 de la tabla de páginas tiene el bit P (presencia) = 1. El marco de
página es: 0x000A.
Desplazamiento: 0x509.
Se concatena el marco de página con el desplazamiento para obtener la dirección
en memoria principal: 0x000 A509.
e) 0x0000 66FF
Página: 0x6 < RLTP: 0x8.
La entrada 6 de la tabla de páginas tiene el bit P (presencia) = 0.
Se genera una excepción, fallo de página, ya que la página referenciada no se
encuentra ubicada en ningún marco de memoria principal.
f ) 0x0000 8701
Página: 0x8 < RLTP: 0x8 es FALSO.
Se genera una excepción por intento de acceso a una zona de memoria fuera de
los límites del espacio de direccionamiento virtual asignado al proceso.