Summary
This paper presents a proposal for synchronizing primitives obtained as an extension of Dijkstra's P, V primitives. The extended primitives are shown to be complete: they can represent any desired interaction between processes without the use of conditionals. The usefulness of these primitives is illustrated by presenting simple solutions to a series of coordination problems of increasing complexity. Two selected problems are used to illustrate disadvantages of existing synchronizing mechanisms. The extended primitives shift some of the burden from the programmer to the system since they are easier to use but more difficult to implement. However, even though each primitive operation may take longer to execute (as compared to the simple P, V primitives) the total system overhead can be substantially less especially for complex coordination problems. The paper presents a straightforward but efficient implementation of the extended primitives.
Similar content being viewed by others
References
Agerwala, T.: A complete model for representing the coordination of asynchronous processes. The Johns Hopkins University, Baltimore (Maryland), Computer Science Program, Hopkins Computer Research Report # 35, July 1974
Agerwala, T.: Towards a theory for the analysis and synthesis of systems exhibitting concurrency. The Johns Hopkins University, Baltimore (Maryland), Ph. D. Dissertation, 1975
Agerwala, T., Flynn, M.J.: On the completeness of representation schemes for concurrent systems. Conference on Petri Nets and Related Methods, MIT, Cambridge (Mass.), July 1975
Agerwala, T., Lint, B.: A comparison of semaphore based synchronizing mechanisms. Proceedings of the 10th Annual Hawaii International Conference on Systems Sciences, January 1977, pp. 244–247
Cerf, V.G.: Multiprocessors, semaphores and a graph model of computation. ENG-7226, Computer Science Department, University of California, Los Angeles (Calif.), Ph. D. Dissertation, April 1972
Courtois, P.J., Heymans, F., Parnas, D.L.: Concurrent control with readers and writers. Commun. ACM 15, 667–668 (1971)
Courtois, P.J., Heymans, F., Parnas, D.L.: Comments on lsA comparison of two synchronizing concepts’ by P.B. Hansen. Acta informatica 1, 375–376 (1972)
Dijkstra, E.W.: Cooperating sequential processes. Programming languages (F. Genuys, ed.), pp. 43–112. New York: Academic Press 1968
Dijkstra, W.W.: Hierarchical ordering of sequential processes. Acta Informatica 1, 115–138 (1971)
Brinch-Hansen, P.: A comparison of two synchronizing concepts. Acta Informatica 1, 190–199 (1972)
Hopcroft, J.E., Ulmann, J.D.: Formal languages and their relation to automata. Reading (Mass.): Addison-Wesley 1969
Parnas, D.L.: On a solution to the cigarette smokers problem. Carnegie Mellon Computer Science Departmental Report, Carnegie Mellon University, Pittsburgh (Pennsylvania), July 1972
Patil, S.S.: Limitations and capabilities of Dijkstra's semaphore primitives for coordination among processes. Project MAC, MIT, Computation Structure Group Memo 57, February 1971
Presser, L.: Multiprogramming coordination. Computing Surveys 7, 21–44 (1975)
Vantiborgh, H., van Lamsweerde, A.: On an extension to Dijkstra's semaphore primitives. Inform. Processing Letters 1, 181–186 (1972)
Wodon, P.: Still another tool for controlling cooperating algorithms. Carnegie Mellon University Report, 1972
Author information
Authors and Affiliations
Additional information
This work was supported in part by the U.S. Atomic Energy Commision under contract AT(11-1 3288) and in part by the Joint Services Electronics Program under contract AFOSR F4620-76-C-0089
Rights and permissions
About this article
Cite this article
Agerwala, T. Some extended semaphore primitives. Acta Informatica 8, 201–220 (1977). https://doi.org/10.1007/BF00264467
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00264467