May-Happen-in-Parallel Based Deadlock Analysis for Concurrent Objects

We present a novel deadlock analysis for concurrent objects based on the results inferred by a points-to analysis and a may-happen-in-parallel (MHP) analysis. Similarly to other analysis, we build a dependency graph such that the absence of cycles in the graph ensures deadlock freeness. An MHP analysis provides an over-approximation of the pairs of program points that may be running in parallel. The crux of the method is that the analysis integrates the MHP information within the dependency graph in order to discard unfeasible cycles that otherwise would lead to false positives. We argue that our analysis is more precise and/or efficient than previous proposals for deadlock analysis of concurrent objects. As regards accuracy, we are able to handle cases that other analyses have pointed out as challenges. As regards efficiency, the complexity of our deadlock analysis is polynomial.

[1]  Richard C. Holt,et al.  Some Deadlock Properties of Computer Systems , 1972, CSUR.

[2]  Frank S. de Boer,et al.  Termination detection for active objects , 2012, J. Log. Algebraic Methods Program..

[3]  David Gay,et al.  Effective static deadlock detection , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[4]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[5]  Frank S. de Boer,et al.  A Complete Guide to the Future , 2007, ESOP.

[6]  Mario Bravetti,et al.  A Petri Net Based Analysis of Deadlocks for Active Objects and Futures , 2012, FACS.

[7]  Barbara G. Ryder,et al.  Parameterized object sensitivity for points-to analysis for Java , 2005, TSEM.

[8]  Cosimo Laneve,et al.  Deadlock Analysis of Concurrent Objects: Theory and Practice , 2013, IFM.

[9]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[10]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.

[11]  Frank D. Valencia,et al.  Formal Methods for Components and Objects , 2002, Lecture Notes in Computer Science.

[12]  Kim G. Larsen,et al.  A modal specification theory for components with data , 2011, Sci. Comput. Program..

[13]  Martin Odersky,et al.  Scala Actors: Unifying thread-based and event-based programming , 2009, Theor. Comput. Sci..

[14]  Ondrej Lhoták,et al.  Pick your contexts well: understanding object-sensitivity , 2011, POPL '11.

[15]  Bjarne Steensgaard,et al.  Points-to analysis in almost linear time , 1996, POPL '96.

[16]  David Lee,et al.  Formal Techniques for Distributed Systems, Joint 11th IFIP WG 6.1 International Conference FMOODS 2009 and 29th IFIP WG 6.1 International Conference FORTE 2009, Lisboa, Portugal, June 9-12, 2009. Proceedings , 2009, FMOODS/FORTE.

[17]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[18]  Cosimo Laneve,et al.  Analysis of Deadlocks in Object Groups , 2011, FMOODS/FORTE.

[19]  Elvira Albert,et al.  Analysis of May-Happen-in-Parallel in Concurrent Objects , 2012, FMOODS/FORTE.

[20]  Barbara G. Ryder,et al.  A model of Ada programs for static deadlock detection in polynomial times , 1991, PADD '91.