06进程同步(重点)

习题

https://blog.csdn.net/fuziwang/article/details/79884501

进程同步应该遵循的准则

空闲则入:其他进程均不处于临界区,应允许请求进入临界区的进程进入

忙则等待:已有进程进入临界区,请求进入的进程应该等待

有限等待:等待的进程不能“死等”

让权等待:不能进入临界区的进程应释放CPU

进程同步

注意后面的分号!!!!!!!

还有理解while()的含义:while(turn!=i)意思是,turn只有等于i,那么我就往下走。(判断不成立,往下走)

算法一

 

  刚开始turn为i,i进程执行前面任务,没有进入临界区,但是j也进不去。

算法2

 

  刚开始i,j均为false。先跑Pi,一直跑,因为在跑的过程中flag[j]的值一直为false。

 算法3

 

  开始turn为i,flag均为false。运行Pi进程,flag[i]变为true,turn=j,由于flag[j]为false,进入临界区,flag[i]=false.。

信号量机制

 

 

 利用信号量实现互斥

 

  • wait(mutex)和signal(mutex)必须成对地出现。
  • 缺wait(mutex)将会引起系统混乱,不能保证对临界资源的互斥访问
  • 缺signal(mutex)将会使该临界资源永久不被释放

利用信号量实现同步

 

posted @ 2021-04-03 20:48  南理工学渣  阅读(107)  评论(0)    收藏  举报