比较和交换与测试和设置

Posted

技术标签:

【中文标题】比较和交换与测试和设置【英文标题】:compare and swap vs test and set 【发布时间】:2011-04-09 05:30:21 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

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

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

用粗体标出的区别。

【讨论】:

既然compare-and-swaptest-and-set 做更多的工作,它是否比test-and-set 花费更多时间? @arunmoezhi,这取决于实现。 能否详细说明。我对此感兴趣的原因是如果测试和设置更快,那么我可以修改我的算法以使用它而不是比较和交换 这里有一些代码示例:cs.cornell.edu/courses/cs4410/2015su/lectures/lec06-spin.html

以上是关于比较和交换与测试和设置的主要内容,如果未能解决你的问题,请参考以下文章

在交换机和路由器上设置ospf

在思科模拟器中,怎样设置路由,交换机与PC机中的连通?

尽管不使用锁定,比较和设置如何工作

部门WIFI配置-防火墙-核心交换机和POE交换机

测试和设置(或其他原子RMW操作)是否是任何架构上的特权指令?

路由与交换技术在路由器r1和r2中设置enable密文密钥net?