IPC: Shared memory (SHM)
El Shared Memory (memoria compartida) es un mecanismo de comunicación y compartición de datos entre procesos en sistemas operativos. Permite que múltiples procesos accedan a una región de memoria común, lo que les permite intercambiar información de manera eficiente y sincronizada.
En el contexto del Shared Memory, una región de memoria se establece y se asigna en un área compartida, que puede ser accedida por varios procesos simultáneamente. Estos procesos pueden leer y escribir datos en la memoria compartida, lo que les permite comunicarse y colaborar entre sí.
**Memory Mapping (**nos permite conectar entre procesos relacionados)
El memory mapping (mapeo de memoria) es una técnica utilizada en sistemas operativos que permite que una región de memoria física sea asignada y accesible para un proceso como si fuera un archivo. En lugar de leer o escribir datos en un archivo tradicional utilizando llamadas al sistema como read() o write(), el memory mapping permite que el proceso acceda directamente a la memoria asignada y realice operaciones de lectura y escritura en ella.
**Wrapper (**objeto que identifica un archivo en alto nivel)
Es una entidad que encapsula o envuelve a otra entidad, proporcionando una interfaz más conveniente o abstrayendo los detalles de implementación subyacentes. El objetivo principal de un wrapper es simplificar o extender la funcionalidad de la entidad envuelta.
Algunos ejemplos comunes de wrappers son:
Nota: A nivel python yo escribo todo en alto nivel pero eso se traduce en funciones de bajo nivel
**os.ftruncate #** me permite extender la capacidad de tamaño de un archivo
Por ejemplo:
Tengo 30b y lo agrando a 100b (ftruncate es de bajo nivel)
**file.resize # (usando resize)** → hace lo mismo pero en este caso te cambia el tamaño de la memoria mapeada (resize es de alto nivel)
mmap.mmap(-1, size) # mapeo anonimo