【操作系统】王道考研 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指令

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

总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

karshey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值