Comunicación entre procesos

Cómo los sistemas operativos informáticos permiten compartir datos
Un sistema de computación en red que conecta muchas computadoras personales a través de Internet mediante una comunicación de red entre procesos.

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]

MétodoDescripción breveProporcionado por ( sistemas operativos u otros entornos)
ArchivoUn 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 comunicacionesUna forma única de IPC a finales de la década de 1960 que se asemeja más al protocolo 9P de Plan 9Sistema de tiempo compartido de Dartmouth
Señal ; también Trampa del sistema asíncronoUn 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
EnchufeDatos 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 UnixSimilar 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 mensajesUn 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ónimoUn 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 nombreUna 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 compartidaA 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 mensajesPermite 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 memoriaUn 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

Aplicaciones

Interfaces de llamada a procedimiento remoto

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:

Pila de comunicación del sistema operativo

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

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:

Véase también

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 
  1. ^ ab "Comunicaciones entre procesos". Microsoft.
  2. ^ Camurati, P (1993). "Comunicaciones entre procesos para el diseño a nivel de sistema". Taller internacional sobre diseño conjunto de hardware y software .
  3. ^ "Interoperabilidad de Windows/WSL con AF_UNIX". Microsoft. 7 de febrero de 2018. Consultado el 25 de mayo de 2018 .
  4. ^ "Programación concurrente - comunicación entre procesos"
  5. ^ "IpcMain | Electrón".
  • 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
Obtenido de "https://es.wikipedia.org/w/index.php?title=Comunicación_entre_procesos&oldid=1237651895"