Abstract
This paper considers the construction of algorithms in a concurrent programming environment where several microcomputers share the same memory or each microcomputer has its own local memory. Not only does a programmer require the abstractions of a sequential programming language but also a means of specifying and controlling parallel activity.
There are two major situations in which processes or tasks need to be controlled; when they are competing for a shared variable or when they are co-operating to their mutual benefit. Two major techniques have been proposed to solve these problems namely, monitors with condition variables and message passing primitives. The evolution of both techniques is examined.
Finally two concurrent programming languages, namely Pascal Plus and Ada which are based on these techniques are considered. The Bounded Buffer Problem is used to illustrate the different program design and construction methods required when using such techniques.
Preview
Unable to display preview. Download preview PDF.
7. References
Brinch Hansen, P. (1972a). A comparison of two synchronising concepts. Acta Informatica 1. 190–199.
Brinch Hansen, P. (1972b). Structured multiprogramming. Comm. ACM. 15, 574–578.
Brinch Hansen, P. (1973). Operating Systems Principles. Prentice-Hall, Englewood Cliffs, New Jersey.
Brinch Hansen, P. (1978). Distributed Processes. Comm. ACM. 21, 11, 934–940.
Conway, M.E. (1963). Design of a separate transition-diagram compiler. Comm. ACM. 6, 7, 396–408.
Dijkstra, E.W. (1965). Solution of a problem in concurrent programming control. Comm. ACM. 8, 569.
Dijkstra, E.W. (1968). Co-operating Sequential Processes. in Programming Languages. (F. Genuys, ed.), 43–112. Academic Press, London and New York.
Dijkstra, E.W. (1972). Hierarchical Ordering of Sequential Processes. in Operating Systems Techniques. (C.A.R. Hoare and R.H. Perrott, eds.) 72–9, Academic Press, London and New York.
Dijkstra, E.W. (1975). Guarded commands, non-determinacy, and formal derivation of problems. Comm. ACM. 18, 8, 453–457.
Hoare, C.A.R. (1972). Towards a theory of parallel programming. in Operating Systems Techniques. (C.A.R. Hoare and R.H. Perrott, eds.) 6I–7, Academic Press, London and New York.
Hoare, C.A.R. (1974). Monitors: An operating system structuring concept. Comm. ACM. 17, 10, 549–557.
Hoare, C.A.R. (1978). Communicating sequential processes. Comm. ACM. 21, 8, 666–677.
Ichbiah, J.D. et al. (1979). Preliminary ADA Reference Manual. Sigplan Notices, 14, 6.
Welsh, J. and Bustard, D.W. (1979). Pascal-Plus — Another Language for Modular Multi-programming. Software — Practice and Experience, 9, 947–957.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1981 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Perrott, R.H. (1981). Concurrent programming : Microcomputers. In: Flynn, M.J., Harris, N.R., McCarthy, D.P. (eds) Microcomputer System Design. Lecture Notes in Computer Science, vol 126. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-11172-7_7
Download citation
DOI: https://doi.org/10.1007/3-540-11172-7_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-11172-6
Online ISBN: 978-3-540-38949-1
eBook Packages: Springer Book Archive