Mutual exclusion is one of the most commonly used techniques to handle contention in concurrent systems. Traditionally, mutual exclusion algorithms have been designed under the assumption that a process does not fail while acquiring/releasing a lock or while executing its critical section. However, failures do occur in real life, potentially leaving the lock in an inconsistent state. This gives rise to the problem of recoverable mutual exclusion (RME) that involves designing a mutual exclusion (ME) algorithm that can tolerate failures, while maintaining safety and liveness properties.In this work, we present a framework that transforms any algorithm that solves the RME problem into an algorithm that can also simultaneously adapt to (a) the number of processes competing for the lock, as well as (b) the number of failures that have occurred in the recent past, while maintaining the correctness and performance properties of the underlying RME algorithm. Additionally, the algorithm constructed as a result of this transformation adds certain desirable properties like fairness (a variation of FCFS) and bounded recovery.We further extend our framework by presenting a novel memory reclamation algorithm to bound the worst-case space complexity of the RME algorithm. The memory reclamation techniques maintain the fairness, performance and correctness properties of our transformation. The technique is general enough that is may also be employed to bound the space of other RME algorithms.One of the important measures of performance of any ME algorithm, including an RME algorithm, is the number of remote memory references (RMRs) made by a process-for acquiring and releasing a lock as well as recovering the lock structure after a failure.Assume that the worst-case RMR complexity of a critical section request in the underlying RME algorithm is ( ), where denotes the number of processes in the system. Then, our framework yields an RME algorithm for which the worst-case RMR complexity of a critical section request is given by O (min{ , √ + 1, ( ) }), where denotes the point contention of the request and denotes the number of failures in the recent past of the request.In addition to read and write instructions, our algorithm uses compare-and-swap (CAS) and fetch-and-store (FAS) hardware instructions, both of which are commonly available in most modern processors.
No abstract
No abstract
No abstract
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.