<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Read-modify-write</id>
	<title>Read-modify-write - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Read-modify-write"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Read-modify-write&amp;action=history"/>
	<updated>2026-06-28T01:44:18Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Read-modify-write&amp;diff=2976568&amp;oldid=prev</id>
		<title>imported&gt;Jimmy-bot：​机器人: 尚未清空的已重定向分类（Cat:協同控制→Cat:并发控制）</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Read-modify-write&amp;diff=2976568&amp;oldid=prev"/>
		<updated>2023-12-05T02:21:53Z</updated>

		<summary type="html">&lt;p&gt;机器人: 尚未清空的已重定向分类（&lt;a href=&quot;/index.php?title=Cat:%E5%8D%94%E5%90%8C%E6%8E%A7%E5%88%B6&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Cat:協同控制（页面不存在）&quot;&gt;Cat:協同控制&lt;/a&gt;→&lt;a href=&quot;/index.php?title=Cat:%E5%B9%B6%E5%8F%91%E6%8E%A7%E5%88%B6&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Cat:并发控制（页面不存在）&quot;&gt;Cat:并发控制&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{noteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;读-修改-写&amp;#039;&amp;#039;&amp;#039;（read-modify-write）是计算机科学中的一个原子操作（atomic operation，类似的还有[[test-and-set]], [[fetch-and-add]], [[compare-and-swap]]等），操作过程是读一个内存位置（或IO端口），修改其值，再写回原位置。&amp;lt;ref&amp;gt;[http://www.ddj.com/embedded/210604448?pgno=3 &amp;quot;Writing Lock-Free Code: A Corrected Queue&amp;quot;]. Dr. Dobb&amp;#039;s Journal. {{Wayback|url=http://www.ddj.com/embedded/210604448?pgno=3 |date=20081120035340 }}&lt;br /&gt;
by [[Herb Sutter]]: &amp;quot;Compare-and-swap (CAS) is ... widely available ... However, some systems instead provide the equivalently powerful load-linked/store-conditional (LL/SC) instead.&amp;quot;&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal |last=Herlihy |first=Maurice |title=Wait-free synchronization |journal=ACM Transactions on Programming Languages and Systems |volume=13 |issue=1 |date=January 1991 |pages=124–149 |url=http://www.cs.brown.edu/~mph/Herlihy91/p124-herlihy.pdf |accessdate=2007-05-20 |doi=10.1145/114005.102808 |archive-date=2011-06-05 |archive-url=https://web.archive.org/web/20110605003208/http://www.cs.brown.edu/~mph/Herlihy91/p124-herlihy.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
必须要先读操作的一个原因是，系统架构往往只允许字（word）级的读写，必须先读出那些不做修改的位元，保持不变再写回。写成[[C语言]]语句类似于：&lt;br /&gt;
 *pRegister |= SOME_BIT;&lt;br /&gt;
&lt;br /&gt;
Read-modify-write指令用于IO端口时，可能会产生出乎意料的结果，如无法给一个比特置位。这往往是因为写操作并不影响到读操作的源寄存器。&amp;lt;ref&amp;gt;{{Cite web |url=http://techref.massmind.org/techref/readmodwrite.htm |title=Massmind: &amp;quot;The read–modify–write problem&amp;quot; |accessdate=2017-11-22 |archive-date=2017-12-01 |archive-url=https://web.archive.org/web/20171201033821/http://techref.massmind.org/techref/readmodwrite.htm |dead-url=no| website = techref.massmind.org }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[RAID]]也使用这一术语描述原子操作的read-modify-write序列。&amp;lt;ref&amp;gt;{{cite web| url = http://www.ecs.umass.edu/ece/koren/architecture/Raid/basicRAID.html| title = Basic RAID Organizations | accessdate = 2013-10-04| website = umass.edu| archive-date = 2013-10-24| archive-url = https://web.archive.org/web/20131024014416/http://www.ecs.umass.edu/ece/koren/architecture/Raid/basicRAID.html| dead-url = no}}&amp;lt;/ref&amp;gt;  Such RAID levels include [[RAID&amp;amp;nbsp;4]], [[RAID&amp;amp;nbsp;5]] and [[RAID&amp;amp;nbsp;6]].&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* {{tsl|en|Linearizability|可线性化}}&lt;br /&gt;
* {{tsl|en|Read-erase-modify-write}}&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Category:并发控制]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Jimmy-bot</name></author>
	</entry>
</feed>