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.
Identifer | oai:union.ndltd.org:TORONTO/oai:tspace.library.utoronto.ca:1807/18254 |
Date | 13 January 2010 |
Creators | Chew, Lee |
Contributors | Lie, David |
Source Sets | University of Toronto |
Language | en_ca |
Detected Language | English |
Type | Thesis |
Page generated in 0.0017 seconds