S10b – Projeto – Tolerância a Falhas MO409 – Engenharia de Software Anderson Talon / Marcelo Fontes
Agenda Dependabilidade Tolerância à Falha SACCPC Arquitetura TF - Hardware TF - Software TF - Árvore de Análise de Falhas SACCPC Arquitetura Referências
Garantir Dependabilidade [Martins,2008] Prevenção de falhas Evita a ocorrência ou introdução de falhas Tolerância a falhas Fornecer o serviço correto em presença de falhas Remoção de falhas Reduzir o número ou a severidade das falhas Previsão de falhas Avaliar o número de falhas presentes, ou a futura incidência ou a conseqüência de falhas
Projeto com Tolerância à Falha Prevenção de Falha: Aumentar a confiabilidade eliminando as falhas. Reduzir a probabilidade de falha do sistema a um valor razoavelmente baixo. Tolerância à Falha: Espera que as falhas ocorram. Efeitos compensados.
Árvore de Dependabilidade [Martins, 2008]
Falha / Erro / Defeito Falha: resultado de um erro de um componente ou no projeto do sistema. Erro: parte de um estado errôneo que constitui uma diferença de um estado válido. Defeito: desvio do comportamento do sistema de algum conjunto de especificações pré-definidas. Falha Erro Defeito
Tolerância a Falhas Desafios: Atender aos objetivos de dependabilidade; Suportar funções com diversos níveis de gravidade; Limitar o custo de desenvolvimento e produção; Permitir a verificação e validação do sistema.
Tolerância à falha Requisito chave: Replicação de recursos em hardware ou em software. Tempo: repetição da computação. Espaço: adoção de múltiplos canais de hardware. Informação: adoção de múltiplas versões de software.
Tolerância à Falhas - Redundâncias Homogêneas Alto custo de reparo Overhead para algumas tarefas Simples gerenciamento da redundância Heterogêneas Redundância otimizada para cada tarefa
Redundância de Hardware: Sensores [Isermann, 2006]
Redundância de Hardware: Atuadores [Isermann, 2006]
Técnicas de Tolerância à Falha de Software Blocos de Recuperação: N programas executados (NT/1H/NS ou 1T/NH/NS) em série no mesmo hardware ou em paralelo sobre N canais de software com implementações diferentes Software com Auto-Verificação: recursos internos para realizar detecção concorrente de erros Programação N-versões (NVP) baseados em redundância e consenso
Confiabilidade: Árvore de Análise de Falhas Melhoria de um produto ou processo já em operação. A partir da identificação das causas das falhas ocorridas e seu posterior bloqueio. Detecção e bloqueio das causas de falhas potenciais (antes que aconteçam) em produtos ou processos já em operação. Detecção e bloqueio das causas de falhas potenciais (antes que aconteçam) em produtos ou processos, ainda na fase de projeto.
Tolerância à Falha no SACCPC [Grimm, 2003]
Definição do Problema Manter um sistema confiável. Evitar danos catastróficos. Detectar e antecipar a ocorrência de uma falha Detectar no projeto e diminuir ou eliminar o efeito das falhas Manter o sistema funcionando mesmo na ocorrência de falhas
Metodologia Aplicar técnicas de redundância em HW e SW Utilizar as árvores de análise de falhas para determinar uma auto-verificação Utilizar redundâncias heterogêneas para que tenha um custo reduzido ao cliente final
Árvore de Análise de Falhas (Caso Número 2)
Arquitetura Inicial
Arquitetura com Software com Implementações Diferentes
Arquitetura Auto-Verificável
Arquitetura com Redundância dos Sensores/Atuadores
Arquitetura com Redundância da ECU
Arquitetura Final Softwares com Implementações Diferentes Auto-Verificação Redundância de Sensores Redundância de Atuadores Redundância da ECU
Referências 1/4 ISERMANN, R.; Fault-Diagnosis Systems: An Introduction from Fault Detection to Fault Tolerance. Springer, 2006. MANZONE, A.; PINCETTI, A; COSTANTINI, D.; Fault Tolerant Automotive Systems: Na Overview. Centro Ricerche FIAT, Sistemi Elettronici. Torino, Italy. 2001. NASA, Preferred Reliability Practices; Fault Tolerant Design. Practice No. PD-ED-1246, September 21, 1995. Page 1 of 4. TORIN, J.; Dependability in complex automotive systems — Requirements directions and Drivers: Rapport PROMETHEUS, Chalmers University of Technology Göteborg, September 1992. ZANONI, E.; PAVAN, P.: Improving the reliability and safety of automotive electronics, IEEE Micro, pp. 30-48, February 1993.
Referências 2/4 Ziegler, C., Powell, D., and Desroches, P. 1994 Dependability of On-Board Automotive Computer Systems. Technical Report. UMI Order Number: LAAS-CNRS#94341., University of Bologna. Grimm, K.; Software Technology in an Automotive Company – Major Challenges. DaimlerChrysler AG, Research and Technology, Berlin, Germany, 2003. Zanoni, E. & Pavan, P.; Improving the Reliability and Safety of Automotive Electronics. University of Padua, 1993. Inacio, C.; Software Fault Tolerance. http://www.ece.cmu.edu/~koopman/des_s99/sw_fault_tolerance/ Acesso em 2010-05-30.
Referências 3/4 Martins, E.; Dependabilidade e Resiliência. Notas de Aula, 2008. http://lampiao.ic.unicamp.br/weblectures/slideview.php?lectureId=351, Acessado em 2010-05-19. De Florio, V.; Blondia, C.; A Survey of Linguistic Structures for Application-Level Fault Tolerance. ACM Computing Surveys (CSUR). 2008, Vol. 40, 2. Dusso, P. M.; FUNDAMENTOS DE TOLERÂNCIA A FALHAS. http://www.inf.ufrgs.br/~pmdusso/works/Fundamentos_Tolerancia_Falhas.htm, Acessado em 2010-05-30 Randell, B.; System Structure for Software Fault Tolerance. In Proceedings of the international Conference on Reliable Software (Los Angeles, California, April 21 - 23, 1975). ACM, New York, NY, 437-449. DOI= http://doi.acm.org/10.1145/800027.808467
Referências 4/4 Ziegler, C.; Powell, D.; Desroches.; Dependability of On-Board Automotive Computer Systems. Technical Report. UMI Order Number: LAAS-CNRS#94341., University of Bologna. Ermagan, V.; Mizutani, J.; Oguchi, K.; and Weir.; Towards Model-Based Failure-Management for Automotive Software. In Proceedings of the 4th international Workshop on Software Engineering For Automotive Systems (May 20 - 26, 2007). International Conference on Software Engineering. IEEE Computer Society, Washington, DC, 8. DOI= http://dx.doi.org/10.1109/SEAS.2007.10
Dúvidas? Perguntas?