解决死锁——银行家算法透析

简介: 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。避免死锁算法中最有代表性的算法是Dijkstra E.W 于1968年提出的银行家算法:

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 避免死锁算法中最有代表性的算法是Dijkstra E.W 于1968年提出的银行家算法


下面我们将从例题中一点一点的分析:


微信截图_20220429140003.png


解题:


第一步:求出初始剩余资源数


图中有四种资源,分别是 A、B、C、D。题中只是给出了每个资源的总数量,没有给出剩余资源数(一般题中会给出),那么我们将它求出,每个资源总数减去每个资源已被分配资源数就得到各自资源的剩余资源数。


这里得出的是: A 资源已被分配2, B资源已被分配6, C资源已被分配12, D资源已被分配12。


那么总数量减去已被分配的得出:A资源 3-2=1B资源 12-6=6C资源  14-12=2D资源  14-12=2


最后得到初始剩余资源数 (1,6,2,2)


第二步:求出各个进程的需求资源数量


微信截图_20220429140030.png


第三步:比较


我们先检查A选项


P1 P4 P5 P2 P3


第一个是 进程P1我们可以在第二步看出 进程P1需求的资源数量为 (0,0,1,2)那么初始初始剩余资源数 (1,6,2,2) 每个值大于 (0,0,1,2),那么P1是安全序列。


第二个是 进程P4我们将上一个进程的剩余资源数  (1,6,2,2) 加上上一个进程的已分配资源数量 (0,0,3,2)  得出剩余资源量 (1,6,5,4)将剩余资源量 (1,6,5,4) 与P4需求资源量 (0,6,5,2) 相比较,每个值都大于。那么P4是安全序列


第三个是 进程P5我们将上一个进程的 剩余资源量 **(1,6,5,4)**加上上一个进程的已分配资源数量 **(0,3,3,2)**得出剩余资源数(1,9,8,6)将剩余资源数 (1,9,8,6) 与P5需求资源量 (0,6,5,6) 相比较,每个值都大于。那么P5是安全序列


第四个是进程P2我们将上一个进程的 剩余资源量 **(1,9,8,6)**加上上一个进程的已分配资源数量 **(0,0,1,4)**得出剩余资源数(1,9,9,10)将剩余资源数 **(1,9,9,10)**与P2需求资源量 (1,7,5,0) 相比较,每个值都大于。那么P2是安全序列


最后一个是进程P3我们将上一个进程的 剩余资源量 **(1,9,9,10)**加上上一个进程的已分配资源数量 **(1,0,0,0)**得出剩余资源数(2,9,9,10)将剩余资源数 **

(2,9,9,10)**与P3需求资源量 (2,3,5,6) 相比较,每个值都大于。那么P3是安全序列


那么A选项正确


按照这个思路,B选项也正确,B选项只是将进程P5跟P2调换了位置。


其余不正确。


总结:


剩余的资源数大于或者等于进程需求的资源数才是安全序列。


剩余的资源数: 剩余资源数量=资源的数量-已分配资源数量需求资源数: 最大资源需求量-已分配资源数量



相关文章
|
5月前
|
算法 安全
【操作系统】死锁处理-银行家算法
【操作系统】死锁处理-银行家算法
168 0
|
5月前
|
存储 算法 安全
操作系统:银行家算法
操作系统:银行家算法
103 0
|
5月前
|
算法 安全
死锁相关知识点以及银行家算法(解题详细步骤)
死锁相关知识点以及银行家算法(解题详细步骤)
104 2
|
5月前
|
算法 安全 Java
银行家算法代码
银行家算法代码
62 0
|
12月前
|
算法 安全 C语言
C语言实现的操作系统银行家算法
C语言实现的操作系统银行家算法
128 0
|
算法 安全
【软考学习11】死锁问题和银行家算法
【软考学习11】死锁问题和银行家算法
229 0
|
算法 安全 数据可视化
C语言实现银行家算法
C语言实现银行家算法
152 0
|
算法 安全
银行家算法
银行家算法
|
算法 安全 IDE
操作系统 进程调度-银行家算法实验报告
操作系统 进程调度-银行家算法实验报告
259 0
操作系统 进程调度-银行家算法实验报告
|
算法 安全
操作系统之银行家算法
银行家算法是学习计算机操作系统中最重要的算法之一,银行家算法又称资源分配拒绝法,是用来避免死锁的。
269 1
下一篇
无影云桌面