280 likes | 430 Views
S10b – Projeto – Tolerância a Falhas. MO409 – Engenharia de Software Anderson Talon / Marcelo Fontes. Agenda. Dependabilidade Tolerância à Falha TF - Hardware TF - Software TF - Árvore de Análise de Falhas SACCPC Arquitetura Referências. Garantir Dependabilidade [Martins,2008].
E N D
S10b – Projeto – Tolerância a Falhas MO409 – Engenharia de Software Anderson Talon / Marcelo Fontes
Agenda • Dependabilidade • Tolerância à Falha • 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çãode 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
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?