3 research outputs found

    Constant-RMR Abortable Reader-Priority Reader-Writer Algorithm

    Get PDF
    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

    Full text link
    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 O(min(k,logn))O(\min(k, \log n)) RMRs in a passage and O(f+min(k,logn))O(f+ \min(k, \log n)) RMRs in an attempt, where nn is the number of processes that the algorithm is designed for, kk is the point contention of the passage or the attempt, and ff is the number of times that pp crashes during the attempt. On a Strict CC multiprocessor, the passage and attempt complexities are O(n)O(n) and O(f+n)O(f+n). Attiya et al. proved that, with any mutual exclusion algorithm, a process incurs at least Ω(logn)\Omega(\log n) 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

    Full text link
    Notes for the Yale course CPSC 465/565 Theory of Distributed Systems
    corecore