![Page 1: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/2.jpg)
• 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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/3.jpg)
• 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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/4.jpg)
• 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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/5.jpg)
• 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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/6.jpg)
• 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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/7.jpg)
• 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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/8.jpg)
• 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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/10.jpg)
• 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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/11.jpg)
• 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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/13.jpg)
![Page 14: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/14.jpg)
![Page 15: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/20.jpg)
![Page 21: Carolina Fonseca Neumar Ribeiro Pontifícia Universidade Católica do Rio Grande do Sul Confiabilidade de Sistemas Prof. Eduardo Bezerra](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062404/552fc10c497959413d8c3376/html5/thumbnails/30.jpg)
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.