320 likes | 620 Views
Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra. Carolina Fonseca Neumar Ribeiro. O Problema dos Generais Bizantinos Leslie Lamport, Robert Shostak and Marshall Pease. Introdução.
E N D
Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra Carolina Fonseca Neumar Ribeiro O Problema dos Generais BizantinosLeslie Lamport, Robert Shostak and Marshall Pease
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 “interactiveconsistencyconditions” • 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: 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 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 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)
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.