Tópicos em Sistemas Distribuídos - ppt carregar
PublicouCauã Eanes Alterado mais de 6 anos atrás
Apresentação em tema: "Tópicos em Sistemas Distribuídos"— Transcrição da apresentação:
1 Tópicos em Sistemas Distribuídos
Modelo Computacional Este Material está baseado no material "Algoritmos Distribuídos – Modelo Computacional", Antonio A. F. Loureiro – 2012.
2 Modelo Computacional Modelo Computacional Definição (nosso contexto):
Esquema que possibilita a representação de uma entidade.  No modelo, só se deve incluir o que for relevante para a modelagem do objeto em questão. Computacional Relativo ao processamento. Definição (nosso contexto): Esquema que descreve como é o modelo abstrato do processamento de algoritmos. Importância Um algoritmo não existe, ou seja, não é possível escrevê-lo, se antes não for definido o modelo computacional onde será executado.  Conceito básico no projeto de qualquer algoritmo.
3 Modelo Computacional Que modelos existem?
Literalmente dezenas deles. Se não estiver satisfeito, invente o seu! O mais popular (usado) de todos: RAM – Random Access Machine. Mundo distribuído: Normalmente nós que seguem o modelo RAM interconectados entre si através de troca de mensagens.  Não existe compartilhamento de memória. Elementos desse modelo Nó computacional representado pelo modelo RAM. Canal normalmente representado pelo modelo FIFO.
4 Modelo RAM Elementos do modelo Observações: Um único processador
Memória Observações: Podemos ignorar os dispositivos de entrada e saída (teclado, monitor, etc) assumindo que a codificação do algoritmo e os dados já estão armazenados na memória. Em geral, não é relevante para a modelagem do problema saber como o algoritmo e os dados foram codificados e armazenados na memória.
5 Modelo RAM Computação nesse modelo:
Processador busca instrução/dado na memória. Uma única instrução é executada de cada vez. Cada instrução é executada sequencialmente. Cada operação executada pelo processador, incluindo cálculos aritméticos, lógicos e acesso a memória, implica num custo de tempo:  Função de complexidade de tempo. Cada operação e dado armazenado na memória, implica num custo de espaço:  Função de complexidade de espaço.
6 Modelos Computacionais para o Mundo Distribuído
Espaço de Modelos Computacionais não sequenciais  Um espectro bastante largo! Pergunta importante: Todo algoritmo distribuído pode ser implementado em qualquer modelo computacional? Definitivamente NÃO!
7 Problema dos Dois Exércitos
Na Grécia antiga, lugares maravilhosos como este... ... Podiam se transformar em cenários de guerra. Vale perto de Almfiklia, Grécia  É quando algum filosofo propõe o "Problema dos dois exércitos"
8 Problema dos Dois Exércitos Cenário Inicial
Exército Alfa está em maior número que o exército Gama mas está dividido em duas metades, cada uma numa lateral do vale. Cada metade do exército Alfa está em menor número que o exército Gama. Objetivo do exército Alfa: coordenar um ataque ao exército Gama para ganhar a guerra.
9 Problema dos Dois Exércitos O Problema da Coordenação
General do exército Alfa, do lado esquerdo do vale, chama o seu melhor soldado para levar uma mensagem para o general do exército Alfa do lado direito: Vamos atacar conjuntamente amanhã às 06:00? Observações: A única possibilidade de comunicação entre os dois generais é através de um mensageiro Os dois generais têm um "relógio perfeitamente sincronizado", ou seja, eles sabem pela posição do sol quando é 06:00h.
10 Problema dos Dois Exércitos O Problema da Coordenação
O soldado do exército Alfa atravessa as linhas inimigas e leva a mensagem até o general do outro lado.
11 Problema dos Dois Exércitos O Problema da Coordenação
O general do exército Alfa do lado direito concorda em atacar o exército Gama no dia seguinte às 06:00h.
12 Problema dos Dois Exércitos O Problema da Coordenação
O soldado do exército Alfa atravessa novamente as linhas inimigas e confirma com o seu general o ataque para o dia seguinte.
13 Problema dos Dois Exércitos O Problema da Coordenação
 Após esses quatros passos terem sido realizados, vai haver ataque amanhã às 06:00h?
14 Problema dos Dois Robos
Imagine dois ou mais robôs que vão carregar uma mesa de tal forma que um ficará de frente para outro. Problema: Projete um algoritmo para coordenar a velocidade e direção do movimento de cada robô para que a mesa não caia. Os robôs só podem comunicar entre si através de um canal de comunicação sem fio. Variante do problema anterior!
15 Problema dos Dois Robos
Considerando o modelo computacional proposto, é possível projetar um algoritmo distribuído para esse problema? NÃO! Não existe um algoritmo distribuído para o problema de coordenação considerando o modelo computacional proposto!
16 Alguns comentários sobre algoritmos distribuídos
São a base do mundo distribuído, ou seja, de sistemas distribuídos. Sistemas distribuídos podem ser: Tempo real ou não; Reativos ou não. Sistemas distribuídos podem ser especificados tomando-se como base: tempo; eventos.
17 Projeto de algoritmos distribuídos: Modelo de falhas
Descreve as suposições sobre o comportamento funcional dos elementos do modelo computacional ao longo do tempo: nó computacional; canal. Para cada um destes elementos é possível fazer diferentes considerações. Modelo de falhas associado a um nó computacional (dois extremos): Falha e pára; Bizantino. Modelo de falhas associado ao canal: Mensagens são perdidas, duplicadas, corrompidas, entregues fora de ordem. Qual a importância do modelo de falhas no projeto de algoritmos distribuídos?
18 Projeto de algoritmos distribuídos: Canal de Comunicação
Mecanismo através do qual mensagens são trocadas entre os nós computacionais. Aspectos a considerar: Modelo de falhas; Sentido da comunicação: simplex, half-duplex, full-duplex; Sincronismo: assíncrono, síncrono; Tipo de comunicação: unicast, multicast, broadcast, anycast. Qual a importância do canal de comunicação no projeto de algoritmos distribuídos?
19 Projeto de algoritmos distribuídos: Topologia
Define como os nós são interconectados entre si através dos canais de comunicação. Existem diferentes possibilidades: Anel; Hipercubo; Árvore; Uma outra específica. Qual a importância da topologia no projeto de algoritmos distribuídos?
20 Aspecto típico de algoritmo distribuído: Não determinismo
Não é possível especificar a priori qual será a ordem exata de uma computação distribuída. É possível ter não determinismo devido à: Concorrência entre os nós; Especificação (simplificação do número de estados); Não observabilidade (falta de acesso aos estados internos dos nós). Não é possível evitar
21 Aspecto típico de algoritmo distribuído: Sincronização
Deve-se definir como será feita. É necessário ter sincronização devido à: Competição entre recursos (exclusão mútua); Coordenação distribuída.