Skip to main content

Detecting deadlocks in concurrent systems

  • Conference paper
  • First Online:
CONCUR'98 Concurrency Theory (CONCUR 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1466))

Included in the following conference series:

Abstract

We study deadlocks using geometric methods based on generalized process graphs [Dij68], i.e., cubical complexes or Higher-Dimensional Automata (HDA) [Pra91,vG91,GJ92,Gun94], describing the semantics of the concurrent system of interest. A new algorithm is described and fully assessed, both theoretically and practically and compared with more well-known traversing techniques. An implementation is available, applied to a toy language. This algorithm not only computes the deadlocking states of a concurrent system but also the so-called “unsafe region” which consists of the states which will eventually lead to a deadlocking state. Its basis is a characterization of deadlocks using dual geometric properties of the “forbidden region”.

Work done partly while at Ecole Normale Supérieure and while visiting Aalborg University.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. S. Avrunin, U. A. Buy, J. C. Corbett, L. K. Dillon, and J. C. Wileden. Automated analysis of concurrent systems with the constrained expression toolset. IEEE Trans. Soft. Eng., 17(11):1204–1222, November 1991.

    Article  Google Scholar 

  2. J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and L. J. Hwang. Symbolic model checking: 1020 states and beyond. In Proc. of the Fifth Annual IEEE Symposium on Logic and Computer Science, pages 428–439. IEEE Press, 1990.

    Google Scholar 

  3. B. Boigelot and P. Godefroid. Model checking in practice: An analysis of the access.bus protocol using spin. In Proceedings of Formal Methods Europe'96, volume 1051, pages 465–478. Springer-Verlag, Lecture Notes in Computer Science, March 1996.

    Google Scholar 

  4. P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximations of fixed points. Principles of Programming Languages 4, pages 238–252, 1977.

    Google Scholar 

  5. P. Cousot and R. Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511–547, August 1992.

    MATH  MathSciNet  Google Scholar 

  6. A. T. Chamillard, L. A. Clarke, and G. S. Avrunin. An empirical comparison of static concurrency analysis techniques. Technical Report 96-84, Department of Computer Science, University of Massachusetts, August 1996.

    Google Scholar 

  7. J. C. Corbett. Evaluating deadlock detection methods for concurrent software. IEEE Transactions on Software Engineering, 22(3), March 1996.

    Google Scholar 

  8. S.D. Carson and P.F. Reynolds. The geometry of semaphore programs. ACM TOPLAS, 9(1):25–53, 1987.

    Article  MATH  Google Scholar 

  9. R. Cridlig. Semantic analysis of shared-memory concurrent languages using abstract model-checking. In Proc. of PEPM'95, La Jolla, June 1995. ACM Press.

    Google Scholar 

  10. M. B. Dwyer and L. A. Clarke. Data flow analysis for verifying properties of concurrent programs. In Proc. of the Second Symposium on Foundations of Software Engineering, pages 62–75, December 1994.

    Google Scholar 

  11. E.W. Dijkstra. Co-operating sequential processes. In F. Genuys, editor, Programming Languages, pages 43–110. Academic Press, New York, 1968.

    Google Scholar 

  12. L. Fajstrup and M. Raußen. Some remarks concerning monotopy of increasing paths. unpublished manuscript, Aalborg University, 1996.

    Google Scholar 

  13. P. Godefroid, G. J. Holzmann, and D. Pirottin. State-space caching revisited. In Formal Methods and System Design, volume 7, pages 1–15. Kluwer Academic Publishers, November 1995.

    Google Scholar 

  14. E. Goubault and T. P. Jensen. Homology of higher-dimensional automata. In Proc. of CONCUR'92, Stonybrook, New York, August 1992. Springer-Verlag.

    Google Scholar 

  15. H. Garavel, M. Jorgensen, R. Mateescu, Ch. Pecheur, M. Sighireanu, and B. Vivien. Cadp'97 — status, applications and perspectives. Technical report, Inria Alpes, 1997.

    Google Scholar 

  16. E. Goubault. The Geometry of Concurrency. PhD thesis, Ecole Normale Supérieure, 1995. to be published, 1998, also available at http://www.dmi.ens.fr/~goubault.

    Google Scholar 

  17. E. Goubault. Schedulers as abstract interpretations of HDA. In Proc. of PEPM'95, La Jolla, June 1995. ACM Press, also available at http://www.dmi.ens.fr/~goubault.

    Google Scholar 

  18. P. Godefroid, D. Peled, and M. Staskauskas. Using partial-order methods in the formal validation of industrial concurrent programs. IEEE Transactions on Software Engineering, 22(7):496–507, July 1996.

    Article  Google Scholar 

  19. J. Gunawardena. Homotopy and concurrency. Bulletin of the EATCS, 54:184–193, 1994.

    MATH  Google Scholar 

  20. M. Herlihy and S.Rajsbaum. Algebraic Topology and Distributed Computing. A Primer. volume 1000 of Lecture Notes in Computer Science. Springer-Verlag, 1995.

    Google Scholar 

  21. M. Herlihy and N. Shavit. The topological structure of asynchronous computability. Technical report, Brown University, Providence, RI, January 1996.

    Google Scholar 

  22. W. Lipski and C.H. Papadimitriou. A fast algorithm for testing for safety and detecting deadlocks in locked transaction systems. Journal of Algorithms, 2:211–226, 1981.

    Article  MATH  MathSciNet  Google Scholar 

  23. S. Melzer and S. Roemer. Deadlock checking using net unfoldings. In Proc. of Computer Aided Verification. Springer-Verlag, 1997.

    Google Scholar 

  24. V. Pratt. Modeling concurrency with geometry. In Proc. of the 18th ACM Symposium on Principles of Programming Languages. ACM Press, 1991.

    Google Scholar 

  25. F. P. Preparata. Computational Geometry, an Introduction. Springer-Verlag, 1993.

    Google Scholar 

  26. A. Valmari. Eliminating redundant interleavings during concurrent program verification. In Proc. of PARLE, volume 366, pages 89–103. Springer-Verlag, Lecture Notes in Computer Science, 1989.

    Google Scholar 

  27. A. Valmari. A stubborn attack on state explosion. In Proc. of Computer Aided Verification, number 3, pages 25–41. AMS DIMACS series in Discrete Mathematics and Theoretical Computer Science, 1991.

    Google Scholar 

  28. R. van Glabbeek. Bisimulation semantics for higher dimensional automata. Technical report, Stanford University, Manuscript available on the web as http://theory.stanford.edu/~rvg/hda, 1991.

    Google Scholar 

  29. W. J. Yeh and M. Young. Compositional reachability analysis using process algebras. In Proc. of the symposium on Testing, Analysis and Verification, pages 178–187. ACM Press, October 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Davide Sangiorgi Robert de Simone

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Fajstrup, L., Goubault, E., Raußen, M. (1998). Detecting deadlocks in concurrent systems. In: Sangiorgi, D., de Simone, R. (eds) CONCUR'98 Concurrency Theory. CONCUR 1998. Lecture Notes in Computer Science, vol 1466. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055632

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64896-3

  • Online ISBN: 978-3-540-68455-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics