Comunicación entre procesos (IPC) en el sistema operativo
⚡ Resumen inteligente
La comunicación entre procesos (IPC, por sus siglas en inglés) es un conjunto de mecanismos del sistema operativo que permiten a los procesos e hilos intercambiar datos, coordinar actividades y sincronizar acciones, ya sea que se ejecuten en una sola computadora o en varias máquinas conectadas por una red.
¿Qué es la comunicación entre procesos?
Comunicación entre procesos (IPC) Se utiliza para intercambiar datos entre múltiples hilos en uno o más procesos o programas. Los procesos pueden ejecutarse en un solo ordenador o en varios ordenadores conectados en red. Las siglas IPC significan comunicación entre procesos.
Se trata de un conjunto de interfaces de programación que permiten al programador coordinar actividades entre diversos procesos de programa, los cuales pueden ejecutarse simultáneamente en un sistema operativo. Esto permite que un solo programa gestione múltiples solicitudes de usuario al mismo tiempo.
Dado que cada solicitud de usuario puede generar múltiples procesos en ejecución en el sistema operativo, estos procesos pueden necesitar comunicarse entre sí. Cada método de comunicación entre procesos (IPC) tiene sus propias ventajas y limitaciones, por lo que no es inusual que un mismo programa utilice varios de ellos.
Enfoques para la comunicación entre procesos
A continuación, se presentan algunos métodos importantes para la comunicación entre procesos:
Enfoques de comunicación entre procesos
Tubería
Una tubería se utiliza ampliamente para la comunicación entre dos procesos relacionados. Este es un método semidúplex, por lo que el primer proceso se comunica con el segundo. Sin embargo, para lograr una comunicación dúplex completa, se necesita otra tubería.
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): el tamaño del mensaje puede ser fijo o variable.
- Recibir (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 comunicación entre procesos, estos deben nombrarse explícitamente. En este método, se establece un vínculo entre un par de procesos que se comunican, y entre cada par existe un único vínculo.
Comunicación indirecta
La comunicación indirecta se establece únicamente cuando los procesos comparten un buzón común. Cada par de procesos puede compartir varios enlaces de comunicación, y un solo enlace puede comunicarse con muchos procesos. El enlace puede ser bidireccional o unidireccional.
Memoria compartida
La memoria compartida es una región de memoria que comparten dos o más procesos. Esta memoria debe protegerse del acceso concurrente sincronizando los procesos que la utilizan.
FIFO
El método FIFO se utiliza para la comunicación entre dos procesos independientes. Es un método dúplex completo, lo que significa que el primer proceso puede comunicarse con el segundo, y viceversa.
¿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.
- Aceleración computacional.
- Separación de privilegios.
- Conveniencia.
- Ayuda a que los procesos y el sistema operativo se comuniquen y sincronicen 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 un mecanismo de señalización. Este método del sistema operativo permite o deniega el acceso a un recurso, según su configuración.
Signals: Una señal es un método de comunicación entre múltiples procesos mediante señalización. El proceso de origen envía una señal, que se identifica mediante un número, y el proceso de destino la procesa.
Sugerencia de lectura: ¿Qué es Semaphore? Binario, contando tipos con ejemplo
¿Qué es como FIFOS y a diferencia de FIFOS?
La siguiente tabla compara las FIFOs iguales y las FIFOs diferentes:
| Como FIFOS | A diferencia de FIFOS |
|---|---|
| Sigue el método FIFO. | Utiliza un método para extraer mensajes urgentes específicos antes de que lleguen al frente. |
| El método FIFO existe independientemente de los procesos de envío y recepción. | Siempre está listo, así que no hace falta abrirlo ni cerrarlo. |
| Permite la transferencia de datos entre procesos no relacionados. | No presenta problemas de sincronización entre la apertura y el cierre. |


