Skip to main content
Log in

Complexity of analyzing the synchronization structure of concurrent programs

  • Published:
Acta Informatica Aims and scope Submit manuscript

Summary

Foundational to verification of some aspects of communicating concurrent systems is knowledge of the synchronization which may occur during execution. The synchronization determines the actions that may occur in parallel, may determine program data flow, and may also lead to inherently erroneous situations (e.g. deadlock). This paper formalizes the notion of the synchronization structure of concurrent programs that use the rendezvous (or similar) mechanism for achieving synchronization. The formalism is oriented towards supporting verification as performed by automated static program analysis. Complexity results are presented which indicate what may be expected in this area and which also shed light on the difficulty of correctly constructing concurrent systems. Specifically, most of the analysis tasks considered are shown to be intractable.

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.

Institutional subscriptions

Similar content being viewed by others

References

  1. Ambler, A.L. et al.: Gypsy: A language for specification and implementation of verifiable programs. ACM SIGPLAN Notices, 12, 3, 1–10 (1977)

    Google Scholar 

  2. Apt, K., Francez, N., de Roever, W.P.: A proof system for Communicating Sequential Processes. ACM Transactions on Programming Languages and Systems, 2, 3, 359–385 (1980)

    Google Scholar 

  3. Araki, T., Sugiyama, T., Kasami, T., Okui, J.: Complexity of the deadlock avoidance problem. Proc. 2nd IBM Symp. Math. Found. Comput. Sci. IBM Japan, Tokyo, pp. 229–252, 1977

    Google Scholar 

  4. Barth, J.M.: A practical interprocedural data-flow analysis algorithm. Communications of the ACM, 21, 9, 724–736 (1978)

    Google Scholar 

  5. Brinch Hansen, P.: Distributed Processes: a concurrent programming concept. Communications of the ACM, 21, 11, 934–941 (1978)

    Google Scholar 

  6. Bristow, G, Drey, C., Edwards, B, Riddle, W.: Anomaly detection in concurrent programs. Proc. Fourth International Conference on Software Engineering, Munich, Germany, pp. 265–273, 1979

  7. Campbell, R.H., Habermann, A.N.: The specification of process synchronization by path expressions. Lecture Notes Comput. Sci. Berlin, Heidelberg, New York: Springer, 16, 89–102 (1974)

  8. Clarke, E.M., Liu, L.: Approximate algorithms for optimization of busy waiting in parallel programs (Preliminary Report). Proc. 20th Symp. Found. Comput. Sci. San Juan, Puerto Rico, pp. 255–266, 1979

  9. Coffman, E.G., Jr., Elphick, M.J., Shoshani, A.: System deadlocks. Comput. Surveys, 3, 2, 67–68 (1971)

    Google Scholar 

  10. Cunha, P.R.F., Maibaum, T.S.E.: A synchronization calculus for message oriented programming. Proc. 2nd Intl. Conf. Distributed Comput. Syst., Paris, France, 433–445, 1981

  11. Garey, M.R., Johnson, D.S.: Computers and Intractability; A Guide to the theory of NP-Completeness. W.H. Freeman and Co. San Francisco, 1979

    Google Scholar 

  12. Gold, E.M.: Deadlock protection: easy and difficult cases. SIAM J. Comput., 7, 320–336 (1978)

    Google Scholar 

  13. Good, D.I., Cohen, R.M., Keeton-Williams, J.: Principles of proving concurrent programs in Gypsy. Proc. 6th ACM Symposium on Principles of Programming Languages, San Antonio, TX, pp. 42–52, 1979

  14. Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM, 17, 10, 549–557 (1974)

    Google Scholar 

  15. Hoare, C.A.R.: Communicating sequential processes. Commun. ACM, 21, 8, 666–677 (1978)

    Google Scholar 

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

    Google Scholar 

  17. Howden, W.E.: Symbolic Testing and the DISSECT symbolic evaluation system. IEEE Trans. Software Engrg., SE-3, 4, 266–278 (1977)

    Google Scholar 

  18. Howden, W.E.: Applicability of software validation techniques to scientific programs. ACM Trans. Progr. Languages Syst., 2, 3, 307–320 (1980)

    Google Scholar 

  19. Ibaraki, T., Kameda, T.: Deadlock-free systems for a bounded number of processes. IEEE Trans. Comput., C-31, 3, 188–193 (1982)

    Google Scholar 

  20. Ichbiah, J. et al.: Reference manual for the Ada programming language. Proposed standard document, Department of Defense, 1980

  21. Ladner, R.: The complexity of problems in systems of communicating sequential processes. J. Comput. Syst. Sci., 21, 2, 179–194 (1980)

    Google Scholar 

  22. Martin, F.: HAL S — The avionics programming system for shuttle. Proc. AIAA Conference on Computers in Aerospace. Los Angeles. CA. pp. 308–318, 1977

  23. Osterweil, L.J., Fosdick, L.D.: DAVE — A validation, error detection, and documentation system for Fortran programs. Software-Practice and Experience. 6, 473–486 (1976)

    Google Scholar 

  24. Osterweil, L.J.: A software lifecycle methodology and tool support. In: Software Development Tools, W.E., Riddle, R.E. Fairley (eds.). pp. 82–92, Berlin, Heidelberg, New York: Springer. 1980

    Google Scholar 

  25. Osterweil, L.J.: A strategy for integrating program testing and analysis. In: Computer Program Testing, Chandrasekaran, B., Radicchi, S. (eds.). pp. 187–229, North-Holland, 1981

  26. Owicki, S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Commun. ACM. 19, 5, 279–285 (1976)

    Google Scholar 

  27. Reif, J.H.: Data flow analysis of communicating processes. Proc. 6th ACM Symposium on Principles of Programming Languages. San Antonio, TX, pp. 257–268, 1979

  28. Saxena, A.R.: Static detection of deadlocks. Department of Computer Science Technical Report, Number CU-CS-122-77, University of Colorado, 1977

  29. Taylor, R.N., Osterweil, L.J.: A facility for verification, testing, and documentation of concurrent process software. Proc. COMPSAC 78, Chicago. IL, pp. 36–41, 1978

  30. Taylor, R.N., Osterweil, L.J.: Anomaly detection in concurrent software by static data flow analysis. IEEE-Trans. Software Engrg., SE-6, 3, 265–278 (1980)

    Google Scholar 

  31. Taylor, R.N.: Static Analysis of the Synchronization Structure of Concurrent Programs. Ph.D. Thesis, University of Colorado, Department of Computer Science, 1980

  32. Taylor, R.N.: An Algorithm for Analyzing Concurrent Programs. Department of Computer Science Technical Report #DCS-10-1R, University of Victoria, 1981 (To appear in Commun. ACM)

  33. Taylor, R.N.: An integrated verification and testing environment. Department of Computer Science Technical Report # DCS-15-1R. University of Victoria, 1982

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported in part by the National Science Foundation under grant MCS 77-02194, the U.S. Army Research Office under grant DAAG 29-80-C-0094, and by the Natural Sciences and Engineering Research Council of Canada under grants GR 29 and A 5538

Rights and permissions

Reprints and permissions

About this article

Cite this article

Taylor, R.N. Complexity of analyzing the synchronization structure of concurrent programs. Acta Informatica 19, 57–84 (1983). https://doi.org/10.1007/BF00263928

Download citation

  • Received:

  • Issue Date:

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

Keywords

Navigation