3.1.1. Características generales
Material de estudio basado en la edición de 2014. Borrador pendiente de revisión editorial independiente.
Características del Paso de Mensajes
Resumen
Un sistema con mensajes ofrece típicamente dos operaciones: send (enviar) y receive (recibir). Las decisiones de diseño afectan a los parámetros de estas operaciones.
1. Mensajes directos vs. indirectos
Directos:
- El emisor indica explícitamente el receptor y viceversa.
- Comunicación simétrica: cada emisor debe conocer todos los posibles receptores.
- Comunicación asimétrica: el receptor no conoce al emisor.
Proceso A: send(B, mensaje)
Proceso B: receive(A, mensaje)
Indirectos (buzones/mailboxes):
- Los mensajes se envían y reciben mediante estructuras intermediarias llamadas buzones.
- Emisor y receptor no necesitan conocerse directamente.
- Permite comunicación: uno a uno, uno a muchos, muchos a uno, muchos a muchos.
Proceso A: send(buzón1, mensaje)
Proceso B: receive(buzón1, mensaje)
- Requiere operaciones adicionales para crear y destruir buzones.
receivede buzón vacío bloquea;senda buzón lleno también bloquea.
2. Comunicación síncrona vs. asíncrona
Síncrona (blocante):
- Emisor y receptor deben sincronizarse: el emisor queda bloqueado si el receptor aún no ha ejecutado
receive. - Sólo puede haber un único mensaje pendiente por pareja emisor-receptor.
- Ventajas: fácil implementación, bajo coste, punto de sincronismo (emisor sabe que el mensaje fue recibido).
Asíncrona (no blocante):
- El SO almacena temporalmente el mensaje en memoria.
- El emisor continúa su ejecución tras enviar.
- Ventaja: mayor concurrencia.
- Desventaja: gestión compleja de los vectores de memoria intermedia para mensajes pendientes.
3. Longitud de los mensajes
- Fija: sencillez y facilidad de gestión.
- Variable: mayor flexibilidad.
- Compromiso entre flexibilidad y simplicidad de gestión.
Ideas clave
- Los mensajes directos requieren conocimiento explícito de emisor/receptor; los indirectos usan buzones.
- La síncrona bloquea al emisor; la asíncrona almacena el mensaje y permite concurrencia mayor.
- La longitud fija simplifica la gestión; la variable ofrece más flexibilidad.
- Los buzones vacíos bloquean al receptor; los llenos bloquean al emisor.