Static Analysis of Concurrent Programs Using Ordinary Differential Equations

Static analysis may cause state space explosion problem. In this paper we demonstrate how ordinary differential equations can be used to check the deadlocks and boundedness of the programs. We hope that our method can avoid explosion of state space entirely. A concurrent program is represented by a family of differential equations of a restricted type, where each equation describes the program state change. This family of equations are shown analytically to have a unique solution. Each program state is measured by a time-dependent function that indicates the extent to which the state can be reached in execution. It is shown that 1) a program deadlocks iff every state measure converges to either 0 or 1 as time increases. Thus instead of exploring states, the solution of a family of differential equations is analyzed. 2) a program is bounded iff every state measure converges to a bounded nonnegative number.

[1]  P. S. Thiagarajan,et al.  Petri Nets and Other Models of Concurrency - ICATPN 2006, 27th International Conference on Applications and Theory of Petri Nets and Other Models of Concurrency, Turku, Finland, June 26-30, 2006, Proceedings , 2006, ICATPN.

[2]  Azzedine Boukerche,et al.  A Distributed Graph Algorithm for the Detection of Local Cycles and Knots , 1998, IEEE Trans. Parallel Distributed Syst..

[3]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[4]  Lori A. Clarke,et al.  Task interaction graphs for concurrency analysis , 1989, ICSE '89.

[5]  Wolfgang Reisig,et al.  Weighted Synchronic Distances , 1980, Selected Papers from the First and the Second European Workshop on Application and Theory of Petri Nets.

[6]  Zbigniew M. Wójcik,et al.  Sufficient Condition for a Communication Deadlock and Distributed Deadlock Detection , 1989, IEEE Trans. Software Eng..

[7]  Raymond J. A. Buhr,et al.  Starvation and Critical Race Analyzers for Ada , 1990, IEEE Trans. Software Eng..

[8]  N. Natarajan,et al.  A distributed scheme for detecting communication deadlocks , 1986, IEEE Transactions on Software Engineering.

[9]  Francesco Tisato,et al.  Modeling the Ada Task System by Petri Nets , 1985, Comput. Lang..

[10]  Tadao Murata,et al.  Hierarchical Reachability Graph of Bounded Petri Nets for Concurrent-Software Analysis , 1994, IEEE Trans. Software Eng..

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

[12]  Elisa Bertino,et al.  PARALLEL AND DISTRIBUTED SYSTEMS , 2010 .

[13]  Ron Obermarck,et al.  Distributed deadlock detection algorithm , 1982, TODS.

[14]  George S. Avrunin,et al.  Applying static analysis to software architectures , 1997, ESEC '97/FSE-5.

[15]  Lori A. Clarke,et al.  A Compact Petri Net Representation and Its Implications for Analysis , 1996, IEEE Trans. Software Eng..

[16]  D. R. Smart Fixed Point Theorems , 1974 .

[17]  Lori A. Clarke,et al.  Data flow analysis for verifying properties of concurrent programs , 1994, SIGSOFT '94.

[18]  Jürg Nievergelt,et al.  Parallel methods for integrating ordinary differential equations , 1964, CACM.

[19]  Michael K. Molloy Fast Bounds for Stochastic Petri Nets , 1985, PNPM.

[20]  George S Pavlides,et al.  Distributed algorithm for communication deadlock detection , 1991 .

[21]  Neelam Soundarajan,et al.  Efficient distributed deadlock detection and resolution using probes, tokens, and barriers , 1997, Proceedings 1997 International Conference on Parallel and Distributed Systems.

[22]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[23]  Soojung Lee,et al.  Fast, Centralized Detection and Resolution of Distributed Deadlocks in the Generalized Model , 2004, IEEE Trans. Software Eng..

[24]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[25]  Jeffrey J. P. Tsai,et al.  An empirical evaluation of deadlock detection in software architecture specifications , 1999, Ann. Softw. Eng..

[26]  F. Krogh,et al.  Solving Ordinary Differential Equations , 2019, Programming for Computations - Python.

[27]  Sol M. Shatz,et al.  Application and experimental evaluation of state space reduction methods for deadlock analysis in Ada , 1994, TSEM.

[28]  Uri M. Ascher,et al.  Computer methods for ordinary differential equations and differential-algebraic equations , 1998 .

[29]  Kuo-Chung Tai,et al.  Deadlock analysis of synchronous message-passing programs , 1999, 1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems.

[30]  George S. Avrunin,et al.  Automated Analysis of Concurrent Systems With the Constrained Expression Toolset , 1991, IEEE Trans. Software Eng..

[31]  Jeffrey J. P. Tsai,et al.  Compositional verification of concurrent systems using Petri-net-based condensation rules , 1998, TOPL.

[32]  Scott A. Smolka,et al.  Data flow analysis of distributed communicating processes , 1990, International Journal of Parallel Programming.

[33]  Mukesh Singhal,et al.  Deadlock detection in distributed systems , 1989, Computer.

[34]  Edsger W. Dijkstra,et al.  Termination Detection for Diffusing Computations , 1980, Inf. Process. Lett..

[35]  Mordechai Ben-Ari,et al.  Principles of concurrent and distributed programming , 2005, PHI Series in computer science.

[36]  K. Mani Chandy,et al.  A Distributed Graph Algorithm: Knot Detection , 1982, TOPL.

[37]  Edmund M. Clarke,et al.  Representing circuits more efficiently in symbolic model checking , 1991, 28th ACM/IEEE Design Automation Conference.

[38]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[39]  Rami R. Razouk,et al.  Interactive State-Space Analysis of Concurrent Systems , 1987, IEEE Transactions on Software Engineering.

[40]  Antti Valmari A stubborn attack on state explosion , 1992, Formal Methods Syst. Des..

[41]  Barbara G. Ryder,et al.  Static Infinite Wait Anomaly Detection in Polynomial Time , 1990, ICPP.

[42]  Chinya V. Ravishankar,et al.  On-line detection and resolution of communication deadlocks , 1994, 1994 Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences.

[43]  James C. Corbett,et al.  Evaluating Deadlock Detection Methods for Concurrent Software , 1996, IEEE Trans. Software Eng..

[44]  Richard N. Taylor,et al.  A general-purpose algorithm for analyzing concurrent programs , 1983, CACM.

[45]  Marta Z. Kwiatkowska,et al.  Compositional State Space Reduction Using Untangled Actions , 2006, EXPRESS.

[46]  Jan Lunze,et al.  Hybrid modelling of continuous-variable systems with application to supervisory control , 1997, 1997 European Control Conference (ECC).

[47]  Raymond A. DeCarlo,et al.  Analysis of a hybrid system using symbolic dynamics and Petri Nets , 1994, Autom..

[48]  Sol M. Shatz,et al.  Design and Implementation of a Petri Net Based Toolkit for Ada Tasking Analysis , 1990, IEEE Trans. Parallel Distributed Syst..

[49]  Dushan Z. Badal The distributed deadlock detection algorithm , 1986, TOCS.

[50]  Edsger W. Dijkstra,et al.  Hierarchical ordering of sequential processes , 1971, Acta Informatica.

[51]  Richard N. Taylor,et al.  Integrated concurrency analysis in a software development enviornment , 1989 .

[52]  Zuohua Ding,et al.  A rigorous approach towards test case generation , 2008, Inf. Sci..

[53]  Patrice Godefroid,et al.  Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract) , 1993, CAV.

[54]  Michal Young,et al.  Compositional reachability analysis using process algebra , 1991, TAV4.

[55]  Laura M. Haas,et al.  Distributed deadlock detection , 1983, TOCS.

[56]  Shing-Tsaan Huang,et al.  A distributed deadlock detection algorithm for CSP-like communication , 1990, TOPL.

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

[58]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[59]  Monika Heiner,et al.  From Petri Nets to Differential Equations - An Integrative Approach for Biochemical Network Analysis , 2006, ICATPN.

[60]  Zuohua Ding,et al.  Performance Analysis of Service Composition Using Ordinary Differential Equations , 2008, 2008 12th IEEE International Workshop on Future Trends of Distributed Computing Systems.

[61]  Ernst Hairer,et al.  Solving Ordinary Differential Equations I: Nonstiff Problems , 2009 .

[62]  Bill Lin,et al.  Efficient compilation of process-based concurrent programs without run-time scheduling , 1998, Proceedings Design, Automation and Test in Europe.

[63]  Zuohua Ding,et al.  Performance Analysis of Concurrent Programs Using Ordinary Differential Equations , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[64]  E. Hairer,et al.  Solving ordinary differential equations I (2nd revised. ed.): nonstiff problems , 1993 .

[65]  George S. Avrunin,et al.  Using integer programming to verify general safety and liveness properties , 1995, Formal Methods Syst. Des..

[66]  Edmund M. Clarke,et al.  Model checking and abstraction , 1994, TOPL.

[67]  P. Hartman Ordinary Differential Equations , 1965 .

[68]  John A. Stankovic,et al.  Distributed deadlock detection in Ada run-time environments , 1990, TRI-Ada '90.

[69]  A. Prasad Sistla,et al.  SMC: A Symmetry Based Model Checker for Verification of Liveness Properties , 1997, CAV.

[70]  René David,et al.  Autonomous And Timed Continous Petri Nets , 1991, Applications and Theory of Petri Nets.

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