Recoverable mutual exclusion

dc.contributor.authorGolab, Wojciech
dc.contributor.authorRamaraju, Aditya
dc.date.accessioned2025-07-29T15:10:30Z
dc.date.available2025-07-29T15:10:30Z
dc.date.issued2019-11-05
dc.descriptionThis is a post-peer-review, pre-copyedit version of an article published in Distributed Computing. The final authenticated version is available online at: Golab, W., & Ramaraju, A. (2019). Recoverable mutual exclusion. Distributed Computing, 32(6), 535–564. https://doi.org/10.1007/s00446-019-00364-0
dc.description.abstractMutex locks have traditionally been the most common mechanism for protecting shared data structures in concurrent programs. However, the robustness of such locks against process failures has not been studied thoroughly. The vast majority of mutex algorithms are designed around the assumption that processes are reliable, meaning that a process may not fail while executing the lock acquisition and release code, or while inside the critical section. If such a failure does occur, then the liveness properties of a conventional mutex lock may cease to hold until the application or operating system intervenes by cleaning up the internal structure of the lock. For example, a process that is attempting to acquire an otherwise starvation-free mutex may be blocked forever waiting for a failed process to release the critical section. Adding to the difficulty, if the failed process recovers and attempts to acquire the same mutex again without appropriate cleanup, then the mutex may become corrupted to the point where it loses safety, notably the mutual exclusion property. We address this challenge by formalizing the problem of recoverable mutual exclusion, and proposing several solutions that vary both in their assumptions regarding hardware support for synchronization, and in their efficiency. Compared to known solutions, our algorithms are more robust as they do not restrict where or when a process may crash, and provide stricter guarantees in terms of efficiency, which we define in terms of remote memory references.
dc.description.sponsorshipNatural Sciences and Engineering Research Council (NSERC) of Canada || Ontario Early Researcher Awards Program || Google Faculty Research Awards Program.
dc.identifier.urihttps://doi.org/10.1007/s00446-019-00364-0
dc.identifier.urihttps://hdl.handle.net/10012/22056
dc.language.isoen
dc.publisherSpringer Nature
dc.relation.ispartofseriesDistributed Computing; 32(6)
dc.rightsAttribution-NonCommercial-NoDerivs 2.5 Canadaen
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/2.5/ca/
dc.subjectmutual exclusion
dc.subjectfault tolerance
dc.subjectrecovery
dc.subjectconcurrency
dc.subjectsynchronization
dc.subjectshared memory
dc.subjectnon-volatile memory
dc.subjectmulti-core algorithms
dc.subjectdurable data structures
dc.titleRecoverable mutual exclusion
dcterms.bibliographicCitationGolab, W., & Ramaraju, A. (2019). Recoverable mutual exclusion. Distributed Computing, 32(6), 535–564. https://doi.org/10.1007/s00446-019-00364-0
uws.contributor.affiliation1Faculty of Engineering
uws.contributor.affiliation2Electrical and Computer Engineering
uws.peerReviewStatusReviewed
uws.scholarLevelFaculty
uws.typeOfResourceTexten

Files

Original bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
rme_journal.pdf
Size:
644.86 KB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
4.47 KB
Format:
Item-specific license agreed upon to submission
Description: