read–modify–write
{{short description|CPU instruction to simultaneously read and write a value in memory}}
{{Redirect|RMW}}
In computer science, read–modify–write is a class of atomic operations (such as test-and-set, fetch-and-add, and compare-and-swap) that both read a memory location and write a new value into it simultaneously, either with a completely new value or some function of the previous value. These operations prevent race conditions in multi-threaded applications. Typically they are used to implement mutexes or semaphores. These atomic operations are also heavily used in non-blocking synchronization.
Read–modify–write instructions often produce unexpected results when used on I/O devices, as a write operation may not affect the same internal register that would be accessed in a read operation.[http://techref.massmind.org/techref/readmodwrite.htm Massmind: "The read–modify–write problem"] This term is also associated with RAID levels that perform actual write operations as atomic read–modify–write sequences.{{cite web |title=Basic RAID Organizations |url=http://www.ecs.umass.edu/ece/koren/architecture/Raid/basicRAID.html |archive-url=https://web.archive.org/web/20210224160746/http://www.ecs.umass.edu/ece/koren/architecture/Raid/basicRAID.html |archive-date=2021-02-24 |accessdate=2013-10-04 |website=umass.edu}} Such RAID levels include RAID 4, RAID 5 and RAID 6.
Consensus number
{{excerpt|Consensus (computer science)|Consensus number}}
See also
References
{{Reflist|30em}}
{{DEFAULTSORT:Read-modify-write}}
{{comp-sci-stub}}