The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.10 - October (2006 vol.17)
pp: 1072-1083
ABSTRACT
<p><b>Abstract</b>—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 <tmath>n</tmath> processes must use at least one multiwriter variable and <tmath>n</tmath> 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 <tmath>n{\hbox{-}}{\rm{process}}</tmath> algorithm for mutual exclusion that is correct for PC-G and achieves the bound for any <tmath>n</tmath>. While Peterson's algorithm is fair, this extension to arbitrary <tmath>n</tmath> 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.</p>
INDEX TERMS
Memory consistency models, mutual exclusion, processor consistency, multiwriter/single-writer variables.
CITATION
Lisa Higham, Jalal Kawash, "Tight Bounds for Critical Sections in Processor Consistent Platforms", IEEE Transactions on Parallel & Distributed Systems, vol.17, no. 10, pp. 1072-1083, October 2006, doi:10.1109/TPDS.2006.146
17 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool