Práctica Memoria Virtual + Respuestas

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Universidad Central de Venezuela

Facultad de Ciencias
Escuela de Computación
Organización y Estructura del Computador II

Práctica Memoria Virtual

1. Considere una máquina con las siguientes características (ver Imagen 1):
a) 2 GB de memoria virtual
b) 128 MB de memoria física dividida en páginas de 4 KB
c) El procesador admite direcciones de 32 bits
Encuentre la dirección física de la dirección virtual 0x247C usando la tabla de páginas de la Imagen 2

Imagen 1. Páginas físicas y virtuales Imagen 2. Taba de páginas

Solución:
Con una memoria virtual de 2 GB = 2 x 230 = 231 bytes, solo se utilizan
los 31 bits de dirección virtual menos significativos; el bit 32 siempre
es 0. De manera similar, con una memoria física de 128 MB = 27 x 220
= 227 bytes, solo se utilizan los 27 bits de dirección física menos
significativos; los 5 bits superiores siempre son 0.

El desplazamiento de página de 12 bits no requiere traducción. Los 19


bits restantes de la dirección virtual son el número de página virtual,
0x2 y dan el índice en la tabla de páginas.

La tabla de páginas asigna la página virtual 0x2 a la página física


0x7FFF. Entonces, la dirección virtual 0x247C se asigna a la dirección
física 0x7FFF47C. Los 12 bits menos significativos son los mismos
tanto en la dirección física como en la virtual.

2. Considere que el sistema de memoria virtual de la imagen 1, emplea una TLB de dos entradas. Explique el
proceso necesario para traducir las direcciones virtuales 0x247C y 0x5FB0 a direcciones físicas. Suponga
que la TLB actualmente tiene traducciones válidas de páginas virtuales 0x2 y 0x7FFFD.
Solución:
La TLB recibe el número de página virtual de la
dirección entrante (0x2) y lo compara con el
número de página virtual de cada entrada. La
entrada 0 coincide y es válida, por lo que la solicitud
llega. La dirección física traducida es el número de
página física de la entrada coincidente, 0x7FFF,
concatenado con el desplazamiento de página de
la dirección virtual. El desplazamiento de página no
requiere traducción.
Para la dirección virtual 0x5FB0 en la TLB, ocurre
un fallo. Entonces, la solicitud se reenvía a la tabla
TLB de dos entradas con la solicitud de dirección virtual 0x247C de páginas para su traducción.

3. La imagen 3 muestra los posibles contenidos de la tabla de páginas de dos niveles para la tabla de páginas
jerárquicas de la imagen 4. Se muestra el contenido de una sola tabla de páginas de segundo nivel. Usando
esta tabla de páginas de dos niveles, describa lo que sucede en un acceso a la dirección virtual
0x003FEFB0.

Imagen 3. Traducción de direcciones utilizando una tabla de 2 niveles Imagen 4. Tabla de páginas jerárquica

Solución:
Al igual que en los ejercicios anteriores, sólo el número de página virtual requiere traducción. Los 9 bits
más significativos de la dirección virtual, 0x0, dan el número de la tabla de páginas, el índice de la tabla de
páginas de primer nivel. La tabla de páginas de primer nivel en la entrada 0x0 indica que la tabla de páginas
de segundo nivel reside en la memoria (V = 1) y su dirección física es 0x2375000.
Los siguientes diez bits de la dirección virtual, 0x3FE, son el desplazamiento de la tabla de páginas, lo que
proporciona el índice en la tabla de páginas de segundo nivel. La entrada 0 está en la parte inferior de la
tabla de páginas de segundo nivel y la entrada 0x3FF está en la parte superior. La entrada 0x3FE en la
tabla de páginas de segundo nivel indica que la página virtual reside en la memoria física (V = 1) y que el
número de página física es 0x23F1. El número de página física se concatena con el desplazamiento de
página para formar la dirección física, 0x23F1FB0.
4. Considere un sistema de paginación en el que se puede direccionar como máximo 1 GB de memoria, el
tamaño de página es de 16 KB y cada byte se direcciona independientemente ¿Cuántas páginas podrá
tener asignadas como máximo un proceso de este sistema? Si se emplea una tabla de páginas con dos
niveles, en el que la tabla de primer nivel contiene 1024 entradas, ¿cuántas tablas de segundo nivel son
necesarias para un proceso que requiere 6400 páginas?

Solución:
Dado que el máximo de memoria que se puede direccionar es 1GB, la dirección lógica consta de 30 bits. Como
el tamaño de página es de 16KB, de los 30 bits de la dirección lógica, 14 bits se utilizan para direccionar el
contenido de la página, y el resto, 16 bits, para direccionar las páginas, por lo que el número total de páginas
que un proceso puede tener asignadas es de 216.
Si la tabla de primer nivel contiene 1024 entradas, implica que su codificación emplea 10 bits en la dirección
lógica, por lo que quedan 6 bits para la tabla de segundo nivel, lo que permite direccionar 26 páginas, es decir,
64 páginas. Como el proceso requiere 6400 páginas, se obtiene que necesita 100 tablas de segundo nivel.

5. Considere un sistema de paginación en el que las direcciones lógicas son de 22 bits y el tamaño de página
es de 2 KB. Sabiendo que cada byte se direcciona independientemente, calcule el ahorro de memoria que
obtendría para representar la tabla de páginas de un proceso que está utilizando 90 KB de memoria, en el
caso que se emplee una tabla de páginas con dos niveles en lugar de tener una tabla de un solo nivel. En
el sistema con dos niveles, debe tener en cuenta que se emplean 5 bits de la dirección para el segundo
nivel. Además, cada entrada de las tablas de páginas precisa 8 bytes

Solución:
Si el tamaño de página son 2KB, esto implica que, de los 22 bits de la dirección lógica, 11 bits se utilizan para
direccionar la página, por lo que quedan 11 bits para codificar la tabla de páginas.
Si se utiliza una tabla de páginas de un sólo nivel, su tamaño es el número de entradas de la tabla por el tamaño
de la entrada, es decir, 211 ∗ 8 = 214 bytes.
Si se utiliza una tabla de páginas de dos niveles, 6 bits de la dirección lógica se emplean para el primer nivel (5
bits son para el segundo nivel). Entonces, cada tabla de segundo nivel direcciona hasta 25 páginas, es decir 32
páginas de 2KB cada una (total 64KB). Como el proceso requiere 90KB, hacen falta 2 tablas de segundo nivel.
Así, el consumo es el de una tabla de primer nivel más el de dos de segundo nivel, esto es,
(26 ∗ 8) + (2 ∗ 25 ∗ 8) = 210 bytes
Por lo tanto, el ahorro al utilizar una tabla de páginas de dos niveles es de 214 − 210 bytes.

6. Se cuenta un sistema de paginación donde se puede direccionar un máximo de 1GB y el tamaño de página
es de 32KB. Sabiendo que el tamaño de la palabra es de 16, calcule el ahorro de memoria que obtendría
al representar la tabla de páginas de un proceso que está utilizando 90MB de memoria, empleando una
tabla de páginas de dos niveles en lugar de tener una tabla de un solo nivel. Considere que, en el sistema
de dos niveles, se empleará el mismo número de bits para cada nivel. Además, cada entrada en la tabla de
páginas requiere de 16 bytes.

Solución:
Si se direcciona 1GB (230 bytes), entonces la dirección lógica es de 30 bits. Como la página es de 32KB (215
bytes), y cada palabra son 2 bytes, harán falta 14 bits para direccionar el contenido de una página. En
consecuencia, quedan 16 bits de la dirección lógica para la tabla de páginas. Si el proceso requiere 90MB,
necesita 90MB/32KB = 2880 páginas. Si se utiliza una única tabla de páginas, el consumo de memoria será el
tamaño de la tabla por el tamaño de la entrada, es decir, 216 ∗ 16 = 220 bytes. Si se utiliza una tabla de páginas
de dos niveles, donde 8 bits son para el primer nivel y otros 8 bits para el segundo, el proceso utilizará la tabla
de primer nivel más 12 de segundo, ya que cada tabla de segundo nivel apunta a 256 páginas y el proceso
requiere un total de 2880. El consumo en este caso es de (28 ∗16) + (12 ∗ 28 ∗16) = 13 ∗ 212 bytes, y el ahorro
es la diferencia de los costes obtenidos, es decir, 220 − 13 ∗ 212 bytes.

También podría gustarte