Conceptos Clave de Comunicación y Concurrencia en Sistemas Distribuidos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,39 KB
La diferencia más importante entre un Sistema Distribuido (SD) y un sistema de un único procesador radica en la comunicación entre procesos.
Conceptos Fundamentales
Organización Internacional de Estandarización (ISO)
La ISO (Organización Internacional de Estandarización) es una entidad global que establece estándares.
Comunicación Cliente-Servidor y Sockets
La comunicación cliente-servidor, a menudo implementada mediante sockets, es un método para la interacción entre un programa cliente y un programa servidor en una red.
La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, denominados servidores, y los demandantes, llamados clientes.
Interbloqueo (Deadlock)
El interbloqueo es un problema que afecta a procesos concurrentes que utilizan recursos en un sistema. Los procesos solicitan recursos al sistema y los liberan cuando ya no los necesitan. Un recurso puede estar disponible o bien asignado a algún proceso.
Sección Crítica
La sección crítica es la parte de código de un programa de computador que accede a un recurso compartido y que debe protegerse de interferencias de otros procesos.
Primitivas de Comunicación entre Procesos
Primitivas Síncronas y Asíncronas
Se denominan primitivas de bloqueo o primitivas síncronas a aquellas en las que el emisor se bloquea hasta que el receptor ha aceptado el mensaje y la confirmación regresa al emisor.
Cuando un proceso llama a send
, especifica un destino y un búfer adónde enviar ese destino.
La diferencia esencial entre una primitiva síncrona y una asíncrona es si el emisor puede volver a utilizar el búfer de mensajes de forma inmediata y segura después de recuperar el control.
Generalmente, las primitivas de envío se conocen como send
y las de recepción como receive
; ambas pueden ser con o sin bloqueo.
Llamadas de Procedimiento Remoto (RPC)
Las llamadas de procedimiento remoto (RPC, por sus siglas en inglés, Remote Procedure Call) son un mecanismo que permite a un programa ejecutar un procedimiento en otro espacio de direcciones (normalmente en un equipo remoto) como si fuera una llamada a procedimiento local.
Una limitación de RPC es que no puede controlar la comunicación de un servidor con muchos receptores, a menos que realice una RPC con cada uno de forma individual.
Gestión de Grupos en Sistemas Distribuidos
Concepto de Grupo
Un grupo es una colección de procesos que actúan juntos en cierto sistema o de alguna forma determinada por el usuario.
Tipos de Transmisión en Red para Grupos
La eficiencia en la comunicación de grupos depende en gran medida del tipo de transmisión que soporta la red:
Unidifusión (Transmisión Punto a Punto)
- Implica el envío de un paquete de datos desde un único origen a un único destino.
- Para comunicar un mensaje a un grupo, se requeriría enviar el mensaje individualmente a cada miembro, lo que resulta ineficiente para grupos grandes.
Multidifusión (Multicast)
- Permite enviar un mensaje desde un único origen a múltiples destinos específicos que forman parte de un grupo de multidifusión.
- Cuando se envía un mensaje a una dirección de multidifusión, este se entrega automáticamente a todas las máquinas que están "escuchando" esa dirección.
- Es el método más eficiente para la comunicación en grupo, ya que el mensaje se envía una sola vez a la red y es replicado solo cuando es necesario.
Difusión (Broadcast)
- Significa que los paquetes que tienen una dirección de difusión se entregan a todas las máquinas en la red o segmento de red.
- Aunque puede utilizarse para implementar grupos (simulando la multidifusión), es menos eficiente que la multidifusión real.
- Cada máquina debe verificar, mediante su software, si el paquete va dirigido a ella. En caso negativo, se descarta, pero para analizarlo se generó una interrupción y se dedicaron ciclos de CPU, lo que consume recursos innecesariamente en máquinas no interesadas.
Direccionamiento de Grupos
Los grupos deben poder direccionarse, al igual que los procesos. Una forma es darle a cada grupo una dirección única, similar a una dirección de proceso. Esto es especialmente eficiente si la red soporta multidifusión.
Atomicidad en la Comunicación de Grupo
La mayoría de los sistemas de comunicación en grupo están diseñados para que los mensajes enviados al grupo lleguen correctamente a todos los miembros o a ninguno de ellos. Esta propiedad de “todo o nada” en la entrega se llama atomicidad o transmisión atómica.
Garantía de Entrega y Reconocimientos
La única forma de garantizar que cada destino recibe todos sus mensajes es pedirle que envíe de regreso un reconocimiento después de recibir el mensaje.
Ordenamiento de Mensajes
El ordenamiento de los mensajes es un aspecto fundamental en la comunicación en grupo.
Tipos de Grupos por Permisos de Envío
Grupos Cerrados
Solo los miembros del grupo cerrado pueden enviar mensajes hacia el grupo.
Grupos Abiertos
Cualquier proceso del sistema puede enviar mensajes a cualquier grupo abierto.
Sincronización Temporal
Relojes Lógicos
Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo reloj. Es un cronómetro consistente en un cristal de cuarzo de precisión sometido a una tensión eléctrica. En sistemas distribuidos, los relojes lógicos son cruciales para establecer un orden causal de eventos sin depender de un tiempo físico global.