The application of supervisory control to deadlock avoidance in concurrent software

Ensuring deadlock-free execution of concurrent programs is a notoriously difficult problem, but an increasingly important one as multicore processors compel performance-conscious software developers to parallelize applications. We propose and validate a novel methodology for dynamically controlling the execution of concurrent software in order to provably avoid deadlocks. The methodology is based on supervisory control of discrete event systems modeled by Petri nets. Specifically, we synthesize feedback controllers for concurrent programs based on the theory of supervision based on place invariants and implement the controllers online to guarantee deadlock avoidance. We describe a full implementation of this methodology and report initial experimental results demonstrating its effectiveness and scalability.

[1]  MengChu Zhou,et al.  Control of Elementary and Dependent Siphons in Petri Nets and Their Application , 2008, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans.

[2]  Dieter Zöbel,et al.  Resolution techniques and complexity results with deadlocks: a classifying and annotated bibliography , 1988, OPSR.

[3]  Glen E. Newton Deadlock prevention, detection, and resolution: an annotated bibliography , 1979, OPSR.

[4]  Kang G. Shin,et al.  Adaptive control of virtualized resources in utility computing environments , 2007, EuroSys '07.

[5]  Yixin Diao,et al.  Feedback Control of Computing Systems , 2004 .

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

[7]  Alessandro Giua,et al.  A Survey of Petri Net Methods for Controlled Discrete Event Systems , 1997, Discret. Event Dyn. Syst..

[8]  Manuel Silva,et al.  A Simple and Fast Algorithm to Obtain All Invariants of a Generalized Petri Net , 1980, Selected Papers from the First and the Second European Workshop on Application and Theory of Petri Nets.

[9]  Xiao Ma,et al.  MUVI: automatically inferring multi-variable access correlations and detecting related semantic and concurrency bugs , 2007, SOSP.

[10]  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..

[11]  Manuel Costa,et al.  Bouncer: securing software by blocking bad input , 2008, WRAITS '08.

[12]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools (2nd Edition) , 2006 .

[13]  Peter J. Denning,et al.  Operating Systems Theory , 1973 .

[14]  Dawson R. Engler,et al.  RacerX: effective, static detection of race conditions and deadlocks , 2003, SOSP '03.

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

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

[17]  E. Mark Gold,et al.  Deadlock Prediction: Easy and Difficult Cases , 1978, SIAM J. Comput..

[18]  MengChu Zhou,et al.  Elementary siphons of Petri nets and their application to deadlock prevention in flexible manufacturing systems , 2004, IEEE Trans. Syst. Man Cybern. Part A.

[19]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[20]  James R. Larus,et al.  Transactional Memory (Synthesis Lectures on Computer Architecture) , 2007 .

[21]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[22]  Toshimi Minoura,et al.  Deadlock avoidance revisited , 1982, JACM.

[23]  Spyros A. Reveliotis,et al.  Generalized Algebraic Deadlock Avoidance Policies for Sequential Resource Allocation Systems , 2007, Proceedings 2007 IEEE International Conference on Robotics and Automation.

[24]  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).

[25]  Terence Kelly,et al.  Discrete control for safe execution of IT automation workflows , 2007, EuroSys '07.

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

[27]  Maher Lahmar Facility Logistics: Approaches and Solutions to Next Generation Challenges , 2007 .

[28]  A. Nico Habermann,et al.  Prevention of system deadlocks , 1969, CACM.

[29]  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.