Carolina Fonseca Neumar Ribeiro

Slides:



Advertisements
Apresentações semelhantes
Bruno M. Carvalho Sala: 3B2 Horário: 35T34
Advertisements

Introdução a Algoritmos
Solved Exercises 1. Finding the Peak. Let A= a1,…,an be a sequence of n numbers with the following property: there is p in {1,…,n} for which (i) the.
Sistemas de Informação Valor da informação e suas características
Confiança.
PERCEPTRON (CONTINUAÇÃO)
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Algoritmos e Estruturas de Dados
Medida do Tempo de Execução de um Programa
NÃO DETERMINISMO Marcus Eduardo Cabral Seabra
Avaliação de Sistemas Operacionais
Recursividade Conceitos e Aplicações.
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 Walfredo Cirne & Fubica Brasileiro Aula 5: Modelos de Sistemas Distribuídos.
Uma Introdução a Detectores de Defeitos para Sistemas Assíncronos
The Byzantine Generals Problem
Reliability verification of Digital Systems Design based on mutation Analysis Samuel S. Marczak.
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
Dividir-e-Conquistar
ESTRUTURA DE COMUNICAÇÃO DE DADOS
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE MATEMÁTICA
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE MATEMÁTICA
REDUNDÂNCIA POR SOFTWARE
Paradigma de Divisão e Conquista
Função Hash e Autenticação em Redes de Computadores
Função de uma Variável Aleatória
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Carlos Oberdan Rolim Ciência da Computação
Problemas de Fluxo Máximo
Busca com informação e exploração
PROTOCOLOS CRIPTOGRÁFICOS. Introdução aos Protocolos de Segurança Protocolos -Sequência de passos, envolvendo duas ou mais partes, projetados para.
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Interpolação.
Otimizações – Parte 1 André José Diniz Barboza
Sistema de equações lineares
INTRODUÇÃO À ANÁLISE COMBINATÓRIA
O Problema Do Acordo Distribuído (Acordo Bizantino)
Introdução e Fundamentos Engenharia de Requisitos
Sistemas Especialistas
1 - Equações Diferenciais Ordinárias
Construções Lógico –Matemáticas – Aula 02
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º
Complexidade de Algoritmos
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
FLUXOGRAMAS.
De acordo com o texto sobre a suposição feita pelos gregos, é correto afirmar que eles acreditavam que o tempo em queda livre de um corpo é função.
O Caráter Motivacional da Gestão de Recursos Humanos
Sistemas operacionais
Fábio de Oliveira Borges
Técnicas de Replicação
Testes de Software AULA 02 Eduardo Silvestri
PGP – Pretty Good Privacy Privacidade Bastante Boa
Key confirmation and adaptive corruptions in the protocol security logic (Chave de confirmação e Corrupções Adaptativas em um protocolo de segurança lógica)
Ferramentas apresentadas
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Requisitos de Software
Técnicas de avaliação de Interfaces Alunos: Joel Levandowski Ranieri R. Tremea Prof ª.:Cristina P. dos Santos URI - Universidade Regional Integrada do.
Definição um sistema de BD distribuído consistem em uma rede de várias ocorrências de bases de dados interligadas. característica principal para o usuário,
Optimized Link State Routing Universidade Federal do Rio de Janeiro COPPE - UFRJ Julio Heitor Silva Nóbrega Agosto 2006.
Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG
Detecção e Correção de Erros
FEATURE SELECTION. Introdução  Estudo de metodologias relacionadas a seleção de atributos  Maldição da dimensionalidade  O número de atributos do desenvolvedor.
Interpolação PROF. HERON JR.. Objetivo  Interpolar uma função f(x) consiste em aproximar essa função por uma outra função g(x), escolhida entre uma classe.
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Comportamento Assintótico
Lucas R. Costa Rodrigo R. Bezerra Kaio A. da silva
Transcrição da apresentação:

Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra O Problema dos Generais Bizantinos Leslie Lamport, Robert Shostak and Marshall Pease Carolina Fonseca Neumar Ribeiro

Introdução Um sistema confiável deve ser capaz de lidar com falhas de um ou mais componentes; Um componente com falhas pode enviar informações conflitantes para diferentes partes do sistema; O problema enfrentado com esse tipo de defeito é expressado abstratamente como o Problema dos Generais Bizantinos.

Introdução Problema dos Generais Bizantinos Alcançar consenso na presença de traidores Generais Bizantinos cercam uma cidade Existem: Generais leais Generais traidores

Introdução Objetivo: Os Generais devem chegar a um consenso se atacam ou se esperam Só vencerão se todos os Generais leais atacarem! Os Generais traidores não deverão atrapalhar o consenso

Introdução Os generais devem ter um algoritmo para garantir que : Todos os generais leais decidam o mesmo plano de ação Cada general leal deve obter a mesma informação v (1) ,..., v (n). Se o i-ésimo general é leal, então o valor que ele manda deve ser utilizado por todos os generais leais como valor de v(i). 1’. Quaisquer dois generais leais usam o mesmo valor de v(i). Um pequeno número de traidores não podem interferir na decisão dos generais leais

Introdução O comandante general deve enviar uma ordem para seus n - 1 tenentes generais de tal forma que IC1 Todos os tenentes leais obedecem à mesma ordem. IC2 Se o comandante general é leal, então cada tenente leal obedece à ordem que ele manda. IC1 e IC2 são chamadas de “interactive consistency conditions” No entanto o comandante general não precisa ser leal, pois cada tenente podem enviar a mensagem para os demais informando o seu próprio valor de v(i).

Impossibilidade de Resultados O problema dos generais pode parecer simples. Mas a dificuldade está em os generais leais poderem apenas mandar mensagens orais Com isso é necessário dois terços de generais leais para se obter uma solução Com três generais, nenhuma solução pode funcionar na presença de um traidor.

Impossibilidade de Resultados Exemplo com três generais sendo um deles traidor: Nesse caso a IC2 não está sendo respeitada

Impossibilidade de Resultados Exemplo com três generais sendo um deles traidor: Nesse caso a IC1 não está sendo respeitada

Solução com Mensagens Orais Solução que funciona para 3m + 1 ou mais generais, sendo m o número de traidores. A definição de mensagem oral deve ter as seguintes premissas: Toda mensagem enviada é recebida corretamente O receptor da mensagem sabe quem a enviou A ausência de uma mensagem pode ser detectada

Solução com Mensagens Orais O algoritmo assume uma função maioria com a propriedade que se a maioria dos valores de v(i) são iguais a v, então a maioria (v(i), ..., v(n)), é igual a v. Há duas escolhas naturais para o valor da maioria: O valor da maioria entre os v(i) se ele existir, caso contrário o valor recebe esperar; A mediana dos v(i), assumindo que eles vêm de um conjunto ordenado.

Solução com Mensagens Orais Algoritmo OM(0): 1. O tenente i manda seu valor para cada tenente j!=i. 2. Cada tenente i usa o valor que recebeu de j ou usa o valor ESPERAR se i não recebeu valor algum. Algoritmo OM(m), m>0: 2. Cada tenente i usa o valor que recebeu de j ou usa o valor ESPERAR se i não recebeu nenhum valor. Cada processo i chama a função OM(m-1) para enviar o valor v(i) para cada um dos n-2 tenentes. 3. Para cada i, e cada j != i, seja v(i) o valor que o tenente i recebeu do tenente j no passo 2 usando o Algoritmo OM(m-1)), ou ESPERAR se ele não recebeu valor algum. O tenente i usa o valor da maioria(v(1),...,v(n-1)).

Solução com Mensagens Orais

Solução com Mensagens Orais

Solução com Mensagens Assinadas A capacidade de alterar a mensagem que os traidores tinham, tornava o problema mais difícil; O problema se torna mais fácil de resolver restringindo essa habilidade; Uma maneira segura de fazer isso é permitir que os generais enviem mensagens assinadas; Para isto, alguns requisitos são necessários.

Solução com Mensagens Assinadas A1 - Toda mensagem enviada é recebida corretamente A2 - O receptor da mensagem sabe quem a enviou A3- A ausência de uma mensagem pode ser detectada A4 - Garantias adicionais A assinatura do general não pode ser forjada, e qualquer alteração na mensagem pode ser detectada Qualquer um pode verificar a autenticidade das assinaturas dos generais

Solução com Mensagens Assinadas Com a introdução das mensagens assinadas, o problema não requer mais quatro generais (3m+1), para se obter uma solução; Agora, pode-se ter m traidores para qualquer número de generais; O problema é vazio, se existem menos que m + 2 generais.

Solução com Mensagens Assinadas As únicas exigências que fazemos para essa função são : Se o conjunto V consiste em um único elemento v, então escolha (V) = v. Conjunto é vazio, então escolha = ESPERAR.

Solução com Mensagens Assinadas Algoritmo SM (m) V(i) = 0 Comandante assina e envia o seu valor para todos tenentes Para cada i: Se o tenente i recebe uma mensagem da forma v:0 do comandante e ele ainda não recebeu qualquer ordem, então ele deixa v(i) igual a v; ele envia a mensagem de v:0: i para cada outro tenente Se o tenente i recebe uma mensagem da forma v: 0: J1:...:Jk e v não está no conjunto v(i), então acrescenta v para o v(i); se k <m, então ele envia a mensagem de v: 0: J1:...:jk: i para todos os outros tenente que não estão em j1:...:jk Para cada i: Quando o tenente i não receber mais mensagens, ele obedecerá a ordem da escolha v(i)

Solução com Mensagens Assinadas

Perda dos Caminhos de Comunicação Até então assumimos que os generais mandam mensagens para todos os outros; Agora surgem barreiras entre os generais de modo que cada general possa falar com um número restrito de outros generais; Podemos considerar que os os generais formam os nós de um grafo finito não direcionado; E os arcos que ligam esses dois nós indicam que ambos os generais podem trocar mensagens.

Perda dos Caminhos de Comunicação Definições: Um conjunto de nós (i1, ..., ip) é dito ser um conjunto regular de vizinhos de um nó i se cada ij é um vizinho de i, e para qualquer general k diferente de i, existem caminhos ij até k que não passam através de i, tais que quaisquer dois caminhos diferentes não tenha outro nó em comum além k. O grafo G é dito ser p-regular se cada nó tem um conjunto regular de vizinhos que consiste de p nós distintos.

Perda dos Caminhos de Comunicação Figura x. Grafo 3-regular Figura x. Grafo não 3-regular

Perda dos Caminhos de Comunicação Algoritmo OM (m,p) Escolha um conjunto regular N de vizinhos do comandante formado de p tenentes O comandante envia o seu valor para todos tenentes de N. Para cada i em N, v(i) é o valor que o tenente recebe do comandante, ou então ESPERAR se ele não recebe nenhum valor. Tenente i envia v(i) a todos os k tenentes como segue: Se m = 1, o envio do valor ao longo do caminho é garantido conforme as Definições ditas anteriormente Se m> 1, então, agindo como o comandante no algoritmo OM (m - 1, p - 1), com o gráfico de generais obtido pela remoção do comandante original de G Para cada k, e cada i em N com i!=k, v(i) é o valor que o tenente k recebe do tenente i no passo 2 ou ESPERAR se não recebe nenhum valor. O tenente k usa o valor da maioria de (v(i1),...v(ip)), onde N = (i1,...,ip)

Sistemas Confiáveis A única maneira de se obter uma solução de um sistema confiável é construir esse sistema com componentes confiáveis e processar a solução em diferentes “processadores”; Após junta-se as saídas e faz-se a votação entre os resultados; Utilizando a maioria para se obter um resultado único; Também depende-se de uma entrada única para se obter saídas iguais em todos os processadores de modo que possam ser comparadas as saídas; Para que a votação por maioria seja confiável, as duas condições seguintes devem ser satisfeitas: Todos os processadores devem usar o mesmo valor de entrada Se a unidade de entrada é não é falha, então todos os processos usam o seu valor provido como entrada Estas são as condições de consistência interativa IC1 e IC2 Porém, não podemos contar com todos esses recursos para a solução de problemas mais simples.

Sistemas Confiáveis Contudo se o objetivo for criar uma solução confiável é importante se obter a entrada de maneiras redundantes ; Assim é possível aplicar o problema dos generais bizantinos de modo a fornecer uma única entrada para o sistema confiável; No caso de entrada de valores diferentes pode-se utilizar as funções de maioria ou escolha, com base na função da mediana para se obter um valor dentro do intervalo de valores.

Sistemas Confiáveis Até agora estávamos tratando todas as soluções para o problema dos generais; Contudo, estas soluções devem ser aplicadas a sistemas de computação confiáveis; No entanto precisamos assumir A1-A3 e A1-A4 para estes sistemas.

Sistemas Confiáveis A1 - Toda mensagem que é enviada é recebida corretamente A2 - O receptor da mensagem sabe quem a enviou A3- A ausência de uma mensagem pode ser detectada A4 - Garantias adicionais A assinatura do general não pode ser forjada, e qualquer alteração na mensagem pode ser detectada Qualquer um pode verificar a autenticidade das assinaturas dos generais

Conclusão Apresentou-se várias soluções para o problema dos generais bizantinos, sob várias hipóteses, e mostramos como eles podem ser utilizados na execução de sistemas de computador confiáveis; Estas soluções são caras, tanto a quantidade de tempo e o número de mensagens necessário; Algoritmos OM (m) e SM (m) requerer o envio de até (n - 1) (n - 2) ... (n - m - 1) mensagens; O número de mensagens em separado pode certamente ser reduzido pela combinação de mensagens; No entanto, esperamos que um grande número de mensagens ainda será necessário.

Conclusão Atingir a confiabilidade em função de um mal funcionamento arbitrário é um problema dificil e sua solução é cara; A única maneira de reduzir o custo é fazer suposições sobre o tipo de falha que possa ocorrer. Por exemplo, muitas vezes é assumido que um computador pode deixar de responder, mas ele nunca responderá de forma incorreta. Contudo, quando é exigido um elevado grau de confiabilidade, tais suposições não podem ser feitas, e a utilização completa da solução dos Generais Bizantinos é torna-se necessária.