The semantics of a pair of synchronization primitives is characterized by three fundamental axioms: boundedness, progress, and fairness. The class of primitives fulfilling the three axioms is semantically defined. Unbuffered communication primitives, the symmetrical P and V operations, and the usual P and V operations are proved to be the three instances of this class. The definitions obtained are used to prove a series of basic theorems on mutual exclusion, producer-consumer coupling, deadlock, and linear and circular arrangements of communicating buffer-processes. An implementation of P and V operations fulfilling the axioms is proposed.
Unable to display preview. Download preview PDF.
- 1.Dijkstra, E.W.: Co-operating sequential processes. In: Programming languages, pp. 43–112 (F. Genuys, Ed.), New York: Academic Press, 1968Google Scholar
- 2.Dijkstra, E.W.: Guarded commands, non-determinancy, and formal derivation of programs. Comm. ACM 18, 453–457 (1975)Google Scholar
- 3.Dijkstra, E.W.: A class of allocation strategies inducing bounded delays only. Proc. S.J.C.C., pp.933–936 (1972)Google Scholar
- 4.Habermann, A.N.: Synchronization of communicating processes. Comm. ACM 15, 171–176 (1972)Google Scholar
- 5.Hoare, C.A.R.: Communicating sequential processes. Comm. ACM 21, 666–677 (1978)Google Scholar
- 6.Morris, J.M.: A starvation-free solution to the mutual exclusion problem. Information Processing Lett. 8, 76–80 (1979)Google Scholar
- 7.Owicki, S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Comm. ACM 19, 279–285 (1976)Google Scholar