A fast mutual exclusion algorithm where only five accesses to the shared memory are needed in order to enter a critical section in the absence of contention is presented. In the presence of contention, the winning process may need to delay itself for 3* Delta time units, where Delta is an upper bound on the time taken by the slowest process to execute a statement involving an access to the shared memory. It is also proven that there is not two (or more) process mutual exclusion algorithm with an upper bound on the number of times a winning process needs to access the shared memory in order to enter its critical section in the presence of contention. However, under the assumption that busy-waiting counts as just one step, the authors present, for every fixed parameter k, an algorithm with the property that from a state where no process tries to enter its critical section, as long as the number of contenders does not exceed k, the time complexity of the winning process is a linear function of k. Finally, the ideas from the mutual exclusion algorithm are used to implement a fast and simple consensus algorithm.<<ETX>>
[1]
Edsger W. Dijkstra,et al.
Solution of a problem in concurrent programming control
,
1965,
CACM.
[2]
Nancy A. Lynch,et al.
Bounds on the time to reach agreement in the presence of timing uncertainty
,
1991,
STOC '91.
[3]
Leslie Lamport,et al.
A fast mutual exclusion algorithm
,
1987,
TOCS.
[4]
Nancy A. Lynch,et al.
Time Bounds for Real-Time Process Control in the Presence of Timing Uncertainty
,
1994,
Inf. Comput..
[5]
Nancy A. Lynch,et al.
Impossibility of distributed consensus with one faulty process
,
1985,
JACM.
[6]
Michael J. Fischer,et al.
The Consensus Problem in Unreliable Distributed Systems (A Brief Survey)
,
1983,
FCT.
[7]
Leslie Lamport,et al.
Proving Liveness Properties of Concurrent Programs
,
1982,
TOPL.
[8]
Michael Merritt,et al.
Speeding Lamport's Fast Mutual Exclusion Algorithm
,
1993,
Inf. Process. Lett..
[9]
N. Lynch,et al.
Timing-based mutual exclusion
,
1992,
[1992] Proceedings Real-Time Systems Symposium.