Comunicación entre procesos

 Comunicación entre procesos


Los procesos que se están ejecutando concurridamente (al mismo tiempo) en nuestro sistema pueden ser de dos tipos: procesos independientes o procesos cooperadores.


Procesos independientes: No pueden ser afectados o afectar a otros procesos que se estén ejecutando en el sistema.


Procesos cooperadores: Pueden ser afectados o afectar a otros procesos que se estén ejecutando en el sistema.


Cualquier proceso que comparta datos con otros procesos es un proceso cooperador.


Los procesos cooperadores necesitarán poder comunicarse entre ellos, para ello entonces existe “Interprocess Communication” (Comunicación entre procesos).


Hay varias razones para proveer un ambiente en el que los procesos se puedan comunicar.


Compartir información: Supongamos que hay usuarios que estén interesados en un mismo archivo, estos accederán desde distintos procesos concurridamente por ende necesitaremos que sea posible la comunicación o cooperación entre estos procesos para compartir este archivo.


Aceleración computacional: Cuando tenemos un proceso pesado al procesador lo ideal sería fragmentar este proceso en subprocesos que se ejecuten concurridamente para bajar el coste computacional y acelerarlo. Estos subprocesos también necesitan comunicarse entre ellos.


Modularidad: La modularidad es dividir una aplicación en partes más pequeñas llamadas módulos las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos también, deben poder cooperar o comunicarse entre ellos.


Conveniencia: El usuario querrá ejecutar varios procesos al mismo tiempo, estos procesos necesitan cooperar entre ellos para que todas las tareas puedan ejecutarse sin problemas sin chocar entre ellas.



¿Cómo se provee un ambiente en el que los procesos se puedan comunicar?


Los procesos cooperadores necesitan un mecanismo de intercomunicación (IPC) que les permita intercambiar información y datos.


Hay dos modelos fundamentales de mecanismos de intercomunicación:


  1. Memoria compartida (Shared Memory): Se asignará un espacio en memoria que es compartido entre los procesos cooperadores. Los procesos pueden intercambiar información leyendo y escribiendo datos en este espacio compartido.



El proceso A quiere entregar un dato al proceso B, lo que hará será escribir en el área o espacio compartido el dato que quiere entregar. 

Ahora el proceso B accede al área compartida y leerá el dato que fue compartido anteriormente por el proceso A.

Esto puede suceder ya que ambos procesos tienen el permiso de acceder a esta área compartida.


  1. Paso de mensajes (Message Passing): La comunicación toma lugar por medio de mensajes entre los procesos cooperadores.



El proceso A quiere mandar un mensaje al proceso B, entonces el proceso A enviará el mensaje al Kernel, el Kernel entonces enviará el mensaje al proceso B.


Publicar un comentario

Artículo Anterior Artículo Siguiente