[pt] Alunos aprendendo programação concorrente muitas vezes têm dificuldades de testar seus programas por conta do não-determinismo presente no
escalonamento de threads. Em geral, é difícil testar cenários específicos e mais
difícil ainda repetir um determinado cenário para testar mudanças do código.
Nesta tese, apresentamos a EventManager: uma ferramenta que criamos para
permitir que um usuário instrumente seu programa, marcando eventos no código e especificando sequências de eventos através de uma linguagem de domínio específico (DSL). Esta linguagem restringe o escalonamento das threads
para que obedeça as sequências permitidas para estes eventos. Descrevemos a
implementação da EventManager para aplicações baseadas em threads POSIX.
Investigamos a aplicação da ferramenta em soluções de problemas clássicos de
concorrência para averiguar a expressividade da linguagem que criamos. / [en] Students learning concurrent programming often struggle with tests due
to the non-deterministic nature of thread scheduling. It is in general hard to
test specific scenarios and harder yet to repeat a given scenario for further
tests after changes to the code. In this thesis, we present EventManager: a
tool we developed that allows the user to instrument their program, marking
events in the code and specifying valid event sequences using a domainspecific language. This language restricts thread scheduling to obey allowed
sequences for these events. We describe the implementation of EventManager
for applications based on POSIX threads. We investigate our tool applied on
solutions of classical concurrency problems to verify the expressiveness of the
created language.
Identifer | oai:union.ndltd.org:puc-rio.br/oai:MAXWELL.puc-rio.br:60794 |
Date | 10 October 2022 |
Creators | ANNA LETICIA ALEGRIA P DE OLIVEIRA |
Contributors | ROBERTO IERUSALIMSCHY |
Publisher | MAXWELL |
Source Sets | PUC Rio |
Language | Portuguese |
Detected Language | Portuguese |
Type | TEXTO |
Page generated in 0.0019 seconds