Supervisory control of a class of discrete event processes
SIAM Journal on Control and Optimization
Detection of Ada Static Deadlocks Using Petri Net Invariants
IEEE Transactions on Software Engineering
Supervisory Control of Discrete Event Systems Using Petri Nets
Supervisory Control of Discrete Event Systems Using Petri Nets
Modeling Multithreaded Applications Using Petri Nets
International Journal of Parallel Programming
RacerX: effective, static detection of race conditions and deadlocks
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Feedback Control of Computing Systems
Feedback Control of Computing Systems
Supervisory Control of Software Systems
IEEE Transactions on Computers
Schedulability Analysis of Petri Nets Based on Structural Properties
ACSD '06 Proceedings of the Sixth International Conference on Application of Concurrency to System Design
Discrete control for safe execution of IT automation workflows
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Generation of concurrency control code using discrete-event systems theory
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
The theory of deadlock avoidance via discrete control
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Case Study on Controller Synthesis for Data-Intensive Embedded Systems
ICESS '09 Proceedings of the 2009 International Conference on Embedded Software and Systems
Petri nets and programming: a survey
ACC'09 Proceedings of the 2009 conference on American Control Conference
Contracts for modular discrete controller synthesis
Proceedings of the ACM SIGPLAN/SIGBED 2010 conference on Languages, compilers, and tools for embedded systems
Concurrency control generation for dynamic threads using discrete-event systems
Allerton'09 Proceedings of the 47th annual Allerton conference on Communication, control, and computing
Gadara: dynamic deadlock avoidance for multithreaded programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Introduction to Discrete Event Systems
Introduction to Discrete Event Systems
IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews
Axis: automatically fixing atomicity violations through solving control constraints
Proceedings of the 34th International Conference on Software Engineering
Concurrency bugs in multithreaded software: modeling and analysis using Petri nets
Discrete Event Dynamic Systems
Practical lock/unlock pairing for concurrent programs
CGO '13 Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)
Hi-index | 0.00 |
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.