La paginación es el proceso en el que convertimos todo el proceso en páginas del mismo tamaño. Cada página consta además de un número fijo de palabras (si es direccionable por palabra). Las Páginas están representadas por la Dirección Virtual generada por la CPU . La MMU asigna estas páginas a la dirección física. Entonces, para ayudar en este mapeo, usamos el concepto de tabla de página. Al igual que una array, en la tabla de página, los índices representan los números de página y los contenidos contienen la dirección del número de marco donde el proceso se carga realmente en la memoria principal. Debido a que la dirección virtual/lógica es relativa a cero y debe asignarse al espacio de direcciones físico real de la memoria principal. El tamaño de la tabla de páginas se puede calcular a partir del hecho de que se proporciona el tamaño de cada entrada de la tabla de páginas; de lo contrario, si no se proporciona, podemos encontrar la cantidad de bits necesarios para direccionar cada cuadro en la memoria principal (esto no es correcto, pero debe usarse cuando no se da nada en cuestión).
Tamaño de la tabla de páginas = Nº de entradas de la tabla de páginas (Nº total de páginas) * (tamaño de cada entrada de la tabla de páginas)
Cuando el tamaño de la tabla de páginas es menor que el tamaño de un marco, no debemos preocuparnos porque podemos colocar directamente la tabla de páginas en un marco de la memoria principal. Por lo tanto, podemos acceder directamente a la tabla de páginas. Pero si el tamaño de la tabla de páginas es mayor que el tamaño de Frame. Entonces, la tabla de páginas, a su vez, se dividirá en varias páginas y estas páginas de la tabla de páginas se almacenarán en la memoria principal. Por lo tanto, una tabla de páginas externas entra en escena. Esta Tabla de Páginas Externas contendría la dirección de los Marcos que contienen las páginas de la Tabla de Páginas Internas (es decir, Tabla de Páginasuna página) en la memoria principal. El tamaño de esta página exterior también se calcula de la misma manera que se explicó anteriormente y se utilizó para calcular el tamaño de la tabla de la página interior. Ahora, si el tamaño de la tabla de la página interna es menor o igual que el tamaño de un marco, entonces podemos detenernos aquí, ya que podemos mantener la tabla más externa en un solo marco. Esto se llama paginación de dos niveles. Ejemplo: Considere dado,
Physical Address Space = 2(44) B Virtual Address Space = 2(32) B Page Entry = 4B Page Size = 4KB So, No.of Frame = 2(32) No. of Pages Of the Process = 2(20) Page Table 1 size =2(20) * 4 B= 4 MB
Como es más grande que 4B (tamaño de marco). Por lo tanto, esta tabla de páginas tiene que convertirse en páginas No. de páginas de la tabla de páginas 2 (tabla de páginas externas)
= 2(22)*2(-12)= 2(10) pages
Entonces, tamaño de la tabla de páginas externas
= 2(10) * 4B = 4KB
Por lo tanto, aquí nuestra Tabla de páginas exterior (Tabla de páginas 2) se puede almacenar en un marco. Por lo tanto, podemos detenernos aquí. Esta es paginación de dos niveles porque aquí tenemos tablas de 2 páginas. Pero si el tamaño de la tabla de la página sigue siendo mayor que el tamaño del marco, debemos continuar hasta llegar a una etapa en la que el tamaño de la tabla más externa sea menor que el tamaño del marco. Este concepto se denomina paginación multinivel. Nuestro objetivo debe ser mantener la tabla de páginas más externa en un solo marco.