Algoritmos Distribuídos

Slides:



Advertisements
Apresentações semelhantes
Programação de jogos MMO com DALua
Advertisements

Semáforos Eduardo Nicola F. Zagari
DIAGRAMA DE COLABORAÇÃO
Sistemas Paralelos e Distribuídos
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Roteamento IP.
Proposta de Projeto de Pesquisa Edmar P. Araújo Neto.
Profa. Ana Cristina Benso da Silva Disciplina: Redes de Computadores
Roteamento Parte #1 Profa. Ana Cristina Benso da Silva Disciplina: Redes de Computadores.
Redes de Computadores e Sistemas Distribuídos
DESIGN PATTERNS FOR DECENTRALISED COORDINATION IN SELF- ORGANISING EMERGENT SYSTEMS Tom De Wolf e Tom Holvoet.
Algoritmos Distribuídos Professora: Lúcia Drummond
Instituto de Computação - UFF Detecção de Terminação Algoritmos Distribuídos Professora: Lúcia Drummond.
Capítulo 4: Estado Global
Algoritmos Distribuídos Professora: Lúcia Drummond
Algoritmos Distribuídos Professora: Lúcia Drummond
Introdução Redes LAN - abrangência: edifícios e campos.
C P S E Centro de Pesquisa em Software Embarcado Investigação e Análise de Algoritmos para Consumo Eficiente de Energia a nível de Software para Utilização.
Métodos de Classificação por Seleção: HeapSort
Modelos Fundamentais -> Interação Falhas Segurança.
Sincronização de Processos (2)
ESTRUTURA DE COMUNICAÇÃO DE DADOS
SISTEMAS DISTRIBUÍDOS Princípios e Paradigmas 2ª Edição ANDREW S
Comutação Comutação ou chaveamento em uma rede de comunicação refere-se a alocação de recursos da rede (meios de transmissão e equipamentos) para a envio.
Robson Godoi / Sandra Siebra
DALua Framework de Algoritmos Distribuídos.
Redes de computadores Prof. António dos Anjos
Kraemer CCNA Exploration (Protocolos e Conceitos de Roteamento) Protocolos de Roteamento link-state.
Implementation and Performance Evaluation of Network Coding for Cooperative Mobile Devices Morten V. Pedersen, Frank H.P. Fitzek and Torben Larsen Implementação.
Multicast em redes Ad-Hoc
Unidade 3 Controle de Concorrência
LISTAS DUPLAMENTE ENCADEADAS
Carlos Eduardo Calvente Ribeiro Universidade Federal do Rio de Janeiro
HYMAD: Hybrid DTN-MANET routing for dense and highly dynamic wireless networks Autores: John Whitbeck e Vania Conan Apresentação: Glauco Fiorott Amorim.
Sistemas Distribuídos
E NHANCED S ELF -O RGANIZING I NCREMENTAL N EURAL N ETWORK FOR O NLINE U NSUPERVISED L EARNING Cesar Lima José Francisco Maíra Nascimento.
Planejamento e Solucionamento de Problemas Distribuídos
Equipamentos de Redes Aula 3
Redes de computadores Prof. António dos Anjos
Sistemas Distribuídos
Gerenciamento de Redes Utilizando Agentes Móveis
Protocolos de Recuperação
Universidade da Beira Interior Processadores Fail-Stop Trabalho realizado por: Rui ferreira Nº Eng. Informática.
Roteadores Roteadores são pontes que operam na camada de Rede do modelo OSI. Tomando como base o protocolo mais usado hoje em dia, o TCP/IP, o protocolo.
Sistemas Operacionais
Monografia Eriko Werbet Unifor-CNPq
INTRODUÇÃO A REDES DE COMPUTADORES ACADÊMICOS CARLOS EDUARDO ARAKAKI CARLOS EDUARDO ARAKAKI RODRIGO MARCIANO POUSO RODRIGO MARCIANO POUSOPROFESSOR RONALDO.
1 A Hierarchical Energy-Efficient Framework for Data Aggregation in Wireless Sensor Networks Yuanzhu Peter Chen, Arthur L. Liestman, Member, IEEE, and.
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação Programa de Pós-Graduação.
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Redes Avançadas Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Agentes Inteligentes e Sistemas Multi- agente (UD5) Construção de Sociedades de Agentes IST- 2004/2005.
Otimizações de um Protocolo para Multicast Atômico em Computação Móvel Aluno: Mateus de Freitas Ribeiro Orientador: Markus Endler
Definição um sistema de BD distribuído consistem em uma rede de várias ocorrências de bases de dados interligadas. característica principal para o usuário,
Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 1 CMP157 – Programação.
Algoritmos Distribuídos MANGO Mobile Ad Hoc Networks for Group Operations.
ZigBee Tiago Souza Azevedo CPE Roteamento em Redes de Computadores
Energy-Efficient Communication Protocol for Wireless Microsensor Networks (LEACH) Wendi Heinzelman, Anantha Chandraskasan e Hari Balakrishnan Massachucets.
Princípios de Redes e Topologia de Redes
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Optimized Link State Routing Universidade Federal do Rio de Janeiro COPPE - UFRJ Julio Heitor Silva Nóbrega Agosto 2006.
Suburban Ad-Hoc Network (SAHN) Felipe Ortigão Sampaio Buarque Schiller Universidade Federal do Rio de Janeiro Grupo de Teleinformática e Automação (GTA)
Concorrência em LF1 Paradigmas de Linguagens de Programação 20 de junho de 2006 Aline Timóteo Carlos Rodrigues Flávia Falcão Tiago Rolim.
Multilayer Failure Detection Method for Network Services Based on Distributed Components Eisuke Hirota, Kazuhiko Kinoshita, Hideki Tode, Koso Murakami,
Energy-Efficient Communication Protocol for Wireless Microsensor Networks (LEACH) Wendi Heinzelman, Anantha Chandraskasan e Hari Balakrishnan Massachucets.
SrcRR Rafael Lopes Bezerra Universidade Federal do Rio de Janeiro COPPE - UFRJ CPE Roteamento em Redes de Computadores.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Transmissão de Dados O Modelo de Referência TCP/IP A Camada de Rede
COMUNICAÇÃO ENTRE OS MÓDULOS PROCESSADORES
AJAX – Adaptive Join Algorithm for Extreme Restrictions SBBD 2007 Eriko Werbet Angelo Brayner Universidade de Fortaleza Instituto Atlântico.
Transcrição da apresentação:

Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc

Tópicos Redes Ad Hoc Roteamento em redes Ad Hoc Clusters em redes Ad Hoc Algoritmos DCA – Distributed Clustering Algorithm DMAC – Distributed and Mobility Adaptive Clustering

Redes Ad Hoc Maior mobilidade Capacidade de auto-organização Rapidamente estabelecida Independente de estrutura física

Redes Ad Hoc Usos militares e civis Suporte a computação colaborativa em ambientes temporários ou móveis Sistemas de comando e controle distribuídos Monitoramento móvel de pacientes para tratamento crítico

Redes Ad Hoc Estrutura sem fio ubíqua capaz de intercomunicar milhares de dispositivos Comunicação em campo de batalha Auxílio a socorre em desastres naturais, onde a estrutura está destruída ou é ausente, como terremotos, maremotos, avalanches, etc

Clusters em redes Ad hoc Utilizado desde o surgimento das redes Uso inicial para roteamento Alocação de recursos, largura de banda e canais, para tráfego multimídia em redes ad hoc Tornar comunicação mais eficiente e gastar menos energia

Roteamento em redes Ad Hoc Quatro categorias: Roteamento proativo Flooding Roteamento reativo Roteamento dinâmico através de clusters

Roteamento - Proativo Periodicamente distribui informações de roteamento através da rede Rotas pré computadas para todos os destinos Boa qualidade para topologia estáticas Não escalável para ambientes dinâmicos

Roteamento – Flooding Não requer conhecimento da topologia Pacotes enviados por broadcast para todos os destinos com a expectativa de eventualmente atingir o destino desejado Número excessivo de mensagens, o que significa um grande consumo de energia para roteamento

Roteamento – Reativo Terminais não armazenam informação sobre rotas Quando um nó quer transmitir, ele manda um broadcast para requisição de rota Quando chegar ao destinatário, ele retorna com as informações da rota utilizada Tempo necessário para saber a rota é muito grande e qualidade da rota pode ser ruim

Roteamento – Dinâmico baseado em clusters Rede é organizada em partições (clusters) A composição dos clusters muda com o tempo devido a mobilidade dos nós Roteamento interno do cluster é independente do externo Precisa de algoritmo de clusterização eficiente, caso contrário manutenção do cluster vai demandar muito esforço

Clusters em redes ad hoc Clusterização é realizada em duas fases, set up e manutenção Escolha do clusterhead é comparável à escolha de um coordenador em um algoritmo de eleição A escolha do coordenador é baseada em um “peso”, para que seja escolhido o nó mais apto para a tarefa Cada nó tem um ID único na rede

Propriedades dos clusters Cada nó não coordenador terá pelo menos um clusterhead vizinho O nó vai se juntar ao melhor clusterhead na sua vizinhança Não deverá haver dois ou mais coordenadores vizinhos

Exemplo de clusterização

DCA – Distributed Clustering Algorithm Cada nó tem consciência de seu ID, seu peso e os IDs e pesos dos seus vizinhos Toda mensagem enviada é recebida por todos os vizinhos em tempo finito Assume que a topologia da rede não muda durante a execução do set up

DCA – Distributed Clustering Algorithm São utilizados dois tipos de mensagens CH(v) – utilizado por um nó v para indicar aos seus vizinhos que ele será um clusterhead JOIN(v, u) – o nó v comunica aos seus vizinhos que ele será parte do cluster no qual o coordenador é o nó u A idéia do algoritmo é que um nó decidirá a sua função quando todos os nós de maior peso ao seu redor já tiverem decidido Ao iniciar a execução, apenas os que tiverem o maior peso enviam CH(v)

DCA – Distributed Clustering Algorithm On receiving CH(u) Checa se já recebeu JOIN(z, x) de todos os vizinhos z tal que W(z) > W(u). Nesse caso o nó se junta a v e o algoritmo pára Se existir z tal que W(z) > W(u), o nó guarda a mensagem e continua aguardando

DCA – Distributed Clustering Algorithm if allJoins then clusterhead = true boolean joined = true for y in neighbors do if y.w < weight and joins[y] != null then joined = false break end if joined then exit else send CH(self) node chMsg = null for z in neighbors and z.w > weight do if chMsg == null or z.w > chMsg.w then chMsg = z send JOIN(self, chMsg) on receive JOIN(u, t): joins[u] = t if ch then if self == t then for z in neighbors do if z.w < weight and joins[z] != null then exit end boolean allJoins = true if z.w > weight and joins[z] == null then allJoins = false break

DCA – Distributed Clustering Algorithm Funciona melhor em ambientes pouco móveis, quase estáticos Reorganização realizada periodicamente A manutenção é feita através da reordenação dos clusters Assume estabilidade dos nós e da comunicação na rede enquanto está executando

DMAC – Distributed and Mobility Adaptive Clustering Similar ao algoritmo do convite, mas cada nó age individualmente Não assume estabilidade na construção do cluster Nós reagem a mensagens e a falha de comunicação com outros nós e ao surgimento de um nó vizinho Uma mensagem enviada por um nó é recebida por todos os seus vizinhos em tempo finito

DMAC – Distributed and Mobility Adaptive Clustering Cada nó conhece o seu ID, seu peso, sua função e o ID, peso e função de todos os seus vizinhos Se um nó não escolheu sua função, ele e normal (não coordenador) São utilizados dois tipos de mensagens CH(v) – utilizado por um nó v para indicar aos seus vizinhos que ele será um clusterhead JOIN(v, u) – o nó v comunica aos seus vizinhos que ele será parte do cluster no qual o coordenador é o nó u

DMAC – Distributed and Mobility Adaptive Clustering Cluster(v) indica os nós pertencentes ao cluster cujo clusterhead e v Clusterhead indica o coordenador de um nó A variável Ch(v) diz se v enviou uma mensagem CH Os nós são informados da presença ou falha de um link por um serviço de mais baixo nível, que disparará o evento tratador As variáveis Clusterhead, Cluster(-) e Ch(-) são iniciadas com valor nil, false e vazio

DMAC – Distributed and Mobility Adaptive Clustering procedure Init: begin if {z Є neighbor(v) | Wz > Wv and Ch (z)} != { } then x = max Wz>Wv {z: Ch(z)} send JOIN(v, x) Clusterhead = x else send CH(v) Ch(v) = true Clusterhead = v Cluster(v) = {v} end

DMAC – Distributed and Mobility Adaptive Clustering procedure Link failure (u): begin if Ch (v) and (u Є Cluster (v)) then Cluster (v) = Cluster (v) - {u} else if Clusterhead = u then if {z Є neighbor(v) | Wz > Wv and Ch(z)} != {} then x = max Wz > Wv {z | Ch(z)} send JOIN(v, x) Clusterhead = x else send CH(V) Ch(v) = true Clusterhead = v Cluster(v) = {v} end

DMAC – Distributed and Mobility Adaptive Clustering procedure New link (u): begin if Ch (u) then if (Wu > WClusterhead ) then send JOIN(v, u) Clusterhead = u if Ch(v) then Ch(v) = false end

DMAC – Distributed and Mobility Adaptive Clustering On receiving Ch(u): begin if (Wu > WClusterhead ) then send JOIN(v, u) Clusterhead = u if Ch(v) then Ch(v) = false end

DMAC – Distributed and Mobility Adaptive Clustering On receiving JOIN(u, z): begin if Ch(v) then if z == v then Cluster(v) = Cluster(v) + {u} else if u Є Cluster(v) then Cluster(v) = Cluster(v) - {u} end else if Clusterhead = u then if {z Є neighbor(v) | Wz > Wv and Ch(z)} != {} then x = max Wz > Wv {z | Ch(z)} send JOIN(v, x) Clusterhead = x else send Ch(v) Ch(v) = true Clusterhead = v Cluster(v) = {v}

DMAC – Distributed and Mobility Adaptive Clustering Algoritmo é tolerante a falhas de comunicação em qualquer momento da execução Adequado a redes ad hoc reais, onde não se pode assumir estabilidade da rede em nenhum momento Menos eficiente que o DCA quando a rede é pouco móvel e as falhar de link são menos constantes

Conclusão Os dois algoritmos apresentados são razoavelmente eficientes O DCA tem uma complexidade máxima de O(n) e é indicado para redes com pouca mobilidade, executando uma reclusterização periodicamente O DMAC é mais complexo que o DCA, mas é totalmente adaptativo a mudanças na topologia