银行家算法中的数据结构
需求矩阵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发出资源请求后,系统按下述步骤进行检查:
- 计算Need矩阵
- 计算各类资源的剩余量
- 比较是否大于Need量
- 若大于、等于:加Allocation量
- 若小于:往下循环
- 直至无法满足或结束