377 research outputs found
Memory-Anonymous Starvation-Free Mutual Exclusion: Possibility and Impossibility Results
In an anonymous shared memory system, all inter-process communications are
via shared objects; however, unlike in standard systems, there is no a priori
agreement between processes on the names of shared objects [14,15].
Furthermore, the algorithms are required to be symmetric; that is, the
processes should execute precisely the same code, and the only way to
distinguish processes is by comparing identifiers for equality. For such a
system, read/write registers are called anonymous registers. It is known that
symmetric deadlock-free mutual exclusion is solvable for any finite number of
processes using anonymous registers [1]. The main question left open in [14,15]
is the existence of starvation-free mutual exclusion algorithms for two or more
processes. We resolve this open question for memoryless algorithms, in which a
process that tries to enter its critical section does not use any information
about its previous attempts. Almost all known mutual exclusion algorithms are
memoryless. We show that (1) there is a symmetric memoryless starvation-free
mutual exclusion algorithm for two processes using anonymous
registers if and only if is odd; and (2) there is no symmetric memoryless
starvation-free mutual exclusion algorithm for processes using (any
number of) anonymous registers. Our impossibility result is the only example of
a system with fault-free processes, where global progress (i.e.,
deadlock-freedom) can be ensured, while individual progress to each process
(i.e., starvation-freedom) cannot. It complements a known result for systems
with failure-prone processes, that there are objects with lock-free
implementations but without wait-free implementations [2,5].Comment: DISC 2023 versio
Constant RMR Group Mutual Exclusion for Arbitrarily Many Processes and Sessions
Group mutual exclusion (GME), introduced by Joung in 1998, is a natural synchronization problem that generalizes the classical mutual exclusion and readers and writers problems. In GME a process requests a session before entering its critical section; processes are allowed to be in their critical sections simultaneously provided they have requested the same session.
We present a GME algorithm that (1) is the first to achieve a constant Remote Memory Reference (RMR) complexity for both cache coherent and distributed shared memory machines; and (2) is the first that can be accessed by arbitrarily many dynamically allocated processes and with arbitrarily many session names. Neither of the existing GME algorithms satisfies either of these two important properties. In addition, our algorithm has constant space complexity per process and satisfies the two strong fairness properties, first-come-first-served and first-in-first-enabled. Our algorithm uses an atomic instruction set supported by most modern processor architectures, namely: read, write, fetch-and-store and compare-and-swap
- …