
288 CHAPTER 5 Shared Memory Multiprocessors
become visible—to itself and others—in program order. The second constraint
guarantees that the total order or the interleaving across processes is consistent for
all processes by requiring that the operations appear atomic. That is, it should
appear that one operation is completed with respect to all processes before the next
one in the total order is issued (regardless of which process issues it). The tricky
part of this second requirement is making writes appear atomic, especially in a sys-
tem with multiple copies of a memory word that need to be informed on a write.
The write atomicity requirement ...