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)将会使该临界资源永久不被释放
利用信号量实现同步



浙公网安备 33010602011771号