Dependency Analysis for Control Flow Cycles in Reactive Communicating Processes

The execution of a reactive system amounts to the repetitions of executions of control flow cycles in the component processes of the system. The way in which cycle executions are combined is not arbitrary since cycles may depend on or exclude one another. We believe that the information of such dependencies is important to the design, understanding, and verification of reactive systems. In this paper, we formally define the concept of a cycle dependency, and propose several static analysis methods to discover such dependencies. We have implemented several strategies for computing cycle dependencies and compared their performance with realistic models of considerable size. It is also shown how the detection of accurate dependencies is used to improve a livelock freedom analysis that we developed previously.

[1]  T. C. Nicholas Graham,et al.  Efficient distributed implementation of semi-replicated synchronous groupware , 1996, UIST '96.

[2]  Andreas Podelski,et al.  A Complete Method for the Synthesis of Linear Ranking Functions , 2004, VMCAI.

[3]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[4]  George S. Avrunin,et al.  Improving the Precision of INCA by Eliminating Solutions with Spurious Cycles , 2002, IEEE Trans. Software Eng..

[5]  Wei Wei,et al.  A Livelock Freedom Analysis for Infinite State Asynchronous Reactive Systems , 2006, CONCUR.

[6]  Andreas Podelski,et al.  Abstraction Refinement for Termination , 2005, SAS.

[7]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[8]  Henny B. Sipma,et al.  Termination of Polynomial Programs , 2005, VMCAI.

[9]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[10]  Daniel Brand,et al.  On Communicating Finite-State Machines , 1983, JACM.

[11]  Radek Pelánek,et al.  BEEM: Benchmarks for Explicit Model Checkers , 2007, SPIN.

[12]  Wei Wei,et al.  Counterexample-Based Refinement for a Boundedness Test for CFSM Languages , 2005, SPIN.

[13]  Patrick Cousot,et al.  Proving Program Invariance and Termination by Parametric Abstraction, Lagrangian Relaxation and Semidefinite Programming , 2005, VMCAI.

[14]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[15]  Gerard J. Holzmann,et al.  Software Tools for Technology Transfer Manuscript No. Fighting Livelock in the Gnu I-protocol: a Case Study in Explicit-state Model Checking , 2022 .

[16]  Stefan Leue,et al.  Formalization and validation of the General Inter-ORB Protocol (GIOP) using PROMELA and SPIN , 2000, International Journal on Software Tools for Technology Transfer.

[17]  J. M. Troya,et al.  Modelling and Verification of the ITU-T Multipoint Communication Service with SPIN , 1996 .

[18]  George S. Avrunin,et al.  A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel , 1998, SIGSOFT '98/FSE-6.

[19]  Lynette I. Millett,et al.  Issues in slicing PROMELA and its applications to model checking, protocol understanding, and simulation , 2000, International Journal on Software Tools for Technology Transfer.

[20]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[21]  Matthew B. Dwyer,et al.  Slicing Software for Model Construction , 2000, High. Order Symb. Comput..

[22]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[23]  Wei Wei,et al.  A Scalable Incomplete Test for the Boundedness of UML RT Models , 2004, TACAS.

[24]  J. Rodriguez,et al.  Problem (1) , 1994 .

[25]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[26]  Christel Baier,et al.  CONCUR 2006 - Concurrency Theory, 17th International Conference, CONCUR 2006, Bonn, Germany, August 27-30, 2006, Proceedings , 2006, CONCUR.

[27]  Dean M. Tullsen,et al.  Compiling for instruction cache performance on a multithreaded architecture , 2002, MICRO.

[28]  Barbara G. Ryder,et al.  Non-concurrency analysis , 1993, PPOPP '93.

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