Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Atomic semantics
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
'''Atomic semantics''' is a type of guarantee provided by a [[data register]] shared by several [[central processing unit|processors]] in a [[parallel machine]] or in a network of computers working together. Atomic semantics are very strong. An atomic register provides strong guarantees even when there is concurrency and failures. A read/write register R stores a value and is accessed by two basic operations: read and write(v). A read returns the value stored in R and write(v) changes the value stored in R to v. A register is called atomic if it satisfies the two following properties: 1) Each invocation op of a read or write operation: •Must appear as if it were executed at a single point τ(op) in time. •τ (op) works as follow: τb(op) ≤ τ (op) ≤ τe(op): where τb(op) and τe(op) indicate the time when the operation op begins and ends. •If op1 ≠ op2, then τ (op1)≠τ (op2) 2) Each read operation returns the value written by the last write operation before the read, in the sequence where all operations are ordered by their τ values. '''Atomic/Linearizable register:''' Termination: when a node is correct, sooner or later each read and write operation will complete. '''Safety Property''' (Linearization points for read and write and failed operations): Read operation:It appears as if happened at all nodes at some times between the invocation and response time. Write operation: Similar to read operation, it appears as if happened at all nodes at some times between the invocation and response time. Failed operation(The atomic term comes from this notion):It appears as if it is completed at every single node or it never happened at any node. Example : We know that an atomic register is one that is linearizable to a sequential safe register. [[File:Atomic register1.jpg|centre|atomic]] The following picture shows where we should put the linearization point for each operation: [[File:Atomic register.jpg|center|Atomic register]] An atomic register could be defined for a variable with a single writer but multi- readers (SWMR), single-writer/single-reader (SWSR), or multi-writer/multi-reader (MWMR). Here is an example of a multi-reader multi-writer atomic register which is accessed by three processes (P1, P2, P3). Note that R. read() → v means that the corresponding read operation returns v, which is the value of the register. Therefore, the following execution of the register R could satisfies the definition of the atomic registers: R.write(1), R.read()→1, R.write(3), R.write(2), R.read()→2, R.read()→2. [[File:Atomic MWMR1.jpg|center|Atomic MWMR1]] ==See also== *[[Regular semantics]] *[[Safe semantics]] ==References== * Atomic semantics are defined formally in Lamport's "On Interprocess Communication" Distributed Computing 1, 2 (1986), 77–101. (Also appeared as SRC Research Report 8). {{DEFAULTSORT:Atomic Semantics}} [[Category:Concurrency control]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)