Algoritmos Distribuídos Professora: Lúcia Drummond

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Contadores e Registradores
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Geometria Computacional Fecho Convexo II
Programação em Java Prof. Maurício Braga
Software Básico Silvio Fernandes
Computação Gráfica I Conteúdo: Professor: - Objetos gráficos espaciais
Inteligência Artificial
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material IV-Bimestre Tratamento de.
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Algoritmos Distribuídos
Estruturas de Repetição
MÁQUINAS UNIVERSAIS Fabrício Dias
Exercícios PAA- Grafos
Celso C. Ribeiro Caroline T. Rocha
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
17 Novembro 2006Algoritmos de Ordenação e Pesquisa Aplicação a Listas de Registos 1 Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Modelos de Comunicação em Sistemas Distribuídos
Instituto de Computação - UFF Detecção de Terminação Algoritmos Distribuídos Professora: Lúcia Drummond.
Algoritmos Distribuídos Professora: Lúcia Drummond
Algoritmos Distribuídos Professora: Lúcia Drummond
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Teoremas Teorema 5.1: Para, o número máximo de candi- datos restantes no pulso s=2k no algoritmo S_Elect_Leader_C é. Prova: No pulso s=2k, por (5.3) um.
DIAGRAMA DE ATIVIDADES
DIAGRAMA DE CASOS DE USO PERSPECTIVA CONCEITUAL
BCC101 – Matemática Discreta
Introdução à Lógica de Programação (cont.)
Classificação e Pesquisa de Dados
Administração para Engenharia
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Polinômios Prof. Marlon.
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Sincronização de Processos (3) Exercícios - Semáforos
Auditoria de Segurança da Informação
Programação Baseada em Objectos Desenho de TAD
Capítulo 6 Organização.
Aula 07 Comandos de Repetição while e for
Monitoria GDI Aula Prática
Campus de Caraguatatuba
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Lógica do Sequenciamento das Operações
Expressão algébrica a partir da representação gráfica da função
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
1 ESCOLA MUNICIPAL PEDRO NAVA E EDUCAÇÃO DE JOVENS E ADULTOS APRESENTA.
Conversão de um NFA para um DFA com um exemplo
Salas de Matemática.
Tipos Abstratos de Dados
Busca com informação e exploração
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Introdução e Busca Cega
O Problema Do Acordo Distribuído (Acordo Bizantino)
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Conceitos básicos em grafos
Comunicação entre processos: Mensagens Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.
Gerenciamento de Projetos
Controle Distribuído da Concorrência
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Ceça Moraes – Introdução à Programação SI1
Campus de Caraguatatuba Aula 2: Somatório e Produtório
Diagramas de Venn e de Carroll Não se chamam propriamente ferramentas/instrumentos estatísticos mas ajudam a organizar de uma forma simples alguns tipos.
Uma lição de matemática... Já pensou naquelas pessoas que dizem que estão dando mais que 100% delas mesmas?
Rio Verde - Goiás - Brasil
UML - Unified Modeling Language
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
BCC 101 – Matemática Discreta I
Construção e Análise de Algoritmos
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
Transcrição da apresentação:

Algoritmos Distribuídos Professora: Lúcia Drummond Eleição de Líder Algoritmos Distribuídos Professora: Lúcia Drummond

Instituto de Computação - UFF Eleição de Líder Um Líder é um membro em N que todos reconhecem como diferente para executar alguma tarefa especial. Assumimos que um nó conhece: Sua própria identificação, e; Que todas as identificações são diferentes e podem ser ordenadas. Instituto de Computação - UFF

Eleição de Líder Versão síncrona em um grafo completo: No pulso s = 0, todo candidato envia sua identificação para todos os outros nós. No pulso s = 1, todo nó recebeu a identificação dos outros candidatos e pode decidir sobre o líder. Complexidade de mensagens: O(n2) Complexidade de tempo global: O(1) Instituto de Computação - UFF

Instituto de Computação - UFF Eleição de Líder A fim de reduzir a complexidade de mensagens para O(n log n) mensagens: Um candidato não envia sua identificação para todos os vizinhos no mesmo pulso. Primeiro se comunica com 1 dos vizinhos, depois com 2 de seus vizinhos, 4 e assim por diante. Assim, o k-ésimo conjunto de vizinhos que um nó envia tem 2k-1 vizinhos. Logo, são necessários log n conjuntos para abranger todos os vizinhos. Instituto de Computação - UFF

Instituto de Computação - UFF Eleição de Líder Quando um candidato envia uma mensagem para um vizinho: Ele está tentando capturar esse vizinho, tornando-se seu dono, de forma que um candidato que tenha capturado todos os nós no final seja eleito o líder. Instituto de Computação - UFF

Instituto de Computação - UFF Eleição de Líder Um candidato tem sucesso na captura de um nó, se: Sua identificação for Maior do que a dos outros candidatos que estão tentando capturar o mesmo nó no mesmo pulso; Maior do que a identificação do atual “dono” do nó. Todos os nós somente executam o pulso s=0 da computação síncrona ao receber um startup de todos os vizinhos. Instituto de Computação - UFF

Instituto de Computação - UFF Eleição de Líder Um nó só prossegue na tentativa de capturar o próximo nó: Se ele obtiver sucesso na atual captura. Caso contrário, ele desiste. Todos os nós somente executam o pulso s=0 da computação síncrona ao receber um startup de todos os vizinhos. Instituto de Computação - UFF

Instituto de Computação - UFF Eleição de Líder Versão Assíncrona: As identificações não são mais usadas como base de comparação, mas apenas para desempate. As comparações são baseadas em nível (level) de cada candidato, que representa o número de nós que um candidato conseguiu capturar. Instituto de Computação - UFF

Instituto de Computação - UFF Eleição de Líder Para evitar que dois candidatos consigam capturar o mesmo nó, um candidato só considera um nó como capturado quando o “dono” do nó desiste. Para isso é enviada uma mensagem de check e eliminate para o atual “dono” para eliminá-lo. Instituto de Computação - UFF

Instituto de Computação - UFF Eleição de Líder Um nó ao receber uma mensagem de captura (capture), responde com ack ou nack, dependendo se a captura teve sucesso ou não. Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C Variáveis candidatei = false; triedi j = false para todo nj; owner_idi = nil; leveli = 0; ownsi = 0; p_owner_idi = nil; p_owned_idi = nil; Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C Input: msgi = nil; Ação if ni N0: candidatei := true; owner_idi := idi; Seja nj um nó vizinho de ni: triedi j := true; Envie capture(leveli,idi) para nj; Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C Input: msgi = capture(levelj,idj) tal que origem(msgi) = nj; Ação: if p_owner_idi = idj then begin owner_idi := idj; Envie ack para nj; end Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C else if (leveli,p_owner_idi) < (levelj,idj) then begin leveli := levelj; if candidatei then candidatei := false; p_owner_idi := idj; Envie ack para nj; end * Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C else begin p_owner_idi := idj; Seja nk tal que owner_idi := idk; Envie check(k) para nj; end Envie nack para nj; * Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C Input: msgi = nack; Ação: if candidatei then candidatei := false; msgi = check(j); Envie eliminate(leveli,idi) para nj; Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C Input: msgi = eliminate(levelj,idj) tal que origem(msgi) = nj; Ação: If not candidatei then Envie eliminated para nj; else if (leveli,idi) < (levelj,idj) then begin candidatei := false; end else Envie nack para nj; Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C Input: msgi = eliminated Ação: If candidatei then begin Seja nj tal que p_owned_idi = idj: Envie capture(leveli,idi) para nj; end Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C Input: msgi = ack Ação: ownsi := ownsi + 1; leveli := ; Seja S tal que triedi j = false para todo nj S; Instituto de Computação - UFF

Algoritmo A_Elect_Leader_C If S ≠ {} then begin Seja nj um nó em S; triedi j := true; p_owned_idi = idj: Envie capture(leveli,idi) para nj; end Instituto de Computação - UFF

Instituto de Computação - UFF Teoremas Teorema 5.1: Para , o número máximo de candi-datos restantes no pulso s=2k no algoritmo S_Elect_Leader_C é . Prova: No pulso s=2k, por (5.3) um candidato deve ter capturado 2k-1 nós para ainda ser um candidato, (isto é, deve ter recebido 2k-1 acks). A afirmação segue então do fato que, por (5.2), quaisquer dos nós de n só podem ser capturados por no máximo um candidato em qualquer pulso. Instituto de Computação - UFF

Instituto de Computação - UFF Teoremas Corolário 5.2: O algoritmo S_Elect_Leader_C envia no máximo mensagens de captura e no máximo acks. Prova: O número inicial de candidatos é no máximo n, no pulso s=0 no máximo n mensagens de captura são enviadas. Para , no pulso s=2k um candi-dato envia no máximo 2k mensagens de captura. Instituto de Computação - UFF

Instituto de Computação - UFF Teoremas Prova (cont): Pelo teorema 5.1, o número de candidatos neste pulso é menor que , então o número total de capturas é no máximo: Por (5.2), um nó envia um ack no máximo por um pulso ímpar, de forma que o número total de acks não é maior que . Instituto de Computação - UFF

Instituto de Computação - UFF Teoremas Teorema 5.3: Para , o número máximo de candi-datos no nível k em qualquer estado global de uma execução do Algoritmo A_Elect_Leader_C é . Prova: Pela definição de nível, um candidato ni no nível k deve ter capturado pelo menos 2k-1 nós . O teorema segue então do fato que nenhum dois candidatos pode ser os donos de um mesmo nó em qualquer estado global. Instituto de Computação - UFF

Instituto de Computação - UFF Teoremas Corolário 5.4: O Algoritmo A_Elect_Leader_C envolve no máximo tentativas de capturas por candidato. Prova: Antes de alcançar o nível 1, um candidato tenta capturar exatamente um nó. Para , enquanto no nível k um can-didato tenta capturar 2k nós. Instituto de Computação - UFF

Instituto de Computação - UFF Teoremas Prova (cont): Através do Teorema 5.3, o número total de capturas do algoritmo é: Cada captura de nós por um candidato envolve no máximo seis mensagens (captura, confere, elimina, eliminou, captura e ack.) Instituto de Computação - UFF