Gestión de memoria de Linux | 1. El origen y pensamiento de la gestión de memoria

imagen
Mi círculo: un lugar de encuentro para ingenieros senior
Soy el hermano Dong, un ingeniero senior de desarrollo de software integrado. Me dedico al desarrollo de controladores y sistemas integrados de Linux. ¡He trabajado para una empresa Fortune 500!
Filosofía creativa: concéntrese en compartir artículos integrados de alta calidad para que todos puedan obtener algo de la lectura.
imagen
imagen

1. Introducción

"La Doctrina del Medio" dice: "La plataforma de nueve pisos se eleva desde la base de la tierra." ¡Lo mismo es cierto para aquellos de nosotros que nos dedicamos a la tecnología!

Se puede decir que nunca ha prestado atención a Linuxla gestión de la memoria, pero existe en todos los aspectos de nuestro desarrollo diario. Los archivos que abre, las variables que crea y los programas que ejecuta se basan en esto. ser la operación La piedra angular del sistema; es solo que la capa inferior está tan bien encapsulada que no necesitamos preocuparnos demasiado durante el proceso de desarrollo. No hay años tranquilos, es solo que algunas personas llevan la carga hacia adelante. .

 

Aunque hay relativamente pocos involucrados en el desarrollo diario, como Linuxdesarrollador calificado, es fundamental comprender la administración de la memoria y también será de gran beneficio para el desarrollo integrado. Hoy hablaremos sobre la administración de la memoria en detalle.

 

Hay muchos artículos muy buenos sobre este tema en Internet, pero 100 personas tienen 100 formas de comprensión y diferentes personas tienen diferentes fundamentos y diferentes capacidades de comprensión, por lo que tiene más sentido para mí escribir esta serie de artículos.

 

2. El origen de la gestión de la memoria.

¿Por qué necesitamos este concepto?

  • En primer lugar, la gestión de la memoria, ¿qué se gestiona?

Lo que se administra en realidad es nuestra memoria física, es decir, nuestro RAMespacio. En la computadora, está representado por los módulos de memoria que instalamos. Algunas personas instalan 4G, 8Go incluso 64G. Estos son los tamaños reales del espacio físico, que es nuestro de real recursos de hardware.

imagen

  • ¿Por qué gestionar?

C51Cualquiera que realice trabajos integrados sabe que, al igual que los microcontroladores y los microcontroladores con los que acabamos de empezar a jugar STM32, después de grabar el programa en Flashel medio, después de iniciar, el programa CPUse Flashcargará en RAMel medio, que es nuestra memoria física, y luego todo Nuestras operaciones se basarán todas en esta memoria física.

imagen

Entonces en este momento :

  1. ¿Qué debemos hacer si queremos volver a ejecutar un programa idéntico?
  2. Incluso si se ejecuta, ¿qué debo hacer si los dos programas operan la misma variable al mismo tiempo y el valor se modifica incorrectamente?

Esto es Linuxlo que hace la gestión de la memoria.

 

Por cierto, me gustaría presentarles mi círculo: un lugar de reunión para ingenieros experimentados . Espero que todos se unan a mí.

 

3. Ideas de gestión de memoria de Linux

Para resolver algunos de los problemas anteriores, Linuxse utiliza tecnología de gestión de memoria virtual.

  1. LinuxEl sistema operativo abstrae el concepto de un espacio de direcciones virtuales para que lo utilicen los usuarios de nivel superior, con el propósito de hacer que múltiples procesos de usuario piensen que tienen espacio de memoria exclusivo.
  2. La relación correspondiente entre el espacio de direcciones virtuales y el espacio de direcciones físicas se deja a cargo de una MMU(Memory Managerment Unit)persona especial para que la administre, quien es el principal responsable de asignar el espacio de memoria virtual al espacio de direcciones físicas reales.

imagen

El objetivo principal de hacer esto es:

  1. Deje que cada proceso tenga el mismo tamaño de espacio de direcciones virtuales
  2. Evitar que los usuarios accedan directamente a la memoria física, provocando fallos del sistema

De esta forma ejecutamos múltiples procesos al mismo tiempo, aunque parece que las operaciones de direcciones virtuales son las mismas, luego de pasarlas se MMUasignan a diferentes espacios de direcciones físicas, solucionando así el problema anterior.

 

4. Resumen

Familiarizados con el origen y las ideas de la gestión de la memoria, podemos ver que la gestión de la memoria del sistema operativo se divide principalmente en los siguientes aspectos:

  1. Gestión del espacio de memoria virtual : ¿Cómo utilizar y gestionar el espacio de direcciones virtuales que abstrajimos?
  2. Gestión del espacio de memoria física : una vez asignada la dirección virtual al espacio de memoria física, ¿cómo administrarla y cómo asignarla?
  3. Cómo mapear : ¿Cómo se mapea la memoria virtual a la memoria física? ¿Cómo funciona? ¿Cuáles son los métodos de mapeo?

Exploremos cada uno de ellos en detalle a continuación.

 

Me gusta + seguir, nunca te pierdas

imagen
¡Bienvenido a seguir la cuenta oficial & Planet [Embedded Art], original del hermano Dong!

おすすめ

転載: blog.csdn.net/dong__ge/article/details/133550157