A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Este Material está baseado no material Algoritmos Distribuídos – Modelo Computacional, Antonio A. F. Loureiro – 2012.

Apresentações semelhantes


Apresentação em tema: "Este Material está baseado no material Algoritmos Distribuídos – Modelo Computacional, Antonio A. F. Loureiro – 2012."— Transcrição da apresentação:

1 Este Material está baseado no material Algoritmos Distribuídos – Modelo Computacional, Antonio A. F. Loureiro – 2012.

2 Modelo Computacional Modelo – 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 – 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 1.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 2.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 3.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 4.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.


Carregar ppt "Este Material está baseado no material Algoritmos Distribuídos – Modelo Computacional, Antonio A. F. Loureiro – 2012."

Apresentações semelhantes


Anúncios Google