[cpp-threads] Alternatives to SC

Doug Lea dl at cs.oswego.edu
Sun Jan 14 14:52:50 GMT 2007


Jeremy Manson wrote:
> 
> A question I asked you on an earlier version of this: why can't you have 
> a total order over all read and write events to the same variable? 
> Wouldn't that let you combine Write Serialization and Freshness into a 
> single simpler rule?  (Even if you disagree, an answer helps 
> understanding of the model in general).

Well, if you order reads, and you still want to maintain the same
effect, then you have to phrase the other rules to ignore the ordering.
I think it can be done -- one of Sarita Adve's old models did something
along these lines. But to me, the way I have it now is is more faithful to
the idea that on cache-coherent machines, read-modes are shared, so
the ordering among concurrent reads is unknowable.

> 
> Should you replace the term "processor" with the term "execution engine" 
> (basically something to avoid the whole "multi-core" question).

Good suggestion; thanks!

> 
> Nit: What implies that a read actually returns the last write in the 
> total order? ;)
> 

Well, the min(W(x)) --> r is the "last write" part but you
are right that I should explicitly state read(write(x, v)) == v.
i.e., that the write actually stores v and read returns it,
as opposed to some other value. Thanks!

-Doug





More information about the cpp-threads mailing list