Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM

Detalhes bibliográficos
Autor(a) principal: Parizi, Rafael Baldiati
Data de Publicação: 2013
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFRGS
Texto Completo: http://hdl.handle.net/10183/72923
Resumo: Técnicas de prevenção de falhas como testes e verificação de software não são suficientes para prover dependabilidade a sistemas, visto que não são capazes de tratar falhas ocasionadas por eventos externos tais como falhas transientes. Nessas situações faz-se necessária a aplicação de técnicas capazes de tratar e tolerar falhas que ocorram durante a execução do software. Grande parte das técnicas de tolerância a falhas transientes está focada na detecção e correção de erros de fluxo de controle, que podem corresponder a até 70% de erros causados por esse tipo de falha. Essas técnicas tratam as falhas em nível de software, alterando o programa com a inserção de novas instruções que devem capturar e corrigir desvios inesperados ocorridos durante a execução do software, sendo ACCE uma das técnicas mais conhecidas. Neste trabalho foi feita uma implementação da técnica ACCE através da criação de um passo de transformação de programas para a infraestrutura de compilação LLVM. ACCE atua sobre a linguagem intermediária dos programas compilados com o LLVM, resultando em portabilidade de linguagem de programação e de arquitetura de máquina. Além da implementação da técnica como um passo de transformação, o LLVM foi utilizado para a realização dos experimentos para avaliar o impacto na eficácia de ACCE quando aplicada em programas previamente otimizados por outras transformações. Esse tipo de avaliação é fundamental uma vez que dificilmente a compilação de programas é feita sem a ativação de otimizações, e, até onde sabemos, nunca havia sido feito anteriormente. Os experimentos deste trabalho foram realizados através de baterias de injeção de falhas em programas da suíte de benchmarks Mibench, divididas em diferentes cenários, que avaliaram ACCE em termos de correção de falhas, quando aplicada em programas otimizados por transformações individuais e também por combinações de transformações. Os resultados dos experimentos realizados mostram que a técnica ACCE é eficaz na correção de falhas, porém, para alguns programas otimizados por determinadas transformações, houve redução na correção de falhas. Esse trabalho analisa os experimentos nos quais houve redução da eficácia de ACCE e aponta possíveis causas.
id URGS_7fd79cb3c5745fd47244741bc5210ba0
oai_identifier_str oai:www.lume.ufrgs.br:10183/72923
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str 1853
spelling Parizi, Rafael BaldiatiMoreira, Alvaro FreitasCarro, Luigi2013-07-02T01:43:40Z2013http://hdl.handle.net/10183/72923000891172Técnicas de prevenção de falhas como testes e verificação de software não são suficientes para prover dependabilidade a sistemas, visto que não são capazes de tratar falhas ocasionadas por eventos externos tais como falhas transientes. Nessas situações faz-se necessária a aplicação de técnicas capazes de tratar e tolerar falhas que ocorram durante a execução do software. Grande parte das técnicas de tolerância a falhas transientes está focada na detecção e correção de erros de fluxo de controle, que podem corresponder a até 70% de erros causados por esse tipo de falha. Essas técnicas tratam as falhas em nível de software, alterando o programa com a inserção de novas instruções que devem capturar e corrigir desvios inesperados ocorridos durante a execução do software, sendo ACCE uma das técnicas mais conhecidas. Neste trabalho foi feita uma implementação da técnica ACCE através da criação de um passo de transformação de programas para a infraestrutura de compilação LLVM. ACCE atua sobre a linguagem intermediária dos programas compilados com o LLVM, resultando em portabilidade de linguagem de programação e de arquitetura de máquina. Além da implementação da técnica como um passo de transformação, o LLVM foi utilizado para a realização dos experimentos para avaliar o impacto na eficácia de ACCE quando aplicada em programas previamente otimizados por outras transformações. Esse tipo de avaliação é fundamental uma vez que dificilmente a compilação de programas é feita sem a ativação de otimizações, e, até onde sabemos, nunca havia sido feito anteriormente. Os experimentos deste trabalho foram realizados através de baterias de injeção de falhas em programas da suíte de benchmarks Mibench, divididas em diferentes cenários, que avaliaram ACCE em termos de correção de falhas, quando aplicada em programas otimizados por transformações individuais e também por combinações de transformações. Os resultados dos experimentos realizados mostram que a técnica ACCE é eficaz na correção de falhas, porém, para alguns programas otimizados por determinadas transformações, houve redução na correção de falhas. Esse trabalho analisa os experimentos nos quais houve redução da eficácia de ACCE e aponta possíveis causas.Computer-based systems are used in several eletronic devices that are, in many cases, responsable by the execution of critical tasks. There are situations where techniques of prevention against faults such as software validation and verification, can not be sufficient for ensuring acceptable rates of confiability, because they are not capable of treating faults that occur in execution time, such as transient faults. Most of the fault tolerance techniques for transient faults are focused in detection and correction of control flow errors, that can correspond to 70% errors caused by this kind of faults. These techniques treat the faults at software level, changing the program with the insertion of new instructions that must to capture and to correct illegal jumps occurred during the software execution, being ACCE the most known technique today. In this work an implementation of the ACCE technique was developed as a program transformation pass in the LLVM compiler infraestructurre. ACCE acts over the intermediate language of LLVM, which results in both programming language and machine architecture language portabilities. Besides the implemetation of the technique like a transformation pass, the LLVM was also used in the experiments for the avaliation of impact in the ACCE eficacy when it is applied into programs previously optimized by others compiler transformations. This evaluation is essential since hardly the compilation of programs is made without the activation of other optimizations. As far as we know this kind of evaluation has never beem made before. The experimental results show that the ACCE techinque is effective in the fault correction, but for some programs optimized by specific transformations, there was a reduction in the correction rate. This work analyses these experiments and gives an explanation for what causes a reduction in the effectiveness of ACCE.application/pdfporTolerancia : FalhasTestes : SoftwareFault toleranceControl-flow errorsACCELLVMImplementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVMImplementation and evaluation of the ACCE technique to detection and correction of control flow errors in the LLVM info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2013mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000891172.pdf000891172.pdfTexto completoapplication/pdf3049569http://www.lume.ufrgs.br/bitstream/10183/72923/1/000891172.pdf2b9f1b17b4536134a3ee783d91170d5fMD51TEXT000891172.pdf.txt000891172.pdf.txtExtracted Texttext/plain251009http://www.lume.ufrgs.br/bitstream/10183/72923/2/000891172.pdf.txt9603bdf4d762734b05e63cbcdfa187c7MD52THUMBNAIL000891172.pdf.jpg000891172.pdf.jpgGenerated Thumbnailimage/jpeg1096http://www.lume.ufrgs.br/bitstream/10183/72923/3/000891172.pdf.jpg6fe4c18e7635eae5c08fa8b04d368d70MD5310183/729232018-10-15 08:05:00.968oai:www.lume.ufrgs.br:10183/72923Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532018-10-15T11:05Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM
dc.title.alternative.en.fl_str_mv Implementation and evaluation of the ACCE technique to detection and correction of control flow errors in the LLVM
title Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM
spellingShingle Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM
Parizi, Rafael Baldiati
Tolerancia : Falhas
Testes : Software
Fault tolerance
Control-flow errors
ACCE
LLVM
title_short Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM
title_full Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM
title_fullStr Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM
title_full_unstemmed Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM
title_sort Implementação e avaliação da técnica ACCE para detecção e correção de erros de fluxo de controle no LLVM
author Parizi, Rafael Baldiati
author_facet Parizi, Rafael Baldiati
author_role author
dc.contributor.author.fl_str_mv Parizi, Rafael Baldiati
dc.contributor.advisor1.fl_str_mv Moreira, Alvaro Freitas
dc.contributor.advisor-co1.fl_str_mv Carro, Luigi
contributor_str_mv Moreira, Alvaro Freitas
Carro, Luigi
dc.subject.por.fl_str_mv Tolerancia : Falhas
Testes : Software
topic Tolerancia : Falhas
Testes : Software
Fault tolerance
Control-flow errors
ACCE
LLVM
dc.subject.eng.fl_str_mv Fault tolerance
Control-flow errors
ACCE
LLVM
description Técnicas de prevenção de falhas como testes e verificação de software não são suficientes para prover dependabilidade a sistemas, visto que não são capazes de tratar falhas ocasionadas por eventos externos tais como falhas transientes. Nessas situações faz-se necessária a aplicação de técnicas capazes de tratar e tolerar falhas que ocorram durante a execução do software. Grande parte das técnicas de tolerância a falhas transientes está focada na detecção e correção de erros de fluxo de controle, que podem corresponder a até 70% de erros causados por esse tipo de falha. Essas técnicas tratam as falhas em nível de software, alterando o programa com a inserção de novas instruções que devem capturar e corrigir desvios inesperados ocorridos durante a execução do software, sendo ACCE uma das técnicas mais conhecidas. Neste trabalho foi feita uma implementação da técnica ACCE através da criação de um passo de transformação de programas para a infraestrutura de compilação LLVM. ACCE atua sobre a linguagem intermediária dos programas compilados com o LLVM, resultando em portabilidade de linguagem de programação e de arquitetura de máquina. Além da implementação da técnica como um passo de transformação, o LLVM foi utilizado para a realização dos experimentos para avaliar o impacto na eficácia de ACCE quando aplicada em programas previamente otimizados por outras transformações. Esse tipo de avaliação é fundamental uma vez que dificilmente a compilação de programas é feita sem a ativação de otimizações, e, até onde sabemos, nunca havia sido feito anteriormente. Os experimentos deste trabalho foram realizados através de baterias de injeção de falhas em programas da suíte de benchmarks Mibench, divididas em diferentes cenários, que avaliaram ACCE em termos de correção de falhas, quando aplicada em programas otimizados por transformações individuais e também por combinações de transformações. Os resultados dos experimentos realizados mostram que a técnica ACCE é eficaz na correção de falhas, porém, para alguns programas otimizados por determinadas transformações, houve redução na correção de falhas. Esse trabalho analisa os experimentos nos quais houve redução da eficácia de ACCE e aponta possíveis causas.
publishDate 2013
dc.date.accessioned.fl_str_mv 2013-07-02T01:43:40Z
dc.date.issued.fl_str_mv 2013
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/72923
dc.identifier.nrb.pt_BR.fl_str_mv 000891172
url http://hdl.handle.net/10183/72923
identifier_str_mv 000891172
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/72923/1/000891172.pdf
http://www.lume.ufrgs.br/bitstream/10183/72923/2/000891172.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/72923/3/000891172.pdf.jpg
bitstream.checksum.fl_str_mv 2b9f1b17b4536134a3ee783d91170d5f
9603bdf4d762734b05e63cbcdfa187c7
6fe4c18e7635eae5c08fa8b04d368d70
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1810085261118275584