操作系统中的『银行家算法(避免死锁)』

银行家算法中的数据结构

需求矩阵Need。这也是一个n*m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程 i 还需要 Rj 类资源K个,方能完成其任务。

上述三个矩阵间存在下述关系Need[i,j]=Max[i,j]-Allocation[i,j]

银行家算法的步骤(判断是否为安全状态)

设Request i是进程Pi的请求向量,如果Requesti [j]=K,表示进程Pi需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:

  1. 计算Need矩阵
  2. 计算各类资源的剩余量
  3. 比较是否大于Need量
  4. 若大于、等于:加Allocation量
  5. 若小于:往下循环
  6. 直至无法满足或结束
上一篇:codeforces 707A A. Brain's Photos(水题)


下一篇:力扣76题(滑动窗口算法)