Este artículo incluye una lista de referencias generales , pero carece de suficientes citas en línea correspondientes . ( Agosto de 2015 ) |
En informática , la comunicación entre procesos ( IPC ), también llamada comunicación entre procesos , son los mecanismos que proporciona un sistema operativo para que los procesos gestionen datos compartidos. Normalmente, las aplicaciones pueden utilizar la IPC, categorizadas como clientes y servidores , donde el cliente solicita datos y el servidor responde a las solicitudes del cliente. [1] Muchas aplicaciones son tanto clientes como servidores, como se ve comúnmente en la informática distribuida .
La interconexión de componentes internos (IPC) es muy importante para el proceso de diseño de micronúcleos y nanonúcleos , que reducen la cantidad de funcionalidades proporcionadas por el núcleo. Esas funcionalidades se obtienen luego comunicándose con los servidores a través de la interconexión de componentes internos, lo que genera un gran aumento en la comunicación en comparación con un núcleo monolítico normal. Las interfaces de la interconexión de componentes internos generalmente abarcan estructuras de marco analítico variables. Estos procesos garantizan la compatibilidad entre los protocolos multivectoriales en los que se basan los modelos de la interconexión de componentes internos. [2]
Un mecanismo de IPC puede ser sincrónico o asincrónico. Se pueden utilizar primitivas de sincronización para lograr un comportamiento sincrónico con un mecanismo de IPC asincrónico.
Se han adaptado diferentes enfoques de IPC a diferentes requisitos de software , como rendimiento , modularidad y circunstancias del sistema, como ancho de banda de red y latencia . [1]
Método | Descripción breve | Proporcionado por ( sistemas operativos u otros entornos) |
---|---|---|
Archivo | Un registro almacenado en un disco o un registro sintetizado a pedido por un servidor de archivos, al que pueden acceder múltiples procesos. | La mayoría de los sistemas operativos |
Archivo de comunicaciones | Una forma única de IPC a finales de la década de 1960 que se asemeja más al protocolo 9P de Plan 9 | Sistema de tiempo compartido de Dartmouth |
Señal ; también Trampa del sistema asíncrono | Un mensaje del sistema enviado desde un proceso a otro, que normalmente no se utiliza para transferir datos sino para ordenar de forma remota el proceso asociado. | La mayoría de los sistemas operativos |
Enchufe | Datos enviados a través de una interfaz de red, ya sea a un proceso diferente en la misma computadora o a otra computadora en la red. Orientado a flujo ( TCP ; los datos escritos a través de un socket requieren formato para preservar los límites del mensaje) o, más raramente, orientado a mensajes ( UDP , SCTP ). | La mayoría de los sistemas operativos |
Socket de dominio Unix | Similar a un socket de Internet, pero toda la comunicación ocurre dentro del núcleo. Los sockets de dominio usan el sistema de archivos como su espacio de direcciones. Los procesos hacen referencia a un socket de dominio como un inodo y varios procesos pueden comunicarse con un socket. | Todos los sistemas operativos POSIX y Windows 10 [3] |
Cola de mensajes | Un flujo de datos similar a un socket, pero que generalmente conserva los límites de los mensajes. Generalmente implementados por el sistema operativo, permiten que varios procesos lean y escriban en la cola de mensajes sin estar conectados directamente entre sí. | La mayoría de los sistemas operativos |
Tubo anónimo | Un canal de datos unidireccional que utiliza entradas y salidas estándar . Los datos escritos en el extremo de escritura del conducto se almacenan en el búfer del sistema operativo hasta que se leen desde el extremo de lectura del conducto. La comunicación bidireccional entre procesos se puede lograr utilizando dos conductos en "direcciones" opuestas. | Todos los sistemas POSIX , Windows |
Tubería con nombre | Una tubería que se trata como un archivo. En lugar de utilizar la entrada y la salida estándar como en una tubería anónima, los procesos escriben y leen desde una tubería con nombre, como si fuera un archivo normal. | Todos los sistemas POSIX, Windows, AmigaOS 2.0+ |
Memoria compartida | A varios procesos se les da acceso al mismo bloque de memoria , lo que crea un búfer compartido para que los procesos se comuniquen entre sí. | Todos los sistemas POSIX, Windows |
Paso de mensajes | Permite que varios programas se comuniquen mediante colas de mensajes o canales no administrados por el sistema operativo. Se utiliza comúnmente en modelos de concurrencia. | Se utiliza en paradigmas LPC , RPC , RMI y MPI , Java RMI , CORBA , COM , DDS , MSMQ , MailSlots , QNX y otros. |
Archivo mapeado en memoria | Un archivo asignado a la RAM que se puede modificar cambiando las direcciones de memoria directamente en lugar de enviarlo a una secuencia. Esto comparte los mismos beneficios que un archivo estándar . | Todos los sistemas POSIX, Windows |
Los siguientes son sistemas de mensajería e información que utilizan mecanismos de IPC pero no los implementan por sí mismos:
Las siguientes son API específicas de la plataforma o del lenguaje de programación:
Las siguientes son API específicas de la plataforma o lenguaje de programación que utilizan IPC, pero no lo implementan: