Comunicación entre procesos (IPC) en el sistema operativo

¿Qué es la comunicación entre procesos?

Comunicación entre procesos (IPC) se utiliza para intercambiar datos entre múltiples subprocesos en uno o más procesos o programas. Los Procesos pueden ejecutarse en una o varias computadoras conectadas por una red. La forma completa de IPC es comunicación entre procesos.

Es un conjunto de interfaces de programación que permiten a un programador coordinar actividades entre varios procesos de programa que pueden ejecutarse simultáneamente en un sistema operativo. Esto permite que un programa específico maneje muchas solicitudes de usuarios al mismo tiempo.

Dado que cada solicitud de un usuario puede dar como resultado la ejecución de múltiples procesos en el sistema operativo, es posible que los procesos requieran comunicarse entre sí. Cada enfoque de protocolo IPC tiene sus propias ventajas y limitaciones, por lo que no es inusual que un solo programa utilice todos los métodos IPC.

Enfoques para la comunicación entre procesos

A continuación, se muestran algunos métodos importantes para la comunicación entre procesos:

Enfoques para la comunicación entre procesos
Enfoques de comunicación entre procesos

Tubería

El método Pipe se utiliza ampliamente para la comunicación entre dos procesos relacionados. Se trata de un método half-duplex, por lo que el primer proceso se comunica con el segundo. Sin embargo, para lograr un full-duplex, se necesita otro método Pipe.

Paso de mensajes

Es un mecanismo para que un proceso se comunique y sincronice. Mediante el paso de mensajes, los procesos se comunican entre sí sin recurrir a variables compartidas.

El mecanismo IPC proporciona dos operaciones:

  • Enviar (mensaje): tamaño del mensaje fijo o variable
  • Recibido (mensaje)

Colas de mensajes

Una cola de mensajes es una lista vinculada de mensajes almacenados dentro del núcleoSe identifica mediante un identificador de cola de mensajes. Este método ofrece comunicación entre uno o varios procesos con capacidad full-duplex.

Comunicación Directa

En este tipo de proceso de comunicación entre procesos, deben nombrarse mutuamente explícitamente. En este método, se establece un vínculo entre un par de procesos en comunicación y entre cada par, sólo existe un vínculo.

Comunicación indirecta

La comunicación indirecta se establece únicamente cuando los procesos comparten un buzón común, es decir, cada par de procesos comparte varios enlaces de comunicación. Un enlace puede comunicarse con varios procesos. El enlace puede ser bidireccional o unidireccional.

Memoria compartida

La memoria compartida es una memoria compartida entre dos o más procesos que se establece mediante la memoria compartida entre todos los procesos. Este tipo de memoria requiere protección entre sí sincronizando el acceso entre todos los procesos.

FIFO

Comunicación entre dos procesos no relacionados. Es un método full-duplex, lo que significa que el primer proceso puede comunicarse con el segundo proceso, y también puede ocurrir lo contrario.

¿Por qué IPC?

Estas son las razones para utilizar el protocolo de comunicación entre procesos para compartir información:

  • Ayuda a acelerar la modularidad.
  • computacional
  • Separación de privilegios
  • Tiendas de conveniencia
  • Ayuda al sistema operativo a comunicarse entre sí y sincronizar sus acciones.

Términos utilizados en IPC

A continuación se presentan algunos términos importantes utilizados en el IPC:

Semaphores: Un semáforo es una técnica de mecanismo de señalización. Este método del sistema operativo permite o no permite el acceso al recurso, lo que depende de cómo esté configurado.

Signals: Es un método para comunicarse entre múltiples procesos mediante señalización. El proceso de origen enviará una señal que se reconoce por número y el proceso de destino la manejará.

Sugerencia de lectura: - ¿Qué es Semaphore? Binario, contando tipos con ejemplo

¿Qué es como FIFOS y a diferencia de FIFOS?

Como FIFOS A diferencia de FIFOS
Sigue el método FIFO. Método para extraer mensajes urgentes específicos antes de que lleguen al frente
FIFO existe independientemente de los procesos de envío y recepción. Siempre listo, por lo que no es necesario abrirlo ni cerrarlo.
Permite la transferencia de datos entre procesos no relacionados. No tengo ningún problema de sincronización entre apertura y cierre.

Resumen

  • Definición: La comunicación entre procesos se utiliza para intercambiar datos entre múltiples subprocesos en uno o más procesos o programas.
  • Pipe se usa ampliamente para la comunicación entre dos procesos relacionados.
  • El paso de mensajes es un mecanismo para que un proceso se comunique y se sincronice.
  • Una cola de mensajes es una lista vinculada de mensajes almacenados dentro del kernel.
  • El proceso directo es un tipo de proceso de comunicación entre procesos, que deben nombrarse explícitamente entre sí.
  • La comunicación indirecta se establece sólo cuando los procesos comparten un buzón común y cada par de procesos comparte varios enlaces de comunicación.
  • La memoria compartida es una memoria compartida entre dos o más procesos que se establece utilizando memoria compartida entre todos los procesos.
  • El método de comunicación entre procesos ayuda a acelerar la modularidad.
  • Un semáforo es una técnica de mecanismo de señalización.
  • Signaling es un método para comunicarse entre múltiples procesos mediante señalización.
  • Como FIFO sigue el método FIFO, mientras que a diferencia de FIFO usa el método para extraer mensajes urgentes específicos antes de que lleguen al frente.