Please use this identifier to cite or link to this item: http://hdl.handle.net/10923/3194
Type: masterThesis
Title: Monitoramento do fluxo de controle de processadores embarcados baseado em profiling de software
Author(s): Rocha, Cláudia Antunes
Advisor: Vargas, Fabian Luis
Publisher: Pontifícia Universidade Católica do Rio Grande do Sul
Graduate Program: Programa de Pós-Graduação em Engenharia Elétrica
Issue Date: 2007
Keywords: ENGENHARIA ELÉTRICA
SISTEMAS (COMPUTAÇÃO)
TEORIA DOS GRAFOS
SOFTWARE
FALHA DE SISTEMA (ENGENHARIA)
Abstract: In the recent years, the society observes with enthusiasm the rapid proliferation of a vast diversity of embedded systems targeted to safe-critical applications like health-care systems, telecommunication, automotive and aerospace. As a consequence, besides the need for low-cost components, mainly memory, it is also mandatory the use of more robustness hardware and software parts that integrate these systems. Among the possible types of faults, those that change the control-flow of the processors that carry out embedded applications are focused on this work. Very often, these types of faults induce in catastrophic system failure. By catastrophic failure, we mean those faults that in addition to drive the system to an unexpected behavior, it is also needed to reinitialize the system to recover from the faulty state. Thus, the use of techniques capable of detecting these types of faults prevents them from spreading through the system and ultimately, generating incorrect outputs. Unfortunately, the use of fault detection techniques increase memory overhead and degrades system performance. These collateral effects may be critical, preventing real-time embedded systems from attaining their goals. As possible solutions to the mentioned problems, three hypotheses were investigated, and one of them was implemented. Therefore, this work proposes an approach based on software profiling that analyses the control-flow graph of applications, to optimize the number of checkpoints to be inserted along with the application code. In order to validate the proposed approach, we performed fault injection of three types of faults: jump, nop and bit-flips. This fault injection process was accelerated by means of hardware prototyping of the system. In this case, we used a FPGA (Field-Programmable Gate Array) mounted on a Xilinx commercial board. Detailed analysis of the obtained results indicates that the proposed approach reduces the number of checkpoints to be inserted along with the application code, thus, minimizing memory overhead and system performance degradation, while maintaining approximately unchanged the fault detection coverage, when compared to another existing approaches in the literature.
Nos últimos anos, observa-se com grande euforia o crescimento do mercado de sistemas embarcados nas áreas econômico-sociais de grande importância, tais como a saúde, telecomunicações, automotiva e aeroespacial, entre outras. Como conseqüência, exige-se maior robustez tanto do hardware quanto do software integrante destes sistemas, além de componentes de baixo custo, principalmente memória. Dentre os tipos possíveis de falhas, as falhas que alteram o fluxo de controle de processadores que executam aplicações embarcadas, por implicarem em quase sempre em falhas catastróficas do sistema, são focadas nesta dissertação. Por falhas catastróficas, entende-se como sendo aquelas falhas que além de induzir o sistema a produzir um comportamento diferente daquele esperado para a sua função, implicam na maioria das vezes também na reinicialização do sistema como forma de recuperação da falha. Assim, a utilização de técnicas capazes de detectar estes tipos de falhas evita que as mesmas se propaguem pelo sistema e acabem gerando saídas incorretas, pois tais falhas podem ser catastróficas para a segurança dos usuários e para a imagem e reputação das empresas. Porém, a utilização de técnicas de detecção de falhas gera um aumento na taxa de ocupação de memória do sistema, bem como provoca aumento da degradação de desempenho, o que pode ser considerado um fator crítico tratando-se de aplicações embarcadas de tempo-real. Como alternativa para minimizar estes fatores, três hipóteses foram investigadas, sendo uma delas implementada. Assim, nesta dissertação propõe-se uma abordagem baseada em software profiling que analisa o grafo de fluxo de controle da aplicação, visando à otimização do número de assinaturas (checkpoints) a serem inseridas no código-fonte. Para validar a abordagem proposta, foi realizada por simulação a injeção de três tipos de falhas: jump, nop e bit-flip, sobre diferentes programas aplicativos. Este processo de injeção de falhas foi acelerado via prototipagem do sistema em hardware, através do uso de um FPGA (Field-Programmable Gate Array) em uma placa comercial da Xilinx. A análise dos resultados obtidos indica que a técnica proposta reduz o número de assinaturas inseridas no código da aplicação, e portanto, minimizando o overhead de memória e a degradação do desempenho do sistema, ao passo que mantém aproximadamente inalterado nível de cobertura de falhas quando comparada a outras técnicas atualmente existentes na literatura.
URI: http://hdl.handle.net/10923/3194
Appears in Collections:Dissertação e Tese

Files in This Item:
File Description SizeFormat 
000389987-Texto+Completo-0.pdfTexto Completo1,33 MBAdobe PDFOpen
View


All Items in PUCRS Repository are protected by copyright, with all rights reserved, and are licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Read more.