【发布时间】:2023-04-09 00:03:01
【问题描述】:
我知道有一些原子指令,例如测试和设置以及比较和交换指令,它们可以实现互斥体的硬件实现。但我很想知道在 ARM 上是否有像 Compare 或 swap 之类的单一指令可以实现互斥锁?
我认为实现互斥体至少需要两条指令(以原子方式执行)。
附:在描述了比较和交换之后,我在一次采访中被问到这个问题。更多针对 ARM 的优化。但我想知道它是否也可以在其他架构中使用?
【问题讨论】:
-
您可以自己回答这个问题:a) 简单地查看指令集,b) 比较任何开源操作系统中现有的 ARM 互斥锁实现。虽然答案是may change in future,但要相当长的时间才能投入生产。
标签: assembly synchronization arm embedded mutex