Use este identificador para citar ou linkar para este item: https://repositorio.ufms.br/handle/123456789/2073
Tipo: Dissertação
Título: Programação de microcontroladores utilizando técnicas de tolerância a falhas
Autor(es): Kruger, Kleber
Primeiro orientador: Iaione, Fábio
Abstract: Os sistemas embarcados abrangem uma grande quantidade de sistemas computacionais e suas aplicações estão cada vez mais presentes no cotidiano das pessoas, principalmente com a expansão da computação ubíqua. Por isso, a ocorrência de falhas nesses sistemas tendem a trazer cada vez mais transtornos e prejuízos financeiros. As falhas podem ocorrer devido aos bugs de software, ao envelhecimento dos componentes de hardware, `as interferências eletromagnéticas, e por conta de outros fenômenos no meio ambiente que afetam os dispositivos semicondutores. O uso de t´técnicas de tolerância a falhas aumentam a segurança, pois permite que sistemas continuem funcionando adequadamente após a ocorrência de falhas. Seu princípio básico consiste na redundância, que pode fornecida por meio de hardware, software, dados e processamento. No entanto, a utilização das t´técnicas de tolerância a falhas ´e frequente apenas em sistemas de alto risco e de grande porte. O objetivo deste trabalho foi implementar as t´técnicas de tolerância a falhas mais viáveis na programação de uma plataforma de prototipagem rápida com microcontroladores. Para avaliar o desempenho das t´técnicas foi desenvolvido um injetor de falhas por software, e utilizou-se um sistema de estação meteorológica como estudo de caso. Os testes simularam falhas nas leituras dos sensores e falhas nas regiões de memória (por meio da alteração dos dados de alguns endereços de memória) da estação meteorológica. Ao final, são descritos os resultados mostrando o desempenho do sistema tolerante a falhas em comparação com o sistema não tolerante. Embora o primeiro tenha aumentado levemente o consumo de energia, o tamanho do programa, o uso de memória e o tempo de processamento, o desempenho deste se mostrou eficiente, dado que a quantidade de defeitos diminuiu, principalmente nos testes que injetaram falhas nas leituras dos sensores. Em um teste que injetou 16 falhas na região de memória de dados do microcontrolador a cada ciclo de leitura da estação meteorológica, e 25% de falhas nas leituras dos sensores, o firmware sem tolerância a falhas apresentou uma taxa de ocorrências de defeitos de 98,61%, enquanto o firmware com tolerância a falhas apresentou 9,21%. Sem a injeção de falhas nas leituras dos sensores e com essa mesma quantidade de falhas injetadas na região de memória de dados, o primeiro apresentou 19,6% enquanto o segundo 4,45%. Como resultado deste trabalho, uma biblioteca para tolerância e recuperação de falhas, chamada FaultRecovery foi criada, a fim de facilitar e auxiliar por meio de um conjunto de classes e macros, a escrita de códigos com implementação de t´técnicas de tolerância a falhas. Além disso, ela disponibiliza uma estrutura pronta para a recuperação de falhas, baseada em uma maquina de estados.
ABSTRACT - Embedded computers cover a large amount of computational systems and its applications are increasingly present in daily life, particularly with the expansion of ubiquitous computing. Therefore, the occurrence of faults in these systems tends to bring increasingly disorders and financial losses. Faults can occur due to software bugs, aging hardware, electromagnetic interference and others environment phenomena that affect semiconductor devices. The use of fault tolerance techniques increases dependability, because it allows systems to continue functioning properly after the occurrence of faults. Its basic principle consists of redundancy, which may be of hardware, of software, data and processing. However, the use of fault tolerance techniques is frequent only in high risk and large systems. The aim of this study was to implement the fault tolerance techniques more viable in the programming of a rapid development platform with microcontrollers. To evaluate the performance of the techniques, it was developed a software fault injector, and it was used a weather station system as a study case. The tests simulated faults in the sensor readings and faults in memory regions (through changes of data at some addresses) of the weather station. Finally, the results showing the performance of the fault tolerant system in comparison with the non-fault tolerant system are described. Although the first one slightly increased the power consumption, the size of the program memory and the processing time, its performance showed to be efficient, since the number of failures decreased, especially in tests that injected faults in sensor readings. In a test that injected 16 faults in the microcontroller data memory region in each read cycle of the weather station, and 25% of faults in sensor readings, the firmware without fault tolerance showed a failure rate of 98,61%, while the firmware with fault tolerance presented 9,21%. Without the injection of faults in sensor readings and with the same number of faults injected into the data memory region, the first one showed 19,6% while the second one 4,45%. As a result of this work, a library for fault tolerance and recovery, named FaultRecovery was created, in order to facilitate and assist, through a set of classes and macros, the writing of code with implementations of fault tolerance techniques. Furthermore, it offers a structure, ready to the fault recovery, based on a state machine.
Palavras-chave: Microcontroladores
Falhas de Sistemas de Computação
Sistemas Embarcados (Computadores)
Microcontrollers
Computer System Failures
Embedded Computer Systems
Tipo de acesso: Acesso Aberto
URI: https://repositorio.ufms.br/handle/123456789/2073
Data do documento: 2014
Aparece nas coleções:Programa de Pós-graduação em Ciência da Computação

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
Kleber Kruger.pdf1,46 MBAdobe PDFThumbnail
Visualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.