Petri nets: an introduction
Detection of Ada Static Deadlocks Using Petri Net Invariants
IEEE Transactions on Software Engineering
Petri nets as discrete event models for supervisory control
Petri nets as discrete event models for supervisory control
Feedback control of Petri nets based on place invariants
Automatica (Journal of IFAC)
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Selected writings on computing: a personal perspective
Selected writings on computing: a personal perspective
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
Supervisory Control of Software Systems
IEEE Transactions on Computers
Software and the Concurrency Revolution
Queue - Multiprocessors
Rx: treating bugs as allergies---a safe method to survive software failures
Proceedings of the twentieth ACM symposium on Operating systems principles
Schedulability Analysis of Petri Nets Based on Structural Properties
ACSD '06 Proceedings of the Sixth International Conference on Application of Concurrency to System Design
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Supervisory Control of Concurrent Systems: A Petri Net Structural Approach (Systems & Control: Foundations & Applications)
Introduction to Discrete Event Systems
Introduction to Discrete Event Systems
Exterminator: automatically correcting memory errors with high probability
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Exterminator: Automatically correcting memory errors with high probability
Communications of the ACM - Surviving the data deluge
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
Deadlocks: From Exhibiting to Healing
Runtime Verification
CTrigger: exposing atomicity violation bugs from their hiding places
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
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
Software failure avoidance using discrete control theory
Software failure avoidance using discrete control theory
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
Finding and reproducing Heisenbugs in concurrent programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Gadara: dynamic deadlock avoidance for multithreaded programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews
Eliminating concurrency bugs in multithreaded software: an approach based on control of petri nets
PETRI NETS'13 Proceedings of the 34th international conference on Application and Theory of Petri Nets and Concurrency
Hi-index | 0.00 |
In this paper, we apply discrete-event system techniques to model and analyze the execution of concurrent software. The problem of interest is deadlock avoidance in shared-memory multithreaded programs. We employ Petri nets to systematically model multithreaded programs with lock acquisition and release operations. We define a new class of Petri nets, called Gadara nets, that arises from this modeling process. We investigate a set of important properties of Gadara nets, such as liveness, reversibility, and linear separability. We propose efficient algorithms for the verification of liveness of Gadara nets, and report experimental results on their performance. We also present modeling examples of real-world programs. The results in this paper lay the foundations for the development of effective control synthesis algorithms for Gadara nets.