Synthesis of concurrent systems with many similar processes

Methods for synthesizing concurrent programs from temporal logicspecifications based on the use of a decision procedure for testingtemporal satisfiability have been proposed by Emerson and Clarkeand by Manna and Wolper. An important advantage of these synthesis methods is that they obviate the need to manually compose a program and manually construct a proof of its correctness. One only has to formulate a precise problem specification; the synthesis method then mechanically constructs acorrect solution. A serious drawback of these methods in practice,however, is that they suffer from the state explosion problem. Tosynthesize a concurrent system consisting of K sequential processes, each having N states in its local transition diagram, requiresconstruction of the global product-machine having about NKglobal states in general. This exponential growth in K makes it infeasible to synthesize systems composed of more than 2 or 3processes. In this article, we show how to synthesize concurrentsystems consisting of many (i.e., a finite but arbitrarily largenumber K of) similar sequential processes. Our approach avoids construction of the global product-machine for K processes; instead, it constructs a two-process product-machine for a single pair of generic sequential processes. The method is uniform in K, providing a simple template that can be instantiated for each process to yield a solution for any fixed K. The method is also illustrated on synchronization problems from the literature.

[1]  Edmund M. Clarke,et al.  Compositional model checking , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[2]  Edsger W. Dijkstra,et al.  Selected Writings on Computing: A personal Perspective , 1982, Texts and Monographs in Computer Science.

[3]  Zohar Manna,et al.  Realizability and Synthesis of Reactive Modules , 1994, CAV.

[4]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[5]  Jai Srinivasan,et al.  Efficient Temporal Reasoning. , 1989, POPL 1989.

[6]  A. J. M. van Gasteren,et al.  Derivation of a Termination Detection Algorithm for Distributed Computations , 1983, Inf. Process. Lett..

[7]  Edmund M. Clarke,et al.  Automatic Verification of Sequential Circuits Using Temporal Logic , 1986, IEEE Transactions on Computers.

[8]  Amir Pnueli,et al.  On the Synthesis of an Asynchronous Reactive Module , 1989, ICALP.

[9]  Edmund M. Clarke Automatic Verification of Sequential Circuit Designs , 1993, CHDL.

[10]  Greg Nelson,et al.  A generalization of Dijkstra's calculus , 1989, ACM Trans. Program. Lang. Syst..

[11]  Lutz Priese,et al.  Fairness , 1988, Bull. EATCS.

[12]  E. Emerson,et al.  Modalities for model checking (extended abstract): branching time strikes back , 1985, ACM-SIGACT Symposium on Principles of Programming Languages.

[13]  Ralph-Johan Back,et al.  Distributed cooperation with action systems , 1988, TOPL.

[14]  Ralph-Johan Back,et al.  Decentralization of process nets with centralized control , 1983, PODC '83.

[15]  Kenneth P. Birman,et al.  Performance of the ISIS Distributed Computing Toolkit , 1994 .

[16]  Johannes Klein Advanced rule driven transaction management , 1991, COMPCON Spring '91 Digest of Papers.

[17]  A. Prasad Sistla,et al.  Reasoning about systems with many processes , 1992, JACM.

[18]  Shmuel Katz Temporary stability in parallel programs , 1986 .

[19]  Somesh Jha,et al.  Exploiting symmetry in temporal logic model checking , 1993, Formal Methods Syst. Des..

[20]  Chin-Laung Lei,et al.  Modalities for Model Checking: Branching Time Logic Strikes Back , 1987, Sci. Comput. Program..

[21]  Nissim Francez,et al.  Script: A Communication Abstraction Mechanism and Its Verification , 1989, Science of Computer Programming.

[22]  Arthur Charlesworth,et al.  The multiway rendezvous , 1987, TOPL.

[23]  Ira R. Forman,et al.  Interacting processes: a multiparty approach to coordinated distributed programming , 1996 .

[24]  Amit P. Sheth,et al.  Specifying and Enforcing Intertask Dependencies , 1993, VLDB.

[25]  Edmund M. Clarke,et al.  Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons , 1982, Sci. Comput. Program..

[26]  E. A Emerson,et al.  Branching Time Logic Strikes Back , 1985 .

[27]  Edgar Knapp,et al.  Deadlock detection in distributed databases , 1987, CSUR.

[28]  Edmund M. Clarke,et al.  Characterizing Finite Kripke Structures in Propositional Temporal Logic , 1988, Theor. Comput. Sci..

[29]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[30]  Paul C. Attie Formal methods for the synthesis of concurrent programs from temporal logic specifications , 1995 .

[31]  E. Allen Emerson,et al.  Efficient temporal reasoning (extended abstract) , 1989, POPL '89.

[32]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[33]  Rajive L. Bagrodia,et al.  Process Synchronization: Design and Performance Evaluation of Distributed Algorithms , 1989, IEEE Trans. Software Eng..

[34]  A. Prasad Sistla,et al.  Symmetry and model checking , 1993, Formal Methods Syst. Des..

[35]  Edmund M. Clarke,et al.  Hierarchical Verification of Asynchronous Circuits Using Temporal Logic , 1985, Theor. Comput. Sci..

[36]  Edmund M. Clarke,et al.  Sequential circuit verification using symbolic model checking , 1991, DAC '90.

[37]  Edmund M. Clarke,et al.  Avoiding the state explosion problem in temporal logic model checking , 1987, PODC '87.

[38]  S. Ramesh,et al.  A Methodology for Developing Distributed Programs , 1987, IEEE Transactions on Software Engineering.

[39]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[40]  Pierre Wolper,et al.  Synthesis of Communicating Processes from Temporal Logic Specifications , 1981, TOPL.

[41]  Matthias Nussbaum Database Transaction Models for Advanced Applications , 1992 .

[42]  Nancy A. Lynch,et al.  Upper Bounds for Static Resource Allocation in a Distributed System , 1981, J. Comput. Syst. Sci..

[43]  Eugene Styer,et al.  Improved algorithms for distributed resource allocation , 1988, PODC '88.

[44]  Amit P. Sheth,et al.  Scheduling workflows by enforcing intertask dependencies , 1996, Distributed Syst. Eng..

[45]  R. Kurki-Suonio,et al.  Efficient Implementation of Multi-process Handshaking on Broadcasting Networks , 1989 .

[46]  Jean-Pierre Banâtre,et al.  Parallel Program Design , 1991, Research Directions in High-Level Parallel Programming Languages.

[47]  K. Mani Chandy,et al.  The drinking philosophers problem , 1984, ACM Trans. Program. Lang. Syst..

[48]  Amir Pnueli,et al.  On the synthesis of a reactive module , 1989, POPL '89.

[49]  E. Allen Emerson,et al.  A decidable temporal logic to reason about many processes , 1990, PODC '90.

[50]  Edmund M. Clarke,et al.  Reasoning about networks with many identical finite-state processes , 1986, PODC '86.