Capítulo 2.

Anuncio
Comunicación por grupos
Alvaro Ospina Sanjuan
[email protected]
Comunicación por grupos
Definiciones y
características
Técnicas de envío
Cerrados vs Abiertos
Jerárquicos vs par a
par
Membresía
Direccionamiento
Atomicidad
Ordenamiento
Excalabilidad
Sincronía
Comunicación por grupos
Una hipótesis subyacente e intrínseca
de RPC es que la comunicación solo es
entre dos partes: el cliente y el
servidor
Un grupo es una colección de procesos
que actúan juntos en cierto sistema o
alguna forma determinada por el
usuario
Existen varias alternativas para
lograrla
Comunicación por grupos
Características
Los grupos son dinámicos:
Se pueden crear y destruir.
Un proceso se puede unir a un grupo o dejar
a otro.
Un proceso puede ser miembro de varios
grupos a la vez.
La transparencia es su principal
objetivo
Implantación
Depende en gran medida del hardware
En ciertas redes es posible crear una
dirección especial de red a la que
pueden escuchar varias máquinas:
multitransmisión
Las redes que no soportan
multitransmisión operan con
transmisión simple
transmisión por parte del emisor de
paquetes individuales a cada uno de
Técnicas de envío Multicasting
E
X
Dirección especial de red a la que escuchan
diferentes procesos.
Cuando se envía un mensaje a esta dirección, se
entrega a todos los procesos
Técnicas de envío Broadcasting
E
Muy ruidoso en la red
Técnicas de envío Unicasting
E
Conexión punto a punto. Muy
ineficiente
Se pierde la transparencia
Grupos cerrados vs abiertos
Grupos cerrados
Solo los miembros del grupo pueden enviar hacia el
grupo.
Los extraños no pueden enviar mensajes al grupo
como un todo, pero pueden enviar mensajes a
miembros del grupo en lo individual.
Procesamiento paralelo
En los grupos abiertos
Cualquier proceso del sistema puede enviar a
cualquier grupo.
Servidores duplicados
Grupos cerrados vs abiertos
E
Jerárquicos vs par a par
Coordinador
Grupo Igualitario
Trabajador
Grupo Jerárquico
Jerárquicos vs par a par
Grupo par a par (igualitario)
Es simétrico y no tiene punto de falla (bueno)
Toma de decisiones es más difícil
Grupo jerárquico
el dejar todo en un solo proceso aumenta el riesgo
cuando hay una falla, pero mientras se mantenga
en ejecución, puede tomar decisiones sin molestar
al resto
Ej: un juego de ajedrez en paralelo. Cada trabajador
recibe un tablero del coordinador para su solución
Membresía
La comunicación en grupo requiere
cierto método para:
Creación y eliminación de grupos.
Unión y separación de procesos a grupos.
Opciones
Servidor de grupos
Administración distribuida
Membresía - Opciones
oceso que quiere vincularse al grupo
Proceso que quiere vincularse al grupo
-- -- ------ ------ - -- - - ----
Tabla de procesos
Membresía - Opciones
Servidor de grupos
Eficiente
Fácil de implementar
Punto único de fallo
Administración distribuida
Un proceso extraño envía un mensaje de
vinculación
Al salir del grupo también debe comunicarlo
Membresía - Problemas
Fallas de un proceso
No hay aviso de la salida
Descubrimiento por experimentación
Sincronización a la entrada y salida
Para empezar a recibir (o dejar de recibir) mensajes
Mensaje a todo el grupo
Fallo masivo
Reconstrucción del grupo
Un proceso debe tomar la iniciativa y avisarlo para que ningún
otro lo haga
Direccionamiento
Proceso envía mensaje a una dirección de
grupo y éste es entregado a todos los
miembros, (el cómo se entrega es
transparente al emisor).
Para poder realizarlo es necesario contar
con una forma de designar al grupo.
Existen tres métodos para llevarlo a cabo
Designar una dirección única
Lista explícita
Predicado de direccionamiento
Direccionamiento – Método
1
Asignar a cada grupo una dirección
única como si se tratara de un proceso
Multicast
La dirección del grupo es la dir de multicas
0
1
2
3
4
Direccionamiento – Método
1
Asignar a cada grupo una dirección
única como si se tratara de un proceso
Broadcast
Todos reciben el mensaje. Solo el destinatario se lo queda
0
1
2
3
4
Direccionamiento – Método
1
Asignar a cada grupo una dirección
única como si se tratara de un proceso
Unicast
El emisor envía un mensaje punto a punto
Debe conocer los miembros del grupo
0
1
2
3
4
Direccionamiento – Método
2
Lista explicativa
Obligar al emisor a proporcionar una lista
explícita de todos sus destinatarios
Ej: lista de direcciones IP.
primitiva send( ): parámetro destino apunta
a una lista de direcciones
Desventaja:
No es transparente
Si miembros grupos cambian los procesos deben
actualizar lista
Direccionamiento – Método
3
Predicado de direccionamiento:
cada mensaje es enviado a todos los miembros del
grupo.
El mensaje incluye un predicado, (expresión
boolena), a evaluar
Si predicado = verdad entonces
mensaje es aceptado
Sino
mensaje es descartado
Ejemplo:mensaje enviado a máquina con 512MB de
memoria
Atomicidad
Esta propiedad de “todo o nada” en la
entrega se llama atomicidad o transmisión
atómica.
Facilita la programación de los sistemas
distribuidos.
Es de gran importancia para garantizar la
consistencia de las bases de datos y de los
archivos distribuidos y duplicados
Unica forma de asegurar atomicidad es que
todas las máquinas envíen un
acknowledge del mensaje recibido
Atomicidad – Algoritmo
simple
Emisor envía mensaje a todos los miembros del
grupo
Se establecen timers y las retransmisiones
necesarias son realizadas
Cuando proceso recibe mensaje, si este no ha visto
antes el mensaje lo envía al resto del grupo,
(también con timers y retransmisiones)
Si ya ha visto el mensaje el mensaje es descartado
Sin importar el número de máquinas caídas, o
cuantos paquetes se perdieron, eventualmente los
procesos sobrevivientes recibirán el mensaje
Atomicidad – Joseph-Birman
Demuestra la posibilidad de la transmisión
atómica.
El emisor comienza con el envío de un mensaje a
todos los miembros del grupo.
Los cronómetros se activan y se envían las
retransmisiones en los casos necesarios.
Cuando un proceso recibe un mensaje:
Si no recibió ya este mensaje particular:
Lo envía a todos los miembros del grupo:
Con cronómetros y retransmisiones en los casos necesarios.
Si ya recibió este mensaje particular:
No se efectúan envíos y el mensaje se descarta
Ordenamiento
Son necesarias dos propiedades que la
comunicación en grupo sea fácil de
comprender y utilizar
transmisión atómica
ordenamiento de mensajes
Ejemplo
cinco máquinas, cada una con un proceso
procesos 0,1,3 y 4 pertenecen al mismo grupo
en forma simultanea los procesos 0 y 4 desean
enviar un mensaje al grupo
modo comunicación: unidireccional
cada proceso debe enviar tres mensajes independientes
p0 envia a p1, p3 y p4
p3 envía a p0, p1 y p3
Ordenamiento - Problema
El problema es que cuando dos procesos contienden por el
acceso a una LAN, el orden de envío de los mensajes no es
determinista
Para 1
1
Para 0
0 Para 3
Para 1
4
2
0
1
2
3
3
4
4
5
Para 3
Para 4
Los tres mensajes enviados por procesos
0 y 4 son intercalados en el tiempo
Representación gráfica de los seis mensajes,
mostrando el tiempo de llegada
Ordenamiento - Propuestas
Ordenamiento con respecto al tiempo
global
entrega inmediata de todos los mensajes, en
el orden en que fueron enviados
si p0 envía mensaje A y después p4 envía
mensaje B, el sistema debe entregar en
primer lugar A a todos los miembros del
grupo y después entregar B a todos los
miembros del grupo
Ordenamiento - Propuestas
Ordenamiento tiempo absoluto
no siempre es fácil de implementar
se cuanta con distintas variantes moderadas
ordenamiento consistente
si dos mensajes A y B se envían muy cercanos al
tiempo, el sistema elige uno de ellos como el
“primero”, seguido por el otro
concepto muy cercano de los relojes lógicos de
Lamport
Translapamiento de grupos
Grupo 1
Grupo 2
1
B
2
A
D
4
C
3
Translapamiento de grupos
Un proceso puede ser parte de varios
grupos
Cada uno de los procesos “A” y “D” decide
de manera simultánea enviar un mensaje a
sus grupos respectivos.
El sistema utiliza el ordenamiento con
respecto al tiempo global dentro de cada
grupo.
Se utiliza la unitransmisión.
Escalabilidad
Varios algoritmos funcionan bien mientras
los grupos tengan unos cuantos miembros
grupos con decenas, centenas o miles de miembros
por grupo
que pasa en el caso de miles de grupos
que ocurre si los grupos están diseminados en
varios continentes
que pasa si el sistema es tan grande que no cabe
en una LAN, de modo que se necesiten varias LAN y
gateways
La presencia de gateways puede afectar
muchas propiedades de la implementación.
Translapamiento de grupos
El orden de los mensajes es el
siguiente:
“A” a “B”; “D” a “B”; “D” a “C” y “A” a “C”.
Se da la situación de que dos procesos, “B”
y “C”, reciben los mensajes en un orden
distinto.
El problema es que no hay
coordinación entre varios grupos
Dificil implantar un orden, aunque no
siempre es necesario
Descargar