skip to main content
article
Free Access

The mutual exclusion problem: partII—statement and solutions

Published:01 April 1986Publication History
Skip Abstract Section

Abstract

The theory developed in Part I is used to state the mutual exclusion problem and several additional fairness and failure-tolerance requirements. Four “distributed” N-process solutions are given, ranging from a solution requiring only one communication bit per process that permits individual starvation, to one requiring about N! communication bits per process that satisfies every reasonable fairness and failure-tolerance requirement that we can conceive of.

References

  1. 1 BRINCH HANSEN, P. Concurrent programming concepts. ACM Comput. Surv. 5 (1973), 223-245. Google ScholarGoogle Scholar
  2. 1a BURNS, J. Mutual exclusion with linear waiting using binary shared variables. ACM SIGACT News (Summer 1978), 42-47. Google ScholarGoogle Scholar
  3. 2 DIJKSTRA, E.W. Solution of a problem in concurrent programming control. Commun. ACM 8, 9 (Sept. 1965), 569. Google ScholarGoogle Scholar
  4. 3 DIJKSTRA, E.W. Self-stabilizing systems in spite of distributed control. Commun. A CM 17, i l (Nov. 1974), 643-644. Google ScholarGoogle Scholar
  5. 4 FISCHER, M. J., LYNCH, N., BURNS, J. E., AND BORODIN, A. Resource allocation with immunity to limited processing failure. In Proceedings of the 20th IEEE Symposium on the Foundations of Computer Science (Oct.). IEEE, New York, 1979, pp. 234-254.Google ScholarGoogle Scholar
  6. 5 KATSEFF, H.P. A new solution to the critical section problem. In Conference Record of the lOth Annual ACM Symposium on the Theory of Computing (San Diego, Calif., May 1-3). ACM, New York, 1978, pp. 86-88. Google ScholarGoogle Scholar
  7. 6 KNUTH, D. E. Additional comments on a problem in concurrent program control. Commun. ACM 9, 5 (May 1966), 321-322. Google ScholarGoogle Scholar
  8. 7 LAMPORT, L. A new solution of Dijkstra's concurrent programming problem. Commun. ACM 17, 8 (Aug. 1974), 453-455. Google ScholarGoogle Scholar
  9. 8 LAMPORT, L. The synchronization of independent processes. Acta Inf. 7, 1 (1976), 15-34.Google ScholarGoogle Scholar
  10. 9 LAMPORT, L. Proving the correctness of multiprocess programs. IEEE Trans. Softw. Eng. SE-3, 2 (Mar. 1977), 125-143.Google ScholarGoogle Scholar
  11. 10 LAMPORT, L. The implementation of reliable distributed multiprocess systems. Comput. Netw. 2 (1978), 95-114.Google ScholarGoogle Scholar
  12. 11 LAMPORT, L. The 'Hoare logic' of concurrent programs. Acta Inf. 14, l (1980), 21-37.Google ScholarGoogle Scholar
  13. 12 LAMPORT, L. Reasoning about nonatomic operations. In Proceedings of the lOth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (Austin, Tex., Jan. 24-26). ACM, New York, 1983, pp. 28-37. Google ScholarGoogle Scholar
  14. 13 LAMPORT, L. Specifying concurrent program modules. ACM Trans. Program. Lang. Syst. 5, 2 (Apr. 1983), 190-222. Google ScholarGoogle Scholar
  15. 14 LAMPORT, L. What good is temporal logic? In Information Processing 83: Proceedings of the IFIP 9th World Congress (Paris, Sept. 19-23). R. E. A. Mason, Ed. North Holland, Amsterdam, 1983.Google ScholarGoogle Scholar
  16. 15 LAMPORT, L. The mutual exclusion problem: Part IBA theory of interprocess communication. J. ACM 33, 2 (Apr. 1986), 313-326. Google ScholarGoogle Scholar
  17. 16 OWICKI, S., AND LAMPORT, L. Proving liveness properties of concurrent programs. ACM Trans. Program. Lang. Syst. 4, 3 (July 1982), 455-495. Google ScholarGoogle Scholar
  18. 17 PETERSON, G. L. A new solution to Lamport's concurrent programming problem. ACM Trans. Program. Lang. Syst. 5, 1 (Jan. 1983), 56-65. Google ScholarGoogle Scholar
  19. 18 PETERSON, G., AND FISCHER, M. Economical solutions to the critical section problem in a distributed system. In Proceedings of the 9th Annual ACM Symposium on the Theory of Computing (Boulder, Colo., May 2-4). ACM New York, 1977, pp. 91-97. Google ScholarGoogle Scholar
  20. 19 RAa}N, M. The choice coordination problem. Acta Inf. 17, (1982), 121-134.Google ScholarGoogle Scholar
  21. 20 RIVEST, R. L., AND PRATT, V. R. The mutual exclusion problem for unreliable processes: Preliminary report. In Proceedings of the IEEE Symposium on the Foundation of Computer Science. IEEE, New York, 1976, pp. 1-8.Google ScholarGoogle Scholar

Index Terms

  1. The mutual exclusion problem: partII—statement and solutions

Recommendations

Reviews

Neal Stanley Coulter

.abstract The theory developed in Part I is used to state the mutual exclusion problem and several additional fairness and failure-tolerance requirements. Four “distributed” N-process solutions are given, ranging from a solution requiring only one communication bit per process that permits individual starvation, to one requiring about N] communications bit per process that satisfies every reasonable fairness and failure-tolerance requirement that we can conceive of. — From the Author's Abstract This paper not only demonstrates the adequacy of the theory presented in its companion paper (see the previous review, Rev. 8704-0279) for expressing and proving many correctness (including robustness and fairness) properties of parallel programs with nonatomic reads and writes, but does so by proving the correctness of new and interesting mutual exclusion algorithms. These algorithms are interesting not only because of their nonatomic operations, but also because of their robustness. In particular, all of the algorithms are “fail-safe”; i.e., they will satisfy their respective “correctness properties” even if one of the processes temporarily sets one of its communication variables to arbitrary values, but then resumes normal execution in its noncritical section. Mutual exclusion algorithms such as the ones given in [1] are not fail-safe in this sense (although, unlike Lamport's algorithms, they are proven resilient under an infinite number of “shut-downs”). The algorithms are also interesting because they supply the number of bits sufficient to satisfy a set of correctness conditions with nonatomic reads and writes. For example, the algorithm (on p. 34) that is deadlock-free and lockout-free takes three bits per process (i.e., 8 n values) while the algorithm in [2] (see p. 192), which uses a powerful test-and-set operation, takes [ n/2] + 9 values. (Peterson [3] presents a deadlock-free and lockout-free algorithm with nonatomic operations that uses only 4 n values, but is not proven to be as robust as Lamport's algorithm.) Through his two papers, Lamport presents a unique and interesting approach to modeling the execution of parallel programs, and he provides insights into the notion of mutual exclusion. The papers are highly recommended to anyone interested in parallel computation.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image Journal of the ACM
    Journal of the ACM  Volume 33, Issue 2
    April 1986
    155 pages
    ISSN:0004-5411
    EISSN:1557-735X
    DOI:10.1145/5383
    Issue’s Table of Contents

    Copyright © 1986 ACM

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 1 April 1986
    Published in jacm Volume 33, Issue 2

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • article

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader