paginación
Informe -
Paginación
Suponga un sistema
paginado con un rango de direcciones de 4 GB ( 4 294 967 296
Direcciones):
a) ¿Cuántas páginas
tendrá el sistema si se utilizan páginas de 4.096 bytes?
R/ Como nuestro sistema paginado tiene 4GB = 4.294.967.296
bytes
Ahora vemos que nuestras páginas son de 4.096 bytes; por lo tanto
nuestro sistema tendrá 4.294.967.296/4.096 = 1.048.576 paginas.
b) ¿Qué tamaño (en
bits) tendrá una entrada de la tabla de traducción? Suponga que sólo se guarda
el número de marco físico.
R/ Un byte = 8 bits.Tendríamos que por cada entrada de la tabla de
traducción sería 4.096*8 = 32.768
c) ¿Qué tamaño tendrá
la tabla de paginación si se desea cubrir todo el rango?
R/ Suponiendo que el tamaño de la página sea de 4 KB (4096 bytes)=
2¹² tendríamos 12 bits para indexar la página, y 20 bits para la página
virtual.
12 bits + 20 bits = 32 bits.
d) Suponga que el
tamaño de la tabla de paginación fuera demasiado grande. Propone dos soluciones
explicando ventajas y desventajas de cada una.
Solución 1
almacenar la propia tabla de páginas en memoria, y apuntar al inicio de
la tabla con un juego de registros especiales: el registro de base de la tabla
de páginas (PTBR, page table base register) y
el registro de longitud de la tabla de páginas (PTLR, page table length
register).De
esta manera, en el cambio de contexto sólo hay que cambiar estos dos
registros,
y además se cuenta con un espacio muy amplio para guardar las tablas de
páginas que se necesiten. El problema con este mecanismo es la velocidad:
Se
estaría penalizando a cada acceso a memoria con uno adicional —si para
resolver
una dirección lógica a su correspondiente dirección física hace falta
consultar
la tabla de páginas en memoria, el tiempo efectivo de acceso a memoria
se
duplica.
Solución 2
La salida obvia a este dilema es el uso de un caché. Sin embargo, más
que
un caché genérico, la MMU utiliza un caché especializado en el tipo de
información
que maneja: el buffer de traducción adelantada o anticipada.
(Translation
lookaside buffer. El TLB es una tabla asociativa (un hash) en memoria de
alta velocidad,
una suerte de registros residentes dentro de la MMU, donde las llaves
son las páginas y los valores son los marcos correspondientes. De este
modo, las
búsquedas se efectúan en tiempo constante; dado que el TLB es limitado
en tamaño, es necesario explicitar una política que indique dónde guardar las
nuevas entradas (esto es, qué entrada
reemplazar) una vez que el TLB está lleno y se produce un fallo de
página.
Uno de los esquemas más comunes es emplear la entrada menos
recientemente
utilizada (LRU, Least Recently Used), nuevamente apelando a la localidad
de
referencia. Esto tiene como consecuencia necesaria que debe haber un
mecanismo
que contabilice los accesos dentro del TLB (lo cual agrega tanto
latencia
como costo). Otro mecanismo (con obvias desventajas) es el reemplazar
una
página al azar.
1.
Gracias a la UMM (Unidad de Manejo de Memoria) podemos verificar cada
acceso a la RAM, y validar que no se infrinjan condiciones de ejecución.
2.
La paginación es una técnica con la cual se puede ocupar el espacio en
la memoria interna haciendo uso de partes fraccionadas en secciones de igual
tamaño, que sirven como unidades de acumulación de información, usando
diferentes métodos con las tablas de páginas, haciendo uso de sus registros
según su tamaño disminuyendo su desperdicio al momento de su fragmentación.
Comentarios
Publicar un comentario