Tópicos em Sistemas Distribuídos

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Distribuídos
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Bruno M. Carvalho Sala: 3B2 Horário: 35T34
Análise e Desenvolvimento de Sistemas
N Rainhas Descrição do Problema Satisfação de Restrições (CSP)
Sistemas operacionais
Sistemas distribuídos
Barramentos Introdução.
UML Visões – Parte 2.
Arquitetura de Computadores
Algoritmos Distribuídos 1ª Lista de Exercícios Antonio Alfredo Ferreira Loureiro Departamento de Ciência da Computação Universidade.
Capítulo 2: Modelo de Computação distribuída
Capítulo 4: Estado Global
Medida do Tempo de Execução de um Programa
Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 5: Modelos de Sistemas Distribuídos.
Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 5: Modelos de Sistemas Distribuídos.
Sistemas Distribuídos
Criptografia e Segurança em Rede Capítulo 1
Modelos Fundamentais -> Interação Falhas Segurança.
Sincronização de Processos (6) - Troca de Mensagens -
Questões Resolvidas - A.C.-10/08/05
Princípios de funcionamento
Prof. Alessandro Brawerman
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Threads.
24/05/1999Non-Blocking Atomic Commitment1 in Distributed Systems Faculdade de Ciências da Universidade de Lisboa Mestrado 98/99 Tolerância a Faltas em.
Diagramas de Sequência e Comunicação
TOPOLOGIA.
Planejamento e controle de Projetos
Redes – Unidade 1 Aula 4 Professor: Marcelo Maia.
Diagrama de Atividades
Sistemas Distribuídos
Sistemas Operacionais
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Projeto: Vídeo-Aula Interativa
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Sistemas Operacionais I
Protocolos de Recuperação
Entrada e Saída (E/S ou I/O)
Universidade da Beira Interior Processadores Fail-Stop Trabalho realizado por: Rui ferreira Nº Eng. Informática.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Interpretação de Projetos de Software Professor: Cheli dos S. Mendes.
Diagramas de Comunicação
Sistemas Operacionais
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Troca de Mensagens Programação concorrente
TRABALHO REALIZADO POR: Ricardo costa
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Transmissões de Dados 2014/2015 Comunicação de Dados
Linguagens de Programação
Como analisar um algoritmo
Resolução de Problemas de Busca
Capítulo 4: Processos.
Fundamentos de linguagens de programação
Princípios de Redes e Topologia de Redes
SISTEMAS OPERACIONAIS
Concorrência em LF1 Paradigmas de Linguagens de Programação 20 de junho de 2006 Aline Timóteo Carlos Rodrigues Flávia Falcão Tiago Rolim.
Algoritmos Paralelos.
Arquitetura de computadores
Serviço de tempo, Exclusão Mútua, Eleição e Acordo Prof. Dr. Norian Marranghello Grupo 5 Anuar Mamede Neto Eduardo Hitoshi Aoki.
Berilhes Borges Garcia Algoritmos Uma ferramenta para resolver um problema de computação bem- especificado (O espírito da computação) Exemplo: ordenação.
Interações entre objetos
Prof. Arthur Projeto Lógico de ComputadoresArquiteturas Avançadas Projeto Lógico de Computadores Prof. Arthur Arquiteturas Avançadas.
Sistemas Distribuídos
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Tópicos em Sistemas Distribuídos Modelo Computacional Este Material está baseado no material “Algoritmos Distribuídos – Modelo Computacional”, Antonio A. F. Loureiro – 2012.

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.

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.

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.

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.

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!

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”

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.

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.

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.

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.

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.

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?

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!

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!

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.

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?

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?

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?

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

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.