¿Qué es el mecanismo de mapeo de memoria de archivos mmap de Linux?
La memoria compartida permite que dos o más procesos compartan un área de almacenamiento determinada. Debido a que no es necesario copiar los datos de un lado a otro, es el mecanismo de comunicación entre procesos más rápido. La memoria compartida se puede lograr mediante el mapeo mmap () de archivos ordinarios (el mapeo anónimo también se puede usar en casos especiales) o mediante el mecanismo de memoria compartida VPN del sistema. La interfaz y el principio de la aplicación son simples, pero el mecanismo interno es complejo. Para lograr una comunicación más segura, se suele utilizar junto con mecanismos de sincronización como luces de señalización. El mecanismo de mmap es crear un archivo en el disco y abrir un espacio separado en la memoria de cada proceso para el mapeo. Si hay varios procesos, no consumirá demasiada memoria física real (memoria principal). El mecanismo de shm: la memoria compartida de cada proceso se asigna directamente a la memoria física real.
1. mmap se guarda en el disco duro real, pero el almacenamiento real no se refleja en la memoria principal. Ventajas: la capacidad de almacenamiento puede ser grande (más que la memoria principal); Desventajas: las velocidades de lectura y escritura entre procesos son más lentas que las de la memoria principal.
2. El shm se guarda en la memoria física (memoria principal) y la cantidad de almacenamiento real se refleja directamente en la memoria principal. Ventajas: la velocidad de acceso entre procesos (lectura y escritura) es más rápida que la del disco. Desventajas: la capacidad de almacenamiento no puede ser muy grande (más que la memoria principal) desde el punto de vista del uso: si la capacidad de almacenamiento asignada no es grande, luego use shm si la capacidad de almacenamiento es grande, use mmap.