ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Paginación De Memoria


Enviado por   •  7 de Febrero de 2015  •  1.153 Palabras (5 Páginas)  •  241 Visitas

Página 1 de 5

En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.

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.

En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un número de página y de un desplazamiento dentro de esa página (conocido comúnmente como offset). El número de página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el desplazamiento para componer la dirección real o dirección física. Este proceso se realiza en una parte del computador específicamente diseñada para esta tarea, es decir, es un proceso hardware y no software.

De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus páginas en marcos libres y se completa su tabla de páginas.

Veamos un ejemplo:

Número de marco Programa.#página Dirección física

0 Programa A.0 1000:0000

1 Programa A.1 1000:1000

2 Programa A.2 1000:2000

3 Programa D.0 1000:3000

4 Programa D.1 1000:4000

5 Programa C.0 1000:5000

6 Programa C.1 1000:6000

7 Programa D.2 1000:7000

La tabla de la derecha muestra una posible configuración de la memoria en un momento dado, con páginas de 4Kb. La forma en que se llegó a este estado puede haber sido la siguiente:

Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3 páginas.

El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)

El programa B se carga en memoria (se le asignan los marcos 3 y 4)

El programa C se carga en memoria (se le asignan los marcos 5 y 6)

El programa B termina, liberando sus páginas

El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el proceso B y el marco 7 que permanecía libre)

De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:

Proceso A

Página Dirección física

0 1000:0000

1 1000:1000

2 1000:2000

Proceso B

Página Dirección física

- -

- -

Proceso C

Página Dirección física

0 1000:5000

1 1000:6000

Proceso D

Página Dirección física

0 1000:3000

1 1000:4000

2 1000:7000

Ahora consideremos qué sucede cuando un programa quiere acceder a su memoria. Si el programa A contiene una referencia a la memoria con dirección 20FE, se realizará el siguiente procedimiento. 20FE es 0010000011111110 en notación binaria (en un sistema de 16 bit), y en el ejemplo se están usando páginas de 4Kb de tamaño. Cuando la petición de la dirección de memoria 20FE es realizada, la Unidad de Gestión de memoria se ve de esta forma:

0010000011111110 = 20FE

|__||__________|

| |

| v

| Posición de memoria dentro de la página (0FE)

v

...

Descargar como (para miembros actualizados) txt (7 Kb)
Leer 4 páginas más »
Disponible sólo en Clubensayos.com