进程同步
并发的进程之间相互合作,完成一项工作,它们之间有一定的时序关系。相互制约(如:一个进程等待另一个进程的变量结束)
使用私有信号量实现
进程互斥
并发进程之间相互竞争临界资源的排他性关系,利用公共信号量实现互斥
6.1 背景
临界区的访问规则:
互斥(Mutual Exclusion)
前进(Progress)
有限等待(Bounded Waiting)
6.2 临界区问题
临界区:进程访问临界资源的代码段
解决互斥的方法
软件方法
在进入区检查和设置一些标志,如果已有进程在临界区,则在进入区通过循环检查进行等待;在退出区修改标志。
算法1:单标志位
缺点:进程强制轮流进入临界区,容易造成资源利用不充分。
算法2:双标志位(先检查)
设立一个标志数组flag[]:描述进程是否在临界区,初值均为FALSE
先检查,后修改
优点:不用交替进入,可连续使用
缺点:进程i和进程j可能同时进入临界区
算法3:双标志法(先修改)
类似算法2,区别在于先修改后检查
优点:防止两个进程同时进入临界区
缺点:进程i 和进程j可能都进入不了临界区
6.3 Peterson算法
硬件方法
临界资源(互斥资源)
网友评论