Mecanismos de Comunicación entre procesos (I)


En un estado normal de un sistema operativo, pueden cohabitar diferentes procesos en ejecución y que necesiten comunicarse. Por ejemplo, en esta entrada vimos que para la implementación de un sencillo servidor concurrente, podíamos crear un proceso hijo encargado de atender la petición del cliente. Dependiendo del servicio, podríamos necesitar la intercomunicación del proceso padre con los hijos* o, incluso, entre hijos.

En la próxima serie de entradas, comentaré los distintos tipos de IPC** que existen, excepto uno: sockets, porque de éste, ya hemos hablado aquí, aquí y aquí):

  • Shared Memory: Memoria compartida entre procesos que les permite comunicarse leyendo y escribiendo en una zona específica de memoria. Quizás sea el mecanismo IPC más simple de comunicación.
  • Mapped Memory: similar al anterior pero asociado a un fichero.
  • Pipes: canal secuencial entre procesos (es la ‘barra’ de esta orden: ‘ls | grep *.exe’)
  • FIFO: similar a las tuberías excepto que los procesos no tienen que estar relacionados debido a que la tubería se “construye” sobre un nombre en el sistema de archivos.

Si nos fijamos, la principal diferencia entre los 5 tipo de IPC (los 4 anteriores más los sockets) está en (1) función de si los procesos están o no relacionados (o si están en el mismo nodo de red), (2) si pueden escribir, leer o ambos y (3) el número de procesos que pueden comunicar.

Referencias:

  1. Advanced Linux Programming, de Mark Mitchell, Jeffrey Oldham y Alex Samuel

* En este caso no me refiero a, simplemente, saber el estado de finalización de los hijos que, en si mismo, podríamos aceptar como comunicación entre procesos aunque muy simple.

** Hay quien considera las señales como un mecanismo IPC. En mi opinión, éstas están destinadas a proporcionar una forma de control sobre un proceso, no como un mecanismo IPC. Además, debemos tener en cuanta que no contienen datos a excepción de ella misma (la señal que es) y, si lanzamos una gran cantidad de ellas, el sistema se verá interrumpido constantemente por algo que, encima, necesita de un tratamiento especial.

 

Anuncios

Un comentario en “Mecanismos de Comunicación entre procesos (I)

  1. Pingback: Mecanismos de comunicación entre procesos (III) | Mundo errante

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s