Safe semantics
|
Safe Semantics is a term which describes the guarantees provided by a data register shared by several processors in a parallel machine or in a network of computers working together.
Safe semantics are defined formally in Lamport's "On Interprocess Communication" Distributed Computing 1, 2 (1986), 77-101. (Also appeared as SRC Research Report 8).
Safe semantics are defined for a variable with a single writer but multiple readers. These semantics are weak: they only guarantee that there is a total ordering of the writes and that a read which is not concurrent with any write will return the latest value. If a write is concurrent with the read then any value can be returned (for example, if a variable had value 5 and was being changed to 6 during the read, the read function could return 8). The only exception is that values which could not be held by the variable must not be returned; for example, if the variable can hold values between 0 and 255 then the read function must never return 257.