serviço de tempo, exclusão mútua, eleição e acordo prof. dr. norian marranghello grupo 5 anuar...
TRANSCRIPT
Serviço de tempo, Serviço de tempo, Exclusão Mútua, Exclusão Mútua, Eleição e AcordoEleição e Acordo
Prof. Dr. Norian MarranghelloProf. Dr. Norian Marranghello
Grupo 5Grupo 5
Anuar Mamede NetoAnuar Mamede Neto
Eduardo Hitoshi AokiEduardo Hitoshi Aoki
Tópicos AbordadosTópicos AbordadosServiço de TempoServiço de TempoExclusão Mútua distribuídaExclusão Mútua distribuída
- Exclusão mútua por passagem de ficha- Exclusão mútua por passagem de ficha- Exclusão mútua por disputa- Exclusão mútua por disputa- Exclusão mútua controlada- Exclusão mútua controlada- Votação- Votação- Estrutura lógica fixa- Estrutura lógica fixa- Compressão de caminho- Compressão de caminho
EleiçãoEleição- eleição do líder- eleição do líder- topologias- topologias- algoritmo de - algoritmo de BullyBully- algoritmo do convite- algoritmo do convite
AcordoAcordo- adversários- adversários- acordo bizantino- acordo bizantino- impossibilidade de consenso- impossibilidade de consenso- acordo distribuído aleatório- acordo distribuído aleatório
Serviço de Tempo• Clock lógicoClock lógico
• Clock físicoClock físico
• Lamport propôs a sincronização dos clocks lógicos baseado na Lamport propôs a sincronização dos clocks lógicos baseado na relação acontecimento/anterioridade (arelação acontecimento/anterioridade (ab):b):
a = ma = mkeke {m {mieie}}PP
b = mb = mkrkr {m {mjrjr}}
a,b P a < b ab
Sincronização do clock lógico
00 11 22 00 11 22
AA
BB
CC
DD
CC
DD
Exclusão MútuaExclusão Mútua por passagem de ficha ou Token Ring
• Todo processo sabe quem é o próximo da seqüência
• O detentor do token pode entrar na R.C. ou passar o token
• Problemas:
- perda do token
- algum processo pára
Exclusão MútuaExclusão Mútua por disputa
• Necessidade de ordenação total de todos os eventos no sistema
• A mensagem de requisição contém:
- nome da R.C. - número processo- tempo corrente
• Quando um processo recebe uma requisição de outro processo, a ação que esse processo toma depende do seu estado com relação a R.C. nomeada na mensagem:
- executando uma R.C.- não executando e não quer uma R.C.- não executando mas ainda vai executar uma R.C.
Exclusão Mútua Exclusão mútua por disputa
•Se dois processos quiserem entrar na R.C. ao mesmo tempo:
AA
BB CC
AA
BB CC 1212
121288
88
88
OKOK
OKOK
AA
BB CC
OKOKOKOK
(1)(1) (2)(2) (3)(3)
1212
Exclusão MútuaVotação Votação
AA
BB CC
AA
BB CC
AA
BB CC
AA
BB CC
(1)(1) (2)(2)
(3)(3) (4)(4)
88 OKOK
55
msgmsgdesistênciadesistência
Exclusão MútuaVotação• Se A não estiver executando a R.C. :
• Se A estiver executando a R.C., ele espera até A terminar de usar o recurso:
AA
BB CC
Msg de conf.Msg de conf.desistênciadesistência
AA
BB CC
AA
BB CC
AA
BB CC
Muda deMuda devotovoto
Terminei o uso Terminei o uso do recursodo recurso
OKOK
Exclusão Mútua Controlada
Objetivo:
Evitar sobrecarga de mensagens
Utiliza uma das estruturas topológicas:
• Estrutura em Anel
• Estrutura em Árvore
Estrutura em Anel
• Processos em um anel lógico
• Simples
• Sem Bloqueios
• Justa
Desvantagens:• Demora no recebimento do recurso
-Anel muito grandeAnel muito grande
-Todos processos querendo usar o recursoTodos processos querendo usar o recurso
Tenta-se correção:Tenta-se correção:
Mensagem de controle com “status”:Mensagem de controle com “status”:
-Níveis de prioridadeNíveis de prioridade
-Marcação de tempo Marcação de tempo
Estrutura em ÁrvoreProcessos em um árvore dinâmica lógica
• Ponteiro para nó antecessor para nó antecessor
• Fila FIFO de requisições de recursoFila FIFO de requisições de recurso
Raiz com mensagem de controle
Compressão de Caminho
• Diminui passagens de requisição;
• Aponta para processo que requisitou;
• Mapa dos outros que também requisitaram;
• Atualiza apontador após passagem de recurso.
Demonstração da Compressão de Caminho
AntesAntes DepoisDepois
EE
DD
CC
BB
AA
Requisição de recurso
Processo que contem Processo que contem mensagem de controlemensagem de controle
CC
EE
BB
DD
AA
Requisição de “A” marcadaRequisição de “A” marcada
Eleição• Escolha de um coordenador entre um grupo de processos
• Topologia Completa
- contato direto entre cada um dos nós de um grupo
- n.º de identificação de um processo é único e conhecido por todos
- comunicação na rede é confiável
Eleição• Topologia em anel
- processos ordenados e todos sabem que é o seu respectivo sucessor
00
11
2244
55
3333
3344
NãoNãoresponderesponde
334455
3344551133
44551122
5 é o novo coordenador5 é o novo coordenador
Eleição• Topologia em árvore
CC
AA
BB DD
EE FF
NN
GG
MM OO
LL
HHII JJ
CoordenadorCoordenador
Eleição• Algoritmo de Bully
- Cada processo tem a sua identidade como sua prioridade.
- Maior prioridade = coordenador
- Quando processo nota falta de um coordenador, convoca eleições aos processos com prioridade maiores que o seu.
00
11
2244
55
33eleiçãoeleição
eleiçãoeleição
eleiçãoeleição
O coordenador O coordenador anterior está anterior está
fora do arfora do ar
00
11
2244
55
33
OKOK
OKOK
Eleição• Algoritmo de Bully (continuação)
00
11
2244
55
33
eleiçãoeleição
00
11
2244
55
33
00
11
2244
55
33eleiçãoeleição
eleiçãoeleição
OKOK
coordenadorcoordenador
coordenadorcoordenador
coordenadorcoordenador
coordenadorcoordenador
(1)(1) (2)(2)
(3)(3)
EleiçãoAlgoritmo do Convite:
- Assíncrono;
- Melhor quando existem pequenas falhas de contagem de tempo;
- Um processo “A” convida os outros se processo líder não responde;
- Os outros processos aceitam este convite em até um determinado tempo;
- Processo “A” envia sinal de pronto aos outros processos;
- Processo “A” é agora o novo coordenador.
Acordo• Objetivo:
- Obter consenso de informações entre processos
• Adversário
• Falhas Bizantinas
• Impossibilidade de Consenso
• Consenso Distribuído Aleatório
Adversários
- Cria situações inesperadas pelo protocolo;
- Destrói mensagens;
- Modifica mensagens;
- Seu poder é controlável;
- Não criar situações impossíveis ou irreais.
Falhas BizantinasResolve problemas de “acordo”
- sistema síncrono;
- processos devem concordar pelo menos 75%;
- possibilidade de perda de mensagem ou seu corrompimento;
- não muito eficiente;
- nem útil em processadores com mal funcionamento;
- existe muita pesquisa para torna-lo eficiente;
Impossibilidade de Consenso
- Sistema distribuído assíncrono;
- Sem tempo definido para receber respostas;
- Não existem algoritmos que garantem o consenso;
- Sistemas são muito desenvolvidos e utilizados;
- Sistemas reais não garantem 100% de funcionamento;
- Admitem falhas em casos raros;
- Detecção e correção de problemas é feita pelo homem.
Consenso Distribuído Aleatório
Busca do consenso sem determinismo;
Aguardam, pelas respostas, um número de passos;
Utiliza conceito de memória compartilhada;
O consenso é consagrado se:
- vetor de preferências, em qualquer momento, tiver valores iguais;
Problemas Admite sistema síncrono:
- associa ciclos dos processadores;
- quando ciclos iguais e preferências iguais, temos o consenso;
Algum processador falhar:- não atualiza seu número de ciclos;
- inviabiliza acordo;
Tentativa de correção:- concentram-se esforços nos processadores mais rápidos;
- apenas estes podem discordar;
- processadores mais lentos sempre concordam;