Gadara nets: Modeling and analyzing lock allocation for deadlock avoidance in multithreaded software

Deadlock avoidance in shared-memory multithreaded programs is receiving increased attention as multicore architectures and parallel programming are becoming more prevalent. In our on-going project, called Gadara, the objective is to control the execution of multithreaded programs in order to avoid deadlocks by using techniques from discrete-event control theory. In this project, Petri nets are employed to model parallel programs. This paper formally defines the class of Petri nets that emerges from modeling multithreaded programs, called Gadara nets. Gadara nets are related to, but different from, other classes of nets that have been characterized in deadlock analysis of manufacturing systems. The contributions of this paper include: (i) formal definition of Gadara nets and of controlled Gadara nets; (ii) a behavioral analysis of Gadara nets for liveness and reversibility using siphons; and (iii) identification of a convexity-type property for the set of live markings.

[1]  Joaquín Ezpeleta,et al.  A Banker's solution for deadlock avoidance in FMS with flexible routing and multiresource states , 2002, IEEE Trans. Robotics Autom..

[2]  Yin Wang,et al.  Software failure avoidance using discrete control theory , 2009 .

[3]  Panos J. Antsaklis,et al.  Supervisory Control of Discrete Event Systems Using Petri Nets , 1998, The International Series on Discrete Event Dynamic Systems.

[4]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[5]  Alessandro Giua,et al.  Generalized mutual exclusion contraints on nets with uncontrollable transitions , 1992, [Proceedings] 1992 IEEE International Conference on Systems, Man, and Cybernetics.

[6]  Spyros Reveliotis Real-time management of resource allocation systems : a discrete event systems approach , 2004 .

[7]  Scott A. Mahlke,et al.  Gadara: Dynamic Deadlock Avoidance for Multithreaded Programs , 2008, OSDI.

[8]  Tadao Murata,et al.  Detection of Ada Static Deadlocks Using Petri Net Invariants , 1989, IEEE Trans. Software Eng..

[9]  Javier Martínez,et al.  A Petri net based deadlock prevention policy for flexible manufacturing systems , 1995, IEEE Trans. Robotics Autom..

[10]  MengChu Zhou,et al.  A Survey and Comparison of Petri Net-Based Deadlock Prevention Policies for Flexible Manufacturing Systems , 2008, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[11]  Jonghun Park,et al.  Liveness-enforcing supervision for resource allocation systems with uncontrollable behavior and forbidden states , 2002, IEEE Trans. Robotics Autom..

[12]  Panos J. Antsaklis,et al.  Supervisory Control of Concurrent Systems: A Petri Net Structural Approach (M.V. Iordache and P.J. Antsaklis; 2008) [Book reviews] , 2006, IEEE Transactions on Automatic Control.

[13]  Yin Wang,et al.  The application of supervisory control to deadlock avoidance in concurrent software , 2008, 2008 9th International Workshop on Discrete Event Systems.

[14]  Xiaolan Xie,et al.  Modeling and analysis of semiconductor manufacturing systems with degraded behavior using Petri nets and siphons , 2001, Proceedings 2001 ICRA. IEEE International Conference on Robotics and Automation (Cat. No.01CH37164).

[15]  Scott A. Mahlke,et al.  The theory of deadlock avoidance via discrete control , 2009, POPL '09.

[16]  Tadao Murata,et al.  An Application of Petri Net Reduction for Ada Tasking Deadlock Analysis , 1996, IEEE Trans. Parallel Distributed Syst..