Comunicación entre procesos

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Cómo los sistemas operativos informáticos permiten compartir datos
Un sistema de computación de red que conecta muchas computadoras personales a través de Internet a través de la comunicación interprocesal

En informática, comunicación entre procesos o comunicación entre procesos (IPC) se refiere específicamente a los mecanismos que proporciona un sistema operativo para permitir la procesos para gestionar los datos compartidos. Por lo general, las aplicaciones pueden usar IPC, categorizadas como clientes y servidores, donde el cliente solicita datos y el servidor responde a las solicitudes del cliente. Muchas aplicaciones son tanto clientes como servidores, como se ve comúnmente en la computación distribuida.

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 luego se obtienen al comunicarse con los servidores a través de IPC, lo que lleva a un gran aumento en la comunicación en comparación con un núcleo monolítico normal. Las interfaces de IPC generalmente abarcan estructuras de marcos analíticos variables. Estos procesos aseguran la compatibilidad entre los protocolos multivectoriales en los que se basan los modelos IPC.

Un mecanismo IPC es síncrono o asíncrono. Las primitivas de sincronización pueden utilizarse para tener un comportamiento síncrono con un mecanismo IPC asíncrono.

Enfoques

Se han adaptado diferentes enfoques de IPC a diferentes requisitos de software, como el rendimiento, la modularidad y las circunstancias del sistema, como el ancho de banda de la red y la latencia.

MétodoDescripción cortaProporcionado por (sistemas operativos u otros entornos)
ArchivoUn registro almacenado en disco, o un registro sintetizado a pedido por un servidor de archivos, que puede ser accedido por múltiples procesos.La mayoría de los sistemas operativos
Archivo de comunicacionesUna forma única de PCI a finales de los años 60 que más se parece al protocolo 9P del Plan 9Dartmouth Time-Sharing System
Signal; también asincrónico Trampa de sistemaUn mensaje de sistema enviado de un proceso a otro, no generalmente utilizado para transferir datos sino usado para mando a distancia el proceso asociado.La mayoría de los sistemas operativos
SocketData sent over a network interface, either to a different process on the same computer or to another computer on the network. Orientación a la corriente (TCP; los datos escritos a través de una toma requieren formato para preservar los límites del mensaje) o más raramente orientados al mensaje (UDP, SCTP).La mayoría de los sistemas operativos
Enchufe de dominio UnixSimilar a una toma de Internet, pero toda la comunicación ocurre dentro del núcleo. Las tomas de dominio utilizan el sistema de archivos como su espacio de dirección. Procesos hacen referencia a una toma de dominio como un inodo, y múltiples procesos pueden comunicarse con una tomaTodos los sistemas operativos POSIX y Windows 10
Lugar del mensajeUn flujo de datos similar a un socket, pero que generalmente preserva los límites del mensaje. Típicamente implementados por el sistema operativo, permiten que múltiples procesos lean y escriban a la cola del mensaje sin estar directamente conectados entre sí.La mayoría de los sistemas operativos
Tubo anónimoUn canal de datos unidireccional utilizando entrada y salida estándar. Los datos escritos al final de la tubería son amortiguados por el sistema operativo hasta que se lee desde el extremo de la tubería. La comunicación bidireccional entre procesos se puede lograr utilizando dos tuberías en direcciones opuestas.Todos los sistemas POSIX, Windows
Tubo nombreUna tubería que se trata como un archivo. En lugar de utilizar entrada y salida estándar como con una tubería anónima, los procesos escriben y leen desde una tubería llamada, como si fuera un archivo regular.Todos los sistemas POSIX, Windows, AmigaOS 2.0+
Memoria compartidaMúltiples procesos tienen acceso al mismo bloque de memoria, que crea un búfer compartido para los procesos para comunicarse entre sí.Todos los sistemas POSIX, Windows
Mensaje que pasaPermite que varios programas se comuniquen usando colas de mensajes y/o canales no gestionados por el SOS. Comúnmente utilizado en modelos de concurrencia.Utilizado en paradigmas LPC, RPC, RMI y MPI, Java RMI, CORBA, COM, DDS, MSMQ, MailSlots, QNX, otros
Archivo de memoriaUn archivo mapeado a RAM y puede ser modificado cambiando direcciones de memoria directamente en lugar de salida a un flujo. Esto comparte los mismos beneficios que un archivo estándar.Todos los sistemas POSIX, Windows

Aplicaciones

Interfaces de llamadas a procedimientos remotos

  • Invocación de método remoto de Java (RMI)
  • ONC RPC
  • XML-RPC o SOAP
  • JSON-RPC
  • Bus de Mensaje (Mbus) (definido en RFC 3259) (para no confundirse con M-Bus)
  • . NET Remoción
  • 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 implementan IPC por sí mismos:

  • Protocolo de Comunicaciones por Escritorio de KDE (DCOP) – deprecatado por D-Bus
  • D-Bus
  • OpenWrt utiliza arquitectura de micro bus ubus
  • MCAPI Multicore Communications API
  • SIMPL El proyecto de mensajería de interproceso sincronizado para Linux (SIMPL)
  • 9P (Plan 9 Filesystem Protocol)
  • Distributed Computing Environment (DCE)
  • Thrift
  • Motor de Comunicaciones de Internet de ZeroC (ICE)
  • ØMQ
  • Enduro/X Middleware
  • YAMI4
  • Iluminación_(software) E16 utiliza eesh como un IPC

Pila de comunicación del sistema operativo

Las siguientes son API específicas de plataforma o lenguaje de programación:

  • Eventos Apple de Apple Computer, anteriormente conocido como Interapplication Communications (IAC)
  • Puertos ARexx
  • LINX de Enea para Linux (fuente abierta) y varios procesadores DSP y de uso general bajo OSE
  • Los puertos Mach del kernel Mach
  • ActiveX de Microsoft, Modelo de Objetos de Componente (COM), Microsoft Transaction Server (COM+), Modelo de Objetos de Componente Distribuido (DCOM), Intercambio Dinámico de Datos (DDE), Enlace de Objetos y Embedding (OLE), tuberías anónimas, llamadas tuberías, Llamada de Procedimiento Local, MailSlots, bucle de Mensaje, MSRPC,.NET Remoción y Windows Communication Foundation (WCF)
  • El SPX de Novell
  • POSIX mmap, colas de mensajes, semáforos y memoria compartida
  • RISC Mensajes de OS
  • Puertas solaris
  • Mensaje del sistema V colas, semaforas y memoria compartida
  • Linux Transparent Inter Process Communication (TIPC)
  • OpenBinder Binder abierto
  • Servicio PPS de QNX (Persistent Publish/Subscribe)

Modelos de objetos distribuidos

Las siguientes son API específicas de plataforma o lenguaje de programación que usan IPC, pero no lo implementan ellas mismas:

  • Libt2n para C++ bajo Linux solamente, maneja objetos complejos y excepciones
  • Sesiones de PHP
  • Distribuido Ruby
  • Common Object Request Broker Architecture (CORBA)
  • IPC asincrónico de Electron, comparte objetos JSON entre un proceso principal y un renderizador

Contenido relacionado

El estilo wiki

The Wiki Way: Quick Collaboration on the Web es un libro de 2001 sobre wikis escrito por Bo Leuf y Ward Cunningham. Fue el primer libro importante publicado...

Charla

Smalltalk es un lenguaje de programación puramente orientado a objetos creado en la década de 1970 para uso educativo, específicamente para el aprendizaje...

Adobe RoboAyuda

Adobe RoboHelp es una herramienta de creación de ayuda desarrollada y publicada por Adobe Inc. para Windows. RoboHelp fue creado por Gen Kiyooka y Blue Sky...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save