Sistemas Distribuídos

Slides:



Advertisements
Apresentações semelhantes
SISTEMAS DE SUPORTE À DECISÃO
Advertisements

Análise e Projeto Orientado a Objetos
Bruno M. Carvalho Sala: 3B2 Horário: 35T34
Introdução a Algoritmos
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Capítulo 4: Estado Global
Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José
Avaliação de Desempenho de Sistemas Computacionais
Unreliable Failure Detectors for Reliable Distributed Systems
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 3:Conceitos Básicos As figuras que.
Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 5: Modelos de Sistemas Distribuídos.
Sistemas Distribuídos
Sistemas Distribuídos
Uma Introdução a Detectores de Defeitos para Sistemas Assíncronos
Carolina Fonseca Neumar Ribeiro
1 Modelos Fundamentais -> Falhas Segurança. 2 Falhas. É o modelo que define os modos nos quais uma falha pode ocorrer de forma a disponibilizar o entendimento.
Modelos Fundamentais -> Interação Falhas Segurança.
Questões Resolvidas - A.C.-10/08/05
PHD 5729 SIMULAÇÃO HIDROLÓGICA
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
CONSENSO O grande mal-entendido
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.
Modelagem de Interações
Diagramas de Sequência e Comunicação
Sistemas Distribuídos
Tópicos em Sistemas Distribuídos
Protocolo CMB em simulação distribuída
Polimorfismo em C#.
Sistemas Distribuídos
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant.
Linguagem de Programação IV
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Sistemas Distribuídos
Carlos Oberdan Rolim Ciência da Computação
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Metodologias para construção de SMA
Alexandre Mota/Augusto Sampaio {acm,
Engenharia de Software
Protocolos de Recuperação
O Problema Do Acordo Distribuído (Acordo Bizantino)
Universidade da Beira Interior Processadores Fail-Stop Trabalho realizado por: Rui ferreira Nº Eng. Informática.
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Avaliação de Desempenho Simulação
Prof. MSc. Cláudio Cabral
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação Programa de Pós-Graduação.
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Fontes de Erros Aula 1 Introdução; Erros em processos numéricos;
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
Impossibility of Distributed Consensus with One Faulty Process Michael J. Fischer Nancy A. Lynch Michael S. Paterson 1985 Apresentado por Nazareno Andrade.
Técnicas de Replicação
Testes de Software AULA 02 Eduardo Silvestri
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Unified Modeling Language Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Nov/2010.
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
INE Fundamentos de Matemática Discreta para a Computação
Fundamentos de linguagens de programação
Métodos Formais Juan Andrés Mussini.
Engenharia de Software
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Interações entre objetos
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
Prof. Ivair Teixeira Redes de Computadores.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Lucas R. Costa Rodrigo R. Bezerra Kaio A. da silva
Transcrição da apresentação:

Sistemas Distribuídos Walfredo Cirne Aula 5: Modelos de Sistemas Distribuídos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento dos mesmos.

Como aumentar a nossa intuição para resolver problemas? Experimentação abordagem prática baseada no acúmulo de informação pode ser usada para construir coisas similares a outras já construídas Modelagem e análise abordagem teórica baseada na simplificação do objeto de estudo (“mundo real”) = criação do modelo seguida de análise - matemática ou lógica - para inferir propriedades Modelagem e simulação criação do modelo simulação do modelo no computador

Trade-offs modelagem oferece mais “controle” sobre a intuição adquirida modelagem só é útil se o modelo caracteriza o objeto de estudo de forma apropriada simulação é mais poderosa e menos genérica que análise experimentação é muito importante para validar modelos

Simulação Alternativa à experimentação Alternativa à analise Mais próximo do sistema real, com um custo muito menor que o sistema real Alternativa à analise Permite analisar situações que não podem ser modeladas de forma tratável/representativa Precisa ser validada Testes automáticos são fundamentais para se reduzir a chance de bugs

O que é um bom modelo? Preciso Tratável a análise do modelo deve levar a conclusões verdadeiras sobre o objeto de estudo Tratável um modelo que não permite a execução de uma análise ou simulação é inútil em um modelo tratável, as regras que governam o comportamento dos atributos do modelo são normalmente definidas através de fórmulas matemáticas ou lógicas

Que respostas um bom modelo pode dar? Viabilidade Que classes de problemas podem ser resolvidos Custo Para as classes que podem ser resolvidas, quão cara (em termos de recursos, tempo de processamento, etc.) uma solução precisa ser Perfomance Como uma solução se compara com outra Ambas as respostas têm valor prático e teórico

Modelos para sistemas distribuídos: um exemplo O problema da coordenação Dois processos, A e B, se comunicam através de troca de mensagens. Nenhum processo falha, mas o canal de comunicação pode perder mensagens. Construa um protocolo que permita que ou a ação a ou a ação b possa ocorrer, mas (i) A e B executam a mesma ação, e (ii) nenhum executa ambas as ações.

Prova de impossibilidade suponha que existe um protocolo que resolve o problema tal protocolo envolve troca de mensagens entre A e B vamos escolher o protocolo que resolve o problema com o número mínimo de trocas de mensagens (i.e. não existe um protocolo que use menos mensagens) e, sem perda de generalidade, assumir que m, a última mensagem enviada no protocolo, foi enviada por A mas m poderia ter sido perdida!!! as ações tomadas por A e B não dependem de m, portanto m é supérflua e é possível construir um protocolo com uma mensagem a menos; uma contradição!

Vamos entender melhor o que fizemos Nós concluímos que o Problema da Coordenação não tem solução para o modelo definido usando duas observações: todos os protocolos distribuídos entrem os dois processos são equivalentes a uma série de trocas de mensagens; e ações tomadas por um processo dependem apenas da seqüência de mensagens recebidas. A partir desse modelo, nossa “intuição” sobre o problema pode ser refinada

Quais são os atributos mais importantes de um sistema distribuído? Atrasos no escalonamento e na transmissão de mensagens síncronos x assíncronos Semântica de falha dos componentes crash omissão desempenho valor arbitrária (Bizantina)

Sistemas distribuídos assíncronos Nenhuma restrição em relação aos atrasos de escalonamento e de transmissão de mensagens Falhas arbitrárias Resultado de impossibilidade de Fischer, Lynch e Patterson (FLP, FLP85) Não há como obter acordo, mesmo que só um processo falhe e mesmo que a semântica seja crash Esse modelo assíncrono serve para alguma coisa?

Modelo síncrono Características do modelo Atrasos máximos conhecidos para escalonamento (s), para transmissão de mensagens (d) e drift dos relógios locais (r) Sistemas construídos assumindo esse modelo são: menos portáveis potencialmente menos seguros

Modelos parcialmente assíncronos Assumem que há algum sincronismo no sistema Duas “escolas” principais Sincronismo no tempo Sistemas que não são sempre assíncronos Ex. timed asynchronous model (Fetzer&Cristian), quase-synchronous (Veríssimo&Almeida) Sincronismo no espaço Sistemas que não são completamente assíncronos Ex. timely computing base (Veríssimo&Casimiro&Fetzer), GMDC (Fubica&Ely&Andrey), detectores de falha (Chandra&Toueg)

Encapsulando Sincronismo: Detectores de falhas Exatidão do detector: que erros podem acontecer Forte: Nenhum processo correto é considerado falho Fraca: Pelo menos um processo correto nunca é considerado falho Abrangência do detector: que falhas são detectadas Forte: Uma falha é detectada por todos os processos Fraca: Uma falha é detectada por pelo menos um processo Eventualidade Condição só se aplica depois de um certo tempo

Classes de Detectores de Falha O detector perfeito só pode ser implementado em um sistema síncrono!! Mas vários problemas podem ser resolvidos se o sistema assíncrono for complementado por detectores de falha imperfeitos!! Em particular S é de grande interesse prático

Como escolher um modelo? Características do ambiente de execução Tipos dos componentes Qualidade dos componentes Controle sobre o ambiente Requisitos da aplicação Aplicações críticas