Summary: | Mutual exclusion (ME) is used to coordinate access to shared resources by concurrent
processes. We investigate several new N-process shared-memory algorithms for variants
of ME, each of which uses only reads and writes, and is local-spin, i.e., has bounded
remote memory reference (RMR) complexity. We study these algorithms under two
different shared-memory models: the distributed shared-memory (DSM) model, and the
cache-coherent (CC) model. In particular, we present the first known algorithm for first-
come-first-served (FCFS) ME that has O(log N) RMR complexity in both the DSM and
CC models, and uses only atomic reads and writes. Our algorithm is also adaptive to
point contention, i.e., the number of processes that are simultaneously active during a
passage by some process. More precisely, the number of RMRs a process makes per
passage in our algorithm is \Theta(min(c, log N)), where c is the point contention. We also
present the first known FCFS abortable ME algorithm that is local-spin and uses only
atomic reads and writes. This algorithm has O(N) RMR complexity in both the DSM
and CC models, and is in the form of a transformation from abortable ME to FCFS
abortable ME. In conjunction with other results, this transformation also yields the
first known local-spin group mutual exclusion algorithm that uses only atomic reads
and writes. Additionally, we present the first known local-spin k-exclusion algorithms
that use only atomic reads and writes and tolerate up to k − 1 crash failures. These algorithms have RMR complexity O(N) in both the DSM and CC models. The simplest
of these algorithms satisfies a new fairness property, called k-FCFS, that generalizes the
FCFS fairness property for ME algorithms. A modification of this algorithm satisfies the
stronger first-in-first-enabled (FIFE) fairness property. Finally, we present a modification
to the FIFE k-exclusion algorithm that works with non-atomic reads and writes. The
high-level structure of all our k-exclusion algorithms is inspired by Lamport’s famous
Bakery algorithm.
|