双标志先检查法

#双标志先检查法

  • 算法思想:设置一个bool flag\[],数组中各个元素用来标志个进程想进入临界区的意愿
  • Pasted image 20260629155943.png
  • 一个进程要访问临界区时会检查另一个进程是否有意愿
  • 有则卡while,无则将自己意愿设置成true
  • 临界区访问结束后,再将自己意愿设置为false
  • 但是依旧存在问题,
  • 如,在p0进程进入去准备执行第二句时,时间片到,切换进程
  • 由于没能执行flag\[0]=true这段代码,导致p1也能访问临界资源
  • 故而此时p0,p1在同时访问临界区,这是不可行的
  • *违反了“忙则等待原则”*