gestión de almacenamiento linux

El sistema Linux utiliza el concepto de espacio de direcciones para administrar los datos de la memoria. Si la dirección física está expuesta, el proceso traerá varios problemas:
1. Los programas ilegales pueden dañar el sistema operativo.
2. Es difícil lograr la concurrencia.
Por tanto, se introduce el concepto de espacio de direcciones : un espacio de direcciones es un conjunto de direcciones que un proceso puede utilizar para direccionar la memoria.
En pocas palabras, el espacio de direcciones crea una memoria abstracta para el proceso. Cada proceso tiene su propio espacio de direcciones, y este espacio de direcciones es independiente del espacio de direcciones de otros procesos.
Para garantizar que varias aplicaciones estén en la memoria al mismo tiempo y no se afecten entre sí, es necesario resolver dos problemas: protección y reubicación.

Resuelve la sobrecarga de memoria

Hay dos formas de lidiar con la sobrecarga de memoria:
1. La estrategia más simple es la tecnología de intercambio : un proceso se ejecuta primero en la memoria y luego se ejecuta en el disco cuando está inactivo, luego no ocupará memoria cuando esté inactivo. Al intercambiar, al intercambiar procesos inactivos de disco a memoria, la ubicación en la memoria será diferente de la ubicación de la memoria antes de intercambiar al disco. Por eso es necesario reubicar la dirección. Para evitar una memoria insuficiente debido al crecimiento de la memoria cuando el proceso se está ejecutando, asignaremos algo de memoria adicional para reservar para la memoria cuando solicitemos memoria.

2. Memoria virtual: Cada programa tiene su propio espacio de direcciones, este espacio se divide en muchos bloques, cada bloque se llama página. Cada página es un rango de direcciones continuo. Estas páginas se asignan a la memoria física. Cuando el programa hace referencia a una parte del espacio de direcciones en la memoria física, el hardware realiza la asignación necesaria. Cuando el programa se aplica a una parte del espacio de direcciones que no está en la memoria física, el sistema operativo es responsable de cargar la parte que falta en la memoria física y volver a ejecutar la instrucción fallida.
La tecnología de memoria virtual resuelve el problema de que el tamaño del programa es mayor que el tamaño de la memoria física y ahorra recursos de la computadora. Inserte la descripción de la imagen aquí
La memoria virtual proporciona principalmente tres capacidades:
1. Con respecto a la memoria principal como un caché del espacio de direcciones almacenado en el disco, solo las actividades activas se almacenan en la memoria principal y van y vienen entre el disco y la memoria principal según sea necesario. transferir datos, es necesario poder ejecutar programas que son mucho más grandes que la memoria.
2. Proporciona un espacio de direcciones coherente para el proceso y simplifica la gestión de la memoria.
3. Proteja el espacio de direcciones de cada proceso para que no se dañe por otros procesos.

El espacio de direcciones virtuales se compone de varias páginas. El sistema operativo mantiene una tabla de páginas para cada proceso, que almacena la asignación de la página del proceso al marco de la página de memoria. Inserte la descripción de la imagen aquí
En diferentes procesos, si las direcciones lógicas de dos variables son las mismas, pero debido a que las tablas de páginas de cada proceso son diferentes, el resultado del mapeo también es diferente. Entonces la dirección física es completamente diferente.

Acelere el proceso de paginación

La necesidad de un mapeo de páginas grande y rápido se ha convertido en una limitación importante para la construcción de computadoras. Por tanto, hay dos formas de acelerar el mapeo:
1. Búfer de detección de conversión (TLB): es un dispositivo de hardware.
2. Gestión de TLB de software;

Tabla de páginas para memoria grande

1. Tablas de páginas de varios niveles: evite mantener todas las tablas de páginas en la memoria todo el tiempo. La tabla de páginas del primer nivel envuelve la tabla de páginas del segundo nivel.
2. Tabla de página invertida: cada marco de página tiene un elemento de tabla, no cada página virtual tiene un elemento de tabla.

Supongo que te gusta

Origin blog.csdn.net/ALITAAAA/article/details/109430969
Recomendado
Clasificación