TheRiver | blog

You have reached the world's edge, none but devils play past here

0%

操作系统-进程互斥的实现方案

参考

陈向群操作系统

软件解法

DEJKKER算法

dekker算法.png


PETERSON算法

peterson算法.png

硬件解法

开关中断指令

中断指令.png

  • 开关中断指令属于特权级指令,用户态无法调用。
  • 针对单个CPU有效
  • 会导致开关中断时期CPU无法切换

XCHG指令

XCHG指令.png

  • 给寄存器置1
  • 交换寄存器的值1和锁的值0/1
  • 判断寄存器的值是否为0
  • busy waiting or return
  • 对单个cpu有效

TSL指令

TSL指令.png

  • 复制锁的值到寄存器,修改锁的值为1
  • 判断寄存器的值是否为0
  • busy waiting or return
  • 对多cpu有效,因为TSL指令会锁住cpu总线

ending

80519962_p0_master1200.jpg

----------- ending -----------