系统相关
首页 > 系统相关> > 操作系统 2.3进程同步

操作系统 2.3进程同步

作者:互联网

2.3 进程的同步与互斥

2.3.1 进程的同步的基本概念

  1. 临界资源

定义:一次仅允许一个进程使用的资源称为临界资源

eg:就好像早上起来在宿舍和同学抢厕所时,把我和同学比做两个进程,两者就是同步的协作关系,而厕所就是临界资源

访问临界资源的过程可分为4个部分:

(1)进入区

(2)临界区:进程中访问临界资源的那段代码

(3)退出区

(4)剩余区

  1. 同步(见上面的例子)
  2. 互斥

属于同步的一种,同步机制需要遵守的4个原则:

1)空闲让进

2)忙则等待

3)有限等待

4)让权等待

2.3.2 实现临界区互斥的几种方法

  1. 软件实现法

算法一:单标志法
在这里插入图片描述

起始:turn=0,相当于厕所是0号专属,其他人不得进入,所以当系统切换到1进程时,1号进程不得进入,所以违背了“空闲让进”的原则

算法二:
双标志先检查法:
在这里插入图片描述

如果访问顺序是15开头(例如15263748),则后面0号和1号可以同时进入临界区,违背了临界区忙则等待的原则,

就好像先进厕所的那个人就直接反锁厕所门,而违背忙则等待原则的意思就是厕所门还没上锁的时候,另一个人就冲进了厕所,两个人,一个坑,可能会面面相觑。。。

算法3:双标志后检查法
在这里插入图片描述

先上锁,后检查,如果按照1526。。。的顺序来进行的话,就无法满足空闲让进和有限等待的原则,从而导致饥饿现象

虽然解决了算法2忙则等待的问题,但是,产生了更多更复杂的问题

算法4:peterson算法
在这里插入图片描述

相当于a,b两人抢厕所,
a:我想用马桶
b:我想用马桶
a:你先用把
b:你先用吧
a:那好吧,我先用咯
最后是b说的客气话,所以a先用

算法评价:
优点:遵从了空闲让进,忙则等待,有限等待的原则
缺点:没有遵从让权等待的原则

  1. 硬件实现方法

标签:操作系统,进程同步,算法,进程,临界,2.3,等待,厕所
来源: https://blog.csdn.net/be_stronger/article/details/113878733