Directorio de artículos
La teoría de este capítulo se basa en la versión del kernel
32
de la plataforma de bits.Linux
kernel 2.6.32
1. Estructura del espacio de direcciones del proceso de Linux
-
para asegurar esoseguridad de la memoria, sistemas operativos modernosNo permitidoLas aplicaciones (procesos) acceden directamente al espacio de la memoria física
-
Generalmente hablando,Sistemas operativos y compiladores.darécada procesoconfiguraciónUn espacio de memoria virtual separadoyuna tabla de páginas de mapeo, el espacio de memoria virtual se llama espacio de direcciones de proceso,dirección de memoria virtualA través de una relación cartográfica específica condirección de memoria físicaconstruir conexión
-
Linux
El espacio de direcciones del proceso está0x00000000 ~ 0xffffffff
numerado y tiene la siguiente estructura: -
Instrucciones en el proceso al que desea accedermemoria física, es necesario confiar endirección de memoria virtualmapeo, procesoDirección virtual y memoria física.aprobartabla de páginasPara asignar:
-
Desde la perspectiva de la capa de aplicación,código de aplicaciónneutralVariables y funciones(datos) dirección de memoria yinstrucción en sídirección de memoriaTodas son direcciones de memoria virtual.!!!Todos estosdirección de memoria virtualasí comoSu relación de mapeo con direcciones de memoria física.Esto se determina cuando se compila la aplicación, por lo queMecanismo de memoria virtual de procesoEsencialmente, es un mecanismo de gestión de memoria formado por la cooperación del sistema operativo y el compilador.
- Cuando la CPU ejecuta instrucciones internamente, la dirección de memoria utilizada también es una dirección de memoria virtual.
2. Cómo gestiona Linux el espacio de direcciones de los procesos
- cada procesoCada uno tiene su propio independiente.espacio de direcciones de procesoytabla de páginas mapeadas
Linux
En el kernel, el espacio de direcciones del procesostruct mm_struct
lo mantiene uno, yPCB
la estructura (bloque de control de proceso) de cada proceso apunta a unastruct mm_struct
estructura:struct mm_struct
Mantenimiento de estructurasespacio de direcciones de procesoEl método específico es similar aUtilice punteros para mantener rangos de direcciones:- Cuando se cargan múltiples procesos en la memoria, habrá múltiples
struct mm_struct
estructuras ytabla de páginas mapeadas,por lo tantoLinux
espacio de direcciones de procesoLa esencia esstruct mm_struct
la estructura ytabla de páginas mapeadasconstituidoEstructuras de datos del kernel
3. El modelo de proceso de Linux que utiliza memoria física.
Linux
La forma de existencia del procesoPCB
(task_struct
) y el espacio de direcciones del proceso ( ):mm_struct
- Cómo accede el conjunto de instrucciones del proceso a la memoria física:
4. La importancia de la existencia del espacio de direcciones del proceso.
- Con la ayuda detabla de páginas mapeadasEl sistema operativo puedeDenegar solicitudes de acceso ilegal a la memoria por parte de procesos de aplicación, garantizando la seguridad de la memoria del sistema informático.
- En el sentido del diseño del sistema operativo,mecanismo de memoria virtualhacer el sistema operativoMódulo de gestión de memoriayMódulo de gestión de procesosComprensión completa del acoplamiento cuandoAlgoritmo de gestión de memoriaCuando se necesiten ajustes, no afectaráMódulo de gestión de procesosdiseño (simplemente modifique la dirección física en la tabla de páginas asignadas), de manera similar, cuandoMódulo de gestión de procesosCuando se requiera un rediseño, no afectaráMódulo de gestión de memoria
- mecanismo de memoria virtualDe hecho, es una especie deEstrategia de asignación retrasada para memoria física., cuando el proceso
PBC
yConjunto de instruccionesDespués de cargarse en la memoria, el sistema operativo no asignará memoria física a los objetos en el proceso inmediatamente (incluso si cada objeto en el proceso tiene una dirección virtual), solo cuando el proceso asigneRealizar operaciones de lectura y escritura.El sistema operativo asignará memoria física al objeto a través del mapeo de la tabla de páginas. Esta estrategia de asignación de memoria retrasada mejoraDurante la ejecución concurrente de cada proceso.Eficiencia en el uso de la memoria de la computadora - porqueprocesar el espacio de direcciones virtualesexistencia, desde la perspectiva de la aplicación,La dirección de memoria de cada objeto.Todos están dispuestos de forma ordenada y compacta, lo que permite a los desarrolladoresOperaciones de memoria más convenientes, al mismo tiempo el sistema operativo también puede ser más convenienteMonitorear y administrar el uso de memoria por procesos., para lograr la asignación y liberación instantánea de memoria física.