A solution to the critical section problem, first posed by Dijkstra [1], is a fundamental requirement for concurrent program control. The problem is to ensure that no two processes are in a specified area of their programs (the critical section) at the same time. Improvements to Dijkstra's solution were made by Knuth [2], deBruijn [3], and Eisenberg and McGuire [4]. The situation, for a distributed system was considered by Lamport [5]. Rivest and Pratt [6] presented a solution for a distributed system where processes may repeatedly fail. The algorithms to be presented will be further improvements, where the comparisons will be made according to three measures: message size—the number of values the variable for interprocess communication can take on; fairness—the sequence in which waiting processes enter their critical sections; and time—the amount of time a process spends attempting to enter its critical section.
[1]
N. G. de Bruijn,et al.
Additional comments on a problem in concurrent programming control
,
1967,
Commun. ACM.
[2]
Leslie Lamport,et al.
A new solution of Dijkstra's concurrent programming problem
,
1974,
Commun. ACM.
[3]
Michael R. McGuire,et al.
Further comments on Dijkstra's concurrent programming control problem
,
1972,
CACM.
[4]
Ronald L. Rivest,et al.
The Mutual Exclusion Problem for Unreliable Processes: Preliminary Report
,
1976,
IEEE Annual Symposium on Foundations of Computer Science.
[5]
Edsger W. Dijkstra,et al.
Solution of a problem in concurrent programming control
,
1965,
CACM.