Dissertação

Relaxed Logging for Replay of Multithreaded Applications EVALUATED

A banalização do uso de processadores com vários núcleos oferece novas oportunidades para explorar o paralelismo na programação. Infelizmente, a programação concorrente é uma tarefa inerentemente complexa, sendo frequente a ocorrência de erros no acesso a estruturas de dados partilhadas, erros estes que só se manisfestam quando ocorrem alguns encadeamentos (entremuitos) das instrucções das várias tarefas que se executam concurrentemente. Reproduzir o encadeamento exacto que manisfesta o erro pode ser uma tarefa muito complexa e morosa, sem a ajuda de ferramentas adequadas. Neste contexto, uma das principais técnicas para atingir esse objetivo é a que foi designada por gravação e reprodução, a qual consiste em gravar a informação necessária durante a execução de um programa para capturar o encadeamento que manifesta o erro, de forma a que execução falhada possa ser reproduzida mais tarde. Esta técnica resolve o problema de reprodução do erro, mas, infelizmente, em muitos casos acarreta uma diminuição substancial no desempenho da execução da aplicação, devido ao custo da tarefa de gravação. Esta dissertação apresenta um estudo das abordagens existentes para gravação e reprodução, reflete sobre as vantagens e limitações de cada sistema e propõe uma nova abordagem que tenta reduzir o custo de gravação, sem onerar em demasia o processo de reprodução. São apresentados resultados da avaliação de um protótipo desenvolvido para validar as ideias propostas.
gravação e reprodução, aplicações paralelas, erros de concurrência, depuração de código, ferramentas de software

Julho 1, 2015, 9:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Luís Eduardo Teixeira Rodrigues

Departamento de Engenharia Informática (DEI)

Professor Catedrático