Está en la página 1de 2

COMUNICACIÓN ENTRE PROCESOS

Los procesos que se ejecutan en un sistema operativo pueden ser trabajar de


forma independiente o estos pueden trabajar a la par con otros procesos. Los
procesos que trabajan juntos deben poder comunicarse entre ellos. Resumiendo
un poco las cosas, existen dos tipos de comunicación entre procesos que trabajan
de forma cooperativa, estos son: memoria compartida y sistemas de mensajes.
Para que la comunicación a través del método de memoria compartida se lleve a
cabo correctamente, se requiere que los procesos a comunicarse compartan
ciertas variables. Se espera que los procesos intercambien información
empleando dichas variables. En un sistema de memoria compartida, la obligación
de proveer la comunicación corresponde a los programadores de aplicaciones;
para ello el sistema operativo tiene que proporcionar la memoria compartida.
El método de sistema de mensajes permite a los procesos intercambiar mensajes
entre sí. En este caso el sistema operativo es quién se encarga de permitir la
comunicación entre los procesos que van a intercambiar mensajes. Estos dos
esquemas no son mutuamente exclusivos, y podrían utilizarse simultáneamente
en un mismo sistema operativo.
La comunicación entre procesos a través de mensajes puede ser directa o
indirecta. En la comunicación directa es obligatorio que se especifique claramente
el destinatario o el remitente del mensaje. Para que los mensajes lleguen al
proceso de destino, se necesita un enlace y además cumplir las siguientes reglas:
los procesos que van a comunicarse necesitan saber la identidad de cada uno, un
enlace solo puede ser asociado a dos procesos, entre ambos procesos solo puede
haber un enlace y este enlace puede ser unidireccional o bidireccional. De lo dicho
anteriormente podemos decir que la comunicación puede ser simétrica o
asimétrica.
Con la comunicación indirecta los mensajes son enviados por los procesos hacia
unos buzones, estos buzones tienen una identificación. Los procesos pueden
obtener mensajes de estos buzones. Un proceso puede comunicarse con otro
proceso a través de diferentes buzones, lo contrario de la comunicación directa.
En este tipo de comunicación se requiere especificar al momento de enviar el
mensaje hacia que buzón se desea enviar este.
Según los tiempos de espera, la comunicación puede dividirse en: síncrona y
asíncrona. La comunicación síncrona consiste en que el proceso que envía un
mensaje debe permanecer en espera hasta obtener una respuesta, de lo contrario
este no podría continuar con sus tareas. Mientras que la comunicación asíncrona
permite a un proceso enviar un mensaje y este puede continuar sin necesidad de
recibir una respuesta.
La comunicación entre procesos también se puede clasificar según el estado de
actividad de los procesos, esta se divide en dos tipos: persistente y momentánea.
La comunicación momentánea no permite que el mensaje llegue al receptor, si
este no se encuentra activo. En cambio en la comunicación persistente el receptor
no necesita estar activo al momento en que se envía el mensaje para poder
recibirlo. En caso de que el proceso no esté activo, el mensaje será guardado
hasta que el receptor esté activo y pueda recibirlo.
Los procesos cooperativos que comparten directamente un espacio de direcciones
lógico se pueden implementar como procesos ligeros o hilos. Un hilo comparte con
otros hilos pares su sección de código, sección de datos y recursos del sistema
operativo, que colectivamente reciben el nombre de tarea. Una tarea no hace nada
si no contiene hilos, y un hilo debe estar en una y sólo una tarea. El alto grado de
compartimiento hace que la conmutación de la CPU entre hilos pares, y la
creación de hilos tengan un costo bajo en comparación con la conmutación de
contexto entre procesos pesados.

REFERENCIAS:
 Stallings, William (2005). Sistemas operativos: aspectos internos y principios
de diseño (5ª edición). Pearson Prentice Hall.

También podría gustarte