Skip to main content

Efficiently Verifiable Conditions for Deadlock-Freedom of Large Concurrent Programs

  • Conference paper
Verification, Model Checking, and Abstract Interpretation (VMCAI 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3385))

Abstract

We present two polynomial-time algorithms for automatic verification of deadlock-freedom of large finite-state concurrent programs. We consider shared-memory concurrent programs in which a process can nondeterministically choose amongst several (enabled) actions at any step. As shown in [23], deadlock-freedom analysis is NP-hard even for concurrent programs of restricted form (no nondeterministic choice). Therefore, research in this area concentrates either on the search for efficiently checkable sufficient conditions for deadlock-freedom, or on improving the complexity of the check in some special cases. In this paper, we present two efficiently checkable sufficient conditions for deadlock freedom.

Our algorithms apply to programs which are expressed in a particular syntactic form, in which variables are shared between pairs of processes. The first algorithm improves the complexity of the deadlock check of Attie and Emerson [4] to polynomial in all parameters, as opposed to the exponential complexity of [4]. The second algorithm involves a conceptually new construction of a “global wait-for graph” for all processes. Its running time is also polynomial in all its parameters, and it is more discriminating than the first algorithm. We illustrate our algorithms by applying them to several examples of concurrent programs that implement resource allocation and priority queues. To the best of our knowledge, this is the first work that describes polynomially checkable conditions for assuring deadlock freedom of large concurrent programs.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aldini, A., Bernardo, M.: A general approach to deadlock freedom verification for software architectures. In: FM 2003. LNCS, vol. 2805, pp. 658–677 (2003)

    Google Scholar 

  2. Arons, T., Pnueli, A., Ruah, S., Xu, J., Zuck, L.D.: Parameterized verification with automatically computed inductive assertions. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 221–234. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  3. Attie, P.C.: Synthesis of large concurrent programs via pairwise composition. In: Baeten, J.C.M., Mauw, S. (eds.) CONCUR 1999. LNCS, vol. 1664, p. 130. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  4. Attie, P.C., Emerson, E.A.: Synthesis of concurrent systems with many similar processes. ACM Trans. Program. Lang. Syst. 20(1), 51–115 (1998)

    Article  Google Scholar 

  5. Attie, P.C.: Synthesis of large dynamic concurrent programs from dynamic specifications. Technical report, NEU, Boston, MA (2003)

    Google Scholar 

  6. Attie, P.C.: Finite-state concurrent programs can be expressed pairwise. Technical report, NEU, Boston, MA (2004)

    Google Scholar 

  7. Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic model checking without bDDs. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, pp. 193–207. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  8. Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (2000)

    Google Scholar 

  9. Clarke, E.M., Enders, R., Filkorn, T., Jha, S.: Exploiting symmetry in temporal logic model checking. FMSD 9(2) (1996)

    Google Scholar 

  10. Coffman, E.G., Elphick, M.J., Shoshani, A.: System deadlocks. ACM Comput. Surv. 3, 67–78 (1971)

    Article  MATH  Google Scholar 

  11. Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 2nd edn. MIT Press and McGraw-Hill, Cambridge (2001)

    MATH  Google Scholar 

  12. Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall Inc., Englewood Cliffs (1976)

    MATH  Google Scholar 

  13. Emerson, E.A., Kahlon, V.: Reducing model checking of the many to the few. In: CAD, pp. 236–254 (2000)

    Google Scholar 

  14. Emerson, E.A., Prasad Sistla, A.: Symmetry and model checking. FMSD 9(1/2), 105–131 (1996)

    Google Scholar 

  15. Emerson, E.A., Clarke, E.M.: Using branching time temporal logic to synthesize synchronization skeletons. Sci. Comput. Program. 2, 241–266 (1982)

    Article  MATH  Google Scholar 

  16. Godefroid, P.: Partial Order Methods for the Verification of Concurrent Systems. PhD thesis, University of Liege (1994)

    Google Scholar 

  17. Godefroid, P., Peled, D., Staskauskas, M.: Using partial-order methods in the formal validation of industrial concurrent programs. Trans. on Soft. Eng. 22(7), 496–507 (1996)

    Article  Google Scholar 

  18. Godefroid, P., Wolper, P.: A partial approach to model checking. Information and Computation 110(2), 305–326 (1991)

    Article  MathSciNet  Google Scholar 

  19. Goessler, G., Sifakis, J.: Component-Based Construction of Deadlock-Free Systems. In: Pandya, P.K., Radhakrishnan, J. (eds.) FSTTCS 2003. LNCS, vol. 2914, pp. 420–433. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  20. Holt, R.C.: Some deadlock properties of computer systems. ACM Comput. Surv. 4(3), 179–196 (1972)

    Article  MathSciNet  Google Scholar 

  21. Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic Model Checking: 1020 States and Beyond. In: LICS, pp. 1–33 (1990)

    Google Scholar 

  22. Knapp, E.: Deadlock detection in distributed databases. ACM Comput. Surv. 19(4), 303–328 (1987)

    Article  Google Scholar 

  23. Ladkin, P., Simons, B.: Compile-time analysis of communicating processes. In: Proc. Int. Conf. on Supercomputing, pp. 248–259 (1992)

    Google Scholar 

  24. Lynch, N.A.: Distributed Algorithms. Morgan Kaufmann, San Francisco (1996)

    MATH  Google Scholar 

  25. McMillan, K.L.: Symbolic Model Checking. Kluwer Academic Publishers, Dordrecht (1993)

    MATH  Google Scholar 

  26. Peled, D.: Partial order reduction: Model-checking using representatives. In: MFCS (1996)

    Google Scholar 

  27. Rex, B.: Inference of k-process behavior from two-process programs. Master’s thesis, School of Computer Science, Florida International University, Miami, FL (April 1999)

    Google Scholar 

  28. Tanenbaum, A.S.: Modern Operating Systems, 2nd edn. Prentice-Hall, Englewood Cliffs (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Attie, P.C., Chockler, H. (2005). Efficiently Verifiable Conditions for Deadlock-Freedom of Large Concurrent Programs. In: Cousot, R. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2005. Lecture Notes in Computer Science, vol 3385. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30579-8_30

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-30579-8_30

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-24297-0

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics