Return to search

A System for Detecting, Preventing and Exposing Atomicity Violations in Multithreaded Programs

Multi-core machines have become common and have led to an increase in multithreaded
software. In turn, the number of concurrency bugs has also increased. Such bugs are elusive and
remain difficult to solve, despite existing research. Thus, this thesis proposes a system which
detects, prevents and optionally helps expose concurrency bugs. Specifically, we focus on bugs
caused by atomicity violations, which occur when thread interleaving violates the programmer’s
assumption that a code section executes atomically. At compile-time, our system performs static
analysis to identify code sections where violations could occur. At run-time, we use debug
registers to monitor these sections for interleaving thread accesses which would cause a
violation. If detected, we undo their effects and thus prevent the violation. Optionally, we help
expose atomicity violations by perturbing thread scheduling during execution. Our results
demonstrate that the system is effective and imposes low overhead.
Date13 January 2010
CreatorsChew, Lee
ContributorsLie, David
Source SetsUniversity of Toronto
Detected LanguageEnglish

Page generated in 0.0155 seconds