La forma básica de comunicación entre dos procesos o hilos en un sistema operativo con micronúcleo son los mensajes.
Un mensaje incluye una cabecera que identifica a los procesos remitente y receptor y un cuerpo que contiene directamente los datos, un puntero a un bloque de datos, o alguna información de control del proceso.
Normalmente podemos pensar que las IPC se fundamentan en puertos asociados a cada proceso.
Los procesos pueden estar ejecutándose en una o más computadoras conectadas a una red.
La comunicación puede ser: Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio.
El receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicación, el mensaje se almacena tanto tiempo como sea necesario para poder ser entregado (Ej.
Las primitivas enviar y recibir explicitan el nombre del proceso con el que se comunican.
Es una comunicación equilibrada donde tanto emisor como receptor reciben la misma información.
El transmisor se bloquea hasta que el receptor recibe el mensaje (capacidad cero).
Como solución a estos problemas es importante lograr un acuerdo del protocolo usado.
Las comunicaciones RPC se basan en la idea de que el receptor esté operativo para poder invocar una cierta función.
Sin embargo, cada proceso de usuario debe tener un nombre diferente (por ejemplo, productor, consumidor) o un subíndice diferente (por ejemplo, X (0) y cada comunicación con un usuario debe identificar su origen o destino de forma única.
Si el monitor no está preparado para aceptar la entrada de algún usuario en particular (por ejemplo, X(j)) en una ocasión determinada, el comando de entrada puede ser precedido por una guardia booleana.
Del mismo modo, las condiciones se pueden utilizar para retrasar la aceptación de las entradas que violarían las restricciones de programación - posponiéndolas hasta alguna ocasión posterior en la que algún otro proceso haya llevado al monitor a un estado en el que la entrada pueda ser aceptada válidamente.
Cuando out -- in, el buffer está vacío y la segunda alternativa no puede ser seleccionada, aunque el consumidor esté listo con su comando X!more().
Observaciones similares se aplican al productor, cuando in -- out + 10.
Hay un número de API que pueden ser usadas por IPC.
La aplicación más conocida que utiliza dicho modelo es el correo electrónico (e-Mail).
La idea básica consiste en insertar (putting) o quitar (taking) mensajes en una cola.
Al emisor solo se le puede garantizar que el mensaje ha sido insertado correctamente en la cola.
No existen garantías de cuándo será leído dicho mensaje.
Message-queuing system API: Los modelos RPC, RMI y MOM realizan comunicaciones independientes del tiempo.
Freedesktop Para comunicación entre aplicaciones gráficas existe D-Bus, usado por GNOME y KDE entre otros.
Permite fácilmente comunicar unas aplicaciones con otras o controlar cualquier elemento de una interfaz gráfica desde consola a con un programa hecho al efecto.
Utilizando el soporte de difusión (broadcast) en las redes locales para realizar tareas como protocolos epidémicos.