Comunicación en Grupo

22
COMUNICACIÓN EN GRUPO Carlos Andrés Arévalo H.

Transcript of Comunicación en Grupo

Page 1: Comunicación en Grupo

COMUNICACIÓN EN GRUPO

Carlos Andrés Arévalo H.

Page 2: Comunicación en Grupo

Introducción a la Comunicación en los Sistemas Distribuidos

• En un sistema de un solo procesador la comunicación supone implícitamente la existencia de la memoria compartida:

• Ej.: problema de los productores y los consumidores, donde un proceso escribe en un buffer compartido y otro proceso lee de él.

• En un sistema distribuido no existe la memoria compartida y por ello toda la naturaleza de la comunicación entre procesos debe replantearse. Los procesos, para comunicarse, deben apegarse a reglas conocidas como protocolos.

Page 3: Comunicación en Grupo

• Para los sistemas distribuidos en un área amplia, estos protocolos toman frecuentemente la forma de varias capas y cada capa tiene sus propias metas y reglas.

• Los mensajes se intercambian de diversas formas, existiendo muchas opciones de diseño al respecto; una importante opción es la “llamada a un procedimiento remoto”.

• También es importante considerar las posibilidades de comunicación entre grupos de procesos, no solo entre dos procesos.

Page 4: Comunicación en Grupo

Protocolos con Capas

• Debido a la ausencia de memoria compartida, toda la comunicación en los sistemas distribuidos se basa en la transferencia de mensajes

• Cuando el proceso “A” quiere comunicarse con el proceso “B”:

• Construye un mensaje en su propio espacio de direcciones.

• Ejecuta una llamada al sistema para que el S. O. busque el mensaje y lo envíe a través de la red hacia “B”.

• Para evitar el caos, “A” y “B” deben coincidir en el significado de los bits que se envíen.

Page 5: Comunicación en Grupo

• Los puntos de acuerdo necesarios incluyen lo siguiente: ¿Cuántos voltios hay que utilizar para un bit “0” y cuántos para un bit “1”?.

• ¿Cómo sabe el receptor cuál es el último bit del mensaje?.

• ¿Cómo puede detectar si un mensaje ha sido dañado o perdido, y qué debe hacer si lo descubre?.

• ¿Qué longitud tienen los números, cadenas y otros elementos de datos y cuál es la forma en que están representados?

Page 6: Comunicación en Grupo

• La ISO (Organización Internacional de Estándares) desarrolló un modelo de referencia que:

• Identifica en forma clara los distintos niveles.

• Estandariza los nombres de los niveles.

• Señala cuál nivel debe realizar cuál trabajo.

Page 7: Comunicación en Grupo
Page 8: Comunicación en Grupo

• Este modelo se denomina “modelo de referencia para interconexión de sistemas abiertos” (ISO OSI o modelo OSI).

• El “modelo OSI” está diseñado para permitir la comunicación de los sistemas abiertos:

• Son aquellos preparados para comunicarse con cualquier otro sistema abierto mediante reglas estándar:

– Establecen el formato, contenido y significado de los mensajes recibidos y enviados.

– Constituyen los protocolos, que son acuerdos en la forma en que debe desarrollarse la comunicación .

Page 9: Comunicación en Grupo
Page 10: Comunicación en Grupo

COMUNICACIÓN POR MULTIDIFUSIÓN

• es una implementación de la comunicación en grupo. La comunicación en grupo, ó multidifusión, requiere la presencia de coordinación y acuerdo. Su objetivo es cada uno de los procesos de un grupo reciba los mensajes enviados al grupo, frecuentemente, con garantías de que han sido entregados.

Page 11: Comunicación en Grupo

• La característica esencial de la comunicación por multidifusión es que un proceso realiza solamente una operación multicast para enviar un mensaje a cada uno de los miembros de un grupo (en java esta operación es un socket.sen (un mensaje) en lugar de realizar múltiples operaciones enviar sobre los procesos individuales.

Page 12: Comunicación en Grupo

• La comunicación a todos los procesos de un sistema, en contraposición a un grupo de los mismos, se conoce como difusión (broadcast).

• El uso de una única operación multicast en lugar de múltiples operaciones enviar implica mucho más que una ventaja para el programador.

Page 13: Comunicación en Grupo

• Permite un implementación eficiente y que ésta proporcione garantías de entrega más fuertes que las que serian posible obtener de otra forma.

• Eficiencia: la certeza de que el mismo mensaje va a ser entregado a todos los procesos de un grupo permite ala implementación ser eficiente en el uso del ancho de banda.

Page 14: Comunicación en Grupo

• Garantías de entrega: si un proceso realiza múltiples operaciones envía independientes a procesos individuales, entonces la implementación no tiene medios para proporcionar garantías de entre que afecten al grupo de procesos en su conjunto. Si el remitente falla en la mitad del proceso de envío, entonces algunos miembros del grupo recibirán el mensaje mientras que otros no lo recibirán.

Page 15: Comunicación en Grupo

• Además, no está definido el orden relativo entre dos mensajes entregados a dos miembros de un grupo.

Page 16: Comunicación en Grupo

Modelo del sistema.

• El sistema tiene una colección de procesos que pueden comunicarse entre ellos de forma fiable a través de canales uno-a-uno. Como se había supuesto antes, los procesos solo pueden fallar por caída.

• La operación multicast (g, m) envía el mensaje m a todos los miembros del grupo de proceso g.

Page 17: Comunicación en Grupo

• A esta operación le corresponde una operación entrega (m) que entrega el mensaje mandado por multidifusión al proceso que ha realizado la petición. Utilizamos el termino entrega en lugar de recibe para dejar claro que un mensaje multidifundido no siempre se entrega a la capa de aplicación dentro del proceso tan pronto como es recibido en el nodo del proceso.

Page 18: Comunicación en Grupo

• Se dice que un grupo está cerrado si solo los miembros del grupo pueden multidifundir dentro de él. Un proceso dentro de un grupo cerrado se entrega a sí mismo cualquier mensaje que multidifunde al grupo.

• Un grupo se dice abierto si los proceso que no están en el grupo le puede mandar mensajes (las categorías de “abierto” y “cerrado” también se aplican con significados análogos a las listas de correo).

Page 19: Comunicación en Grupo

MULTIDIFUSIÓN BÁSICA

• Es útil tener a nuestra disposición una primitiva de multidifusión básica que garantice, a diferencia de la multidifusión IP, que un proceso correcto al final entregará el mensaje siempre que el sistema que realiza la multidifusión no se caiga.

Page 20: Comunicación en Grupo

• La primitiva se llamará B-multicast y su correspondiente primitiva de entrega básica se llamará B-entrega. Se permitirá a los procesos que pertenezcan a varios grupos y que cada mensaje se destine a un grupo en particular.

• Una forma directa de implementar el B-multicast es utilizar una operación envía fiable uno-a-uno de la siguiente forma:

• Para realizar B-multicast (g, m): para cada proceso P g, g, envía (p, m);

• Al recibir (m) en P: B-entrega (m) en P.

Page 21: Comunicación en Grupo

• La implementación puede usar hilos para realizar las operaciones envía de forma concurrente, con el fin de reducir el tiempo total empleado para entregar el mensaje. Desgraciadamente, tal implementación es suficiente para sufrir la denominada ack-implosión (colapso por exceso de acuses de recibo) si el número de procesos es grande.

Page 22: Comunicación en Grupo

• Es factible que los acuses de recibos, enviados como parte de una operación envía fiable, lleguen aproximadamente al mismo tiempo desde muchos procesos. Los búferes del proceso que están realizando la multidifusión se llenaran rápidamente y es probable que pierdan algún acuse de recibo.

• En ese caso retransmitirá el mensaje, dando lugar todavía a más acuses de recibo y a un mayor desperdicio de ancho de banda. Puede construirse algún servicio básico de multidifusión más práctico usando la multidifusión IP y se deja como ejercicio para el lector.