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.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Introdução a Algoritmos
Metodologia de testes Nome: Gustavo G. Quintão
Introdução Gdes. bancos de dados: Concorrência: Transação:
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Requisitos dos SGBD Recuperação/Tolerância a Falhas
Redes de computadores I
Barramentos Introdução.
Entrada e Saída Introdução.
Fundamentos de Engenharia de SW
BANCO DE DADOS Transparências baseadas no capítulo 1 do livro de KORTH e SILBERCHATZ e 1 e 2 do livro de ELMASRI e NAVATHE. Juliana Amaral e Rodrigo Baroni.
Auditoria de Sistemas ● Introdução
Confiança.
Recuperação Como garantir a integridade da informação, em caso de avarias de HW ou SW forma de suportar a reposição de um estado consistente da informação.
Bloqueios partilhados
Centrado na arquitetura
Mecanismo de Proteção (Prevenção e Detecção)
Sumário 1 SQL Embutida 2 Processamento de Consultas
Processamento de Transação
Endereçamento de hardware e identificação de quadros
Carolina Fonseca Neumar Ribeiro
Recovery Blocks Paulo Junior Penna Pivetta. Introdução Os Projetos de Tolerância a falhas quase que exclusivamente eram dedicado a hardware Tolerância.
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Engenharia de Requisitos Requisito – sistema Caso de uso - usuário
TSDD Teste de segurança durante o desenvolvimento.
RECUPERAÇÃO APÓS FALHA
Sistemas Operacionais I
Software de Rede Willamys Araújo.
Meta - heurísticas Prof. Aurora
REDUNDÂNCIA POR SOFTWARE
Técnicas e Projeto de Sistemas
My Drivers Bruna Helena Silva, n°05 Gabrielle Prado, n°15 Legacy.
Fundamentos da Arquitetura de Computadores
Conceitos.
Expansão dos Casos de Uso
Sistemas Distribuídos
Carlos Oberdan Rolim Ciência da Computação
Carlos Oberdan Rolim Ciência da Computação
Sistemas Operacionais
Paulo Silva Tracker Segurança da Informação
My Drivers Lucas Galdino – 24 Raul Augusto Gobbo – 32 Legacy.
Aula Prática 12 Operações com Arquivos Monitoria
Fiabilidade de Sistemas Informáticos
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
Concorrência e Java RMI
O Problema Do Acordo Distribuído (Acordo Bizantino)
Controle de concorrência
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º
Sistemas Distribuídos
Computação L1: Infra-Estrutura Básica
SISTEMAS DISTRIBUIDOS Aula 4
SISTEMAS OPERACIONAIS I
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
Testes de Software AULA 02 Eduardo Silvestri
Gestão de defeitos.
Introdução a Banco de Dados Aula 04
Testes de Software AULA 03 Eduardo Silvestri
Slide 1 Programação com Objetos Distribuídos Trabalho Leve 1 The Guardian Model and Primitives for Exception Handling in Distributed Systems Universidade.
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Árvore de Falhas.
Estruturas de Dados I Segundo Período de 2008 Gabarito da Primeira Prova.
Subsistema de Entrada e Saída do Kernel
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Sistemas Operacionais Funcionamento Básico
Sistemas Operacionais IV – Gerenciamento de E/S
Rede de Computadores MAT164 – Redes de Computadores I Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação.
Linguagem de Programação 11 Estruturas de Decisão e Repetição. Prof. Luiz José Hoffmann Filho
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Capítulo 4 Estrutura do Sistema Operacional
Transcrição da apresentação:

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

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

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.

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.

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

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.

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.

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

Bloco de Recuperação

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

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

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.

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.

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.

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.

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.

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.

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)

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

Recuperação do Erro entre Processos Interagindo

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.

Sistemas Multi Níveis

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.

Sistemas Multi Níveis