Anda di halaman 1dari 29

7.

5 Coordinacin en comunicacin en grupo


7.6 Consenso, sus problemas y mtodos de solucin

Por:
Pavn Gutirrez Francisco
Snchez Lpez Hctor Gerardo




Requiere la presencia de coordinacin y


acuerdo.
El objetivo es que cada uno de los procesos
del grupo reciba los mensajes enviados al
grupo, garantizando que estos hayan sido
entregados.
Se debe tener especial cuidado en la
eficiencia de los tiempos consumidos y el uso
de ancho de banda.

La caracterstica esencial de la comunicacin


por multidifusin es que un proceso realiza
solamente una operacin multicast para
enviar un mensaje a cada uno de los
miembros del grupo, en lugar de realizar
varias operaciones enviar sobre los
procesos individuales.

El uso de una sola operacin multicast permite una


implementacin eficiente y que esta proporcione
garantas de entrega mas fuertes que las que seria
posible obtener usando otros medios de difusin.

Es la certeza de que el mismo mensaje enviado


ser recibido por cada uno de los procesos
individuales del grupo, permitiendo que la
implementacin de la multidifusin haga un uso
eficiente del ancho de banda de la red.

Garantas de entrega.
Si un proceso realiza varias operaciones enva
independientes a procesos individuales, entonces la
implementacin no tiene medios para proporcionar
garantas de entrega que afecten al grupo de procesos
en su conjunto.
Si el remitente del mensaje llegara a fallar durante el
envo, no todos los procesos recibiran el mensaje.




La operacin multicast(g, m) enva un mensaje m


a todos los miembros de grupos de procesos g.
A esta operacin le corresponde una operacin
entrega(m) que entrega el mensaje mandado por
multidifusin al proceso que ha realizado la
peticin.
Todo mensaje m porta el identificador nico del
proceso emisor(m) que lo enva y el identificador
nico del grupo al que se enva grupo(m).

Se dice que un grupo g es cerrado si solo los


miembros del grupo pueden multidifundir
dentro de el.
Un grupo g es abierto si los procesos que no
estn en el grupo le pueden mandar mensajes.

Es til contar con una primitiva de multidifusin


bsica que garantice que un proceso correcto al
final entregara el mensaje siempre que el
sistema que realiza la multidifusin no se caiga.
La implementacin de esta primitiva puede usar
hilos para realizar las operaciones de envo de
mensajes de forma concurrente, con el fin de
reducir el tiempo total de entrega del mensaje.
Por otro lado, este mtodo puede causar un
colapso por excesos de acuse de recibido (ackimplosion) si el numero de procesos es grande.






Un proceso de multidifusin fiable debe cumplir


con las siguientes propiedades:
Integridad: un proceso correcto p entrega un
mensaje m a lo sumo una vez.
Validez: si un proceso correcto multidifunde un
mensaje m entonces al final m ser entregado.
Acuerdo: si un proceso correcto entrega un
mensaje m, entonces el resto de procesos
correctos en el grupo(m) deben al final entregar
el mensaje m.

Para enviar un mensaje mediante F-multicast,


primero un proceso enva el mensaje mediante
B-multicast a los procesos miembros del grupo,
incluido el mismo.
Cuando el proceso ha sido entregado, el
receptor reenva el mensaje a los dems
miembros del grupo.
Dado que un mensaje puede llegar mas de una
vez al mismo nodo, los duplicados se detectan y
no se reenvan.

Cada proceso p mantiene un numero de


secuencia Sgp para cada grupo g al que
pertenece. El numero de secuencia
inicialmente es cero.
El proceso almacena adems el numero de
secuencia del ultimo mensaje que ha sido
entregado por el proceso p y que fue enviado
desde el grupo g: Rpg

Cuando el proceso p enva un mensaje a g


adhiere el valor Sgp . Adems adhiere acuses
de recibo sobre el mensaje que enva, de la
forma <q, Rpg >.
Dicho acuse de recibo establece el numero de
secuencia del ultimo mensaje destinado para
ese grupo, que le ha sido entregado desde el
proceso q desde la ultima vez que se difundi
el mensaje.

El proceso p que emple la multidifusin


enva a continuacin el mensaje mediante
multidifusin IP con su numero de secuencia
y acuse de recibo adheridos para g e
incrementa Sgp en uno.




El algoritmo de la multidifusin bsica y


eficiente entrega los mensajes de manera
desordenada.
Esta falta de la propiedad de la ordenacin no es
admisible en muchas operaciones.
Los tipos mas comunes de multidifusin
ordenada son:
 Ordenacin FIFO.
 Ordenacin Causal.
 Ordenacin Total.

Si un proceso correcto realiza multicast(g, m) y a


continuacin un multicast(g, m), entonces todo
proceso correcto que entregue m ha de haber
entregado previamente a m.
Todos los mensajes enviados por un emisor se
entregan siguiendo la misma secuencia, y se
pospone la entrega de mensaje hasta que se
alcance su numero de secuencia (mientras se
almacena temporalmente en una cola).
Este protocolo puede utilizarse tanto en una
multidifusin bsica como en una fiable.

Si un proceso correcto entrega el mensaje m


antes de que entregue m, entonces cualquier
otro proceso que entregue m ha de haber
entregado m antes.
La implementacin se realiza asignando
identificadores totalmente ordenados a los
mensajes que se multidifunden, de tal
manera que todo proceso realice la misma
ordenacin basada en estos identificadores.

Si multicast(g, m)  multicast(g, m) entonces


cualquier proceso correcto que entregue m
habr entregado antes m.
Cada proceso p mantiene un vector de
marcas temporales. Cada entrada asociada a
la marca temporal cuenta el numero de
mensajes multidifundidos para cada proceso
que sucedieron-antes que el prximo
mensaje que ser enviado para su
multidifusin.

Proceso correcto:
proceso que no
muestra fallos en
ningn momento de
la ejecucin, se
aplica a la ejecucin
completa

Problema entre procesos:


los procesos tienen
problemas para ponerse de
acuerdo (CONSENSO) en
un valor despus de que
uno o mas de dichos
procesos haya propuesto
cual debera ser ese valor

Exclusin
mutua

Eleccin

Los procesos
acuerdan
cuales pueden
entrar en la
seccin crtica

Los procesos
acuerdan cul
es el proceso
elegido

Multidifusin
Totalmente
ordenada
Los procesos
acuerdan el
orden de
entrega de los
mensajes

Terminacin

Acuerdo

Integridad

El proceso fija su El valor de


variable de
decisin de los
decisin
procesos
correctos es el
mismo

Todos los procesos


han propuesto el
mismo valor 
cualquier proceso
fijar su variable con
ese valor

D = prosigue

Procesos
correctos

Procesos p y q
Entonces
Dp = Dq

Por cada

Por formas
extraas
(arbitrarios)

Se cae el enlace en la red

El proceso da valores
diferentes a los otros
procesos
Puede ser intencional
para destruir el sistema

Sncrono

Son pocos
Hay pocos fallos
Fcil consenso

Asncrono

Son la mayora
Hay ms fallos
Difcil consenso

Consenso
Generales Bizantinos
Consistencia Interactiva

No queda
claro
cundo
termina el
algoritmo
de consenso
debido a los
fallos




4 generales: 1 comandante y 3 tenientes (uno es traidor)


Uno propone el valor a los otros dos (estos se ponen de
acuerdo)

Los procesos se deben poner de acuerdo en un vector


de variables (una variable por cada proceso)







f es el nmero mximo de procesos que pueden


caerse o fallar (n-f son correctos).
Suponemos f conocido (si f desconocido, f=n-1).
El algoritmo tarda f+1 rondas sncronas.
En cada ronda cada proceso enva a todos los
dems.
Eficiencia: tiempo f+1, mensajes n(f +1).

Anda mungkin juga menyukai