This paper considers the problem of programming a multiple process system so that it continues to operate despite the failure of individual processes. A powerful synchronizing primitive is defined, and it is used to solve some sample problems. An algorithm is then given which implements this primitive under very weak assumptions about the nature of interprocess communication, and a careful informal proof of its correctness is given.
This is a preview of subscription content, log in to check access.
Buy single article
Instant access to the full article PDF.
Price includes VAT for USA
Subscribe to journal
Immediate online access to all issues from 2019. Subscription will auto renew annually.
This is the net price. Taxes to be calculated in checkout.
Brinch Hansen, P.: Concurrent programming concepts. Computing Surveys 5, 223–245 (1973)
Courtois, P. J., Heymans, F., Parnas, D. L.: Concurrent control with “Readers” and “Writers”. Comm. ACM 14, 667–668 (1971)
Dijkstra, E. W.: The structure of the “THE” multiprogramming system. Comm. ACM 11, 341–346 (1968)
Dijkstra, E. W.: Cooperating sequential processes. In: Genuys, F. (ed.): Programming Languages. New York: Academic Press 1968, p. 43–112
Dijkstra, E. W.: Hierarchical ordering of sequential processes. Acta Informatica 1, 115–138 (1971)
Dijkstra, E. W.: Self-stabilizing systems in spite of distributed control. Comm. ACM 17, 643–644 (1974)
Hoare, C. A. R.: A structured paging system. Computer J. 16, 209–214 (1973)
Lamport, L.: A new solution of Dijkstra's concurrent programming problem. Comm. ACM 17, 453–455 (1974)
Lamport, L.: On concurrent reading and writing. To appear in Comm. ACM
Nilsen, R. N. (ed.): Distributed function computer architectures. Computer 7, 15–37 (1974)
About this article
Cite this article
Lamport, L. The synchronization of independent processes. Acta Informatica 7, 15–34 (1976). https://doi.org/10.1007/BF00265219
- Information System
- Operating System
- Data Structure
- Communication Network
- Information Theory