A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 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

2 Introdução Artigo de 1975 O primeiro livro sobre o assunto foi em 1965 Exclusivamente para projetos de Hardware Projetos de Softwares são muito mais complexos Maior número de estados distintos Projetos de Hardware são realizados tolerando falhas Todas as falhas em Softwares são falhas de projetos

3 Introdução Se todas as falhas pudessem ser evitadas ou removidas seria suficiente para atingir a confiabilidade do sistema A única maneira de atingir esse estado de confiabilidade é incorporar tolerância a falhas de software. O artigo foca em técnicas de recuperação de erros e técnicas de estruturação de sistemas para facilitar a tolerância a falhas.

4 Tolerância a Falhas em Softwares A Tolerância a Falhas é baseada em redundância Detecção de erros Recuperação de erros Não é simples, não é replicação de programa mas sim uma redundância de projeto Parecido como redundância de Hardware Stand-by sparing São realizadas verificações e caso falhe são chaveados para outro componente.

5 Tolerância a Falhas em Softwares O número de erros não detectados em um projeto de Software pode ser infinito Possibilidades de vários valores Tempo de execução Etc O artigo não foca em tentar detectar o erro (sua origem) e sim tratá-lo. Aumentaria muito a complexidade

6 Tolerância a Falhas em Softwares Para alcançar a tolerância a falhas em softwares através da técnica stand-by sparing existem duas características: Incorpora uma solução geral para problema de chaveamento na utilização do componente de reposição. Provê um método de estruturação explícita que tem o efeito de assegurar que o software extra envolvidos na detecção de erros e nos componentes de reposição não são adicionados na complexidade do sistema.

7 Bloco de Recuperação Um bloco de recuperação consiste em um bloco convencional, que é fornecido com um meio de detecção de erros (teste de aceitação) e zero ou mais blocos de reposição (alternativas adicionais). O esquema do bloco de recuperação por stand-by sparing em software é a praticabilidade de produzir o teste de aceitação, alternativas e prover um recurso de restaurar o estado do sistema.

8 Bloco de Recuperação :: = ensure by else error :: =.:: = | else by :: =

9 Bloco de Recuperação

10

11 Teste de Aceitação: garantir que a operação realizada pelo bloco de recuperação é a satisfação do programa que invocou o bloco

12 Bloco de Recuperação Teste de Aceitação: Quando é feito um teste com variaveis não-locais todas elas devem ser restauradas ao seu valor original. No exemplo anterior tem a ordenação e um AND para garantir que a soma do vetor s da alternativa, seja igual a soma do vetor s original

13 Bloco de Recuperação Alternativas: A principal alternativa é a que se destina a ser utilizado normalmente para realizar a operação desejada. As outras alternativas geralmente são menos econômicas e mais simples. Caso alguma alternativa falhe é enviado para o log.

14 Bloco de Recuperação Alternativas: O exemplo abaixo, tem um o bloco de recuperação com alternativas que permitem atingir diferentes resultados, mas ainda aceitável embora menos desejável.

15 Bloco de Recuperação Restaurando o Estado do Sistema: Encontrar uma maneira de restaurar as variáveis utilizadas no momento que estava antes de entrar no bloco e que seja tolerável. Criar uma cópia do sistema antes de entrar no bloco funciona mas é impraticável. As variáveis locais não precisam ser restauradas, apenas as não locais que foram modificadas. Criaram um controle de variáveis chamado de cache recursiva de variáveis.

16 Bloco de Recuperação Cache Recursiva de Variáveis: Dividida em regiões (uma para cada bloco de recuperação). Contém todos os valores das variáveis antes de entrar no bloco, caso falhe o bloco pode ser restaurados todas as variáveis Serão descartados os valores antigos quandos o bloco finalizar com êxito. Existem mecanismos para trabalhar com sistemas grandes, arrays, desempenhos, etc.

17 Recuperação do Erro entre Processos Interagindo Quando não é variáveis, como o posicionamento de um braço de disco ou fita magnética, um cartão de leitura, impressão de uma linha, receber uma mensagem, ou a obtenção de dados em tempo real a partir de sensores externos, etc. Essas ações são difíceis ou mesmo impossível desfazer. Seus efeitos devem ser desfeitos em ordem para não comprometer a própria restauração do estado fornecida pelos mecanismos da cache recursiva.

18 Recuperação do Erro entre Processos Interagindo Lidam com o problema como se fossem interação entre processos. Criar vários pontos de recuperação. Com muitos pontos de recuperação pode acontecer o efeito dominó. Efeito dominó significa o retorno sucessivo, e em cascata, de todos os processos do sistema ao início da computação, ou próximo ao início, desfazendo grande quantidade de processamento.

19 Recuperação do Erro entre Processos Interagindo Existes duas circunstancias para acontecer o efeito dominó: As estruturas de recuperação do bloqueio dos vários processos são descoordenados, e não levam em conta interdependências processo causado por suas interações. (Eliminado com a técnica de conversação) Os processos são simétricos em relação a propagação de falhas. (eliminado com a técnica de sistemas multi nível)

20 Recuperação do Erro entre Processos Interagindo Conversação de Processos: Os processos conversam entre si para criar um ponto de restauração.

21 Recuperação do Erro entre Processos Interagindo

22 Sistemas Multi Níveis Chamado de Maquina Virtual O sistema é desenvolvido em camadas, chamado de níveis. Cada nível tem suas interfaces. Com excessão do primeiro e do último nível, todos tem duas interfaces. Nem sempre um nível precisa conhecer a estrutura subjacente, chamado esse por uma interface opaca. Podem ocorrer erros acimas das interfaces ou abaixo das interfaces das máquinas virtuais.

23 Sistemas Multi Níveis

24 Tolerância a Falhas na Interface da Máquina Virtual A diferença entre os interpretes do modo convencional para o modo com tolerância a falhas são: Processo de Interpretação: a interface garante que antes de qualquer alteração feita para o estado do processo de interpretação ou valores de quaisquer variáveis, será feito um teste para determinar se alguma informação deve ser guardada primeiro. Processo Inverso: será chamada quando um processo estiver realizando backup. Procedimento de Aceitação: será chamado quando um bloco alternativo for aprovada no teste de aceitação.

25 Sistemas Multi Níveis


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google