This paper presents a proposal for structured representation of multiprogramming in a high level language. The notation used explicitly associates a data structure shared by concurrent processes with operations defined on it. This clarifies the meaning of programs and permits a large class of time-dependent errors to be caught at compile time. A combination of critical regions and event variables enables the programmer to control scheduling of resources among competing processes to any degree desired. These concepts are sufficiently safe to use not only within operating systems but also within user programs.
KeywordsCritical Region Shared Variable Mutual Exclusion User Program Sequential File
Unable to display preview. Download preview PDF.
- Brinch Hansen, P. 1971. An outline of a course on operating system principles. International Seminar on Operating System Techniques, Belfast, Northern Ireland, (August— September).Google Scholar
- Conway, M.E. 1963. A multiprocessor system design. Proc. AFIPS FJCC 24, Spartan Books, New York, 139–146.Google Scholar
- Dijkstra, E.W. 1965. Cooperating sequential processes. Technological University, Eindhoven. Also in Programming Languages, F. Genyus, Ed. Academic Press, New York, 1968.Google Scholar
- Hoare, C.A.R. 1971. Towards a theory of parallel programming. International Seminar on Operating System Techniques, Belfast, Northern Ireland, (August—September).Google Scholar