Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouKevin Leonardo Alterado mais de 9 anos atrás
1
Universidade da Beira Interior Processadores Fail-Stop Trabalho realizado por: Rui ferreira Nº 15039 Eng. Informática
2
Processadores Fail-Stop Definição: Processador Fail-stop: quando ocorre uma falha no nó (processador) este tem o comportamento de parar de executar Efeitos visíveis de uma avaria num processador fail-stop: Pára de executar Dados internos e do armazenamento volátil associados ao processador são perdidos; Memoria estável não é afectada Qualquer processador pode detectar a avaria de um processador fail-stop
3
Processadores Fail-Stop Como não é possível tolerar um número indefinido de falhas, a solução aproximada é a implementação de um processador k-fail-stop com o uso de k+1 processadores Processador K-Fail-Stop: É um sistema computacional que se comporta como um processador fail-stop desde que falhem menos que k+1 processadores. Ex: Se k=1 conseguimos construir um sistema em que pode falhar um nó se tivermos 2 processadores Limitações para Implementação de um processador K-Fail-Stop: Dependerá da confiabilidade do sistema de armazenamento de informações;
4
Processadores Fail-Stop Existem processadores que controlam o suporte de armazenamento, designados por storage processor (s-processador); Existem outros processadores responsáveis pela execução dos programas (processos), estes designados por p-processador; Se o s-processador funciona correctamente então a implementação do processador K-fail-stop é simplificada
5
Processadores Fail-Stop Duas maneiras de Implementação de um processador K-Fail-Stop: Implementação com Armazenamento Estável Fiável (caso em que se assume que o s-processor nao falha) Implementação com Armazenamento Estável Não Fiável (caso em que se assume que o s-processor pode falhar)
6
Implementação com Armazenamento Estável Fiável Condições de implementação É constituído por K+1 p-processadores e 1 s-processador K+1 p-processadores podem falhar de maneira arbitraria S-processador não falha (fiável) Processadores comunicam entre si através de mensagens p-processadores e s-processador estão conectados por uma rede de comunicação fiável As mensagens são autenticadas (emissor identificável) relógios são sincronizados e δ é o atraso máximo de comunicação
7
Implementação com Armazenamento Estável Fiável Para que esta implementação funcione: É necessário que todos os processadores façam os mesmos pedidos ao pocesso-s e este acede ao armazenamento estável Detecção da falha: Mensagens diferentes; Timeout; Não recebimento de mensagem; Cuidado com falhas Bizantinas!
8
Algoritmo para processador K-Fail-Stop com armazenamento estável fiável 1. Para escrever no armazenamento estável, um p-processo p j envia uma mensagem de escrita ao s-processador 2. Para ler do armazenamento estável, um p-processo p j : envia uma mensagem de leitura ao s-processador e usa o valor recebido. Os p-processadores estão constantemente em comunicação com o s- processador, com envio de mensagens 3. O s-processo s, ao receber um pedido de todos os p-processos: R: conjunto de pedidos recebidos em tempo próprio If |R|= k+1 Λ todos os pedidos são idênticos Λ todos os pedidos são de processos diferentes Λ ¬ failed then if pedido é de escrita then escreve o valor if pedido é de leitura then envia valor para todos os p-processos cuja requisição está em R else failed = true
9
Comentários sobre o Algoritmo S-processo só executa a operação na memória estável se o processador K-Fail-Stop não falhou No caso de todos falharem de maneira maliciosa o armazenamento estável pode escrever esse valor como correcto, mas para tal, TODOS os p-processos precisam de escrever o mesmo valor incorrecto!
10
Implementação sem Armazenamento Estável Fiável Condições de implementação s-processo não é fiável É necessário implementar um s-processador fiável, que será feito através de múltiplos s-processadores p-processadores e s-processsdores podem falhar de maneira arbitrária Para implementar um processador fail-stop é necessário no mínimo: K+1 p-processadores 2k+1 s-processos p-processadores e s-processador estão conectados por uma rede de comunicação fiável
11
Implementação sem Armazenamento Estável Fiável Cada um dos p-processos executa o mesmo programa Detecção da falha: Pelos s-processos quando p-processo escreve para o armazenamento estável Processador fail-stop falha quando: Desacordo em algum dos k+1 p-processos na operação de escrita; Timestamp/datas de chegada incompatíveis;
12
Implementação sem Armazenamento Estável Fiável Caso o processador fail-stop tenha falhado e se ocorre a falha de: H1. Menos de k+1 p-processos: ocorrerá um desacordo entre os valores dos diferentes p-processos, pelo menos um p-processo enviará um valor correcto; H2. Menos de k+1 s-processos: a maioria de s-processos não falhou; H3. Até k processos no total: pode-se ter a certeza que pelo menos 1 p-processo está a funcionar correctamente e que a maioria dos s-processos está a funcionar;
13
Implementação sem Armazenamento Estável Fiável Caso o processador K-fail-stop não tenha falhado é desejado que: A operação de actualização será executada por todos os processos-s não defeituosos; cada p-processo envia um pedido a cada um dos processos-s Concordância na tomada de decisão por parte dos processos-s em relação aos valores recebidos dos processos-p. Isto pode ser formalizado da seguinte forma: Se p j não é defeituoso, então todo processo-s não defeituoso recebe o pedido de p j
14
Implementação sem Armazenamento Estável Fiável Se os processos-s s k e s l são não defeituosos, então ambos concordam com todo o pedido recebido de p j É uma decisão complexa, devido à possibilidade de avarias maliciosas de processos-s e processos-p
15
Algoritmo para processador K-Fail-Stop sem armazenamento estável fiável 1. Para escrever no armazenamento estável, um p-processo p j inicia um acordo bizantino com todos os s-processos 2. Para ler do armazenamento estável, um p-processo p j : a) broadcast o pedido para os s-processos b) usa o valor maioritário (obtido de no mínimo k+1 s- processos)
16
Algoritmo para processador K-Fail-Stop sem armazenamento estável fiável 3. Um s-processo s i, ao receber um pedido de todos os p- processos: M = conjunto de pedidos recebidos if o pedido é de leitura then envia valor pedido para todos os p-processos cuja requisição está em M if pedido é de escrita then if |M| = k+1 Λ todos os pedidos são idênticos Λ todos os pedidos são de processos diferentes Λ ¬ failed then escreve o valor else failed = true envia mensagens “halt” para todos os p-processos
17
Conclusões Em ambas as implementações a avaria do processador K-Fail- Stop é detectada por um processo-s A avaria é detectada durante a tentativa de escrita no armazenamento estável As actualizações são realizadas apenas se o processador k- fail-stop é considerado não ter falhado Necessidade de sincronização dos relógios (timestamp, tempo máximo de transmissão)
18
Conclusões Implementação com Armazenamento Estável Fiável Sem falhas arbitrárias e s-processador fiável: K+1 p-processadores e 1 s-processador Implementação com Armazenamento Estável Fiável Com falhas arbitrárias: K+1 p-processadores 2k+1 s-processadores
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.