操作系统王道考研 p17-19 进程同步与互斥进程互斥的软硬件实现方法

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统王道考研 p17-19 进程同步与互斥进程互斥的软硬件实现方法相关的知识,希望对你有一定的参考价值。

视频1
视频2
视频3

知识总览

进程互斥的软件实现方法:

什么是进程同步

回顾进程异步:
进程具有异步性的特征。异步性是指,各并发执行的进程以各自独立的、不可预知的速度向前推进。

引入:
一个例子:

另一个例子:

什么是进程互斥

临界区是进程中访问临界资源的代码段,也可称为“临界段”。
进入区和退出区是负责实现互斥的代码段。

互斥访问的四个原则。
简而言之:空就进,不空就等,但不会让你等太久,如果你不能来就别在这里占着位置。

以下四种方法是进程互斥的软件实现方法

单标志法

算法思想:
两个进程在访问完临界区后会把使用临界区的权限转交给另一个进程。也就是说,每个进程进入临界区的权限只能被另一个进程赋予。

因此,可以实现同一时刻最多只允许一个进程访问临界区。
但是,它违背 空闲让进的原则。
比如此时的turn=0,表示允许进入临界区的进程是p0,但是p0就是不访问,就会一直干等。

双标志先检查法

算法思想:设置一个布尔类型数组flag[],数组中各元素用来标记==各进程想进入临界区的意愿。==每个进程在进入临界区之前先检查当前是否有别的进程想加入临界区,如果没有,自己的flag就改为“相进”,然后访问临界区。
孔融让梨,进程让临界区,别人都不进我再进

但是,它违反 忙则等待的原则。
比如说,按照步骤应该是1、2顺序,但在1、2中产生了进程的切换,变成了1,5,2.
1、2是忙则等待,1在忙,2就是等待,但切换后1在忙,5也在忙,即违背了忙则等待的原则。

双标志后检查法

算法思想:上一个算法的改版。先上锁,后检查。

但是,违背了空闲让进有限等待
如果进程切换出现了1、5、2、6的顺序,那么进程全都等死了。

Peterson算法

算法思想:如果双方都想进临界区,那就对方先进。


对于让权等待,感觉上面的算法都没有考虑过进程不能进临界区的问题,只考虑了想进去的话应该怎么进去

以下三种方法是进程互斥的硬件实现方法

中断屏蔽方法

简而言之,不想让两个进程同时访问临界区,那就让每次只有一个进程即可,不允许发生中断和进程切换。
不是解决问题,而是解决提出问题的人。

TestAndSet 指令

缺点:==忙等。==看那个while就知道了。

Swap指令

缺点:也会忙等。但没有上面那个那样浪费资源(上面是空循环,这里是进入循环会跳出的)。

总结



以上是关于操作系统王道考研 p17-19 进程同步与互斥进程互斥的软硬件实现方法的主要内容,如果未能解决你的问题,请参考以下文章

(王道考研P18~P28)

操作系统 王道考研2019 第二章:进程管理 -- 信号量机制(整型 / 记录型信号量)原语P / V操作用信号量机制实现进程互斥同步前驱关系

(王道408考研操作系统)第二章进程管理-第三节5:用信号量实现进程互斥同步和前驱关系

操作系统王道考研 p20-21 信号量机制用信号量机制实现进程互斥同步前驱关系(内含PV操作,十分重要)

操作系统 王道考研2019 第二章:进程管理 -- 进程同步进程互斥(临界资源)实现临界区互斥的基本方法(软(单/双 标志Peterson )硬件(中断屏蔽TSSwap))饥饿

(王道408考研操作系统)第二章进程管理-第三节1:进程同步