码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统 第五章 死锁 (二)

时间:2020-06-29 22:47:02      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:建立   运行时间   回退   src   多个   一个   成熟   保留   问题   

以上讨论的是单银行家算法----只涉及到了一种资源,实际中资源的种类是多样的,一个进程往往需要申请多个资源才能完成工作,解决这一问题需要使用多银行家算法。

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 死锁的检测

检测工具----资源分配图

定义:是描述进程申请资源和资源分配情况的关系模型图,表示系统中某个时刻进程对资源的申请和占有情况。

技术图片

 

 规则:

1)圆表示一个进程

2)方块表示一个资源类,其中的圆点表示该类型资源中的单个资源。

3)从资源指向进程的箭头表示资源被分配给了这个进程。

4)从进程指向资源的箭头表示进程申请一个这类资源。

检测方法---化简算法

技术图片

 

 死锁定理:如果一个系统状态为死锁状态,当且仅当资源分配图是不可完全化简的。

举例

技术图片

 

 死锁的解除

重新启动:这是一种常用但比较粗暴的方法,虽然实现简单,但会使之前的工作全部白费,造成很大的损失和浪费。

撤销进程:死锁发生时,系统撤销造成死锁的进程,解除死锁。

一次性撤销所有的死锁进程,损失较大

逐个撤销,分别收回资源,具体做法:系统可以先撤消那些优先级低的,已占有资源少或已运行时间短的、还需运行时间较长的进程,尽量减少系统的损失。

剥夺资源:死锁时,系统保留死锁进程,只剥夺死锁进程占有的资源,直到解除死锁。选择被剥夺资源进程的方法和选择被撤销进程相同。

进程回退:死锁时,系统可以根据保留的历史信息,让死锁的进程从当前状态向后退回到某种状态,直到死锁解除。

实现方法:可以通过结合检查点或回退机制实现。进程某一时刻的瞬间状态叫做检查点,可以定期设置检查点。系统保存所有的检查点,一旦系统检查到有某个进程卷入了死锁,该进程就会被终止,剥夺它占有的所有资源。然后,系统查看保存的检查点信息,重新建立该进程的状态,从上次检查点的位置重新执行,目前发展已比较成熟,广泛用于DBMS中。

死锁检测举例

技术图片

 

 技术图片

 

操作系统 第五章 死锁 (二)

标签:建立   运行时间   回退   src   多个   一个   成熟   保留   问题   

原文地址:https://www.cnblogs.com/fate-/p/13210671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!