Meios para obter e validar a dependabilidade • Tolerância a defeitos / falhas • Prevenção de defeitos / falhas • Remoção de defeitos • Previsão de defeitos / falhas • Bibliografia • J-C Laprie, Dependability: Basic Concepts and Terminology, Springer-Verlag, 1992. Sistemas Tolerantes a Falhas 1 Luís Almeida, EST -IPCB, 2º semestre 2001 Meios para obter e validar a dependabilidade Vivemos num mundo imperfeito (desculpem se ainda não sabiam!) Mais cedo ou mais tarde aparecerá um defeito, que activará um erro e causará uma falha (provavelmente uma sequência de falhas) E por mais cuidado que se tenha... Torna-se obrigatória a utilização combinada de várias técnicas e métodos para conseguir minorar o aparecimento, o número e impacto de defeitos. (prevenção do aparecimento de defeitos, remoção de defeitos e previsão de futuros defeitos, e tolerância a defeitos) Sistemas Tolerantes a Falhas 2 Luís Almeida, EST -IPCB, 2º semestre 2001 1 Meios para obter e validar a dependabilidade Pretende-se minorar • o aparecimento dos defeitos prevenção do aparecimento de defeitos • o número dos defeitos remoção de defeitos e previsão de futuros defeitos / falhas • o impacto dos defeitos tolerância a defeitos Sistemas Tolerantes a Falhas 3 Luís Almeida, EST -IPCB, 2º semestre 2001 Meios para obter e validar a dependabilidade Organização das técnicas em obtenção vs. validação Técnicas para tornar um dado sistema dependível (obtenção de dependabilidade) Prevenção de defeitos (e.g. Técnicas de projecto adequadas) Tolerância a defeitos (e.g. Utilização de redundância) Técnicas para melhorar ou verificar a dependabilidade de um dado sistema (validação da dependabilidade) Remoção de defeitos (e.g. Técnicas de teste e verificação) Previsão de defeitos (e.g. Injecção de defeitos, teste de resistência) Sistemas Tolerantes a Falhas 4 Luís Almeida, EST -IPCB, 2º semestre 2001 2 Meios para obter e validar a dependabilidade Organização das técnicas em evitar vs. tolerar Técnicas para evitar o aparecimento de defeitos (“fault avoidance”) Prevenção de defeitos Remoção de defeitos Técnicas para tolerar defeitos existentes ou que venham a existir (“fault tolerance”) Tolerância a defeitos Sistemas Tolerantes a Falhas 5 Luís Almeida, EST -IPCB, 2º semestre 2001 Tolerância a falhas / defeitos Tolerância a defeitos (“fault tolerance”) • Processamento de erros Remoção dos erros do estado do sistema antes que seja gerada uma falha • Tratamento de defeitos Prevenção da activação de defeitos Sistemas Tolerantes a Falhas 6 Luís Almeida, EST -IPCB, 2º semestre 2001 3 Tolerância a falhas / defeitos Processamento de erros ( “error processing”) • Recuperação de erros (“error recovery”) Condução do sistema de um estado erróneo para um estado sem erro: • do passado recente (“backward recovery”) (requer definição de pontos de recuperação) • novo (“forward recovery”) (normalmente corresponde a um modo de funcionamento degradado) Sistemas Tolerantes a Falhas 7 Luís Almeida, EST -IPCB, 2º semestre 2001 Tolerância a falhas / defeitos Processamento de erros (cont.) • Compensação de erros (“error compensation”) Usa-se redundância para que um erro interno não cause a falha do serviço prestado pelo sistema (e.g. através de mecanismos de votação para mascarar defeitos) Sistemas Tolerantes a Falhas 8 Luís Almeida, EST -IPCB, 2º semestre 2001 4 Tolerância a falhas / defeitos Processamento de erros (em termos de comportamento temporal) • Recuperação de erros • Em situação de erro, a recuperação, devido essencialmente à troca de estados, impõe um custo computacional elevado • A duração do período de recuperação é relativamente larga • Compensação de erros • Devido à existência de redundância, o processamento extra requerido na presença de erros é, normalmente, desprezável • A duração do período de compensação é muito reduzida Sistemas Tolerantes a Falhas 9 Luís Almeida, EST -IPCB, 2º semestre 2001 Tolerância a falhas / defeitos Detecção de erros (“error detection”) • É obrigatória quando se usa recuperação de erros (daí a designaç ão comum de Detecção e Recuperação de Erros) Um componente que possua mecanismos internos para detecção de erros diz-se que é um componente com auto-verificação (“self-checking component”) • A utilização de componentes redundantes com auto-verificação permite facilmente realizar a compensação de erros Diz-se então Detecção e Compensação de Erros Sistemas Tolerantes a Falhas 10 Luís Almeida, EST -IPCB, 2º semestre 2001 5 Tolerância a falhas / defeitos Tratamento de defeitos • Diagnóstico de defeitos Determinação da causa do(s) erro(s) em termos de localização e natureza (i.e., identificação e caracterizaç ão do(s) defeito(s)) • Passivação de defeitos Evitar que um defeito seja novamente activado (e.g., através da desactivação do componente defeituoso) Pode implicar a reconfiguração do sistema Sistemas Tolerantes a Falhas 11 Luís Almeida, EST -IPCB, 2º semestre 2001 Tolerância a falhas / defeitos Defeitos, Erros e Falhas em Sistemas Tolerantes a Falhas • Defeito brando (“soft fault”) Aquele em que a passivação, após diagnóstico, não é necessária devido a uma baixa probabilidade de reactivação • Defeito firme (“hard fault”) Aquele em que a passivação, após diagnóstico, é fundamental para que o sistema possa continuar em operação Sistemas Tolerantes a Falhas 12 Luís Almeida, EST -IPCB, 2º semestre 2001 6 Tolerância a falhas / defeitos Defeitos, Erros e Falhas em Sistemas Tolerantes a Falhas • Defeitos independentes (“independent faults”) Aqueles que são atribuíveis a causa diversas • Defeitos relacionados (“related fault”) Aqueles que são atribuíveis a uma mesma causa (e.g., fonte de alimentação, relógio de sistema) Em geral causam falhas de modo-comum (“common-mode failures”) Sistemas Tolerantes a Falhas 13 Luís Almeida, EST -IPCB, 2º semestre 2001 Tolerância a falhas / defeitos Defeitos, Erros e Falhas em Sistemas Tolerantes a Falhas • Erros coincidentes (“coincident errors”) Os que resultam da aplicação das mesmas entradas ao sistema • Falhas simultâneas (“simultaneous failures”) Ocorrem dentro de uma determinada janela temporal prédefinida • Falhas sequenciais (“sequential failures”) As que não são simultâneas Sistemas Tolerantes a Falhas 14 Luís Almeida, EST -IPCB, 2º semestre 2001 7 Tolerância a falhas / defeitos Outras observações A necessidade de redundância pode ser reduzida tirando partido de determinadas propriedades do sistema (e.g., utilização de códigos de detecção e correcção de erros, de algorítmos tolerantes a falhas) A tolerância a defeitos deve ser recursiva, i.e., os mecanismos que a sustentam devem ser protegidos contra o aparecimento de defeitos A tolerância a defeitos pode também ser aplicada em relação a defeitos intencionais e não apenas acidentais Sistemas Tolerantes a Falhas 15 Luís Almeida, EST -IPCB, 2º semestre 2001 Tolerância a falhas / defeitos Técnicas para obtenção de tolerância Processamento de erros Recuperação de erros para um estado passado Sistemas Tolerantes a Falhas para um novo estado Tratamento de erros Compensação de erros Diagnóstico Passivação Redundância 16 Luís Almeida, EST -IPCB, 2º semestre 2001 8 Remoção de defeitos Remoção de defeitos (“fault removal”) • Verificação Confrontação do comportamento do sistema com determinadas propriedades designadas, condições de verificação Quando a verificação falha: • Diagnóstico Identificação das causas da falha da verificação • Correcção Eliminação das causas identificadas de modo a que o sistema cumpra as condições de verificação Sistemas Tolerantes a Falhas 17 Luís Almeida, EST -IPCB, 2º semestre 2001 Remoção de defeitos Verificação • Condições de verificação •Gerais Que se aplicam a uma classe de sistemas sendo relativamente independentes da especificação (e.g., ausência de “deadlock”, conformidade com o projecto e regras de construção) •Específicas Directamente deduzidas das especificações do sistema Sistemas Tolerantes a Falhas 18 Luís Almeida, EST -IPCB, 2º semestre 2001 9 Remoção de defeitos Verificação • Verificação estática Não requer o funcionamento do sistema (i.e., é feita “off-line”) • Verificação dinâmica Efectuada com o sistema em funcionamento (i.e., “on-line”) Sistemas Tolerantes a Falhas 19 Luís Almeida, EST -IPCB, 2º semestre 2001 Remoção de defeitos Verificação estática Pode ser efectuada: • No próprio sistema (e.g., análise de fluxo de dados, de complexidade, verificação por compilador) • Num modelo comportamental do sistema (e.g., redes de Petri, máquinas de estados finitos) Sistemas Tolerantes a Falhas 20 Luís Almeida, EST -IPCB, 2º semestre 2001 10 Remoção de defeitos Verificação dinâmica Pode ser efectuada: • Recorrendo a entradas simbólicas (execução simbólica) • Recorrendo a entradas quantificadas, i.e., valores (teste) Sistemas Tolerantes a Falhas 21 Luís Almeida, EST -IPCB, 2º semestre 2001 Remoção de defeitos Verificação dinâmica - Teste A escolha dos valores de entrada pode ser efectuada de acordo com: •O objectivo do teste Teste de conformidade vs. Teste de defeitos •O modelo do sistema Teste funcional vs. Teste estrutural •A existência ou não de um modelo de defeitos Teste orientado a classes de defeitos (e.g., defeitos tipo “stuck-at”, no micro-código de µPs) Sistemas Tolerantes a Falhas 22 Luís Almeida, EST -IPCB, 2º semestre 2001 11 Remoção de defeitos Verificação dinâmica – Geração de padrões de teste • Geração determinística Os padrões são pré-seleccionados de acordo com determinados critérios • Geração estatística Os padrões são gerados aleatoriamente com uma determinada distribuição de probabilidades definida com base em certos critérios Sistemas Tolerantes a Falhas 23 Luís Almeida, EST -IPCB, 2º semestre 2001 Remoção de defeitos Verificação dinâmica – Avaliação dos resultados do teste Problema do oráculo Decidir se os resultados satisfazem ou não as condições de verificação As condições de verificação podem aplicar-se a todas as saídas do sistema ou apenas a uma função delas (i.e., a assinatura do sistema) Os resultados do teste podem ser comparados com: •Saídas de um sistema simulado •Saídas de um sistema de referência Sistemas Tolerantes a Falhas 24 Luís Almeida, EST -IPCB, 2º semestre 2001 12 Remoção de defeitos Outras noç ões Projecto orientado à verificabilidade (“design for verifiability”) Projecto de um sistema por forma a facilitar a respectiva verificação Manutenção correctiva Remoção de defeitos durante a fase operacional do ciclo de vida do sistema. Pode ser: • Manutenção curativa – remoção de defeitos que já causaram erros • Manutenção preventiva – remoção de defeitos antes que causem erros Sistemas Tolerantes a Falhas 25 Luís Almeida, EST -IPCB, 2º semestre 2001 Remoção de defeitos Positiva – OK ! Verificação Negativa Diagnóstico Correcção Sistemas Tolerantes a Falhas 26 Luís Almeida, EST -IPCB, 2º semestre 2001 13 Remoção de defeitos Verificação Condições de verificação Gerais Específicas Estática Dinâmica Execução simbólica Teste modelo do sistema Teste funcional Teste estrutural Sistemas Tolerantes a Falhas No sistema Num modelo objectivo Teste de conformidade Teste de defeitos 27 Luís Almeida, EST -IPCB, 2º semestre 2001 Previsão de defeitos / falhas Previsão de defeitos (“fault forecasting”) Avaliação do comportamento do sistema relativamente ao aparecimento de defeitos ou sua activação A avaliação pode ser: • Determinística • Probabilística Sistemas Tolerantes a Falhas 28 Luís Almeida, EST -IPCB, 2º semestre 2001 14 Previsão de defeitos / falhas Ciclo de vida do sistema Alternância entre um estado de serviço correcto e outro de serviço incorrecto. Falha Serviço correcto Serviço incorrecto Restabelecimento Sistemas Tolerantes a Falhas 29 Luís Almeida, EST -IPCB, 2º semestre 2001 Previsão de defeitos / falhas Definem-se, então, as seguintes medidas de dependabilidade: • Fiabilidade (“reliability”) Medida do fornecimento contínuo de serviço correcto (ou alternativamente do tempo até à próxima falha - MTTF) • Disponibilidade (“availability”) Medida do fornecimento de serviço correcto relativamente à alternância entre os estados referidos acima (A = MTTF / MTBF) Sistemas Tolerantes a Falhas 30 Luís Almeida, EST -IPCB, 2º semestre 2001 15 Previsão de defeitos / falhas (cont): • Manutenção (“maintainability”) Medida do fornecimento contínuo de serviço incorrecto (i.e., medida do tempo até ao próximo restabelecimento - MTTR) (MTBF = MTTF + MTTR) • Segurança (“safety”) Medida do fornecimento de serviço seguro (ou alternativamente do tempo até à próxima falha catastrófica) Sistemas Tolerantes a Falhas 31 Luís Almeida, EST -IPCB, 2º semestre 2001 Previsão de defeitos / falhas Outras medidas alternativas das mesmas grandezas: • Fiabilidade – taxa de falha – λ ( λ = 1 / MTTF ) • Manutenção – taxa de reparação – µ ( µ = 1 / MTTR ) • Disponibilidade – A ( A = µ / (µ µ + λ) ) Sistema ultra-fiável => λ <10-9 falhas/hora => MTTF > 114 000 anos !!! e.g. Sistemas aeronáuticos (controlo de aviões, de tráfego aéreo...) Sistemas ferroviários (controlo de passagens de nível, de tráfego...) Sistemas espaciais... Sistemas Tolerantes a Falhas 32 Luís Almeida, EST -IPCB, 2º semestre 2001 16 Previsão de defeitos / falhas Referência Significado habitual Grandeza Grandeza usual a Time to fail Fiabilidade MTTF = 1 / λ b Time to repair Manutenção MTTR = 1 / µ a _ a+b On-line relative time Disponibilidade MTTF = µ MTTF + MTTR µ+λ Time to catastrophy Segurança c Restabelecimento do serviço R Sistemas Tolerantes a Falhas R FB a Falha catastrófica Falha benigna FC b c 33 t Luís Almeida, EST -IPCB, 2º semestre 2001 Previsão de defeitos / falhas As medidas de dependabilidade permitem ”prever” a ocorrência de falhas (probabilisticamente, claro...) A sua quantificação faz-se com recurso à modelização dos processos básicos (i.e., de falha, de manutenção, de activação do sistema, etc.) usando dados obtidos por teste Sistemas Tolerantes a Falhas 34 Luís Almeida, EST -IPCB, 2º semestre 2001 17 Previsão de defeitos / falhas • Probabilidade do sistema se encontrar em funcionamento no instante t, dado que no instante t0 estava em funcionamento e que a sua taxa média de falha é dada por λ R(t) = e- λλ(t-t0) • Distribuição de Poisson, probabilidade de x eventos no intervalo de tempo t0 a t, com uma taxa média de eventos dada por λ x/x! e- λλ (t-t0), x=0,1,... p(x) = [ λ (t-t0)] ( R(t) = p(0) => probabilidade de 0 falhas de t0 a t Sistemas Tolerantes a Falhas 35 Luís Almeida, EST -IPCB, 2º semestre 2001 18