Eliminating concurrency bugs in multithreaded software: an approach based on control of petri nets

Stéphane Lafortune,Yin Wang,Spyros Reveliotis
DOI: https://doi.org/10.1007/978-3-642-38697-8_2
2013-01-01
Abstract:We describe the Gadara project, a research effort whose goal is to eliminate certain classes of concurrency bugs in multithreaded software by controlling the execution of programs at run-time. The Gadara process involves three stages: modeling of the source code at compile time in the form of a Petri net, feedback control synthesis, and control logic implementation into the source code. The feedback control logic is synthesized using techniques from supervisory control of discrete event systems, where the specification captures the avoidance of certain types of concurrency bugs, such as deadlocks. We focus on the case of circular-wait deadlocks in multithreaded programs employing mutual exclusion locks for shared data. The application of the Gadara methodology to other classes of concurrency bugs is briefly discussed.
What problem does this paper attempt to address?