Comunicación en Sistemas Distribuidos
Permite la interacción entre aplicaciones y servicios del sistema.
Modelos de comunicación entre procesos:
Memoria compartida (Sólo uni/multiprocesador no distribuido).
Paso de mensajes.
El nivel de abstracción en la comunicación:
Paso de mensajes puro (Cliente–Servidor).
Llamadas a procedimientos remotos.
Modelos de objetos distribuidos.
Factores de Comunicación
Los diferentes mecanismos de comunicación se caracterizan por los siguientes factores:
Rendimiento: Latencia, ratio de transferencia, ancho de banda, …
Escalabilidad: Número de elementos activos.
Fiabilidad: Pérdida de mensajes.
Seguridad:Cifrado, certificación, …
Movilidad: Equipos móviles.
Calidad de Servicio (QoS): Reserva y garantía de anchos de banda.
Comunicación en grupo: Multicast.
Niveles de Comunicación
TCP/UDP
Protocolo y
Representación
RMI/RPC
App./Servicios
3) Llamadas a procedimientos remotos y objetos distribuidos.
ATM/Ethernet
Interfaz
y
Lógica de
Comunicación
App./Servicios
2) Funcionalidades de comunicación de bajo nivel. Sistemas Operativos Distribuidos.
TCP/UDP
API (sockets)
Aplicaciones
y
Servicios
1) Paso de mensajes puro. Aplicaciones en red.
Primitivas de Comunicación
Cada una de las funciones de comunicación de una tecnología determinada. Las primitivas básicas son:
Envío: send(destino,mensaje).
Recepción: receive(fuente,mensaje).
Otras primitivas:
Conexión: connect(destino).
Desconexión: close().
Cada una de las primitivas tiene las siguientes características:
Boqueantes vs No-bloqueantes.
Síncronas vs Asíncronas.
Fiables vs No-fiables.
Bloqueantes vs. No-bloqueantes
Las características de bloqueo son:
Primitivas bloqueantes: La operación bloquea al elemento que la solicita hasta que ésta sea completada.
Primitivas no-bloqueantes: La operación no detiene la ejecución del elemento que la solicita.
Las llamadas no bloqueantes tienen distinto sentido dependiendo de la primitiva que se trate:
Envío no bloqueante: El emisor almacena el dato en un buffer del núcleo (que se encarga de su transmisión) y reanuda su ejecución.
Recepción no bloqueante: Si hay un dato disponible el receptor lo lee, en otro caso indica que no había mensaje.
Sínconas vs. Asíncronas
Esta característica afecta no tanto a la primitiva como a la transmisión en sí.
Comunicación síncrona: Envío y recepción se realizan de forma simultanea.
Comunicación asíncrona: El envío no requiere que el receptor este esperando.
La comunicación asíncrona usa un buffer de almacenamiento.
Implica ciertas condiciones de bloque en envío y recepción.
Fiabilidad
El envío fiable de datos garantiza que un mensaje enviado ha sido recibido por el receptor.
Implica la retransmisión de mensajes de validación (ACKs).
La fiabilidad la puede garantizar:
El protocolo de comunicación (TCP si y UDP no).
Los elementos emisor y receptor.
Primitivas de Comunicación
EMISOR
Núcleo
Emisor
RED
RECEPTOR
Núcleo
Receptor
1
2
7
3
6
4
8
5
msg
ACK
Envío no bloqueante: [1:8] El emisor continua al pasar el mensaje al núcleo.
Envío bloqueante: [1:2:7:8] El emisor espera a que el núcleo transmita por red el mensaje.
Envío bloqueante fiable: [1:2:3:6:7:8]: El emisor espera a que el núcleo receptor recoge el mensaje.
Envío bloqueante explícito: [1:2:3:4:5:6:7:8]: Idem al anterior, pero es la aplicación receptora la que confirma la recepción.
Petición-Respuesta: [1:2:3:4:< servicio>:5:6:7:8]: El emisor espera a que el receptor procese la operación para reanudar la ejecución.
Página siguiente |