Buscar

SD 09 - Coordenação e Acordo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Distribuídos
Coordenação e Acordo
Joinvile Batista Junior
UFGD - SD 09 - Joinvile Batista Junior 2
Coordenação e Acordo
 A : Algoritmos de Exclusão Mútua Distribuída
 B : Algoritmos de Eleições
 C : Algoritmos Multicast
 D : Algoritmos de Consenso
UFGD - SD 09 - Joinvile Batista Junior 3
A : Algoritmos de Exclusão Mútua Distribuída
1. Conceitue Coordenação e Acordo. Conceitue Exclusão Mútua 
Distribuída.
2. Comente as condições e os critérios de avaliação de um algoritmo de 
exclusão mútua.
3. Defina Algoritmo de Exclusão Mútua Distribuída: Servidor Central.
4. Defina Algoritmo de Exclusão Mútua Distribuída baseado em Anel.
5. Defina Algoritmo de Exclusão Mútua Distribuída usando Multicast e 
Relógio Lógico.
6. Defina Algoritmo de Exclusão Mútua Distribuída: Votação de 
Maekawa.
UFGD - SD 09 - Joinvile Batista Junior 4
Coordenação e Acordo
• Coordenação e Acordo
– um dos problemas fundamentais em sistemas distribuídos
• coordenação e acordo entre os diversos processos sobre a 
utilização dos recursos
– para solucionar esta questão existem vários algoritmos
• mas a solução de hierarquia dos processos é sempre evitada
• Suposições de Falhas
– cada par de processos está conectado por canais confiáveis
– os processos usam um protocolo de comunicação confiável que 
mascara as falhas
– nenhum dos processos depende do outro para encaminhar 
mensagens
– entrega das mensagens dentro de um limite de tempo especificado
– para todos os efeitos: os processos e as mensagens nunca falham 
• a não ser que seja especificado o contrário
UFGD - SD 09 - Joinvile Batista Junior 5
Coordenação e Acordo
• Detector de Falha
– é um serviço que os processos consultam
• para saber se um processo em particular falhou
– é implementado em um objeto local
• para cada processo que executa um algoritmo de falha
• Confiabilidade
– um detector de falha não é exatamente preciso
• a maioria são detectores de falha não confiáveis
– eles identificam cada processo como suspeito ou não 
suspeito
• os detectores não confiáveis com certas propriedades bem 
definidas
– podem auxiliar no encontro de soluções para os problemas 
de coordenação de processos quando existem falhas
» mesmo que de forma imprecisa
UFGD - SD 09 - Joinvile Batista Junior 6
Exclusão Mútua Distribuída
• Conceituação
– os processos distribuídos precisam coordenar suas atividades
– se um conjunto de processos partilham um recurso
• freqüentemente é necessário a exclusão mútua para acessar o 
recurso
– em sistemas operacionais
• o problema é conhecido como seção crítica
– a solução para sistemas distribuídos
• exige obrigatoriamente a troca de mensagens
UFGD - SD 09 - Joinvile Batista Junior 7
Exclusão Mútua Distribuída
• Exemplo
– um estacionamento de veículos com diversas entradas e saídas
• tenta manter o controle da quantidade de vagas disponíveis no 
estacionamento
– sem a necessidade de um servidor central
– mantém um contador local do número de vagas
• toda saída: registra a adição de uma vaga
• toda entrada: registra a subtração de uma vaga
UFGD - SD 09 - Joinvile Batista Junior 8
Algoritmo de Exclusão Mútua
• operações
– enter: entrar na seção critica
– resourceAccesses: utilizar o recurso
– exit: sair da seção critica
• condições
– segurança
• apenas um processo entra na seção critica por vez
– subsistência
• os pedidos para entrar e sair no sistema nunca falham
– ordenação
• a ordem dos pedidos garante a ordem de entrada
UFGD - SD 09 - Joinvile Batista Junior 9
Algoritmo de Exclusão Mútua
• critérios de avaliação
– largura de banda consumida
• proporcional ao número de mensagens enviadas em cada 
operação de entrada e saída
– atraso do cliente
• acarretado por um processo em cada operação de entrada e 
saída
– efeito do algoritmo sobre a taxa de rendimento do sistema
• velocidade com que o conjunto de processos como um todo 
pode acessar a seção crítica
UFGD - SD 09 - Joinvile Batista Junior 10
Algoritmo do Servidor Central
• utilizar um servidor para conceder permissão para entrar na seção crítica
– é o modo mais simples de exclusão mútua
• algoritmo em alto nível
– o servidor retorna um token
• dando permissão para um processo entrar na seção crítica
– se nenhum processo tiver o token
• o servidor responderá emitindo um
– se o token estiver com algum processo
• o servidor não responderá e enfileirará o pedido
• o processo mais antigo em espera
– entra na seção crítica primeiro
– quando um processo sai da seção crítica
• uma mensagem é enviada para o servidor
UFGD - SD 09 - Joinvile Batista Junior 11
Algoritmo do Servidor Central
UFGD - SD 09 - Joinvile Batista Junior 12
Algoritmo Baseado em Anel
• algoritmo
– cada processo P tem um canal de comunicação
• com o processo seguinte no anel
– a exclusão é concedida pela obtenção de um token
• na forma de mensagem passada de processo para processo
• em uma única direção em torno do anel
– se um processo não pede para entrar na seção crítica
• ao receber o token: ele o encaminha para seu vizinho
– um processo que solicita o token: espera até recebê-lo
– para sair da seção crítica: processo envia o token para seu vizinho 
• avaliação
– algoritmo consome largura de banda continuamente
UFGD - SD 09 - Joinvile Batista Junior 13
Algoritmo usando Multicast e Relógio Lógico
• processos solicitam a entrada em uma seção crítica
– difundindo seletivamente (multicast) uma mensagem de pedido
• processos só podem entrar na região crítica
– quando todos os processos tiverem respondido essa mensagem
• as condições de resposta são projetadas para satisfazer as condições 
de segurança e ordenação
• os processos apresentam identificadores númericos distintos
• canais de comunicação de um processo para o outro
– mantém um relógio de Lamport atualizado
• cada processo registra seu estado em uma variável
– fora da seção crítica
– querendo entrar
– na seção crítica
UFGD - SD 09 - Joinvile Batista Junior 14
Algoritmo usando Multicast e Relógio Lógico
• se dois processos solicitarem a entrada ao mesmo tempo
– o pedido do processo que apresentar a indicação de tempo mais 
baixa
• será o primeiro a coletar n - 1 respostas e garantir sua entrada
• se apresentarem tempo igual
– serão ordenados de acordo com o índice dos processos
• vantagem desse algoritmo
– atraso de sincronização é o tempo de transmissão de uma 
mensagem
• mensagem de resposta dos processos consultados
– pois a mensagem de solicitação é única (multicast)
– os dois algoritmos anteriores
• apresentavam atraso de viagem de ida e volta
UFGD - SD 09 - Joinvile Batista Junior 15
Algoritmo de Votação de Maekawa
• baseado em votação
– para o obter acesso à seção crítica
• nem todos os processos precisam concordar
– é necessário apenas
• dividir o conjunto de processos em subconjuntos
– conjuntos de votação que se sobrepõem
• que haja consenso em todo subconjunto
• para entrar na seção crítica
– o processo deve obter a quantidade de votos do subconjunto - 1
• na saída da seção crítica
– processo envia uma mensagem de liberação
• para todos os membros do conjunto votante
UFGD - SD 09 - Joinvile Batista Junior 16
Tolerância a Falhas dos Algoritmos
• nenhum dos algoritmos descritos toleraria a perda de mensagens
– o algoritmo do servidor central
• pode tolerar a falha por colapso
– de um processo que nem tenha solicitado o token
– o algoritmo baseado em anel
• não toleraria nem mesmo uma falha por colapso de um único 
processo
– o algoritmo usando multicast e relógios lógicos
• pode ser adaptado para tolerar falha por colapso
– oalgoritmo Maekawa
• pode tolerar falha por colapso
– desde que o processo não esteja em um conjunto votante
UFGD - SD 09 - Joinvile Batista Junior 17
B : Algoritmos de Eleições
1. Defina o objetivo de uma eleição e seus requisitos de execução.
2. Explique o Algoritmo de Eleições baseado em Anel.
3. Qual o desempenho de pior caso do Algoritmo de Eleições baseado 
em Anel. Justique.
4. Explique o Algoritmo de Eleições Valentão.
5. Qual o melhor e o pior caso de desempenho do Algoritmo de Eleições 
Valentão. Justique.
UFGD - SD 09 - Joinvile Batista Junior 18
Eleições
• é um algoritmo para escolher um único processo
– para desempenhar uma função em particular
• cada processo tem um identificador
– que pode ser qualquer valor
• desde que sejam únicos e ordenados
• em uma eleição: cada processo pode ser participante ou não 
participante
– caso um processo seja participante
• ele altera seu “eleito” para “┴” (vazio)
– após a eleição de um processo
• todos os outros participantes armazenam o indicador do 
processo eleito
UFGD - SD 09 - Joinvile Batista Junior 19
Eleições
• requisitos de execução de algoritmos de eleição
– segurança
• um processo participante Pi tem “eleito” = ┴ ou “eleito” = Pj
• Pj é escolhido como o processo não falho com maior 
identificador
– subsistência
• todos processos Pi participam e configuram “eleito” ≠ ┴ ou 
falham
• a medição de desempenho de algoritmos de eleição
– é feita a partir a utilização de banda da rede total
– e pelo tempo do ciclo de rotação do algoritmo
UFGD - SD 09 - Joinvile Batista Junior 20
Algoritmo Baseado em Anel
• cada processo Pi
– tem um canal de comunicação com o processo Pi+1 
• e todas mensagens são enviadas em sentido horário
• o objetivo deste algoritmo é eleger um único processo
– chamado de processo coordenador
• inicialmente todos processos estão como não participantes
– e qualquer processo pode iniciar a eleição
• o processo iniciante marca-se como participante
– e envia seu identificador em uma mensagem ao seu vizinho
• sempre no sentido horário
• ao receber uma mensagem de eleição
– o processo compara o seu identificador com o contido na 
mensagem
UFGD - SD 09 - Joinvile Batista Junior 21
Algoritmo Baseado em Anel
• caso o identificador contido na mensagem seja maior que o seu próprio
– ele encaminha a mensagem ao vizinho
• caso o identificador contido na mensagem seja menor
– ele substitui o identificador da mensagem pelo seu e encaminha
• em qualquer caso, no recebimento de uma mensagem de eleição
– o processo marca a si mesmo como participante
• no entanto, se o identificador recebido for igual ao seu
– então o processo é o maior e torna-se o coordenador
• o coordenador marca-se como não participante
– e encaminha ao seu vizinho uma mensagem “eleito”
• anunciando sua eleição junto com seu identificador
• todos processos então marcam-se como não participantes
– e ajustam seu “eleito” para o coordenador
UFGD - SD 09 - Joinvile Batista Junior 22
Algoritmo Baseado em Anel
• pior caso de desempenho: quando vizinho do processo iniciante, no 
sentido anti-horário tem o identificador mais alto
– para chegar a este vizinho: N – 1 mensagens
– o qual não anunciará sua eleição até que seu identificador tenha 
completado outro ciclo: + N mensagens
– mais um ciclo para enviar a mensagem “eleito”: + N mensagens
• portanto, para N participantes: gasto = 3N - 1
• embora o algoritmo baseado em anel seja útil para se entender as 
propriedades dos algoritmos de eleição em geral
– o fato de ele não tolerar falhas o torna limitado quanto ao seu valor 
prático
• falha de um processo interrompe o ciclo de mensagens no anel
• porém, com um detector de falhas confiável
– é possível, em princípio, reconstruir o anel após uma falha
UFGD - SD 09 - Joinvile Batista Junior 23
Algoritmo Baseado em Anel
UFGD - SD 09 - Joinvile Batista Junior 24
Algoritmo Valentão (Bully)
• ao contrário do algoritmo baseado em Anel este algoritmo presume 
– que o sistema seja síncrono
• ele usa limites de tempo para detectar uma falha
– que cada processo sabe quais processos têm identificadores mais 
altos
• e que todos processos podem se comunicar
• existem três tipos de mensagens nestes algoritmos
– uma mensagem de eleição
• é enviada para anunciar uma eleição
– uma mensagem de resposta
• é enviada em retorno à mensagem de eleição
– uma mensagem de coordenador
• é enviada para anunciar a identidade do processo eleito
• uma nova eleição é solicitada quando o antigo coordenador falha
UFGD - SD 09 - Joinvile Batista Junior 25
Algoritmo Valentão
• por se tratar de um algoritmo síncrono
– podem ser construídos detectores de falhas confiáveis
• como os processos conhecem o maior identificador
– este pode se eleger como coordenador simplesmente enviando 
uma mensagem de coordenador
• um processo de identificador baixo pode enviar mensagem de eleição
– e caso não haja resposta em tempo T: torna-se o coordenador
• ao receber uma mensagem do coordenador
– o processo ajusta seu “eleito” para o novo processo
• é impossível dois processos decidirem que são o coordenador
– pois o processo com identificador mais baixo descobrirá que o outro 
existe e o acatará
UFGD - SD 09 - Joinvile Batista Junior 26
Algoritmo Valentão
• em relação ao desempenho
– no melhor caso: o processo com o segundo identificador mais alto
nota primeiro a falha do coordenador
• ele pode eleger-se simplesmente enviando N mensagens de 
coordenador
– no pior caso: o processo com o menor identificador nota primeiro a 
falha do coordenador
• neste caso, N – 1 processos iniciam as eleições enviando 
mensagens para os processos com identificadores mais altos
– O(N²) mensagens são necessárias
UFGD - SD 09 - Joinvile Batista Junior 27
C : Algoritmos Multicast
1. Conceitue eficiência na comunicação multicast.
2. Conceitue as propriedades do multicast confiável.
3. Conceitue ordem FIFO, causal e total no multicast ordenado.
UFGD - SD 09 - Joinvile Batista Junior 28
Comunicação Multicast
• toda mensagem de multicast exige coordenação e acordo
– objetivo: todos os processos de um grupo devem receber cópias 
das mensagens enviadas
• os processos podem pertencer a vários grupos
– recebendo informações de várias fontes
• o modelo de sistema consiste em um conjunto de processos
– que podem se comunicar com confiabilidade por meio de canais
• processos só falham por colapso
• um processo ao receber uma mensagem
– pode distribuí-la ou apenas recebê-la
• a mensagem transporta um identificador do seu emissor
UFGD - SD 09 - Joinvile Batista Junior 29
Comunicação Multicast
• eficiência
– a mesma mensagem será enviada a todos os processos de um 
grupo
• permitindo que a implementação seja eficiente em sua largura 
de banda
– se compararmos o envio de mensagem entre um PC de Londres 
para 2 computadores em Palo Alto
• por UDP: necessita envio de 2 mensagens
– o envio da segunda mensagem requer a conclusão da 
primeira
» retardando o processo
• por multicast
– um conjunto de roteadores com capacidade de multicast 
encaminha uma única cópia da mensagem
UFGD - SD 09 - Joinvile Batista Junior 30
Comunicação Multicast
• garantias de entrega
– em múltiplos envios independentes para vários remetentes
• não há como garantir a entrega que afetem o grupo como um 
todo
– pois um remetente pode falhar na metade do processo de 
envio
• nem como garantir a ordem de entrega
– em multicast
• também não há uma garantia de ordem de recebimento
– porém há métodos de garantias que podem ser 
implementados
UFGD - SD 09 - Joinvile Batista Junior 31
Multicast Básico
• garante que umprocesso correto finalmente distribuirá a mensagem: 
desde que o difusor não falhe
• uma maneira simples de implementar B-multicast 
– usando uma operação send confiável de um para um
• a implementação pode usar threads para executar as operações de 
send: diminuindo o tempo gasto
• porém a utilização de threads pode causar uma explosão de 
confirmações
– caso o número e processo seja grande
• recebendo assim várias confirmações de recebimentos quase 
ao mesmo tempo
• este recebimento simultâneo causa exaustão dos buffers dos 
processos
– podendo levar à perda de confirmações de entrega dos processos
• que resulta em reenvio de mensagens
– acarretando cada vez mais confirmação de recebimento
UFGD - SD 09 - Joinvile Batista Junior 32
Multicast Confiável
• o multicast confiável deve satisfazer as seguintes propriedades
– integridade
• um processo correto p entrega uma mensagem m no máximo 
uma vez
– validade
• se um processo correto executa um multicast da mensagem m
– então: ele finalmente entregará m
– acordo
• se um processo correto entrega a mensagem m
– então todos os outros processos corretos do grupo
» finalmente entregarão m
UFGD - SD 09 - Joinvile Batista Junior 33
Multicast Ordenado
• problema no multicast básico: falta de garantia de ordem
– que não é satisfatória para muitas aplicações
• requisitos de ordenação comum
– ordem: FIFO, causal, total
• ordem FIFO
– se um processo correto executa multicast (g,m) e depois multicast 
(g,m’)
• todo processo correto que entregar m’ entregará m antes de m’
– a camada de comunicação é forçada a entregar as mensagens que 
chegam do mesmo processo
• na mesma ordem em que elas foram enviadas
UFGD - SD 09 - Joinvile Batista Junior 34
Multicast Ordenado
• Ordem Causal
– se multicast (g,m) → multicast (g,m’)
• onde → é a relação do acontecido induzida apenas pelas 
mensagens enviadas entre os membros de g
• então todo processo correto que entrega m’ entregará m antes m’
– se m precede uma outra mensagem m’ por causalidade
• independentemente de terem sido enviadas por processos 
diferentes
• a camada de aplicação sempre entregara m’
– apos ter recebido e entregado m
– ordem causal implica ordem FIFO
• Ordem Total
– se um processo correto entregar a mensagem m antes de entregar m’
• qualquer outro processo correto que entregue m’
– entregará m antes de m’
– permite que a distribuição de mensagens seja ordenada 
arbitrariamente
• desde que a ordem seja a mesma em diferentes processos
UFGD - SD 09 - Joinvile Batista Junior 35
D : Algoritmos de Consenso
1. Defina o problema de Consenso e os requisitos de um algoritmo de
Consenso.
2. Explique porque não há consenso para o problema dos 3 generais 
bizantinos.
3. Explique porque há consenso para o problema dos 4 generais 
bizantinos.
UFGD - SD 09 - Joinvile Batista Junior 36
Consenso
• Consenso X Generais
– em que o problema dos generais bizantinos difere do consenso?
• problema dos generais bizantinos
– um processo distinto pode fornecer um valor com o qual os 
outros devem concordar
• problema do consenso
– cada um dos processos propõem um valor
– integridade do problema dos generais
• depende do valor proposto pelo comandante
UFGD - SD 09 - Joinvile Batista Junior 37
Consenso
• problema: processos concordarem com um valor
– após um, ou mais, processos terem proposto qual deve ser esse 
valor
– ex: todos os computadores corretos de uma nave espacial devem 
decidir entre prosseguir ou cancelar
• definindo consenso relacionando-o com outro problema de acordo
– Generais Bizantinos
• definição do problema de consenso
– sejam 3 processos: P1, P2 e P3
• cada processo começa no estado “indeciso”
• cada processo propõe um único valor vi
– extraído de um conjunto D(i=1,2,...,N)
• os processos se comunicam podendo trocar seus valores
• cada processo entra no estado “decidido”
– configurando um valor de uma variável de decisão di
UFGD - SD 09 - Joinvile Batista Junior 38
Consenso
Requisitos de um algoritmo de consenso
• Término
– cada processo correto acaba configurando sua variável de decisão
• Acordo
– o valor da decisão de todos os processos corretos é o mesmo
• Integridade
– se todos os processos corretos propuseram o mesmo valor
• qualquer processo correto no estado decidido escolheu esse 
valor
UFGD - SD 09 - Joinvile Batista Junior 39
Consenso
• Problema dos generais bizantinos
– três ou mais generais devem concordar com: ataque ou retirada
– comandante dá a ordem
• os comandados decidem: atacar ou recuar
– um, ou mais, pode ser traidor (processo falho)
• se o traidor for o comandante
– ele pode propor ordens contraditórias para seus 
comandados
• se o traidor for um comandado
– ele repassa a ordem incorreta para os outros comandados
– todos os generais devem tomar a mesma ação
• o exército não pode tomar decisões distintas mesmo que haja 
generais traidores
• a decisão precisa ser consenso: não pode ser aleatória
UFGD - SD 09 - Joinvile Batista Junior 40
Sem consenso para 3 generais bizantinos
Comandado (p3) traidor Comandante (p1) traidor
p1 (Comandante)
p2 p3
AA
A
R
p1 (Comandante)
p2 p3
RA
A
R
UFGD - SD 09 - Joinvile Batista Junior 41
Consenso para 4 generais bizantinos
Comandado (p3) traidor Comandante (p1) traidor
X = { A | R }
p1 (Comandante)
p2 p3
AA
A
R
p4
A
A
A R
A
p1 (Comandante)
p2 p3
XA
A
X
p4
R
R
A X
R

Continue navegando