Espacio de direcciones de proceso (mecanismo de memoria virtual de Linux)

Insertar descripción de la imagen aquí

La teoría de este capítulo se basa en la versión del kernel 32de la plataforma de bits.Linuxkernel 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

  • LinuxEl espacio de direcciones del proceso está 0x00000000 ~ 0xffffffffnumerado y tiene la siguiente estructura:Insertar descripción de la imagen aquí

  • 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:Insertar descripción de la imagen aquí

  • 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
  • LinuxEn el kernel, el espacio de direcciones del proceso struct mm_structlo mantiene uno, y PCBla estructura (bloque de control de proceso) de cada proceso apunta a una struct mm_structestructura:Insertar descripción de la imagen aquí
  • struct mm_structMantenimiento de estructurasespacio de direcciones de procesoEl método específico es similar aUtilice punteros para mantener rangos de direcciones:Insertar descripción de la imagen aquí
  • Cuando se cargan múltiples procesos en la memoria, habrá múltiples struct mm_structestructuras ytabla de páginas mapeadas,por lo tantoLinuxespacio de direcciones de procesoLa esencia es struct mm_structla estructura ytabla de páginas mapeadasconstituidoEstructuras de datos del kernel

3. El modelo de proceso de Linux que utiliza memoria física.

  • LinuxLa forma de existencia del proceso PCB( task_struct) y el espacio de direcciones del proceso ( ):mm_struct
    Insertar descripción de la imagen aquí
  • Cómo accede el conjunto de instrucciones del proceso a la memoria física:
    Insertar descripción de la imagen aquí

4. La importancia de la existencia del espacio de direcciones del proceso.

  1. 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.
  2. 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
  3. mecanismo de memoria virtualDe hecho, es una especie deEstrategia de asignación retrasada para memoria física., cuando el proceso PBCyConjunto 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
  4. 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.
    Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_73470348/article/details/132819628
Recomendado
Clasificación