You are on page 1of 6

Importante:

Los bits que corresponden a la página, sirven para saber cuántas páginas soporta el sistema, veamos,
para el ejemplo 26 = 64 páginas. Y los bits que se tomaron para el desplazamiento, sirven para
determinar el tamaño de la página, que en este caso 210 = 1K.

Se tiene una dirección en decimal (Ver Figura) lo que indica que se tiene un desplazamiento 6 al inicio
de la página 8.

Una representación sencilla que se puede hacer del ejemplo anterior sería:

Si se sustituye la dirección virtual decimal por una dirección virtual binaria de 16 bits, tomando los 6
bits más significativos para la página y los restantes para el desplazamiento, se obtendría la siguiente
figura:

Convirtiendo la dirección virtual (0010000000000110) del esquema anterior a su equivalente en


decimal quedaría: 213 = 8192, más el desplazamiento 6, da como resultado 8198, que corresponde a
la dirección virtual, y que quiere decir: desplazamiento 6 con respecto al inicio de la página 8, en un
sistema de paginación con direcciones virtuales de 16 bits.

Considere un computador que puede generar direcciones de 16 bits, que van desde 0 hasta 640K.
Estas son las direcciones virtuales. Sin embargo el computador sólo tiene 32K de memoria física, de
forma que, aunque se puedan escribir programas de 64K, estos no se puedan cargar en la memoria en
su totalidad para ser ejecutados.

El hueco o espacio de direcciones virtuales se divide en unidades llamadas páginas. Las unidades
correspondientes en la memoria física se llaman marcos de página. Las páginas y los marcos tienen
siempre el mismo tamaño. En este ejemplo son de 4K, pero los tamaños de 512 bytes a 8K también
son de uso común.
Con 64K de espacio de direcciones virtuales y 32K de memoria física, ¿cuántas páginas y cuántos
marcos se tienen?
¿Qué sucede cuando un programa intenta tener acceso a la dirección 0, mediante la instrucción MOVE
REG, 0 ?

Solución:
La dirección virtual 0 se envía a la MMU. La MMU ve que esta dirección virtual cae dentro de la página
0 (0 a 4095), la cual, de acuerdo con su regla de correspondencia, está en el marco 2 (8192 a 12287).
Transforma entonces la dirección en 8192 y manda la dirección 8192 al bus. El tablero de la memoria
no sabe acerca de la MMU y sólo ve una solicitud de lectura o escritura de la dirección 8192, a la que
da paso. Así, la MMU ha asociado todas las direcciones virtuales entre 0 y 4095 con las direcciones
físicas o reales 8192 a 12287.

¿Si se ejecuta la instrucción MOVE REG, 8192, cuál sería su correspondiente dirección real?
Solución:
Se transforma en MOVE REG, 24576. Puesto que la dirección virtual 8192 está en la página virtual 2 y
esta página está asociada con el marco físico 6 (direcciones físicas 24576 a 28761).

Hasta ahora el desplazamiento de estas direcciones virtuales es cero (0), veamos un ejemplo en donde
se pueda ver otra situación distinta.
La dirección virtual 21500 está a 20 bytes del inicio de la página virtual 5 (direcciones virtuales 20480
a 24575) y está asociado a la dirección física 12288 + 20 = 12308.

Una vez encontrada la página en la tabla de páginas y si se determina que la página se encuentra en
el marco de página 3,¿Qué ocurre después?

La respuesta a este interrogante es que se suma el desplazamiento a la dirección de inicio del marco
de página 3, es decir, 12288 + 20 = 12308.

Observe nuevamente la siguiente gráfica:


Compare el tamaño de la tabla de páginas con el tamaño de la memoria física. ¿Se puede decir que son
iguales? ¿Por qué si? o ¿Por qué no?
¿Cuántas páginas se encuentras asociadas con los marcos?
¿En el gráfico anterior la x qué representa?

Importante:
La tabla de páginas es más grande que la memoria física. Como se tiene sólo ocho marcos de página,
sólo ocho de las páginas virtuales de la figura se asocian con la memoria física, las demás que aparecen
con una x, no quedan asociadas.

¿Qué ocurre si el programa intenta utilizar una página no asociada, por ejemplo con la instrucción

MOVE REG, 32780

Que está en el byte 12 dentro de la página virtual 8, la cual comienza en 32768?

Si se referencia la dirección virtual en mención, como se ve en la gráfica anterior, la entrada


correspondiente está marcada con x, lo que indica que ella no reside en la memoria real. En este caso se
presenta una interrupción denominada defecto o fallo de página.

Al producirse una interrupción llamada defecto o fallo de página, ¿quién toma el control?, ¿qué
procedimiento se sigue?
El sistema operativo toma el control, elige un marco de página y lo “baja” de la memoria real. Después
trae la página correspondiente a la dirección referenciada y la ubica en el marco liberado, modifica las
entradas correspondientes en la tabla de páginas y reinicia el proceso.
Dirección virtual 8194

0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0
DIRECCION REAL 24578

1 X 0
5

1 X 0
4

1 X 0
3

1 X 0
2

1 111 1
1 (7)

1 X 0
0

9 101 1
(5)

8 X 0

7 X 0

6 X 0

5 011 1
Pagina virtual = 2 se (3)

utiliza como índice en


la tabla de paginas
4 100 1
(4)

3 000 1
(0)

2 110 1
(6)

1 001 1
(1)

0 010 1
(2)
0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0

D VIRTUAL 8194

You might also like