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.
Similar content being viewed by others
References
Ambler, A.L. et al.: Gypsy: A language for specification and implementation of verifiable programs. ACM SIGPLAN Notices, 12, 3, 1–10 (1977)
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)
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
Barth, J.M.: A practical interprocedural data-flow analysis algorithm. Communications of the ACM, 21, 9, 724–736 (1978)
Brinch Hansen, P.: Distributed Processes: a concurrent programming concept. Communications of the ACM, 21, 11, 934–941 (1978)
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
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)
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
Coffman, E.G., Jr., Elphick, M.J., Shoshani, A.: System deadlocks. Comput. Surveys, 3, 2, 67–68 (1971)
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
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
Gold, E.M.: Deadlock protection: easy and difficult cases. SIAM J. Comput., 7, 320–336 (1978)
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
Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM, 17, 10, 549–557 (1974)
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM, 21, 8, 666–677 (1978)
Holt, R.C.: Some deadlock properties of computer systems. Comput. Surv., 4, 3, 179–196 (1972)
Howden, W.E.: Symbolic Testing and the DISSECT symbolic evaluation system. IEEE Trans. Software Engrg., SE-3, 4, 266–278 (1977)
Howden, W.E.: Applicability of software validation techniques to scientific programs. ACM Trans. Progr. Languages Syst., 2, 3, 307–320 (1980)
Ibaraki, T., Kameda, T.: Deadlock-free systems for a bounded number of processes. IEEE Trans. Comput., C-31, 3, 188–193 (1982)
Ichbiah, J. et al.: Reference manual for the Ada programming language. Proposed standard document, Department of Defense, 1980
Ladner, R.: The complexity of problems in systems of communicating sequential processes. J. Comput. Syst. Sci., 21, 2, 179–194 (1980)
Martin, F.: HAL S — The avionics programming system for shuttle. Proc. AIAA Conference on Computers in Aerospace. Los Angeles. CA. pp. 308–318, 1977
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)
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
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
Owicki, S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Commun. ACM. 19, 5, 279–285 (1976)
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
Saxena, A.R.: Static detection of deadlocks. Department of Computer Science Technical Report, Number CU-CS-122-77, University of Colorado, 1977
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
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)
Taylor, R.N.: Static Analysis of the Synchronization Structure of Concurrent Programs. Ph.D. Thesis, University of Colorado, Department of Computer Science, 1980
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)
Taylor, R.N.: An integrated verification and testing environment. Department of Computer Science Technical Report # DCS-15-1R. University of Victoria, 1982
Author information
Authors and Affiliations
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
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
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00263928