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 |