os

同步和互斥

Posted by serrini on June 27, 2022
  • 软件实现法
    • 单标志法:
      • 设置公共bool变量turn
      • 单标志
      • p1完成后p2阻塞,不能做到空闲让进
    • 双标志先检查法
      • bool的数组flag[2],初始值为false,flag[0]=true表示p1允许进入临界区
      • 双标志先检查
      • p1和p2同时进入临界区,不能做到忙则等待
    • 双标志,先修改后检查
      • 先赋值操作,表示自己想要进入临界区
      • 双标志,先修改后检查
      • 并发进入,导致都在while循环,产生饥饿
    • Peterson’s算法
      • 先修改,后检查,后修改者等待。
      • Peterson's
      • turn的值收到并发执行速度有关,turn值先变1再变0,根据后修改者等待原则,p1执行p2等待
      • 该方法实现了空闲让进和忙则等待
  • 硬件实现法
    • 禁止中断
      • 禁止中断
    • 专用机器指令
      • TS指令
      • swap指令