¿Cómo ahorra espacio de memoria la tabla de páginas multinivel?


Estoy tratando de entender cómo la tabla de páginas multinivel ahorra memoria. Según mi entendimiento, la tabla de páginas multinivel en total consume más memoria que la tabla de páginas de un solo nivel.

Ejemplo : Considere un sistema de memoria con un tamaño de página de 64 KB y un procesador de 32 bits. Cada entrada en la tabla de páginas es de 4 bytes.

Tabla de Páginas de un solo nivel : 16 (2^16 = 64KB) se requieren bits para representar el desplazamiento de página. Por lo tanto, los 16 bits restantes se utilizan para indexar en la tabla de páginas. Tan

*Tamaño de la tabla de páginas = 2^16 (#de páginas) * 4 Bytes (Tamaño de cada entrada de la tabla de páginas) = 2^18 Bytes *

Tabla de páginas multinivel : En el caso de la tabla de páginas de dos niveles, usemos los primeros 10 bits más significativos para indexar en la tabla de páginas de primer nivel. Siguiente 10 bits para indexar en la tabla de páginas de segundo nivel, que tiene el número de página para asignaciones de números de marco. Rest 12 bits representa el desplazamiento de página.

Tamaño de una tabla de páginas de segundo nivel = 2^10 ( número de entradas) * 4 bytes ( tamaño de cada entrada) = 4 KB

Tamaño total de todas las tablas de páginas de segundo nivel = 2^10 (#de tablas de páginas de segundo nivel) * 4KB (Tamaño de cada tabla de páginas de segundo nivel) = 4 MB

Tamaño de la tabla de páginas de primer nivel = 2^10 (número de entradas) * (10/8) Bytes (Tamaño de cada entrada) = 1.25 KB

Memoria total requerida para almacenar tablas de páginas de primer y segundo nivel = 4 MB + 1.25 KB

Así que necesitamos más memoria para almacenar tablas de páginas de varios niveles.

Si este es el caso, ¿cómo ahorran espacio de memoria las tablas de páginas multinivel ?

Author: Anil Kumar K K, 2015-04-06

3 answers

  1. En pagetable de un solo nivel se necesita toda la tabla para acceder incluso a una pequeña cantidad de datos(menos referencias de memoria). es decir, 2^20 páginas cada PTE ocupando 4bytes como usted asumió.

El espacio requerido para acceder a cualquier dato es 2^20 * 4bytes = 4MB

  1. Las páginas de paginación son multinivel paging.In la paginación multinivel es más específica, puede con la ayuda de la organización multinivel decidir qué página específica entre las 2^20 páginas existen sus datos y seleccionarla . Así que aquí necesitas solo esa página específica estará en la memoria mientras ejecuta el proceso.

En el caso de nivel 2 que discutió, necesita pagetable de nivel 1 y luego 1 de las pagetables de nivel 2^10 en el segundo nivel. Tan, tamaño del 1er nivel = 2^10 * 4bytes = 4KB 2nd nivel necesitamos solamente 1 entre los 2^10 pagetables = así que el tamaño es 2^10 * 4bytes = 4KB

El tamaño total requerido es ahora : 4KB + 4KB = 8KB.

La comparación final es 4MB vs 8KB .

 24
Author: Sai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-27 01:36:39

Aquí está una ventaja principal de las tablas de páginas multinivel:

Primero, corte la tabla de páginas en unidades de tamaño de página; luego, si una página completa de entradas de tabla de páginas (PTE) no es válida, no asigne esa página de la tabla de páginas en absoluto.

Fuente. (Sección 20.3)

Por lo tanto, la cantidad de memoria necesaria para la tabla de páginas no está dictada por el tamaño del espacio de direcciones, sino por la cantidad de memoria que el proceso está utilizando.

Además, el las entradas de la tabla página de página se pueden paginar si la memoria física se llena-solo el directorio de página debe estar siempre presente en la memoria.

 6
Author: Craig S. Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-06 08:29:33

Las tablas de varios niveles se necesitan principalmente porque si la estructura de memoria en Intel-tierra.

Supongamos que tiene un sistema de 32 bits y divide el espacio de direcciones para que la parte superior esté reservada al sistema y la mitad inferior para las direcciones de los usuarios.

Con tal división, necesitaría 2 GB de entradas de tabla de páginas contiguas en cada tabla de páginas de usuario para llegar a las direcciones del sistema.

El viejo VAX a un enfoque simple para esto. Dividió la dirección de 4GB espacio en 4 regiones (2 usuarios, 1 sistema, uno inutilizable). Las tres áreas utilizables tenían su propia tabla de páginas.

Cada región tenía su propia tabla de páginas. Debido a que había un espacio de direcciones del sistema dedicado, las tablas de páginas de usuario podrían ser direcciones virtuales, por lo que no requerirían memoria contigua.

La primera fase de la traducción de direcciones fue mirar los 2 bits de dirección de alto orden para seleccionar la tabla de páginas a usar.

En lugar de tener tablas de páginas separadas, Intel-land rompe el llama a la mesa. Esto reduce los problemas de (1) necesidad de memoria contigua para la tabla; (2) necesidad de que la tabla de páginas abarque todo el espacio de direcciones; (3) permite la definición de direcciones del núcleo que pueden ser compartidas por todos los procesos.

 0
Author: user3344003,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-10 18:46:59