¿De qué es la comunicación entre procesos (IPC)?
Los métodos de IPC incluyen tuberías y tuberías con nombre; colas de mensajes, semáforos; memoria compartida; y enchufes.
Ese último, los sockets , es cómo la mayoría de las comunicaciones ocurren a través de Internet. Sin sockets, su navegador no podría abrir una conexión a un servidor web y sus aplicaciones no podrían conectarse a servicios de backend (a menudo esenciales).
- ¿El desarrollo de una interfaz cerebro-computadora causaría que la humanidad evolucione en seres sin voz física o incluso sin brazos y piernas?
- ¿Ves inteligencia artificial siendo utilizada en una futura misión espacial por la NASA, SpaceX o un equivalente?
- ¿Será mejor si tenemos solo un número limitado de distribuciones de Linux?
- ¿Cómo ayuda la inteligencia artificial? ¿Cuáles son algunas ventajas y desventajas?
- Cómo asegurarme de que mi red de computadoras esté segura
El resto de los métodos IPC enumerados permiten la comunicación entre dos o más procesos (o subprocesos) que se ejecutan en la misma máquina .
Las tuberías se utilizan para unir múltiples comandos. Por ejemplo, puede encadenar los siguientes cuatro comandos usando tuberías:
gato myfile.txt | grep “foo” | corte -c1 | cabeza -20
Es posible escribir la salida de un comando en un archivo y luego leer el siguiente comando del archivo. Pero este método es mucho más conciso y no requiere escribir ningún dato. Además, puede canalizar desde comandos que no terminan (por ejemplo, netcat) y obtener resultados incrementales de los comandos posteriores.
Las canalizaciones con nombre son como canalizaciones pero están representadas por archivos en el sistema de archivos. Los procesos pueden leerlos y escribirles como si fueran archivos reales. Los he usado tal vez media docena de veces en los últimos 20 años. No son tan comunes como otros métodos de IPC pero tienen sus usos.
Las colas de mensajes son un medio para pasar datos estructurados entre procesos / hilos. Un mensaje consta de cierta información de encabezado y el cuerpo del mensaje. La cola a menudo es administrada por el sistema operativo. (Las colas de mensajes en el espacio del usuario se pueden usar para la comunicación entre subprocesos). Los procesos pueden leer y escribir mensajes en la cola para comunicar información entre ellos.
Los semáforos y la memoria compartida proporcionan una forma para que dos procesos lean y escriban el mismo bloque de memoria de forma segura. Los semáforos se usan para sincronizar el acceso a la memoria compartida para que los procesos no intenten leer y escribir los mismos datos al mismo tiempo y terminen golpeándose entre sí. (Por ejemplo, leyendo una cadena a medio sobrescribir). La memoria compartida tiene la ventaja de que puede resultar en un rendimiento significativamente mayor que cualquiera de los métodos anteriores. Esto puede ser particularmente importante en sistemas que requieren mucha memoria y rendimiento, como las bases de datos. Las mejoras de rendimiento vienen con algunas complicaciones adicionales (por ejemplo, los punteros deben almacenarse como compensaciones de la página base) y riesgos (el bloqueo incorrecto puede destruir la memoria).