32

有人可以向我解释一下多线程中上述操作的工作原理和区别吗?

4

2 回答 2

54

test-and-set修改内存位置的内容并将其旧值作为单个原子操作返回。

compare-and-swap原子地将内存位置的内容与给定值进行比较,并且仅当它们相同时,才将该内存位置的内容修改为给定的新值。

差异以粗体标记。

于 2010-09-07T14:23:55.797 回答
11

测试和设置对位进行操作,比较和交换对 32 位字段进行操作。

z/TPF 系统倾向于使用测试和设置 (TS) 指令,因为通常,锁定指示符是设置用于控制对系统代码的关键区域的访问的位。测试和设置 (TS) 指令比比较和交换 (CS) 指令需要更少的寄存器,并且需要更少的执行时间,因为只需要设置一个字节。

而且,我从以下网址找到了这些材料: http: //www.ibm.com/support/knowledgecenter/SSB23S_1.1.0.13/gtpc3/tasinst.html

您可以通过名为“现代操作系统,第 2 章”的书了解有关 TSL 的更多信息...

于 2016-10-18T06:57:09.557 回答