写点什么

操作系统 -- 死锁避免(银行家算法)

用户头像
风骨散人
关注
发布于: 2021 年 03 月 23 日
操作系统--死锁避免(银行家算法)
  • ==可利用资源向量 Available==。这是一个含有 m 个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果 Available[j]=K,则表示系统中现有 Rj 类资源 K 个。


  • ==最大需求矩阵 Max==。这是一个 n×m 的矩阵,它定义了系统中 n 个进程中的每一个进程对 m 类资源的最大需求。如果 Max[i,j]=K,则表示进程 i 需要 Rj 类资源的最大数目为 K。


  • ==分配矩阵 Allocation==。这也是一个 n×m 的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果 Allocation[i,j]=K,则表示进程 i 当前已分得 Rj 类资源的数目为 K。

  • ==需求矩阵 Need==。这也是一个 n×m 的矩阵,

用以表示每一个进程尚需的各类资源数。

如果 Need[i,j]=K,则表示进程 i 还需要 Rj 类资源 K 个,方能完成其任务。

$Need[i,j]=Max[i,j]-Allocation[i,j]$


假定系统中有五个进程{P0, P1, P2, P3, P4}和三类资源{A, B, C},各种资源的数量分别为 10、5、7,在 T0 时刻的资源分配情况如图所示。




P1 请求资源:P1 发出请求向量 Request1(1,0,2),系统按银行家算法进行检查:

  • ① Request1(1, 0, 2)≤Need1(1, 2, 2)

  • ② Request1(1, 0, 2)≤Available1(3, 3, 2)

  • ③ 系统先假定可为 P1 分配资源,并修改 Available, Allocation1 和 Need1 向量,由此形成的资源变化情况如中的红色字体所示。

  • ④ 再利用安全性算法检查此时系统是否安全。








发布于: 2021 年 03 月 23 日阅读数: 9
用户头像

风骨散人

关注

还未添加个人签名 2021.03.22 加入

大学僧,ACM退役选手。 名字的含义:希望可以通过努力,能力让家人拥有富足的生活而不是为了生计而到处奔波。“世人慌慌张张,不过是图碎银几两。偏偏这碎银几两,能解世间惆怅,可让父母安康,可护幼子成长 …”

评论

发布
暂无评论
操作系统--死锁避免(银行家算法)