Mecanismo de paginación

 Paginación

Una forma para que el sistema operativo administre la memoria. Divide la memoria en páginas y luego asigna direcciones lógicas a direcciones físicas a través de la tabla de páginas para acceder a direcciones físicas específicas. La paginación divide y accede mejor a la memoria, pero también aumenta la sobrecarga del sistema. Por ejemplo, la tabla de páginas en sí ocupa una cierta cantidad de memoria y primero se debe acceder a la tabla de páginas cuando se accede a la memoria física real. En términos generales, a cada proceso se le asignará una tabla de páginas. Finalmente , el diseño de la tabla de páginas debe ser cauteloso.

 

Estructura de la tabla de páginas

Lo anterior es un espacio de direcciones lógicas generado por una CPU, que debe asignarse a un espacio de direcciones físicas específico a través de la tabla de páginas. El índice de la página apunta a una entrada específica de la tabla de páginas. La tabla de páginas es una matriz unidimensional almacenada en la memoria. Suponiendo un sistema de 32 bits, la dirección también es de 32 bits. Suponiendo que el índice de la página solo usa 20 bits, ¿cómo apunta a la entrada de la tabla de páginas en la memoria? (Puede agregar todos los 0 en los 12 bits superiores de la dirección a los 20 bits inferiores. Por supuesto, no puede comenzar desde la memoria 0. Habrá un registro de dirección base más su dirección como la dirección real. Para decirlo sin rodeos, está en este El desplazamiento en la tabla de páginas). Otro punto a tener en cuenta es que esta tabla de páginas también debe distribuirse en ubicaciones de memoria contiguas .

Suponiendo que una computadora tiene 32 bits (es decir, la CPU puede manejar 32 bits a la vez), el rango de espacio de direcciones es 0 ~ 2 ^ 32. El sistema utiliza un mecanismo de paginación y el tamaño de cada página es 4k (2 ^ 12), por lo que se pueden generar 2 ^ 20 (2 ^ 32/2 ^ 12) páginas. Solo necesitamos usar 20 bits para ubicar la posición de una página, porque la dirección de la página es un múltiplo de 2 ^ 12, es decir, los últimos 12 bits deben ser todos 0. El desplazamiento de página 12 se puede colocar en una posición específica dentro de una página.

Simplemente calculemos el tamaño de la tabla de páginas que un sistema de 32 bits necesita generar para toda la memoria. Primero, el tamaño de una entrada de la tabla de páginas es 4B (incluso si es de 32 bits), y el tamaño total de la tabla de páginas es 4B * 2 ^ 20, que son 4 MB de RAM. Esto requiere 4 MB para cada proceso para almacenar la tabla de páginas, lo que obviamente es un desperdicio. A continuación, presentaremos la tabla de la página secundaria para ver si este problema se puede resolver.

 

Tabla de páginas secundarias

Seguimos asumiendo que el sistema es de 32 bits y que cada página es de 4k. Dividimos la página en un directorio de páginas de 10 bits como el desplazamiento en el directorio de páginas, y la entrada en el directorio de páginas apunta a la primera dirección de la tabla de páginas. La tabla de páginas de 10 bits se utiliza como desplazamiento de la tabla de páginas (tabla de páginas en la memoria). Finalmente, la dirección física final se obtiene sumando los 20 bits en la entrada de la tabla de páginas y el desplazamiento de la dirección lógica. También hay un registro CR3 en el extremo izquierdo de la figura anterior, que apunta a la primera dirección del directorio de páginas (una tabla de páginas en la memoria). También vale la pena señalar que las entradas del directorio de páginas y la tabla de páginas en la memoria son 4B (32 bits) . Esto me ha estado molestando, ¿por qué no 10 bits? Más tarde lo pensé y descubrí que la tabla de páginas está en la memoria, y la entrada en el directorio de páginas debe apuntar a la dirección de la tabla de páginas en 32 bits para poder determinarla. (Aquí hablo de por qué creo que son 10 bits? Porque nuestro propósito original de diseñar la tabla de páginas secundaria es reducir el espacio de almacenamiento de la tabla de páginas en la memoria, y los 10 bits altos de muchas entradas en la tabla de páginas pueden ser el mismo Sí, y luego podemos sacar los 10 bits altos y almacenarlos en otra tabla, donde las entradas apuntan a la tabla con los 10 bits bajos (hay muchas tablas de este tipo). De esta manera, el método de proponer la parte pública puede reducir el uso de la memoria ahora. Pero este no es el caso).

En este punto, encontraremos que la memoria de la tabla de páginas no ha disminuido, sino que ha aumentado (porque la entrada de la tabla de páginas en la memoria es 4B). La parte agregada es el espacio ocupado por el directorio de la página. Esta es otra confusión que he creado, así que leí el artículo y lo descubrí. Aunque el directorio de páginas aquí aumenta la memoria, dispersa la ubicación de la tabla de páginas secundaria en la memoria, es decir, la tabla de páginas secundaria se puede distribuir en la memoria. No es necesario tener una cuando solo hay una tabla de páginas como se mencionó anteriormente Memoria contigua de 4 MB. También hay un bit de existencia en la entrada del directorio de páginas, cuando este bit es 0, significa que la tabla de páginas secundaria correspondiente no existe en la memoria y puede ocurrir una excepción si se accede a ella. También hay un bit que indica si la tabla de página secundaria correspondiente está en el disco o en la memoria, si está en el disco, el sistema operativo la cambiará del disco a la memoria si se accede a ella. Por supuesto, hay muchos bits que representan respectivamente ejecutable, solo lectura y lectura-escritura. . . Lo que me hace preguntarme aquí es que 32 bits aquí no solo pueden representar la dirección de la tabla de página secundaria en la memoria, sino que también pueden usar varios de ellos para representar otra información. En este punto, encontramos que aunque el directorio de páginas debe existir en la memoria, las tablas de páginas secundarias no necesitan estar todas en la memoria y están dispersas en varias ubicaciones de la memoria. Esto satisface la necesidad de guardar memoria para el propósito que comenzamos.

 

En resumen : aquí, de una tabla de página a dos páginas, las tablas de la página central en la memoria se pueden distribuir y el espacio de memoria ocupado por las tablas de página también se guarda.

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_41237676/article/details/100974132
Recomendado
Clasificación