有人能给我解释一下以上操作在多线程中的工作原理和区别吗?
发布于 2010-09-07 14:23:56
test-and-set
修改内存位置的内容,并将其旧值作为单个原子操作返回。
compare-and-swap
原子地将内存位置的内容与给定值进行比较,并且仅当它们是相同的时才执行,将该内存位置的内容修改为给定的新值。
以粗体标记的差异。
发布于 2016-10-18 06:57:10
测试和设置在位上操作,比较和交换在32位字段上操作。
z/TPF系统倾向于使用测试和设置(TS)指令,因为锁定指示符通常是被设置以控制对系统代码的关键区域的访问的位。与比较和交换(CS)指令相比,测试和设置(TS)指令需要更少的寄存器,并且需要更少的执行时间,因为只需要设置单个字节。
我在http://www.ibm.com/support/knowledgecenter/SSB23S_1.1.0.13/gtpc3/tasinst.html上找到了这些材料
你可以通过“现代操作系统,第2章”这本书来了解更多关于TSL的知识……
https://stackoverflow.com/questions/3659336
复制