Abstract
A language concept for concurrent processes without common variables is introduced. These processes communicate and synchronize by means of procedure calls and guarded regions. This concept is proposed for real-time applications controlled by microcomputer networks with distributed storage. The paper gives several examples of distributed processes and shows that they include procedures, coroutines, classes, monitors, processes, semaphores, buffers, path expressions, and input/output as special cases.
- 1 Brinch Hansen, P. The programming language Concurrent Pascal. IEEE Trans. Software Eng. 1, 2 (June 1975), 199-207.Google Scholar
- 2 Brinch Hansen, P. The Architecture of Concurrent Programs. Prentice-Hall, Englewood Cliffs, N.J., 1977. Google ScholarDigital Library
- 3 Brinch Hansen, P. Operating System Principles. Prentice-Hall, Englewood Cliffs, N.J., 1973. Google ScholarDigital Library
- 4 Brinch Hansen, P., and Staunstrup, J. Specification and implementation of mutual exclusion. Comptr. Sci. Dept., U. of Southern California, Los Angeles, Sept. 1977.Google Scholar
- 5 Campbell, R.H., and Habermann, A.N. The specification of process synchronization by path expressions. Lecture Notes in Computer Science 16, Springer-Verlag, 1974, pp. 89-102. Google ScholarDigital Library
- 6 Dijkstra, E.W. Guarded commands, nondeterminacy, and formal derivation of programs. Comm. A CM 18, 8 (Aug. 1975), 453-57. Google ScholarDigital Library
- 7 Hoare, C.A.R. Monitors: an operating system structuring concept. Comm. ACM 17, l0 (Oct. 1974), 549-57. Google ScholarDigital Library
- 8 Hoare, C.A.R. Towards a theory of parallel programming. In Operating Systems Techniques, Academic Press, New York, 1972.Google Scholar
- 9 Hoare, C.A.R. Communicating sequential processes. Comptr. Sci. Dept., Queen's U., Belfast, N. Ireland, March 1977.Google Scholar
- 10 Wirth, N. Modula: A programming language for modular multiprogramming. Software--Practice & Experience 7, 1 (Jan. 1977), 3-35.Google ScholarCross Ref
Index Terms
- Distributed processes: a concurrent programming concept
Recommendations
Processes, Tasks, and Monitors: A Comparative Study of Concurrent Programming Primitives
Three notations for concurrent programming are compared, namely CSP, Ada, and monitors. CSP is an experimental language for exploring structuring concepts in concurrent programming. Ada is a general-purpose language with concurrent programming ...
Communicating sequential processes
This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command,...
Communication Port: A Language Concept for Concurrent Programming
A new language concept-communication port (CP), is introduced for programming on distributed processor networks. Such a network can contain an arbitrary number of processors each with its own private storage but with no memory sharing. The processors ...
Comments