Preemption Sealing for Efficient Concurrency Testing

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


PDF file

In  Conference on Tools and Algorithms for the Construction and Analysis of Systems

Publisher  Springer Verlag
All copyrights reserved by Springer 2007.


> Publications > Preemption Sealing for Efficient Concurrency Testing