参考
软件解法
DEJKKER算法
PETERSON算法
硬件解法
开关中断指令
- 开关中断指令属于特权级指令,用户态无法调用。
- 针对单个CPU有效
- 会导致开关中断时期CPU无法切换
XCHG指令
- 给寄存器置1
- 交换寄存器的值1和锁的值0/1
- 判断寄存器的值是否为0
- busy waiting or return
- 对单个cpu有效
TSL指令
- 复制锁的值到寄存器,修改锁的值为1
- 判断寄存器的值是否为0
- busy waiting or return
- 对多cpu有效,因为TSL指令会锁住cpu总线