Thomas Ball, Sebastian Burckhardt, Katherine Coons, Madanlal Musuvathi, and Shaz Qadeer
April 2010
The choice of where a thread scheduling algorithm preempts
one thread in order to execute another is essential to reveal concurrency
errors such as atomicity violations, livelocks, and deadlocks. We present
a scheduling strategy called preemption sealing that controls where and
when a scheduler is disabled from preempting threads during program
execution. We demonstrate that this strategy is effective in addressing
two key problems in testing industrial-scale concurrent programs: (1)
tolerating existing errors in order to find more errors, and (2) composi-
tional testing of layered, concurrent systems. We evaluate the effective-
ness of preemption sealing, implemented in the Chess tool, for these two
scenarios on newly released concurrency libraries for Microsoft’s .NET
framework.
![]() PDF file |
In Conference on Tools and Algorithms for the Construction and Analysis of Systems
Publisher Springer Verlag
All copyrights reserved by Springer 2007.
| Type | Inproceedings |