Abstract
Mutual exclusion (mutex) is one of the most fundamental synchronization problems encountered in shared memory systems. It appears in all computer science first-degree curricula. This article presents nine mutex algorithms, each with its noteworthy features, spread over seven dates covering 1965-2020. Most of these algorithms are very well known and paved the way for new research directions. This article aims to present fundamental issues and basic principles that underlie the design of shared memory mutex algorithms in different contexts. So, differently from exhaustive surveys on shared memory mutex algorithms, it strives to give the reader a flavor of the many design facets of this still challenging problem.
Original language | English |
---|---|
Pages (from-to) | 47-65 |
Number of pages | 19 |
Journal | Theoretical Computer Science |
Volume | 919 |
DOIs | |
State | Published - 5 Jun 2022 |
Externally published | Yes |
Bibliographical note
Funding Information:We thank all the referees for their constructive comments that helped us improve the article's presentation and technical content. A special thanks go to Peter A. Buhr and Wojciech Golab (University of Waterloo, Canada) who, thanks to an insightful analysis (based on testing and model checking tests), discovered a deadlock-prone scenario in the fully anonymous mutex algorithm. Interestingly enough, the corrected version presented in this article (that passed the testing and model checking tests) appears to be much simpler than the previous faulty version.
Publisher Copyright:
© 2022 Elsevier B.V.
Keywords
- Anonymity
- Asynchronous system
- Atomic register
- Concurrency
- Deadlock-freedom
- Liveness
- Mutual exclusion
- Read-Modify-Write register
- Read/Write register
- Safe register
- Safety
- Starvation-freedom