
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.
Aproches
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]
Aplicaciones
Interfaces de llamada a procedimiento remoto
- Invocación de método remoto (RMI) de Java
- RPC de la ONC
- XML-RPC o SOAP
- JSON-RPC
- Bus de mensajes (Mbus) (especificado en RFC 3259) (no debe confundirse con M-Bus )
- Comunicación remota .NET
- gRPC
Pila de comunicación de la plataforma
Los siguientes son sistemas de mensajería e información que utilizan mecanismos de IPC pero no los implementan por sí mismos:
- Protocolo de comunicaciones de escritorio (DCOP) de KDE : obsoleto por D-Bus
- Bus D
- OpenWrt utiliza la arquitectura de microbus ubus
- API de comunicaciones multinúcleo MCAPI
- SIMPL El proyecto de mensajería sincrónica entre procesos para Linux (SIMPL)
- 9P (Protocolo del sistema de archivos Plan 9)
- Entorno informático distribuido (DCE)
- Ahorro
- Motor de comunicaciones por Internet (ICE) de ZeroC
- OMQ
- Software intermedio Enduro/X
- YAMI4
- Enlightenment_(software) E16 utiliza eesh como IPC
Pila de comunicación del sistema operativo
Las siguientes son API específicas de la plataforma o del lenguaje de programación:
- Eventos Apple de Apple Computer , anteriormente conocidos como Comunicaciones entre aplicaciones (IAC)
- Puertos ARexx
- LINX de Enea para Linux (código abierto) y varios DSP y procesadores de propósito general bajo OSE
- Los puertos Mach del núcleo Mach
- ActiveX de Microsoft , Modelo de objetos componentes (COM), Microsoft Transaction Server ( COM+ ), Modelo de objetos componentes distribuidos (DCOM), Intercambio dinámico de datos (DDE), Vinculación e incrustación de objetos (OLE), canalizaciones anónimas , canalizaciones con nombre , Llamada a procedimiento local , MailSlots , Bucle de mensajes , MSRPC , .NET Remoting y Windows Communication Foundation (WCF)
- SPX de Novell
- POSIX mmap , colas de mensajes , semáforos , [4] y memoria compartida
- Mensajes de RISC OS
- Puertas Solaris
- Colas de mensajes, semáforos y memoria compartida del Sistema V
- Comunicación transparente entre procesos de Linux (TIPC)
- OpenBinder Abrir carpeta
- Servicio PPS (publicación/suscripción persistente) de QNX
Modelos de objetos distribuidos
Las siguientes son API específicas de la plataforma o lenguaje de programación que utilizan IPC, pero no lo implementan:
- Libt2n solo para C++ en Linux, maneja objetos complejos y excepciones
- Sesiones de PHP
- Ruby distribuido
- Arquitectura de intermediario de solicitudes de objetos comunes (CORBA)
- El IPC asincrónico de Electron comparte objetos JSON entre un proceso principal y un proceso de renderización [5]
Véase también
- Zócalos Berkeley
- Programación de redes informáticas
- Comunicación de procesos secuenciales (paradigma CSP)
- Servicio de distribución de datos
- Base de datos como IPC
- Llamada a procedimiento protegido
Referencias
- Stevens, Richard . Programación de redes UNIX, volumen 2, segunda edición: comunicaciones entre procesos. Prentice Hall, 1999. ISBN 0-13-081081-9
- U. Ramachandran, M. Solomon, M. Vernon Soporte de hardware para comunicación entre procesos Actas del 14º simposio internacional anual sobre arquitectura de computadoras. Pittsburgh, Pensilvania, Estados Unidos. Páginas: 178 - 188. Año de publicación: 1987 ISBN 0-8186-0776-9
- Crovella, M. Bianchini, R. LeBlanc, T. Markatos, E. Wisniewski, R. Uso de la relación comunicación-computación en el diseño de programas paralelos y predicción del rendimiento 1–4 de diciembre de 1992. pp. 238–245 ISBN 0-8186-3200-3
- ^ ab "Comunicaciones entre procesos". Microsoft.
- ^ Camurati, P (1993). "Comunicaciones entre procesos para el diseño a nivel de sistema". Taller internacional sobre diseño conjunto de hardware y software .
- ^ "Interoperabilidad de Windows/WSL con AF_UNIX". Microsoft. 7 de febrero de 2018. Consultado el 25 de mayo de 2018 .
- ^ "Programación concurrente - comunicación entre procesos"
- ^ "IpcMain | Electrón".
Enlaces externos
- Página del manual ipc(5) de Linux que describe el IPC de System V
- PC de Windows
- IPC disponible usando Qt
- Programación de redes Unix (Vol. 2: Comunicaciones entre procesos) por W. Richard Stevens
- Comunicación entre procesos y canales en C
- DIPC, Sistema distribuido V IPC