Skip to main content
Log in

Deadlock analysis in networks of communicating processes

  • Published:
Distributed Computing Aims and scope Submit manuscript

Abstract

We use the failures model of CSP to describe the behaviour of a class of networks of communicating processes. This model is well suited to reasoning about the deadlock potential of networks. We introduce a number of simple conditions on networks which aid deadlock analysis either by localizing the analysis required for a proof of deadlock-freedom or by restricting the circumstances in which deadlock could occur. In particular, we formulate some simple theorems which characterize the states in which deadlock can occur, and use them to prove some theorems on the absence of global deadlock in systems. We identify a special class of unidirectional networks and develop specialized results on their deadlock-freedom. We develop more general methods based on (at most) pairwise local deadlock analysis in networks, applicable to the large class of conflict-free networks. We introduce a methodology for proving deadlock-freedom in a large network by decomposing it into subnetworks which can be analysed separately. A variety of examples is given to show the utility of these results. We compare our work with earlier work by several other authors, and make some suggestions for future research.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Apt KR: A static analysis of CSP programs. In: Clarke EM, Kozen D (ed) Logics of programs, Proceedings. Lect Notes Comput Sci, vol 164. Springer, Berlin Heidelberg New York 1983, pp 1–17

    Google Scholar 

  2. Apt KR: Logics and models of concurrent systems. NATO ASI Ser, Ser F, vol 13. Springer, Berlin Heidelberg New York 1985

    Google Scholar 

  3. Apt KR, Francez N, de Roever WP: A proof system for communicating sequential processes. ACM TOPLAS 2(3): 359–385 (1980)

    Google Scholar 

  4. Brookes SD, Hoare CAR, Roscoe AW: A theory of communicating sequential process. JACM (July 1984)

  5. Brookes SD, Roscoe AW: An improved failures model for communicating processes. Proc. NSF-SERC Seminar on Concurrency. Lect Notes Comput Sci, vol 197. Springer, Berlin Heidelberg New York 1985, pp 281–300

    Google Scholar 

  6. Brookes SD, Roscoe AW: Deadlock analysis in networks of processes. NATO ASI Ser, Ser F, vol 13. Springer, Berlin Heidelberg New York 1985, pp 305–323

    Google Scholar 

  7. Browne MC, Clarke EM, Grumberg O: Reasoning about networks with many identical processes. Inf: Comput 81(1): 13–31 (1989)

    Google Scholar 

  8. Burch JR, Clarke EM, Dill DL, Hwang LJ: Symbolic model checking: 1020 states and beyond. Proc. 5th IEEE Annual Symposium on Logic in Computer Science. IEEE Press (June 1990)

  9. Chandy KM, Misra J: Deadlock absence proofs for networks of communicating processes. Inf Process Lett 9(4): 185–189 (1979)

    Google Scholar 

  10. Dathi N: Deadlock and deadlock-freedom. D. Phil. thesis, Oxford University (1989)

  11. Dijkstra EW, Scholten CS: A class of simple communication patterns, EwD643. In: Dijkstra EW (ed) Selected writings on computing. Springer, Berlin Heidelberg New York 1982, pp 334–337

    Google Scholar 

  12. Dijkstra EW: Invariance and non-determinacy. In: Hoare CAR, Shepherdson JC (eds) Mathematical logic and programming languages. Prentice-Hall, Englewood Cliffs, NJ, 1985, pp 157–165

    Google Scholar 

  13. Dijkstra EW: Guarded commands, non-determinacy, and formal derivation of programs. CACM 18(8): 453–457 (1975)

    Google Scholar 

  14. German S, Sistla AP: Reasoning about systems with many processes. In: Proc 2nd IEEE Symp on Logic in Computer Science, Ithaca, New York 1987, pp 138–152

  15. Hoare CAR: Communicating sequential processes. CACM 21(8): 666–677 (1978)

    Google Scholar 

  16. Hoare CAR: Communicating sequential processes. Prentice-Hall, Englewood Cliffs, NJ, 1985

    Google Scholar 

  17. Holt RC: Some deadlock properties of computer systems. ACM Comput Surv 4(3): 179–196 (1972)

    Google Scholar 

  18. INMOS Ltd.: The occam programming manual. Prentice-Hall, Englewood Cliffs, NJ, 1984

    Google Scholar 

  19. Kurshan RP, McMillan K: A structural induction theorem for processes. Proc. 8th ACM Symp on Principles of Distributed Computing, Edmonton (1989)

  20. Milne G, Milner R: Concurrent processes and their syntax. JACM 26(2): 302–321 (1979)

    Google Scholar 

  21. Peterson J, Silberschatz A: Operating system concepts. Addison Wesley, Reading, Mass, 1983

    Google Scholar 

  22. Reisig W: Deterministic buffer synchronization of sequential processes. Acta Inf 18: 117–134 (1982)

    Google Scholar 

  23. Roscoe AW: A mathematical theory of communicating processes. D. Phil. thesis, Oxford University (1982)

  24. Roscoe AW: Routing messages through networks: an exercise in deadlock avoidance. Proceedings of OUGTM7, Grenoble 1987, published by IMAG.

  25. Roscoe AW, Dathi N: The pursuit of deadlock freedom. Inf Comput 75(3): 289–327 (1987)

    Google Scholar 

  26. Wolper P, Lovinfosse V: Verifying properties of large sets of processes with network invariants. In: Sifakis J (ed) Proceedings of 1st Workshop on Automated Verification Methods for Finite State Systems. Lect Notes Comput Sci, vol 407, Springer, Berlin Heidelberg New York 1989, pp 68–80

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

S.D. Brookes received a B.A. in mathematics (1978) and a D.Phil. in computer science (1983), both from Oxford University. His D. Phil supervisor was C.A.R. Hoare. He moved to Carnegie Mellon University in 1981, initially as a Research Computer Scientist and then (1984–1990) as an Assistant Professor in the School of Computer Science at CMU. He is currently an Associate Professor of Computer Science at CMU. His research interests include the mathematical foundations of programming languages, the theory of parallel and sequential computation, programming methodology, programming language design, and the development of semantically based logics for reasoning about program behavior.

A.W. Roscoe received a B.A. in mathematics (1978) and a D.Phil. in computer science (1982), both from Oxford University. His D. Phil supervisor was C.A.R. Hoare. He was formerly a Junior Research Fellow at St Edmund Hall, Oxford (1980–1982) and the IBM Research Fellow of the Royal Society (1982–1983). Since 1983 he has been a University Lecturer in Computation at Oxford and a Fellow of University College. His research interests include the theory of parallel computing and its applications (e.g., to VLSI design), domain theory, distributed databases, general topology and the theory of image processing.

This research was supported in part by funds from the Computer Science Department of Carnegie Mellon University, and by the Defense Advanced Research Projects Agency (DOD), ARPA Order No. 4976, monitored by the Air Force Avionics Laboratory under Contract F33615-87-C-1499. A.W. Roscoe gratefully acknowledges support by ONR Grant N00014-87-G-0242. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the offical policies, either expressed or implied, of the Defense Advanced Research Projects Agency or the US Government.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Brookes, S.D., Roscoe, A.W. Deadlock analysis in networks of communicating processes. Distrib Comput 4, 209–230 (1991). https://doi.org/10.1007/BF01784721

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01784721

Key words

Navigation