page_title: Safe semantics
section_title: Description
hierarchical_section_title: Safe semantics / Description
caption_attribution_description: English: Safe register-no overalapping
context_page_description: Safe semantics is a computer hardware consistency model. It describes one type of guarantee that a data register provides when it is shared by several processors in a parallel computer or in a network of computers working together.
context_section_description: Safe semantics are defined for a variable with a single writer but multiple readers (SWMR). A SWMR register is safe if each read operation satisfies these properties:
  A read operation not concurrent with any write operation returns the value written by the latest write operation.
  A read operation that is concurrent with a write operation may return any value within the register's allowed range of values (for example, 0,1,2,...). 
  In particular, given concurrency of a read and a write operation, the read can return a value that has not been written by a write. The return value need only belong to the register domain.
  A binary safe register can be seen as modeling a bit flickering. Whatever the previous value of the register is, its value could flicker until the write finishes. Therefore, the read that overlaps with a write could return 0 or 1.
  Churn refers to the entry and exit of servers to/from a distributed system. Baldoni et al. show that no register can have the stronger property of regular semantics in a synchronous system under continuous churn. However, a safe register can be implemented under continuous churn in a non-synchronous system. Modeling and implementing a type of storage memory (Safe Register) under non-quiescent churn requires some system models such as client and server systems. Client systems contains a finite, arbitrary number of processes that are responsible for reading and writing the server system. However,the server system must ensure that read and write operations happen properly.
caption: Safe register-no overlapping
exif: {}