The mutual exclusion problem: part I—a theory of interprocess communication
Journal of the ACM (JACM)
Algorithms for mutual exclusion
Algorithms for mutual exclusion
Memory access buffering in multiprocessors
ISCA '86 Proceedings of the 13th annual international symposium on Computer architecture
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Stanford Dash Multiprocessor
Computer
The power of processor consistency
SPAA '93 Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures
The Stanford FLASH multiprocessor
ISCA '94 Proceedings of the 21st annual international symposium on Computer architecture
Limitations of fast consistency conditions for distributed shared memories
Information Processing Letters
SIAM Journal on Computing
A new solution of Dijkstra's concurrent programming problem
Communications of the ACM
Operating System Concepts
Bounds for Mutual Exclusion with only Processor Consistency
DISC '00 Proceedings of the 14th International Conference on Distributed Computing
Critical Sections and Producer/Consumer Queues in Weak Memory Systems
ISPAN '97 Proceedings of the 1997 International Symposium on Parallel Architectures, Algorithms and Networks
Limitations and capabilities of weak memory consistency systems
Limitations and capabilities of weak memory consistency systems
How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs
IEEE Transactions on Computers
Symmetry in systems of asynchronous processes
SFCS '81 Proceedings of the 22nd Annual Symposium on Foundations of Computer Science
Atomic shared register access by asynchronous hardware
SFCS '86 Proceedings of the 27th Annual Symposium on Foundations of Computer Science
Implementing sequentially consistent programs on processor consistent platforms
Journal of Parallel and Distributed Computing
Multiwriter Consistency Conditions for Shared Memory Registers
SIAM Journal on Computing
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Hi-index | 0.00 |
Most weak memory consistency models are incapable of supporting a solution to mutual exclusion using only read and write operations to shared variables. Processor Consistency-Goodman's version (PC-G) is an exception. Ahamad et al. showed that Peterson's mutual exclusion algorithm is correct for PC-G, but Lamport's bakery algorithm is not. This paper derives a lower bound on the number of and type of (single or multiwriter) variables that a mutual exclusion algorithm must use in order to be correct for PC-G. Specifically, any such solution for n processes must use at least one multiwriter variable and n single-writer variables. Peterson's algorithm for two processes uses one multiwriter and two single-writer variables, and therefore establishes that this bound is tight for two processes. This paper presents a new n{\hbox{-}}{\rm{process}} algorithm for mutual exclusion that is correct for PC-G and achieves the bound for any n. While Peterson's algorithm is fair, this extension to arbitrary n is not fair. Six known algorithms that use the same number and type of variables are shown to fail to guarantee mutual exclusion when the memory consistency model is only PC-G, as opposed to the Sequential Consistency model for which they were designed. A corollary of our investigation is that, in contrast to Sequential Consistency, multiwriter variables cannot be implemented from single-writer variables in a PC-G system.