Aperfeiçoamento da biblioteca libRastro de geração de rastros de execução de programas
Abstract
Nos dias atuais, há uma grande demanda por poder de processamento. Para suprí-la,
é comum a utilização de máquinas com múltiplos processadores. É normal também a formação de sistemas distribuídos com múltiplas máquinas interligadas através de uma rede.
Para aproveitar completamente a capacidade de máquinas multiprocessadas utilizam-se
programas com vários fluxos de execução ou threads. O acompanhamento da execução
de programas em que várias partes executam ao mesmo tempo, em threads ou máquinas
diferentes, não é uma tarefa trivial. A geração de rastros de execução é uma técnica de monitoramento altamente aplicável para a depuração e análise de desempenho de aplicações multithread e distribuídas. A libRastro é uma biblioteca e um conjunto de ferramentas que servem para instrumentar programas para que gerem rastros de execução, possibilitando a visualização post-mortem de seu comportamento. Nesse tipo de ferramenta é desejável
um alto nível de precisão na datação de eventos e pouca modificação no comportamento
original do programa instrumentado. Esse trabalho descreve o aperfeiçoamento dessa
biblioteca, no que diz respeito à datação de eventos e à gerência de buffers de rastros.
Quanto à datação, é descrita a implementação de um mecanismo mais otimizado e preciso que o original. Já no que diz respeito aos buffers, foi implementado o uso de um buffer compartilhado entre as threads. Para isso utilizou-se uma instrução em nível de
montagem, que garante a exclusão mútua de maneira eficiente.
Collections
The following license files are associated with this item: