3 research outputs found
Constant-RMR Abortable Reader-Priority Reader-Writer Algorithm
The concurrent reader-writer problem (Courtois, 1971) involves two classes of processes: readers and writers, both of which wish to access a shared resource. Many readers can access the shared resource at the same time. However, if a writer is accessing the resource, no readers or other writers can access the resource at the same time. In the reader-priority version of the problem, readers are prioritized over writers when processes from both classes are trying to access the shared resource. Previous research (Bhatt, 2010) showed a reader-priority constant-RMR multi-reader, multi-writer algorithm for Cache-Coherent (CC) systems. However, this algorithm does not allow for readers or writers to abort, which allows readers and writers waiting for the resource to stop trying to access the resource and to quickly return to the Remainder Section of the code, where the process performs tasks unrelated to the shared resource. This thesis presents an abortable constant-RMR reader-priority multi-reader single-writer algorithm for CC systems. Additionally, we show how to generalize the algorithm into a multi-reader multi-writer algorithm using any given abortable mutual exclusion algorithm. The algorithm is proven rigorously by invariants and tested using a system of mathematical specification and model-checking tools (PlusCal/TLA+/TLC)
Recoverable Mutual Exclusion with Abortability
Recent advances in non-volatile main memory (NVRAM) technology have spurred
research on designing algorithms that are resilient to process crashes. This
paper is a fuller version of our conference paper \cite{jayanti:rmeabort},
which presents the first Recoverable Mutual Exclusion (RME) algorithm that
supports abortability. Our algorithm uses only the read, write, and CAS
operations, which are commonly supported by multiprocessors. It satisfies FCFS
and other standard properties.
Our algorithm is also adaptive. On DSM and Relaxed-CC multiprocessors, a
process incurs RMRs in a passage and RMRs in an attempt, where is the number of processes that the
algorithm is designed for, is the point contention of the passage or the
attempt, and is the number of times that crashes during the attempt. On
a Strict CC multiprocessor, the passage and attempt complexities are and
.
Attiya et al. proved that, with any mutual exclusion algorithm, a process
incurs at least RMRs in a passage, if the algorithm uses only
the read, write, and CAS operations \cite{Attiya:lbound}. This lower bound
implies that the worst-case RMR complexity of our algorithm is optimal for the
DSM and Relaxed CC multiprocessors
Notes on Theory of Distributed Systems
Notes for the Yale course CPSC 465/565 Theory of Distributed Systems