You are on page 1of 4

CONCEPTOS BÁSICOS DE PAGINACIÓN

La paginación es uno de los esquemas de manejo de memoria en donde un


computador puede almacenar y recuperar datos de un dispositivo de
almacenamiento secundario, como un disco duro, para su uso en la memoria
principal.

Permite que la memoria de un proceso no sea contigua, y que a un proceso se


le asigne memoria física donde quiera que ésta esté disponible.

En sistemas operativos de computadoras, los sistemas de paginación de


memoria dividen los programas en pequeñas partes o páginas. Cada página
física se asigna en exclusividad a un proceso del programa.

El método básico para implementar paginación consiste en dividir la memoria


física en bloques de tamaño fijo llamados frames (marcos de página) y dividir la
memoria lógica en bloques de mismo tamaño llamados pages (páginas).

Todo proceso tiene su propio espacio de páginas lógicas, cada página lógica
está mapeada a un marco. El mapeo entre páginas lógicas y páginas físicas se
mantiene en la tabla de páginas. Cada proceso dispone de su propia tabla de
páginas.

En un momento cualquiera, la memoria se encuentra ocupada con páginas de


diferentes procesos, mientras que algunos marcos están disponibles para su
uso.

El sistema operativo mantiene una lista de estos últimos marcos, y una tabla por
cada proceso, donde consta en qué marco se encuentra cada página del
proceso. De esta forma, las páginas de un proceso pueden no estar
contiguamente ubicadas en memoria, y pueden intercalarse con las páginas de
otros procesos.

Para lograr el mapeo entre las páginas y los marcos de páginas se dispone de
un sistema de traducción incluido en la unidad de administración de memoria o
unidad de manejo de memoria (MMU).
Este proceso de traducción crea, por tanto, un espacio lógico (o mapa)
independiente para cada proceso proyectándolo sobre la parte correspondiente
de la memoria principal de acuerdo con una función de traducción:

 Traducción (dirección lógica o virtual) → dirección física. El traductor de


memoria paginada toma la dirección lógica y, por medio de la tabla de página,
obtiene la dirección física real.
Cualquier dirección generada por la CPU es divida en dos partes: un número de
página (P) y un offset de página (D). El número de página es usado como índice
en una tabla de página.

La tabla de página contiene las direcciones base de cada página en la memoria


física. Esta dirección base es combinada con el offset de página para definir la
dirección de memoria física que es enviada a la unidad de memoria.

Un proceso en ejecución hace referencia a una dirección virtual “V = (P,D)”. La


dirección de almacenamiento real se forma por la concatenación de P’ y D.

Un mecanismo de traducción de páginas busca la página “P” en la “tabla de


páginas”.
La tabla de “mapa de páginas” debe indicar si se encuentra o no en el
almacenamiento primario la página referenciada:

 En caso afirmativo donde está en la memoria real.


 En caso negativo donde puede estar en el almacenamiento secundario.
Solo existe un directorio de tabla de páginas en el sistema, y que el formato de
la entrada de una tabla de páginas es la misma que para una entrada del
directorio de páginas. La principal diferencia es que una entrada del directorio de
páginas contiene la dirección física de una tabla de página.

HARDWARE DE PAGINACIÓN

El tamaño de página (como el marco de página) es definido por hardware. El


tamaño de una página es típicamente una potencia de 2, variando entre 512 B y
16 MB por página, dependiendo de la arquitectura del computador.

La selección de una potencia de 2 como tamaño de página hace la traducción


de una dirección lógica a un número de página y offset de página algo fácil. Si el
tamaño del espacio de dirección lógica es 2^m y el tamaño de página 2^n
unidades de dirección (bytes o palabras), entonces los m-n bits de mayor orden
de la dirección lógica designan el número de página, y los n bits de menor orden
designan el offset de página.

Por ejemplo, en un procesador de 32 bits:

 Con un tamaño de página de 4 Kbytes = 2^12, se emplean 12 bits para el


desplazamiento dentro de la página. Es decir, para referenciar los datos que
una página contiene. Los restantes 20 bits más significativos indican el
número de página.
TRADUCCIÓN DE DIRECCIONES DE PAGINACIÓN POR
TRANSFORMACIÓN DIRECTA

Antes que un proceso comience su ejecución, el S.O. carga la dirección de


almacenamiento primario de la “tabla de mapa de páginas” en el “registro origen
de la tabla de mapa de páginas”.

Si la dirección base de la tabla de mapa de páginas es “B”. El N° de página es


“P”.
Entonces la dirección en el almacenamiento primario de la entrada en la tabla de
mapa de páginas para la página “P” es “B + P”:

 Indica que el marco de página P’ corresponde a la página virtual.


 P’ se concatena con el desplazamiento “D” para formar la dirección real
“R”.LA DE MAPA DE PAGINAS TRANSFORMADA DIRECTAMENTE

La tabla de mapa de páginas transformada directamente suele mantenerse en el


almacenamiento primario, para esto las referencias a esta tabla requieren un
ciclo completo de almacenamiento primario, generalmente es la parte más larga
de un ciclo de ejecución de instrucciones.

TRADUCCIÓN DE DIRECCIONES DE PAGINACIÓN POR


TRANSFORMACIÓN DIRECTA
UNA FORMA DE ACELERAR LA TRADUCCION DINAMICA DE PAGINAS
Una forma de acelerar la traducción dinámica de páginas consiste en colocar la
tabla completa de mapa de páginas en un “almacenamiento asociativo” que
tenga un tiempo de ciclo mucho más rápido que el almacenamiento primario.
Una variante es la “transformación asociativa pura”, donde un programa en
ejecución hace referencia a la dirección Virtual V = (P,D).
Cada entrada en el almacenamiento asociativo se busca de forma simultánea
para la página “P”:

 Se obtiene P’ como el marco de página correspondiente a la página “P”.


 se concatena P’ con “D” formando la dirección real “R”.

TRADUCCIÓN DE DIRECCIONES DE PAGINACIÓN POR


TRANSFORMACIÓN ASOCIATIVA / DIRECTA

Se utiliza un almacenamiento asociativo capaz de mantener solo un pequeño


porcentaje del mapa completo de página para un proceso.
Las entradas de página contenidas en este mapa reducido corresponden solo a
las paginas referenciadas recientemente.
Si un programa en ejecución hace referencia a la dirección Virtual V = (P,D).
El mecanismo de traducción de direcciones intenta encontrar la página “P” en el
mapa de página asociativo parcial:
 Si “P” se encuentra allí: el mapa asociativo devuelve P’ como el N° de
marco de página correspondiente a la página virtual “p”.

P’ se concatena con el desplazamiento “D” para formar la dirección real “R”


que corresponde a la dirección Virtual V = (P,D).

 Si “P” no se encuentra en el mapa de página parcial: se utiliza un mapa


directo convencional. La dirección “B” del registro de origen de la tabla
de páginas se añade a “P” para localizar la entrada apropiada a la
página “P” en la tabla de mapa de páginas de transformación directa del
almacenamiento primario.

La tabla indica que P’ es el marco de pagina correspondiente a la página


virtual P. P’ se concatena con el desplazamiento “D” para formar la dirección
real “R” correspondiente a la dirección virtual V = (P,D).

COMPARTIMENTO DE RECURSOS EN UN SISTEMA DE


PAGINACIÓN

En sistemas multiprogramados, especialmente en los de tiempo compartido, es


común que más de un usuario estén ejecutando los mismos programas:
Para optimizar el uso de la memoria real se comparten las páginas que pueden
ser compartidas:
 El compartimiento debe ser cuidadosamente controlado para evitar que
un proceso modifique datos que otro proceso está leyendo.
 Los programas se encuentran divididos en áreas separadas de
“procedimiento” y “datos”.
 Los procedimientos no modificables se llaman “procedimientos puros
reentrantes”.
 Los datos y procedimientos modificables no pueden ser compartidos.
 Los datos no modificables (ej.: tablas fijas) son compartibles.
Se debe identificar cada página como compartible o no. Habrá marcos (celdas)
de páginas compartidos por varios procesos.

El compartimiento:
 Reduce la cantidad de almacenamiento primario
 Necesario para la ejecución eficaz de un grupo de Procesos.
 Puede hacer posible que un sistema determinado mantenga una cantidad
mayor de usuarios (procesos).

You might also like