2.3 Comunicación entre procesos

Todos los procesos requieren comunicarse con otros procesos, dado que se necesita de una canalización del shell en el cual la salida del primer proceso se debe pasar al segundo proceso y así sucesivamente. Existe una necesidad de establecer una comunicación entre procesos de manera estructurada, evitando el uso de interrupciones. Por tanto, la comunicación entre procesos implica la existencia de un emisor y un receptor definidos.


Ahora bien, hay que considerar las siguientes situaciones:

  1. Un proceso puede pasar información a otro.
  2. Uno o más procesos no se interpongan entre sí.
  3. Debe existir una secuencia apropiada cuando hay dependencias presentes, es decir, si el proceso A produce datos y el proceso B los imprime, B tiene que esperar hasta que A haya producido algunos datos antes de empezar a imprimir o realizar algún proceso.

Algo que se debe de considerar en la comunicación de procesos es su estado por lo que la cola de procesos representa las diferentes etapas por las que pasa un proceso desde su creación hasta su finalización. Los estados típicos son:

  1. Listo (ready): El proceso está listo para ejecutarse, pero está esperando su turno en la cola.
  2. Ejecución (running): El proceso está actualmente siendo ejecutado por la CPU.
  3. Bloqueado (blocked): El proceso está temporalmente detenido, es cuando está esperando la finalización de una operación de entrada/salida.
  4. La función de los estados de cola es coordinar la ejecución de procesos, optimizar la utilización de la CPU y garantizar una transición eficiente entre las diversas etapas del ciclo de vida de un proceso.

Por lo que el entorno de multiprograma en procesos permite la ejecución concurrente de varios programas. Mientras un programa está en espera (por ejemplo, realizando operaciones de entrada/salida), otros pueden ejecutarse, mejorando la eficiencia del sistema.


El entorno asegura que la CPU esté ocupada la mayor parte del tiempo, reduciendo los tiempos de inactividad y mejorando la capacidad de respuesta del sistema. La planificación cuidadosa de procesos, combinada con la gestión eficiente de la memoria y los archivos, contribuye a un entorno más efectivo en sistemas operativos por lotes y en la comunicación de procesos.


Cabe resaltar que la IPC (Interproceso de Comunicación) permite la comunicación y el intercambio de datos entre procesos en un sistema operativo. Existen varios mecanismos de IPC, como colas de mensajes, semáforos y memoria compartida. La comunicación entre procesos es esencial cuando los programas necesitan colaborar o compartir información.


Por ejemplo, un proceso podría producir datos que otro proceso necesita consumir. El IPC proporciona métodos seguros y eficientes para que los procesos se comuniquen y compartan recursos.


Las colas de mensajes son un mecanismo muy similar a las (First In First Out). Una cola se puede ver como una lista enlazada de mensajes dentro del espacio de direccionamiento del núcleo.


Una aplicación, siempre que tenga los derechos necesarios, puede depositar un mensaje (de cualquier tipo) en ella, y otras aplicaciones podrán leerlo. Es posible asignar atributos a los mensajes, de forma que se puedan mantener ordenados por prioridad en lugar de por orden de llegada.

Error al cargar imagen figura_9.png

Figura 9. Comunicación entre procesos.

Reflexiona la siguiente pregunta que será tratada en la sesión de clase.

¿Cuál es la denominación técnica que se utiliza para las colas mencionadas anteriormente?