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
Release consistency
(section)
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!
== Release consistency vs. sequential consistency == === Hardware structure and program-level effort === Sequential consistency can be achieved simply by hardware implementation, while release consistency is also based on an observation that most of the parallel programs are properly synchronized. In programming level, synchronization is applied to clearly schedule a certain memory access in one thread to occur after another. When a synchronized variable is accessed, hardware would make sure that all writes local to a processor have been propagated to all other processors and all writes from other processors are seen and gathered. In release consistency model, the action of entering and leaving a [[critical section]] are classified as ''acquire'' and ''release'' and for either case, explicit code should be put in the program showing when to do these operations''.'' === Conditions for sequential consistent result === In general, a distributed shared memory is release consistent if it obeys the following rules:<ref>{{Cite book|title=Distributed Operating Systems|last=Tanenbaum|first=Andrew|publisher=Pearson Education|year=1995|isbn=9788177581799|pages=327β330}}</ref> 1. Before an access to a shared variable is performed, all previous acquires by this processor must have completed. 2. Before a release is performed, all previous reads and writes by this process must have completed. 3. The acquire and release accesses must be [[Processor consistency|processor consistent]]. If the conditions above are met and the program is properly synchronized (i.e., processors implement acquire and release properly), the results of any execution will be exactly the same as they would have been executed following sequential consistency. In effect, accesses to shared variables are separated into atomic operation blocks by the ''acquire'' and ''release'' primitives so that races and interleaving between blocks will be prevented.
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)