Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul...

30
Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra

Transcript of Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul...

Page 1: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

Carolina FonsecaNeumar Ribeiro

Pontifícia Universidade Católica do Rio Grande do Sul

Confiabilidade de SistemasProf. Eduardo Bezerra

Page 2: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

• 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.

Page 3: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

• Problema dos Generais Bizantinos▪ Alcançar consenso na presença de traidores

• Generais Bizantinos cercam uma cidade

• Existem:▪ Generais leais▪ Generais traidores

Page 4: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

• 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

Page 5: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

• Os generais devem ter um algoritmo para garantir que :A. Todos os generais leais decidam o mesmo

plano de ação1. Cada general leal deve obter a mesma informação v

(1) ,..., v (n). 2. 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).

B. Um pequeno número de traidores não podem interferir na decisão dos generais leais

Page 6: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

• 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).

Page 7: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

• 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.

Page 8: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

• Exemplo com três generais sendo um deles traidor:

Nesse caso a IC2 não está sendo respeitada

Page 9: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

Nesse caso a IC1 não está sendo respeitada

• Exemplo com três generais sendo um deles traidor:

Page 10: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

• 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

Page 11: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

• 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:

1. O valor da maioria entre os v(i) se ele existir, caso contrário o valor recebe esperar;

2. A mediana dos v(i), assumindo que eles vêm de um conjunto ordenado.

Page 12: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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)).

Page 13: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.
Page 14: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.
Page 15: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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.

Page 16: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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

Page 17: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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.

Page 18: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

As únicas exigências que fazemos para essa função são :

1. Se o conjunto V consiste em um único elemento v, então escolha (V) = v.

2. Conjunto é vazio, então escolha = ESPERAR.

Page 19: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

Algoritmo SM (m)V(i) = 01. Comandante assina e envia o seu valor para todos tenentes2. Para cada i:

A. Se o tenente i recebe uma mensagem da forma v:0 do comandante e ele ainda não recebeu qualquer ordem, entãoi. ele deixa v(i) igual a v;ii. ele envia a mensagem de v:0: i para cada outro tenente

B. Se o tenente i recebe uma mensagem da forma v: 0: J1:...:Jk e v não está no conjunto v(i), entãoi. acrescenta v para o v(i);ii. 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:...:jk3. Para cada i: Quando o tenente i não receber mais mensagens, ele

obedecerá a ordem da escolha v(i)

Page 20: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.
Page 21: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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.

Page 22: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

Definições:

A. Um conjunto de nós (i1, ..., ip) é dito ser um conjunto regular de vizinhos de um nó i sei. cada ij é um vizinho de i, e ii. 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.

B. O grafo G é dito ser p-regular se cada nó tem um conjunto regular de vizinhos que consiste de p nós distintos.

Page 23: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

Figura x. Grafo 3-regular Figura x. Grafo não 3-regular

Page 24: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

Algoritmo OM (m,p)

1. Escolha um conjunto regular N de vizinhos do comandante formado de p tenentes

2. O comandante envia o seu valor para todos tenentes de N.3. 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:A. Se m = 1, o envio do valor ao longo do caminho é garantido

conforme as Definições ditas anteriormenteB. 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

4. 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)

Page 25: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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: 1. Todos os processadores devem usar o mesmo valor de entrada2. 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.

Page 26: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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.

Page 27: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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.

Page 28: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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

Page 29: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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.

Page 30: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra.

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.