Difusão e Coleta em uma rede. Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 1
|
|
- Arthur Ramires da Costa
- 6 Há anos
- Visualizações:
Transcrição
1 Algoritmos de Probe/Echo Difusão e Coleta em uma rede Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 1
2 Autor Autor 1ª versão: Ricardo Castro Mattia Revisões: C. Geyer Local Instituto de Informática UFRGS disciplina : Programação Distribuída e Paralela Versão: v23.1 outubro de 2012 Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 2
3 Súmula Súmula difusão difusão em um sistema distribuído (rede) conceitos spanning tree conjunto de vizinhos árvore grafo Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 3
4 Súmula Súmula coleta conforme Andrews modelo de processos topologia árvore topologia grafo otimização Cássio Vogel Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 4
5 Bibliografia Bibliografia [AND 91] ANDREWS, G.R. Concurrent Programming - Principles and Practice. The Benjamim/Cummings, Redwood City, Cap 7, seção 7.6 [AND 00] ANDREWS, G. R. Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley; 1st edition, p. Cap. 9, seção 9.4 [LYN 96] LYNCH, N. A. Distributed Algorithms. Morgan Kaufmann Publishers, Inc., p. Cap. 5, seções sobre Spanning Tree [TEL 2000] Tel, G. Introduction to Distributed Algorithms. Cap. 6 Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 5
6 Conceito de algoritmo probe/echo É executado sobre uma estrutura de árvore ou grafo Grafo Características muitos problemas distribuídos podem ser tratados sobre grafos Nós: um processo em um computador Arcos Indicam possibilidades de comunicação entre 2 nós, ponto a ponto Por exemplo, um link físico, um canal de comunicação,... Direcionados: somente em um sentido Não direcionados (mais comuns): em ambos os sentidos Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 6
7 Características Conceito de algoritmo probe/echo Probe : Echo: mensagem enviada por um nó ao seu vizinho no grafo resposta do vizinho (filho) ao nó de quem recebeu o probe (pai) Nem todos os autores usam esses termos (probe e echo) Alguns usam o termo ack para as respostas Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 7
8 Características Características processamento concorrente: (seqüência de) probes são enviados assíncronamente a todos os vizinhos vizinhos, após receberem probe, trabalham de forma concorrente entre si O grafo é percorrido de forma concorrente Alguns ramos (partes) do grafo são percorridos mais rapidamente que outros Depende da banda e latência estáticas e do uso dinâmico da rede Banda: capacidade em bits por tempo (seg, ms,...) da rede Latência: custo fixo para o envio de uma mensagem Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 8
9 Características Características analogias pesquisa em profundidade (DFS: depth-first search) seqüencial sobre árvore ou grafo -> difusão por probe coleta de informações em grafo ou árvore -> algoritmo de coleta com probe/echo aplicação (exemplo): determinação de topologia Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 9
10 Características Características Muitos outros algoritmos da mesma família ou relacionados Geração (distribuída) de Spanning Tree (ST) Qualquer ST Ótima ST segundo certo critério, por exemplo, menor caminho entre a raiz e qualquer nó Somente com pais Com pais e filhos Eleição de líder com ST Fontes: [LYNCH 1996], [TEL 2000] Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 10
11 Difusão em uma Rede Difusão nó i quer enviar uma informação a todos os nós de uma rede A) usando uma spanning tree nó i conhece toda a topologia B) usando conjunto de vizinhos (conceito de grafo) nó i conhece apenas seus vizinhos por exemplo, nó 1 conhece nós 2 e 3 (próximo slide) Mas não conhece nós 4, 5 e 6 B.1) grafo é uma árvore B.2) grafo não é uma árvore: possui ciclos Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 11
12 Difusão em uma Rede Exemplo de Grafo i Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 12
13 Difusão com spanning tree spanning tree árvore construída sobre um grafo com um nó é escolhido como raiz todos os nós do grafo estão na árvore os eventuais ciclos são eliminados alguns arcos são eliminados Difusão com spanning tree existem algoritmos seqüenciais (ou locais) para sua construção ver livros sobre algoritmos para grafos requisito: nó deve conhecer o grafo também pode ser construída por um algoritmo distribuído ver [Lynch 1996] conhecimento do grafo não é necessário Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 13
14 Difusão com spanning tree Difusão com spanning tree algoritmo: nó i difunde uma informação (D) construir spanning tree (ST) onde i é a raiz com algoritmo seqüencial (ou tendo uma ST) nó i envia mensagem com D e ST aos seus filhos na ST nós receptores analisam ST, descobrem seus filhos e enviam a mensagem aos filhos alguns nós, as folhas, não tendo filhos, provocam o fim do algoritmo sendo a ST uma árvore, não há ciclos -> um nó só recebe a mensagem uma única vez Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 14
15 Difusão com spanning tree (cont.) links eliminados: E ou Difusão com spanning tree i E E E Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 15
16 Difusão com spanning tree Difusão com spanning tree (cont.) Conceito de canal em SR Compartilhado automaticamente por todos os processos código: channel mens[1:n] (tree T, info D); // N canais do mesmo tipo // tree and info: tipos predefinidos process iniciador:: int i; info D; // informação a difundir; input graph G; // grafo topologia; input tree T; // spanning tree cria_spanning_tree(g, T); send mens[i] (T, D); end process; // dado grafo G, cria SP (T) // envia T e D a nó i Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 16
17 Difusão com spanning tree Difusão com spanning tree (cont.) código (cont.) : process nodos[k: 1..N]:: // N processos do mesmo tipo info D; // informação recebida tree T; // spanning tree recebida receive mens[k] (T, D); for (i= 1; i <= N; i++) { if ( nó i é meu filho em T ) send mens[i] (T, D); }; end process; // recebe mens. com T e D // se nó i é filho, difunde a i Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 17
18 Difusão com spanning tree Considerações sobre solução com ST ST é necessária -> algoritmo para criá-la Se local (não distribuído): necessita conhecimento do grafo Mensagens são sobrecarregadas com a ST (estrutura) Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 18
19 Difusão sobre árvore Difusão sobre árvore a topologia da rede é uma árvore Solução informal nó i difunde uma informação (D) nó i envia mensagem com D a todos vizinhos (filhos) cada nó k, k não = i Propriedades recebe mensagem de algum nó qualquer (pai) envia mensagem a seus outros vizinhos (filhos) se folha: nada envia Um nó só recebe a mensagem uma única vez Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 19
20 Difusão sobre árvore nó i difunde uma informação (D) (cont.) Variação: algoritmo simétrico ([Andrews 2000]) Difusão sobre árvore um processo iniciador, no nó i, envia ao processo geral nó i processo nó i tem comportamento idêntico ao de todos os outros (k) Mas há dois tipos de processo: iniciador e comum Abordagens para simetria Códigos iguais [LYNCH1996] [TEL2000] Nó iniciador tem um estado inicial distinto Dois tipos de nós diferenciados por um variável Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 20
21 Difusão sobre árvore Difusão sobre árvore(cont.): código: // N canais do mesmo tipo // info: defined type channel mens[1:n] (int nodo, info D); process iniciador:: // ID distinto: 0 int i; info D; // informação a difundir; input send mens[i] (0, D); end process; // envia D a nó i Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 21
22 Difusão sobre árvore process nodos[k: 1..N]:: int p; info D; // N processos do mesmo tipo // ID do emissor // informação recebida receive mens[k] (p, D); // recebe mensagem com D for (i= 1; i <= N; i++) { // se nó i é vizinho e não é o emissor if (( nó i é meu vizinho ) & (i!= p)) // difunde a i send mens[i] (k, D); }; // end for end process; Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 22
23 Difusão sobre Grafo Difusão sobre grafo problema da solução anterior executada sobre grafo mais de uma mensagem pode ser enviada a um mesmo nó se essas mensagens não forem recebidas e o programa continuar a execução, elas permanecerão nos respectivos canais poderão então ser lidas em uma etapa posterior da execução do programa pode ser simplesmente uma nova execução do algoritmo de difusão Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 23
24 Difusão sobre Grafo Difusão sobre grafo (cont.) problema da solução anterior sobre grafo (cont.) exemplo: mensagem C->D (ou B->D) não seria lida A B C D Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 24
25 Difusão sobre Grafo Difusão sobre grafo (cont.) base da solução receber todas as mensagens imediatamente (no algoritmo) idéia do algoritmo recebe uma mensagem de nó qualquer envia mensagem a todos os seus vizinhos, inclusive de quem recebeu recebe V - 1 mensagens de qualquer nó, onde V é o número de vizinhos Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 25
26 Difusão sobre Grafo código: channel mens[1:n] (info D); process iniciador:: int i; info D; send mens[i] (0, D) end process; // N canais do mesmo tipo; // info é user type // informação a difundir; input // envia D a nó i Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 26
27 Difusão sobre Grafo process nodos[k: 1..N]:: // N processos do mesmo tipo int V = número de vizinhos int p; // ID do emissor info D; // informação recebida receive mens[k] (D); // recebe mensagem com D for (i= 1; i <= N; i++) { if ( nó i é meu vizinho ) // se nó i é vizinho send mens[i] (D); // difunde a i }; end for for (i = 1; i <= V - 1; i++) { // recebe outras mensagens receive mens[k] (D) }; end process; Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 27
28 Análise Discussão Explique porque é necessário enviar uma mensagem ao nó pai (nó origem do 1º receive)? Dicas: Receive bloqueante Mensagens enviadas e não recebidas devem ser retiradas do canal A origem do 1º receive em cada nó é nãodeterminística no caso geral Loop do 3º passo tem um tamanho estático: # de vizinhos menos 1 Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 28
29 Análise Complexidade Métricas M: quantidade de mensagens T: quantidade de mensagens encadeadas Parâmetros N: quantidade de nós (processos,...) E: quantidade de arcos não direcionados (ou bi) Outros parâmetros (outros algoritmos) Em geral diam: diâmetro, ou maior menor distância entre 2 nós diam < N < E Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 29
30 Análise Complexidade Algoritmo com spanning tree base: estrutura em árvore quantidade de mensagens: N 1 tempo: altura da ST obs.: a altura da ST pode ser N (uma lista de nós) depende do algoritmo de geração da ST Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 30
31 Análise Complexidade Algoritmo com vizinhos (árvore ou grafo) base: dependente da topologia regra geral: 2 mensagens por link em geral, bem mais que na spanning tree quantidade de mensagens árvore: N 1 => (N) grafo completo: N (N - 1) obs.: arcos do grafo: N(N-1)/2 grafo qualquer: 2E Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 31
32 Complexidade Algoritmo com vizinhos (árvore ou grafo) Tempo T: N mensagens (encadeadas) obs.: considera-se o pior caso Análise Por exemplo, percorrer um anel bidirecional pode ser muito mais rápido por um lado que pelo outro [Lynch 1996] T: diam: (distância máxima) porque por exemplo percorrer todo o anel bidirecional por um lado não pode ser mais lento que percorrer metade (diam) do anel Há um limite no tempo de 1 (uma) mensagem; pode ser mais rápido mas não mais lento que limite Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 32
33 Análise Complexidade Banda tamanho das mensagens na spanning tree é maior: inclui a ST Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 33
34 Análise Limitações Ambos algoritmos não suportam falhas ( de nós e de links) Ambos algoritmos não suportam redes dinâmicas, por exemplo, com a inclusão de nós durante a difusão Ambos os algoritmos não suportam várias difusões simultâneas Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 34
35 Análise Limitações Algoritmos de difusão reais Na internet por exemplo Criam rotas com os melhores caminhos entre 2 nós Há vários critérios para o melhor caminho Por exemplo, menor seqüência de mensagens (menor caminho no grafo) O critério (medida) pode ser dependente do estado atual da rede Por exemplo, banda Deve ser constantemente medido e a rota refeita Esse processo tem custo adicional, inclusive em mensagens Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 35
36 Análise Resumo Algoritmo distribuído (AD) Grafo para AD Classe de ADs sobre grafos para difusão, coleta, STs,... Difusão Conceito Com ST Sobre árvore Sobre grafo qualquer Idéia geral sobre grafo Complexidade em M e em T Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 36
37 Exercícios Exercícios A) modele a difusão usando uma API para sockets TCP Java; Unix/C;... B) idem usando API sockets UDP C) analise o código do Andrews verificando se ele ficou realmente simétrico para cada nó com a inclusão do processo iniciador Dica: verifique a quantidade de vizinhos em certos nós D) desenhe o grafo de uma rede com 4 nós e as mensagens da difusão E) para um nó do caso acima, indique a ordem geral dos eventos de send e receive (combinados) Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 37
38 Exercícios Exercícios F) para o caso acima, indique se a ordem é constante ou se depende de parâmetros de cada execução como banda, latência e disponibilidade de cpu em cada link e nó G) projete um algoritmo melhor se o grafo for a) anel; b) estrela Compare a complexidade H) Calcule a complexidade em tempo Ações internas: custo zero 1 mensagem: custo 1 Várias mensagens encadeadas: somar as mensagens Complexidade: maior tempo a partir do nó iniciador Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 38
39 Exercícios Exercícios I) Desenvolva uma variação que permita várias difusões simultâneas J) Desenvolva uma variação que guarde (gere) uma ST distribuída Só com pai Com pai e filhos Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 39
40 Revisão da Difusão Revisão qual a função do algoritmo de difusão? qual o contexto, restrições,...? quais os dois principais passos de cada nó (processo)? qual e porque há um terceiro passo? porque deve-se reenviar a mensagem ao nó antecessor? qual a complexidade em termos de mensagens? qual a complexidade em termos de passos (mensagens sincronizadas, com dependências entre nós)? como a complexidade pode ser reduzida? Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 40
41 Algoritmos Distribuídos Coleta por Probe/Echo Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 41
42 Sumário Algoritmos para difusão e coleta coleta conforme Andrews modelo de processos topologia árvore topologia grafo otimização Cássio Vogel Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 42
43 Bibliografia Bibliografia [AND 91] ANDREWS, G.R. Concurrent Programming - Principles and Practice. The Benjamim/Cummings, Redwood City, Cap 7, seção 7.6 [AND 00] ANDREWS, G. R. Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley; 1 st edition, p. [LYN 96] LYNCH, N. A. Distributed Algorithms. Morgan Kaufmann Publishers, Inc., p. Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 43
44 Coleta Requisitos e características da coleta similar à difusão do Andrews um processo solicita a coleta recebe toda as informações parciais nós não podem comunicar-se com não vizinhos duas versões Andrews topologia em árvore: mais simples topologia em grafo tratamento dos vários caminhos evitar ciclos Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 44
45 Coleta Requisitos e características da coleta processo iniciador, único torna código do nó origem similar aos outros observar quantidade de vizinhos no código dois tipos de mensagens Probe: pedido de coleta Echo: resposta com a informação solicitada Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 45
46 Coleta em árvore Idéia geral da solução para árvore nó recebe 1o Probe, de qualquer vizinho vizinho torna-se pai nó repassa Probes a todos os vizinhos menos o pai nó recebe Echos de todos os vizinhos menos o pai acumula a informação recebida mais a sua nó envia ao pai a informação acumulada Subindo a árvore, a informação total chega ao nó iniciador Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 46
47 Coleta em árvore Código simétrico assimetria nó iniciador não recebe 1a mensagem código simétrico processo adicional, único, envia 1o probe ao nó iniciador nó iniciador envia resultado final ao processo adicional código do nó iniciador idêntico ao dos outros processo adicional = iniciador Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 47
48 Código simétrico grafo com processo iniciador Coleta em árvore Processo iniciador Probe Echo final Nó iniciador Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 48
49 Coleta em árvore Código simétrico exercício verifique a quantidade de nós vizinhos do nó iniciador X valores adequados para execução do código Processo iniciador Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 49
50 Coleta em árvore Caso exemplo coleta de topologia da rede nó iniciador terá ao final uma matriz n*n cada elemento indica: true: nó linha é vizinho de nó coluna false: não são vizinhos Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 50
51 Coleta em árvore Algoritmos Probe/Echo (cont.) determinação de topologia de árvore # índice do nó que inicia o algoritmo const fonte = i chan probe [1:n] (emissor : int) # topologia parcial chan echo [1:n] (localtop [1:n, 1:n] : bool) # topologia final chan echo_final (localtop [1:n, 1:n] : bool) # livro: erro: é um vetor Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 51
52 Coleta em árvore Algoritmos Probe/Echo (cont.) Nodo [p: 1..n]:: var links [1:n] : bool := vizinhos do nó p var localtop [1:n, 1:n] : bool := ([n * n] false) # inicializa topologia local com vizinhos localtop [p, 1:n] := links var novotop [1:n, 1:n] : bool var pai : int # nó de quem recebe probe Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 52
53 Algoritmos Probe/Echo (cont.) determinação de topologia de árvore (cont.) Coleta em árvore # recebe 1a mensagem receive probe [p] (pai) # envia a outros vizinhos menos pai fa q := 1 to n st links [q] and q <> pai -> # envio de probe aos filhos send probe [q] (p) af # recebe echos com topologia local # tantos receives quantos vizinhos menos pai fa q := 1 to n st links [q] and q <> pai -> receive echo [p] (novotop) localtop := localtop or novotop af Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 53
54 Coleta em árvore Algoritmos Probe/Echo (cont.) determinação de topologia de árvore (cont.) if p = fonte -> send echo_final [p] (localtop) # p é a raiz da árvore [] p <> fonte -> send echo [pai] (localtop) fi Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 54
55 Coleta em árvore Iniciador:: var top [1:n, 1:n] : bool send probe [fonte] (fonte) receive echo_final [fonte] (top) # inicia probe no nó local Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 55
56 Coleta em árvore Comentários adicionais sobre o código porque 2 canais, Probe e Echo? porque canal Echo_final? porque mensagem Probe contem ID do nó emissor? quem usa canais [i] para recepção? quem usa canais [i] para envio? Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 56
57 Coleta em árvore Comentários adicionais sobre o código porque 2 canais, Probe e Echo? tipo da mensagem é diferente porque canal Echo_final? para evitar que nó iniciador não receba mensagens dos filhos do nó raiz porque mensagem Probe contem ID do nó emissor? para que nós filhos não enviem mensagens ao pai quem usa canais [i] para recepção? nó i quem usa canais [i] para envio? vizinhos Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 57
58 Coleta para topologia em grafo grafo possui ciclos vizinhos poderão ser filhos de outro nó dois vizinhos se enviam probes Coleta em grafo código para árvore prevê recepção de um único probe Pai do 3 Pai do 4 probe probe probe 3 4 probe Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 58
59 Coleta em grafo Coleta para topologia em grafo solução Andrews probes adicionais são realmente recebidos e descartados questão a) nós esperam (v - 1) echos v = número de vizinhos solução a) probes são respondidos com echos vazios echo vazio deve ser consistente com operação de acumulação da informação coletada Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 59
60 Coleta em grafo Coleta para topologia em grafo solução Andrews idéia geral do código recebe 1o probe loop de sends de probes aos vizinhos menos pai loop de receives até (v - 1) echos se probe envia echo vazio se echo acumula envia echo final ao pai Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 60
61 Coleta em grafo Algoritmos Probe/Echo (cont.) determinação de topologia de grafo # índice do nó que inicia o algoritmo const fonte = i type tipo_mens = enum(probe, ECHO) # canais chan probe_echo [1:n] (tipo_mens, emissor : int, localtop[1:n, 1:n] : bool) # topologia final chan echo_final (localtop [1:n, 1:n] : bool) # livro: erro: é um vetor Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 61
62 Coleta em grafo Nodo [p: 1..n]:: var links [1:n] : bool := vizinhos do nó p var localtop [1:n, 1:n] : bool := ([n * n] false) # inicializa topologia local com vizinhos localtop [p, 1:n] := links # campo mensagem: topologia vizinho var novotop [1:n, 1:n] : bool # nó de quem recebe primeiro probe var primeiro : int # campo mensagem: tipo var tipo: tipo_mens var emissor: int # p/controle dos echoes var falta_echo: int := 0 # livro: erro: usa num_vizinhos - 1 # nó i não recebe um echo Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 62
63 Coleta em grafo Algoritmos Probe/Echo (cont.) determinação de topologia de grafo (cont.) receive probe_echo [p] (tipo, emissor, novotop) primeiro := emissor; fa q := 1 to n st links [q] and q <> primeiro -> # envio de probe aos filhos send probe_echo [q] (PROBE, p, ); falta_echo +:= 1 af Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 63
64 Coleta em grafo Algoritmos Probe/Echo (cont.) # recebe echos com topologia local ou probes # vazios do falta_echo > 0 -> receive probe_echo [p] (tipo, emissor, novotop) if tipo = PROBE -> send probe_echo [emissor] (ECHO, p, ) [] tipo = ECHO -> localtop := localtop or novotop falta_echo := falta_echo - 1 fi od Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 64
65 Coleta em grafo Algoritmos Probe/Echo (cont.) # p é a raiz da árvore if p = fonte -> send echo_final [p] (localtop) [] p <> fonte -> send probe_echo [primeiro] (ECHO, p, localtop) fi Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 65
66 Coleta em grafo Algoritmos Probe/Echo (cont.) determinação de topologia de grafo (cont.) Iniciador:: var top [1:n, 1:n] : bool send probe_echo [fonte] (PROBE, fonte, ) no nó local receive echo_final [fonte] (top) # inicia probe Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 66
67 Complexidade Quantidade de mensagens em grafo mensagens entre pai - filho 2: probe e echo mensagens entre 2 vizinhos 4: 2 probe e 2 echos relacionamentos pai-filho geram uma spanning tree todos os nós do grafo raiz é o nó iniciador sem ciclos quantidade de links = N - 1 dica para algoritmos geração dinâmica de spanning tree Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 67
68 Quantidade de mensagens em grafo Complexidade 1: pai do 2 2: filho de i 3: pai de 4 e 5 4: filho de 3 5: filho de 3 Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 68
69 Complexidade Quantidade de mensagens em grafo quantidade total de mensagens quantidade de pai-filho? igual quantidade de nós: constante para um grafo => quantidade total de mensagens fixa para um grafo 2N + 4LA LA: links adicionais do grafo suprimidos na spanning tree Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 69
70 Complexidade Quantidade de passos? Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 70
71 Outros algoritmos Outros algoritmos existem inúmeros outros algoritmos relacionados exemplos geração distribuída da spanning tree árvore para pesquisa em largura ótima fonte [LIN 96] Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 71
72 Coleta em grafo Questões código: porque um canal único para probe e echos? # mensagens? dados N e L (total de links do grafo) Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 72
73 Resumo Resumo Coleta Conceito Sobre árvore Sobre grafo qualquer Idéia geral sobre grafo Complexidade em M e em T Otimização Cássio Vogel Reduzir a # de mensagens Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 73
74 Exercícios Exercícios A) modele a difusão ou a coleta usando Java e sockets TCP em especial: gerência das conexões (IPs, portas, C/S,...), classes e APIs de send/receive B) idem com Java sockets UDP C) mostre todas as mensagens em um grafo com 4 nós D) no grafo acima (ou outro) mostre a ordem total de eventos send e receive em um nó E) explique se a ordem acima é determinística ou não F) explique porque a mensagem final é enviada em um canal próprio (código SR) G) analise o código para verificar se a inclusão do processo iniciador realmente tornou o código homogêneo em cada nó dicas: mensagens, contador de vizinhos Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 74
75 Exercícios Exercícios H) qual a vantagem do padrão de uso dos canais por processo, ou seja, envio no canal do destino e recepção no canal do receptor? caso fosse feita uma inversão, por exemplo, recepção no canal do emissor e envio pelo canal do emissor? I) código SR: explique se os receives da fase 3 ocorrem de forma ordenada pelo índice do vizinho (conforme loop) Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 75
76 Revisão da Difusão Revisão Algoritmos Distribuídos Uso de grafos: significados, tipos, propriedades,...? Complexidades usuais? Modelo de comunicação básico? Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 76
77 Revisão da Difusão Revisão da difusão qual a função do algoritmo de difusão? qual o contexto, restrições,...? o que é uma spanning tree? para que serve em difusão? como pode ser gerada? qual a idéia geral de difusão com ST gerada no nó iniciador? Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 77
78 Revisão Revisão da difusão difusão sobre árvore quais os dois principais passos de cada nó (processo)? qual a complexidade em termos de mensagens? qual a complexidade em termos de passos (mensagens sincronizadas, com dependências entre nós)? Código Andrews Canais: semântica? Propriedades, atributos? Viabilidade? Política de programação no uso de um elemento? Quem envia e quem recebe? Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 78
79 Revisão Revisão da difusão difusão sobre grafo quais os dois principais passos de cada nó (processo)? qual e porque há um terceiro passo? porque deve-se reenviar a mensagem ao nó antecessor? qual a complexidade em termos de mensagens? qual a complexidade em termos de passos (mensagens sincronizadas, com dependências entre nós)? como a complexidade pode ser reduzida? Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 79
80 Revisão Revisão da coleta idéia geral do algoritmo? Qual a relação com a difusão? solução para grafo árvore? idem para grafo não árvore? otimização Cassio Vogel? quantidade de mensagens? por aresta? por árvore? por grafo grafo? Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 80
81
Algoritmos Distribuídos. AD Algoritmos Básicos 1
Algoritmos Distribuídos Algoritmos Básicos Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br http://www.dcc.ufmg.br/~loureiro Este material está baseado no capítulo 4 do livro An Introduction to Distributed
Leia maisUm Algoritmo Probabilista de Recuperação de Erros para Difusão Fiável
Um Algoritmo Probabilista de Recuperação de Erros para Difusão Fiável Zhen Xiao, Kennneth P. Birman Apresentação: Henrique Moniz Sumário Introdução: multicast e o contexto do problema Tipos de multicast
Leia maisProgramação Distribuída e Paralela Apresentação
Programação Distribuída e Paralela Apresentação Programação Distribuída e Paralela (C. Geyer) Apresentação V4.2 S 1 Autoria Autoria Local Versão 4.2 Fev 2014 C. Geyer INF UFRGS Disciplinas INF01008 Programação
Leia maisRedes de Computadores. Prof. MSc André Y. Kusumoto
Redes de Computadores Prof. MSc André Y. Kusumoto andrekusumoto.unip@gmail.com Nível de Rede Comunicação entre dispositivos de uma mesma rede ocorrem de forma direta. Quando a origem e o destino estão
Leia maisAula 3 Redes de Interconexão
Aula 3 Redes de Interconexão As redes de interconexão são de fundamental importância nas arquiteturas paralelas Não importa o tipo da arquitetura, todo computador paralelo necessita de uma rede de interconexão
Leia maisInformática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1
Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1 Autor Autor Local Cláudio Geyer Instituto de Informática disciplinas: POD e PDP Versão v4 2010-1 Programação com Objetos Distribuídos
Leia maisSistemas Distribuídos e Redes de Sensores
Aula 6: Outros Padrões disseminação e roteamento abril de 2013 Padrões de programas distribuídos padrão cliente-servidor exibe assimetria intrínseca padrões envolvendo processos pares: código idêntico
Leia maisRoteamento e Roteadores. Conceitos Diversos
e Roteadores Conceitos Diversos Um roteador é um dispositivo que provê a comunicação entre duas ou mais LAN s, gerencia o tráfego de uma rede local e controla o acesso aos seus dados, de acordo com as
Leia maisModelagem e implementação de programas concorrentes
Modelagem e implementação de programas concorrentes Aula 3 DCC-UFMG 2010 Bibliograa G.R. Andrews. Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, 1999. M. Ben-Ari.
Leia maisConcorrência em Processos
Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação
Leia maisUniversidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada
Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada Disciplina: INF01151 - Sistemas Operacionais II N Turma: A, 2 Sem/2008 Prof. Cláudio Geyer CURSOS : Ciência da
Leia maisNome: Nº de aluno: 2ª Ficha de Avaliação Teórica Data Limite de Entrega 06/11/2015
Instituto Superior de Engenharia de Lisboa Área Departamental de Engenharia de Electrónica e Telecomunicações e de Computadores Redes de Internet (LEIC/LEETC/LEIM) Nome: Nº de aluno: 2ª Ficha de Avaliação
Leia mais# $ % & ' ( ) * ' ( ) *! " " Orientador +, -
#$ %&'()* '()*!"" Orientador +,- ."%&/0#12 3"/%'0)/))&/ )4506 7" %/0)/))&/ 8906 8)) :"'/0)/))&/ '% '); Um roteador recebe em alguma de suas interfaces um pacote vindo da rede local ou da rede externa.
Leia maisSistemas Distribuídos Aula 2
Sistemas Distribuídos Aula 2 Aula passada Logísitica Regras do jogo Definição e características Exemplos Aula de hoje Processos IPC Características Ex. sinais, pipes, sockets Objetivos Processos O que
Leia maisRedes de Computadores. Prof. André Y. Kusumoto
Redes de Computadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 2/16 Nível de Rede Comunicação entre dispositivos de uma mesma rede ocorrem de forma direta. Quando a origem e o destino estão
Leia maisCanais de Comunicação
Canais de Comunicação February 24, 2010 Sumário Comunicação via Mensagens Propriedades dum Canal de Comunicação Protocolos da Internet UDP TCP Aplicação Distribuída O que é? É uma aplicação que consiste
Leia maisRedes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 6 de Janeiro de o Teste A
Número: Nome: Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 6 de Janeiro de 2006 3 o Teste A Duração: 1 hora O teste é sem consulta O teste deve ser resolvido
Leia maisCurso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.
Sistemas Operacionais Professor Cláudio Geyer Instituto de - Sistemas Operacionais II (C. Geyer) Sincronização 1 Sistemas Operacionais Professor Cláudio Geyer Instituto de - Pg. 1 1 Tópicos ensinados no
Leia maisRemote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1
Remote Procedure Call Programação distribuída e paralela (C. Geyer) RPC 1 Autoria Autores C. Geyer Local II-UFRGS Versão V11.4 2014-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC
Leia maisVolmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45
Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Introdução a Grafos Muitos problemas de otimização podem ser analisados utilizando-se uma estrutura denominada grafo ou rede. Problemas
Leia maisModelos de Execução Bolsas de Tarefas
Modelos de Execução Bolsas de Tarefas November 5, 2009 Modelos SPMD/MPI todos os processos executam o mesmo código quantidade de trabalho determinada estaticamente: tarefas pre-definidas quantidade de
Leia maisProgramação Concorrente e Paralela. Noemi Rodriguez
2013 Objetivos princípios e técnicas de programação concorrente multiprocessadores memória compartilhada troca de mensagens obs: diferentes níveis de abstração! que princípios e técnicas são esses? notações
Leia maisSistemas Distribuídos Aula 19
Sistemas Distribuídos Aula 19 Aula passada Eleição de líder Algoritmo do valentão Algoritmo em anel Aula de hoje Redes sem fio Coordenando acesso Eleição em redes sem fio Redes sem Fio Dispositivos formando
Leia maisTeoria dos Grafos Aula 8
Teoria dos Grafos Aula 8 Aula passada Classe de funções e notação Propriedades da notação Funções usuais Aula de hoje Grafos direcionados Busca em grafos direcionados Ordenação topológica Tempo de execução
Leia maisProgramação com Sockets
Sistemas Distribuidos e Paralelos Programação com Sockets Datagramas Objetivo Desenvolver programas que permitam o envio de informação pela rede mediante sockets usando o protocolo UDP. Bibliografía Deitel,
Leia maisINF 1010 Estruturas de Dados Avançadas
INF Estruturas de Dados Avançadas Grafos //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso conhecido 7 Euler: pontes de Königsberg //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso
Leia maisgrafo nós vértices arcos arestas
GRAFOS E APLICAÇÕES 1. INTRODUÇÃO 1) Um grafo G = (V, E) consiste num conjunto de nós (ou vértices) V e num conjunto de arcos (ou arestas) E. Cada arco é representado por um par de nós. No seguinte exemplo,
Leia maisDepartamento de Engenharia de Produção UFPR 57
Departamento de Engenharia de Produção UFPR 57 Introdução a Grafos Muitos problemas de otimização podem ser analisados utilizando-se uma estrutura denominada grafo ou rede. Problemas em redes aparecem
Leia maisProtocolos de Roteamento link-state
CCNA Exploration (Protocolos e Conceitos de Roteamento) Protocolos de Roteamento link-state Cronograma Introdução Introdução ao algoritmo SPF Processo de roteamento link-state Criação de um B.D. link-state
Leia maisTopologias de Arquiteturas de Comunicação
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Topologias de Arquiteturas de Comunicação Alexandre Amory Edson Moreno 2 / 31 Índice 1. Introdução 2. Topologias 3. Exercícios 3 / 31 Topologias de Infra-estruturas
Leia maisProgramação distribuída e paralela (C. Geyer) RPC 1
Programação distribuída e paralela (C. Geyer) RPC 1 Autores C. Geyer Local II-UFRGS Versão v6 2008-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC 2 Bibliografia base original dos
Leia maisCapítulo II Modelos de Programação Distribuída
Capítulo II Modelos de Programação Distribuída Exemplos de linguagens com comunicação por mensagens, Ada OCCAM Linda From: M. Ben-Ari Principles of Concurrent and Distributed Programming Prentice Hall
Leia maisRedes de Computadores
Redes de Computadores Capítulo 4.7 Roteamento de broadcast e multicast Prof. Jó Ueyama Maio/2011 SSC0641-2011 1 Tipos de tráfego unicast: pacote enviado a um único destino. broadcast: pacote enviado a
Leia maisRoteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens
Roteiro... Conceitos de SD, vantagens e desvantagens Infra-estrutura de um SD Considerações de projeto Sistemas Distribuídos Aula 4 Karine de Pinho Peralta Modelos de Comunicação - comunicação entre processos
Leia maisROUTER. Alberto Felipe Friderichs Barros
ROUTER Alberto Felipe Friderichs Barros Router Um roteador é um dispositivo que provê a comunicação entre duas ou mais LAN s, gerencia o tráfego de uma rede local e controla o acesso aos seus dados, de
Leia maisUm sistema de difusão de informação a nível da aplicação
Um sistema de difusão de informação a nível da aplicação Projecto de Redes de Computadores I - 2008/2009 LEIC IST, Tagus Park 21 de Setembro de 2008 1. Sumário O projecto pretende desenvolver um sistema
Leia maisÁrvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral
SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas
Leia maisTWAMP. Descritivo técnico
TWAMP Descritivo técnico Introdução Neste documento serão apresentados: o protocolo Twamp e suas derivadas e Full. Descreveremos como se configura esta monitoração pela CLI, além do modo como se pode obter
Leia maisRCO2. Redes Locais: Interligação de LANs e STP
RCO2 Redes Locais: Interligação de LANs e STP 1 Pontes e switches: ativos de camada de enlace 2 Pontes e switches: aprendem que estações estão em cada porta Mas pode haver problemas! Considere a existência
Leia maisTOPOLOGIAS. A avaliação das topologias são baseadas em critérios que objetivam fornecer parâmetros de eficiência e praticidade.
TOPOLOGIAS Uma organização de processadores ou topologia ou modelo de organização de computadores pode ser representada por um grafo, onde os nós representam processadores (também conhecidos como elementos
Leia maisProblema do Produtor -Consumidor. Solução por semáforos
Problema do Produtor -Consumidor Solução por semáforos Autoria Autores alunos da disciplina SO II Local Instituto de Informática UFRGS Versão v7 agosto de 2008 por C. Geyer Visão geral do assunto...2 Conceito...3
Leia maisComunicação entre Processos
Comunicação entre Processos Prof. Dr. André Carvalho andre@icomp.ufam.edu.br Agenda n Comunicação entre Processos n Características dos mecanismos de comunicação Comunicação direta ou indireta, sincronismos,
Leia maisSeminário: André V. S. Cunha
Seminário: P³: A Practical Packet Pipeline Using Synchronous Transmissions for Wireless Sensor Networks (Manjunath Doddavenkatappa and Mun Choon Chan) André V. S. Cunha andre.cunha@dcc.ufmg.br Redes de
Leia maisCapítulo 7. A camada de aplicação
Capítulo 7 A camada de aplicação slide 1 slide 2 DNS Sistema de Nomes de Domínio O espaço de nomes DNS Registros de recursos de domínio Servidores de nome slide 3 O espaço de nomes DNS (1) Parte do espaço
Leia maisAULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado
AULA 11 PROJETO E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado Roteiro Motivação Conceitos básicos Representação Motivação Um grafo é uma abstração que permite
Leia maisPrimeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas)
Primeiro Trabalho de IA/SI: Buscas Entrega: 03/03/2019 (2 semanas) 18 de Fevereiro de 2019 Este trabalho é para ser submetido via Moodle. Será desenvolvido principalmente durante as aulas práticas, mas
Leia maisComunicação em tempo real
Comunicação em tempo real Introdução à comunicação em tempo real Um STR é um sistema computacional que deve reagir a estímulos (físicos ou lógicos) oriundos do ambiente dentro de intervalos de tempo impostos
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO Prof. Bosco 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação
Leia maisGrafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32
Grafos - Introdução Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/2015 1 / 32 Conceito Definição de Grafo Formalmente, um grafo é: Um conjunto de nós/vértices (V).
Leia maisRedes de Computadores III / /
Redes de Computadores III / / Aula : Algoritmo Vetor de Distância Professor: Eraldo Silveira e Silva eraldo@ifsc.edu.br 1 Objetivos da Aula Apresentar o algoritmo vetor de distâncias; Discutir algumas
Leia maisSumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1
Sumário Sobre as Autoras ix Introdução xi 1 Sub-rotinas 1 1.1 Variáveis Globais e Locais 1 1.2 Passagem de Parâmetro (por valor por referência) 1 2 Vetores e Matrizes 7 2.1 Vetores 7 2.2 Matrizes 8 2.2.1
Leia maisCapítulo 7. A camada de aplicação
Capítulo 7 A camada de aplicação slide 1 2011 Pearson Prentice Hall. Todos os direitos reservados. Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, Pearson Education-Prentice Hall,
Leia maisRedes de Computadores
Prof. Universidade Federal de Mato Grosso do Sul brivaldo@facom.ufms.br 26 de maio de 2017 Visão Geral 1 2 3 4 Protocolos e Serviços de Transporte comunicação lógica entre aplicativos executando em diferentes
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Apresentação da Disciplina Edirlei Soares de Lima Por que Estudar Algoritmos? Razões Práticas e Teóricas: Devemos conhecer um conjunto de algoritmos
Leia mais01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II
01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr. (ICMCUSP) 01
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (2.0) (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre
Leia maisGestão de Sistemas e Redes
Gestão de Sistemas e Redes Comutação em Redes Locais Paulo Coelho 005 Versão.0 Comutação em LANs Sumário Comutadores Store-and-Forward Comutação de circuitos vs Datagramas Bridges e segmentação de LANs
Leia maisRedes de Computadores RES 12502
Instituto Federal de Santa Catarina Redes de Computadores Redes de Computadores RES 12502 2014 2 Área de Telecomunicações slide 1 O material para essas apresentações foi retirado das apresentações disponibilizadas
Leia maisRedes de Computadores
Introdução Redes de Computadores Controle de fluxo ula. Carissimi -4-mars-8 Comunicação em um enlace envolve a coordenação entre dois dispositivos, o emissor e o receptor Serviço de entrega confiável ou
Leia maisÁrvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Leia maisVamos fazer um pequeno experimento
1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com
Leia maisCapítulo 7: Roteando Dinamicamente (Resumo)
Unisul Sistemas de Informação Redes de Computadores Capítulo 7: Roteando Dinamicamente (Resumo) Protocolos de roteamento Academia Local Cisco UNISUL Instrutora Ana Lúcia Rodrigues Wiggers Presentation_ID
Leia maisCapítulo 4 A camada de REDE
Capítulo 4 A camada de REDE slide 1 Introdução A camada de rede slide 2 Repasse e roteamento O papel da camada de rede é transportar pacotes de um hospedeiro remetente a um hospedeiro destinatário. Repasse.
Leia maisTeoria dos Grafos Aula 5
Teoria dos Grafos Aula Aula passada Explorando grafos Mecanismos genéricos Ideias sobre BFS, DFS Aula de hoje Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Busca em Grafos Problema
Leia maisSistemas Operacionais II
Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Comunicação e sincronização por troca de mensagens Aula 0 Em ambientes de memória distribuída a comunicação e a sincronização entre
Leia maisOrganização e comunicação em plataformas paralelas
Organização e comunicação em plataformas paralelas Processamento Paralelo Prof. Oberlan Romão Departamento de Computação e Eletrônica DCEL Centro Universitário Norte do Espírito Santo CEUNES Universidade
Leia maisSUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca
ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização
Leia maisAula 12 Protocolo de Roteamento EIGRP
Disciplina: Dispositivos de Rede I Professor: Jéferson Mendonça de Limas 4º Semestre Aula 12 Protocolo de Roteamento EIGRP 2014/1 09/06/14 1 2 de 34 Introdução Em 1985 a Cisco criou o IGRP em razão das
Leia maisProgramação Concorrente e Paralela
2010.2 Objetivos princípios e técnicas de programação paralela multiprocessadores memória compartilhada troca de mensagens arquiteturas alternativas multicomputadores troca de mensagens obs: Essa troca
Leia maisBusca Cega (Exaustiva) e Heurística. Busca Aula 2
Busca Cega (Exaustiva) e Heurística Busca Aula 2 Ao final desta aula a gente deve saber: Conhecer as várias estratégias de realizar Busca não-informada (Busca Cega) Determinar que estratégia se aplica
Leia maisINF 1010 Estruturas de Dados Avançadas
INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Aplicações de grafos grafo vértices arestas Cronograma tarefas restrições de preferência Malha viária interseções
Leia maisGrafos Parte 1. Aleardo Manacero Jr.
Grafos Parte 1 Aleardo Manacero Jr. Uma breve introdução Grafos são estruturas bastante versáteis para a representação de diversas formas de sistemas e/ou problemas Na realidade, árvores e listas podem
Leia maisUniversidade Federal de Alfenas
Universidade Federal de Alfenas Algoritmos em Grafos Aula 2 Caminho Mínimo: Algoritmo de Bellman-Ford Prof. Humberto César Brandão de Oliveira humberto@bcc.unifal-mg.edu.br Caminho Mínimo Suponha que você
Leia maisMódulo 3 Nível Transporte
Nível Transporte Redes de Computadores - LTIC António Casimiro 2º Semestre 2014/15 Adaptado a partir de: Computer Networking: A Top Down Approach, 6 th edition. Jim Kurose, Keith Ross, Addison Wesley,
Leia maisSistemas Distribuídos
Comunicação e Coordenação Clientes e Servidores março de 2015 Comunicação entre Processos Distribuídos troca de mensagens exige coordenação receive?!?...... send............ Coordenação passos para execução
Leia maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.
Leia maisRedes de computadores e a Internet. Redes de computadores e a Internet. Prof. Gustavo Wagner. Capítulo 3. Camada de transporte
Redes de computadores e a Internet Redes de computadores e a Internet Prof. Gustavo Wagner Capítulo 3 Camada de transporte Camada de transporte Objetivos do capítulo: Entender os princípios por trás dos
Leia maisProgramação de Sistemas em Tempo Real
BCC722 Programação de Sistemas em Tempo Real Processos Prof. Charles Garrocho O conceito de processo Um S.O. executa uma variedade de programas Sistemas de tempo compartilhado: programas Processo: um programa
Leia mais2 Definição do Problema
Definição do Problema. Formulação Matemática O problema do Fluxo Máximo entre todos os pares de nós surge no contexto de redes, estas representadas por grafos, e deriva-se do problema singular de fluxo
Leia maisESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres
ESTRUTURA DE DADOS Árvores, árvores binárias e percursos Cristina Boeres 2 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos árvore genealógica diagrama hierárquico de uma
Leia maisUniversidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados
Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados Aula 1 Introdução a Banco de Dados 1. Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído
Leia maisTipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares)
Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares) 1. Refaça todos os itens do exercício 1 da Lista de Exercícios anterior (Listas
Leia mais03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II
03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir
Leia mais8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38
8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados
Leia mais8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38
8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados
Leia maistambém conhecido como Interior Gateway Protocols (IGP) protocolos de roteamento intra-as mais comuns:
Roteamento intra-as também conhecido como Interior Gateway Protocols (IGP) protocolos de roteamento intra-as mais comuns: RIP: Routing Information Protocol OSPF: Open Shortest Path First IGRP: Interior
Leia mais1 Exercícios da Parte 3 Camada de Enlace de Dados. 2. Qual a importância da tarefa de enquadramento em uma transmissão de dados?
BCC361 Redes de Computadores (2012-01) Departamento de Computação - Universidade Federal de Ouro Preto - MG Professor Reinaldo Silva Fortes (www.decom.ufop.br/reinaldo) Lista de Exercícios 02 - Camadas
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Capítulo 8 Introdução à replicação e consistência Material de suporte às aulas de Sistemas Distribuídos Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras
Leia maisCCNA Exploration (Protocolos e Conceitos de Roteamento) Protocolo RIP
CCNA Exploration (Protocolos e Conceitos de Roteamento) Protocolo RIP Cronograma Introdução Formato da mensagem e características do RIP Operação do RIP Habilitando o RIP Verificando, identificando e resolvendo
Leia maisESTRUTURAS DE DADOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018
ESTRUTURAS DE DADOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018 Página da Disciplina http://www.di.ubi.pt/~hugomcp/estruturas Conteúdo: Avaliação.
Leia maisDecisões arquiteturais importantes. Projeto arquitetural x projeto de algoritmos. Decomposição de dados. Decomposição de dados
Processamento Paralelo Técnicas de Decomposição de Problemas Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) Decisões arquiteturais importantes 1. Divisão de responsabilidades entre partes (componentes)
Leia maisElementos de conexão e condições de paralelismo. Aleardo Manacero Jr.
Elementos de conexão e condições de paralelismo Aleardo Manacero Jr. Elementos de Conexão O que é conectividade? Define como os elementos de processamento (CPU e memória) de um sistema de alto desempenho
Leia maisÁrvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
Leia maisArquitetura de sistemas distribuídos
Arquitetura de sistemas distribuídos 3. Comunicação nos Sistemas Distribuídos 3.1.Introdução aos modelos de comunicação 3.2 Modelo Cliente-Servidor 3.3.Comunicação através de Sockets 3.3 Chamada a procedimento
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação UDP e TCP,
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Ideia de Tarjan (1972) Durante a exploração em profundidade de um digrafo, podemos numerar seus vértices de
Leia maisDepartamento de Engenharia Rural Centro de Ciências Agrárias. Programação I
Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Algoritmos de busca Basicamente podem ser citadas duas estratégias para procurar (ou buscar) algo em uma coleção de dados: Busca
Leia maisRedes de Computadores e Aplicações. Aula 37 Roteamento IP Unicast Dinâmico RIP
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do N Campus Currais Novos Redes de Computadores e Aplicações Aula 37 Roteamento IP Unicast Dinâmico RIP Prof. Diego Pereira
Leia mais