Está en la página 1de 4

Paginacin de memoria

De Wikipedia, la enciclopedia libre


En sistemas operativos de computadoras, los sistemas de paginacin de memoria dividen los programas en pequeas partes o pginas. Del mismo modo, la
memoria es dividida en trozos del mismo tamao que las pginas llamados marcos de pgina. De esta forma, la cantidad de memoria desperdiciada por un
proceso es el final de su ltima pgina, lo que minimiza la fragmentacin interna y evita la externa.
En un momento cualquiera, la memoria se encuentra ocupada con pginas de diferentes procesos, mientras que algunos marcos estn 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 pgina del proceso. De
esta forma, las pginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las pginas de otros procesos.
En la tabla de pginas de un proceso, se encuentra la ubicacin del marco que contiene a cada una de sus pginas. Las direcciones lgicas ahora se forman como
un nmero de pgina y de un desplazamiento dentro de esa pgina (conocido comnmente como offset). El nmero de pgina es usado como un ndice dentro de
la tabla de pginas, y una vez obtenida la direccin del marco de memoria, se utiliza el desplazamiento para componer la direccin real o direccin fsica. Este
proceso se realiza en una parte del computador especficamente diseada 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 pginas en marcos libres y se completa su tabla de pginas.
Veamos un ejemplo:
La tabla de la derecha muestra una posible configuracin de la memoria en un momento dado, con
pginas de 4Kb. La forma en que se lleg a este estado puede haber sido la siguiente:
Nmero de marco Programa.#pgina Direccin fsica
0

Programa A.0

1000:0000

1
El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)
2
El programa B se carga en memoria (se le asignan los marcos 3 y 4)
3
El programa C se carga en memoria (se le asignan los marcos 5 y 6)
El programa B termina, liberando sus pginas
4
El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el proceso B y el
5
marco 7 que permaneca libre)
6
De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:
7

Programa A.1

1000:1000

Programa A.2

1000:2000

Programa D.0

1000:3000

Programa D.1

1000:4000

Programa C.0

1000:5000

Programa C.1

1000:6000

Programa D.2

1000:7000

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


1.
2.
3.
4.
5.

Proceso A
Proceso B
Proceso C
Proceso D
Pgina Direccin fsica Pgina Direccin fsica Pgina Direccin fsica Pgina Direccin fsica
0

1000:0000

1000:5000

1000:3000

1000:1000

1000:6000

1000:4000

1000:2000

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 direccin 20FE, se
realizar el siguiente procedimiento. 20FE es 0010000011111110 en notacin binaria (en un sistema de 16 bit), y en el ejemplo se estn usando pginas de 4Kb
de tamao. Cuando la peticin de la direccin de memoria 20FE es realizada, la Unidad de Gestin de memoria se ve de esta forma:

0010000011111110 = 20FE
|__||__________|
|
|
|
v
|
Posicin de memoria dentro de la pgina (0FE)
v
Nmero de pgina (0010 = 2)

* n = bits de la @ lgica -log2(nmero de palabras de una pgina).


* V: bit de validez.
* P: bit de persistencia.
* L: bit de derecho a lectura.
* E: bit de derecho a escritura.
* M: bit de modificacin.

Tabla de paginacin
Entrada a la tabla de pginas
n = @ pgina fsica

V P LEM

Al usar pginas de 4096 bytes, todas las ubicaciones dentro de una pgina pueden ser representadas por 12 bits, en el sistema binario (212=4096), lo que deja 4
bits para representar el nmero de pgina. Si las pginas hubieran sido de la mitad del tamao (2048) se podran tener 5 bits para el nmero de pgina, lo que
significa que a menor tamao de pgina se pueden tener tablas con ms pginas.
Cuando el pedido de acceso a memoria es realizado, la MMU busca en la tabla de pginas del proceso que realiz el pedido por la relacin en memoria fsica. En
nuestro ejemplo, la pgina nmero 2 del proceso A corresponde al marco nmero 2 en memoria fsica, con direccin real 1000:2000, por lo tanto, la MMU
devolver la direccin del marco en memoria fsica, con el desplazamiento dentro de esa pgina: 1000:20FE.

Paginacin en memoria virtual


El nico inconveniente de paginacin pura es que todas las pginas de un proceso deben estar en memoria para que se pueda ejecutar. Esto hace que si los
programas son de tamao considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de multiprogramacin del sistema. Para evitar esto, y
aprovechando el principio de cercana de referencias donde se puede esperar que un programa trabaje con un conjunto cercano de referencias a memoria (es decir
con un conjunto residente ms pequeo que el total de sus pginas), se permitir que algunas pginas del proceso sean guardadas en un espacio de intercambio
(fragmentacin interna) mientras no se necesiten.
Cuando la paginacin se utiliza junto con memoria virtual, el sistema operativo mantiene adems el conocimiento sobre qu pginas estn en memoria principal y
cules no, usando la tabla de paginacin. Si una pgina buscada est marcada como no disponible (tal vez porque no est presente en la memoria principal, pero s
en el rea de intercambio), cuando la CPU intenta referenciar una direccin de memoria en esa pgina, la MMU responde levantando una excepcin (comnmente
llamada fallo de pgina). Si la pgina se encuentra en el espacio de intercambio, el sistema operativo invocar una operacin llamada intercambio de pgina, para
traer a memoria principal la pgina requerida. La operacin lleva varios pasos. Primero se selecciona una pgina en memoria, por ejemplo una que no haya sido
usada recientemente (para ms detalles ver algoritmos de reemplazo de pginas). Si la pgina fue modificada, se escribe la misma en el espacio de intercambio. El
siguiente paso en el proceso es leer la informacin en la pgina necesitada desde el espacio de intercambio. Cuando esto sucede, las tablas para traduccin de
direcciones virtuales a reales son actualizadas para reflejar los contenidos de la memoria fsica. Entonces el intercambio de pgina sale, y el programa que us la
direccin que caus la excepcin es vuelto a ejecutar desde el punto en que se dio la misma y contina como si nada hubiera pasado. Tambin es posible que una
direccin virtual sea marcada como no disponible porque no fue localizada previamente. En estos casos, una pgina de memoria es localizada y llenada con ceros,
la tabla de paginacin es modificada para mostrar los cambios y el programa se reinicia como en el otro caso.
Si la pgina que ha provocado el fallo de pgina no se encuentra en el espacio de intercambio, habr que ir a buscarla a la unidad de disco. El proceso, por lo
dems sera anlogo.

Vase tambin
Paginacin anidada
Segmentacin de memoria
Obtenido de http://es.wikipedia.org/w/index.php?title=Paginacin_de_memoria&oldid=73485213
Categora: Gestin de memoria
Esta pgina fue modificada por ltima vez el 29 mar 2014 a las 23:34.

El texto est disponible bajo la Licencia Creative Commons Atribucin Compartir Igual 3.0; podran ser aplicables clusulas adicionales. Lanse los
trminos de uso para ms informacin.
Wikipedia es una marca registrada de la Fundacin Wikimedia, Inc., una organizacin sin nimo de lucro.