Efficient deadlock detection for concurrent systems

Concurrent systems are prone to deadlocks that arise from competing access to shared resources and synchronization between the components. At the same time, concurrency leads to a dramatic increase of the possible state space due to interleavings of computations, which makes standard verification techniques often infeasible. Previous work has shown that approximating the state space of component based systems by computing invariants allows to verify much larger systems then standard methods that compute the exact state space. The approach comes with the drawback, though, that not all of the reported specification violations may be reachable in the system. This paper deals with that problem by combining the information from the invariant with model checking techniques and strategies for reducing the memory footprint. The approach is implemented as post processing step for generating the exact set of reachable specification violations along with traces to demonstrate the error.

[1]  Shuzo Yajima,et al.  The Complexity of the Optimal Variable Ordering Problems of Shared Binary Decision Diagrams , 1993, ISAAC.

[2]  Sofia Cassel,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 2012 .

[3]  Joël Ouaknine,et al.  Automated, compositional and iterative deadlock detection , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[4]  Olivier Coudert,et al.  Verifying Temporal Properties of Sequential Machines without Building Their State Diagrams , 1990, CAV.

[5]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[6]  Alan J. Hu,et al.  Reducing BDD Size by Exploiting Functional Dependencies , 1993, 30th ACM/IEEE Design Automation Conference.

[7]  Claudio Demartini,et al.  A deadlock detection tool for concurrent Java programs , 1999, Softw. Pract. Exp..

[8]  Ofer Strichman,et al.  Proof-guided underapproximation-widening for multi-process systems , 2005, POPL '05.

[9]  Joseph Sifakis,et al.  Structural Properties of Petri Nets , 1978, MFCS.

[10]  Pierre Wolper,et al.  Using partial orders for the efficient verification of deadlock freedom and safety properties , 1991, Formal Methods Syst. Des..

[11]  Joseph Sifakis,et al.  Compositional Verification for Component-Based Systems and Application , 2008, ATVA.

[12]  David Luckham,et al.  Debugging Ada Tasking Programs , 1985, IEEE Software.

[13]  Parosh Aziz Abdulla,et al.  Constrained Monotonic Abstraction: A CEGAR for Parameterized Verification , 2010, CONCUR.

[14]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[15]  Joseph Sifakis,et al.  Incremental component-based construction and verification using invariants , 2010, Formal Methods in Computer Aided Design.

[16]  Kavita Ravi,et al.  Hints to accelerate Symbolic Traversal , 1999, CHARME.

[17]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

[18]  Joseph Sifakis,et al.  Incremental Invariant Generation for Compositional Design , 2010, 2010 4th IEEE International Symposium on Theoretical Aspects of Software Engineering.

[19]  Alan J. Hu,et al.  New Techniques for Efficient Verification with Implicitly Conjoined BDDs , 1994, 31st Design Automation Conference.

[20]  Joseph Sifakis,et al.  The Algebra of Connectors - Structuring Interaction in BIP , 2008, IEEE Trans. Computers.

[21]  Joseph Sifakis,et al.  Modeling Heterogeneous Real-time Components in BIP , 2006, Fourth IEEE International Conference on Software Engineering and Formal Methods (SEFM'06).

[22]  Joseph Sifakis,et al.  D-Finder: A Tool for Compositional Deadlock Detection and Verification , 2009, CAV.

[23]  Sriram K. Rajamani,et al.  SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft , 2004, IFM.

[24]  Doron A. Peled,et al.  All from One, One for All: on Model Checking Using Representatives , 1993, CAV.

[25]  Fausto Giunchiglia,et al.  NUSMV: a new symbolic model checker , 2000, International Journal on Software Tools for Technology Transfer.

[26]  Joseph Sifakis,et al.  Incremental Component-Based Construction and Verification of a Robotic System , 2008, ECAI.

[27]  Pierre Wolper,et al.  Partial-Order Methods for Temporal Verification , 1993, CONCUR.

[28]  Joseph Sifakis,et al.  D-Finder 2: Towards Efficient Correctness of Incremental Design , 2011, NASA Formal Methods.

[29]  Yassine Lakhnech,et al.  Automatic Generation of Invariants , 1999, Formal Methods Syst. Des..

[30]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[31]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[32]  Joseph Sifakis,et al.  Source-to-source architecture transformation for performance optimization in BIP , 2009, 2009 IEEE International Symposium on Industrial Embedded Systems.