Professional Documents
Culture Documents
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: Nmero de marco Programa.#pgina Direccin fsica 0 1 2 3 4 5 6 7 Programa A.0 Programa A.1 Programa A.2 Programa B.0 Programa B.1 Programa C.0 Programa C.1 Programa D.2 1000:0000 1000:1000 1000:2000 1000:3000 1000:4000 1000:5000 1000:6000 1000:7000
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: Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3 pginas. 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 pginas 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 permaneca libre) 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 | v Posicin de memoria dentro de la pgina (00FE)
Nmero de pgina (0010 = 2) TABLA DE PAGINACIN Entrada a la tabla de pginas n = @ pgina fsica V P L EM
* n = bits de la @ lgica -log2(nmero de palabras de una pgina). * V: bit de validez. * P: bit de persistncia. * L: bit de derecho a lectura. * E: bit de derecho a escritura. * M: bit de modificacin.
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.