7 操作系统第二章 进程管理 进程同步与互斥

1 进程同步与互斥

1.1 进程同步

主要是为了解决进程异步问题管理多个进程的运行,为了使多个进程能够有条不紊地运行。

进程同步机制主要任务:对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按一定规则(或时序)共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性

1.2 进程互斥

进程互斥:当前一个进程访问某源时,另外一个要访问该临界资源的进程必须要等待。

在这里插入图片描述

  • 临界资源:一段时间内只允许一个进程访问的资源,比如物理设备(摄像头、打印机)和某些变量、数据、内存缓冲区都是临界资源。
  • 对临界资源的访问必须互斥地进行。

对临界资源的访问过程可分为4个部分:
在这里插入图片描述
>临界区:进程访问临界资源的那段代码
进入区、退出区:实现进程互斥的那段代码段

1.3 进程同步机制遵循的原则
  1. 空闲让进:临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区;
  2. 忙则等待:当已有进程进入临界区时,其他试图进入临界区的进程必须等待;
  3. 有限等待:对请求访问的进程,应确保能在有限时间内进入临界区,不会产生饥饿现象;
  4. 让权等待:当进程不能进入临界区时,应立即释放处理器,防止进程忙等待。
1.3 进程同步、互斥小结

在这里插入图片描述

2 进程互斥实现方法

2.1 互斥的软件实现方法

在这里插入图片描述

2.1.1 单标志法

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

  1. 优点:可以实现同一时间内最多只允许一个进程访问临界区。两个进程必须是交替进入临界区
  2. 局限性:违背了空闲让进原则,若某个进程不再进入临界区,另外进程也无法进入临界区,很容易造成资源利用不充分。
2.1.2 双标志法先检查

算法思想:每个进程访问临界区资源之前,先查看临界资源是否正被访问,若被访问,该进程需等待,否则,进程才进入自己的临界区。

先检查对方进程状态,再置自己标志

  1. 优点:不用交替进入,可连续使用
  2. 局限:两个进程可能同时进入临界区,违背忙则等待原则
2.1.3 双标志法后检查

先设置自己标志,再检查对方进程状态

局限:不遵循空闲让进,有限等待,容易导致双方谦让,从而谁也无法进入临界区,产生“饥饿”现象

2.1.4 Peterson算法

算法思想:是单标志法和双标志法后检查的综合

局限:不遵循让权等待,会发生忙等

2.1.5 互斥的软件实现方法小结

在这里插入图片描述

2.2 互斥的硬件实现方法
2.2.1 中断屏蔽法

利用“开/关中断指令”实现(与原语的实现思想相同,即在某进程开始访问临界区到结束为止都不允许中断,即不能发生进程切换,因此不可能发生两个进程同时访问临界区的情况)

在这里插入图片描述

  1. 优点:简单、高效
  2. 局限:不适用多处理机;只适用操作系统内核进程。不适用用户进程
2.2.2 TestAndSet指令

简称TS指令或TSL指令,用硬件实现,执行过程不许间断,只可一气呵成。

  1. 优点:实现简单、适用于多处理环境
  2. 缺点:不满足“让权等待”原则,暂时无法进入临界区的进程会占用CPU并循环执行TSL指令,并会导致"忙等"
2.2.3 Swap指令

也称Exchange指令,简称XCHG指令
用硬件实现,执行过程中不允许间断,只可一气呵成

  1. 优点:实现简单,适用多处理机环境
  2. 缺点:不满足“让权等待”原则,暂时无法进入临界区的进程会占用CPU并循环执行TSL指令,并会导致"忙等"
2.2.4 互斥硬件实现方法小结

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值