有人可以向我解释多线程中上述操作的工作和差异吗?
答案 0 :(得分:38)
test-and-set
修改内存位置的内容,并将其旧值作为单个原子操作返回。
compare-and-swap
以原子方式将内存位置的内容与给定值进行比较,仅当它们相同时,将该内存位置的内容修改为给定的新值。 / p>
以粗体标记的差异。
答案 1 :(得分:7)
测试和设置操作位,比较和交换操作32位字段。
z / TPF系统倾向于使用测试和设置(TS)指令,因为锁定指示符通常是用于控制对系统代码关键区域的访问的位。 测试和设置(TS)指令比比较和交换(CS)指令需要更少的寄存器,并且需要更少的执行时间,因为只需要设置一个字节。
并且,我发现了以下材料:http://www.ibm.com/support/knowledgecenter/SSB23S_1.1.0.13/gtpc3/tasinst.html
您可以通过名为"现代操作系统,第2章" ...
的书来了解更多有关TSL的信息。