Difusão e Coleta em uma rede. Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 1

Tamanho: px
Começar a partir da página:

Download "Difusão e Coleta em uma rede. Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 1"

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. 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 mais

Um 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 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 mais

Programação Distribuída e Paralela Apresentação

Programaçã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 mais

Redes de Computadores. Prof. MSc André Y. Kusumoto

Redes 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 mais

Aula 3 Redes de Interconexão

Aula 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 mais

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Informá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 mais

Sistemas Distribuídos e Redes de Sensores

Sistemas 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 mais

Roteamento e Roteadores. Conceitos Diversos

Roteamento 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 mais

Modelagem e implementação de programas concorrentes

Modelagem 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 mais

Concorrência em Processos

Concorrê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 mais

Universidade 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 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 mais

Nome: Nº de aluno: 2ª Ficha de Avaliação Teórica Data Limite de Entrega 06/11/2015

Nome: 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 +, - #$ %&'()* '()*!"" 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 mais

Sistemas Distribuídos Aula 2

Sistemas 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 mais

Redes de Computadores. Prof. André Y. Kusumoto

Redes 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 mais

Canais de Comunicação

Canais 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 mais

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 6 de Janeiro de o Teste A

Redes 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 mais

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Curso 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 mais

Remote 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 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 mais

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45

Volmir 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 mais

Modelos de Execução Bolsas de Tarefas

Modelos 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 mais

Programação Concorrente e Paralela. Noemi Rodriguez

Programaçã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 mais

Sistemas Distribuídos Aula 19

Sistemas 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 mais

Teoria dos Grafos Aula 8

Teoria 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 mais

Programação com Sockets

Programaçã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 mais

INF 1010 Estruturas de Dados Avançadas

INF 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 mais

grafo nós vértices arcos arestas

grafo 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 mais

Departamento de Engenharia de Produção UFPR 57

Departamento 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 mais

Protocolos de Roteamento link-state

Protocolos 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 mais

Topologias de Arquiteturas de Comunicação

Topologias 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 mais

Programação distribuída e paralela (C. Geyer) RPC 1

Programaçã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 mais

Capítulo II Modelos de Programação Distribuída

Capí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 mais

Redes de Computadores

Redes 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 mais

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Roteiro... 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 mais

ROUTER. Alberto Felipe Friderichs Barros

ROUTER. 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 mais

Um 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 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

Á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 mais

TWAMP. Descritivo técnico

TWAMP. 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 mais

RCO2. Redes Locais: Interligação de LANs e STP

RCO2. 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 mais

TOPOLOGIAS. A avaliação das topologias são baseadas em critérios que objetivam fornecer parâmetros de eficiência e praticidade.

TOPOLOGIAS. 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 mais

Problema do Produtor -Consumidor. Solução por semáforos

Problema 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 mais

Comunicação entre Processos

Comunicaçã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 mais

Seminário: André V. S. Cunha

Seminá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 mais

Capítulo 7. A camada de aplicação

Capí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 mais

AULA 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 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 mais

Primeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas)

Primeiro 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 mais

Comunicação em tempo real

Comunicaçã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 mais

INE 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 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 mais

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Grafos - 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 mais

Redes de Computadores III / /

Redes 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 mais

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1

Sumá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 mais

Capítulo 7. A camada de aplicação

Capí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 mais

Redes de Computadores

Redes 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 mais

Projeto e Análise de Algoritmos

Projeto 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 mais

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II

01 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 mais

INE 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 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 mais

Gestão de Sistemas e Redes

Gestã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 mais

Redes de Computadores RES 12502

Redes 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 mais

Redes de Computadores

Redes 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

Á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 mais

Vamos fazer um pequeno experimento

Vamos 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 mais

Capítulo 7: Roteando Dinamicamente (Resumo)

Capí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 mais

Capítulo 4 A camada de REDE

Capí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 mais

Teoria dos Grafos Aula 5

Teoria 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 mais

Sistemas Operacionais II

Sistemas 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 mais

Organização e comunicação em plataformas paralelas

Organizaçã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 mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁ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 mais

Aula 12 Protocolo de Roteamento EIGRP

Aula 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 mais

Programação Concorrente e Paralela

Programaçã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 mais

Busca Cega (Exaustiva) e Heurística. Busca Aula 2

Busca 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 mais

INF 1010 Estruturas de Dados Avançadas

INF 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 mais

Grafos Parte 1. Aleardo Manacero Jr.

Grafos 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 mais

Universidade Federal de Alfenas

Universidade 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 mais

Módulo 3 Nível Transporte

Mó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 mais

Sistemas Distribuídos

Sistemas 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 mais

Estrutura 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 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 mais

Redes 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 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 mais

Programação de Sistemas em Tempo Real

Programaçã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 mais

2 Definição do Problema

2 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 mais

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres

ESTRUTURA 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 mais

Universidade 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 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 mais

Tipos 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) 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 mais

03 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 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 mais

8. Á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 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 mais

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Á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 mais

também conhecido como Interior Gateway Protocols (IGP) protocolos de roteamento intra-as mais comuns:

també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 mais

1 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?

1 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 mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS 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 mais

CCNA Exploration (Protocolos e Conceitos de Roteamento) Protocolo RIP

CCNA 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 mais

ESTRUTURAS 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 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 mais

Decisões arquiteturais importantes. Projeto arquitetural x projeto de algoritmos. Decomposição de dados. Decomposição de dados

Decisõ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 mais

Elementos 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 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 Á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 mais

Arquitetura de sistemas distribuídos

Arquitetura 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 mais

INE 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 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 mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

CES-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 mais

Departamento 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 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 mais

Redes de Computadores e Aplicações. Aula 37 Roteamento IP Unicast Dinâmico RIP

Redes 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