Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.
Transcript of Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.
![Page 1: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/1.jpg)
Algoritmos Distribuídos
Algoritmos para clusterização em redes móveis ad hoc
![Page 2: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/2.jpg)
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
![Page 3: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/3.jpg)
Redes Ad Hoc Maior mobilidade
Capacidade de auto-organização
Rapidamente estabelecida
Independente de estrutura física
![Page 4: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/4.jpg)
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
![Page 5: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/5.jpg)
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
![Page 6: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/6.jpg)
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
![Page 7: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/7.jpg)
Roteamento em redes Ad Hoc Quatro categorias:
Roteamento proativo Flooding Roteamento reativo Roteamento dinâmico através de
clusters
![Page 8: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/8.jpg)
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
![Page 9: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/9.jpg)
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
![Page 10: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/10.jpg)
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
![Page 11: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/11.jpg)
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
![Page 12: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/12.jpg)
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
![Page 13: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/13.jpg)
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
![Page 14: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/14.jpg)
Exemplo de clusterização
![Page 15: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/15.jpg)
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
![Page 16: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/16.jpg)
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)
![Page 17: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/17.jpg)
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
![Page 18: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/18.jpg)
DCA – Distributed Clustering Algorithm
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 end end end boolean allJoins = true for z in neighbors do if z.w > weight and joins[z] == null then allJoins = false break end end
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 end if joined then exit else send CH(self) end else node chMsg = null for z in neighbors and z.w > weight do if chMsg == null or z.w > chMsg.w then chMsg = z end endsend JOIN(self, chMsg) endend
![Page 19: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/19.jpg)
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
![Page 20: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/20.jpg)
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
![Page 21: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/21.jpg)
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
![Page 22: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/22.jpg)
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
![Page 23: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/23.jpg)
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} endend
![Page 24: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/24.jpg)
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 endend
![Page 25: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/25.jpg)
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 end endend
![Page 26: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/26.jpg)
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 endend
![Page 27: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/27.jpg)
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} end endend
![Page 28: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/28.jpg)
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
![Page 29: Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc0f9497959413d8b7ba3/html5/thumbnails/29.jpg)
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