- 2
- 0
- 约1.07万字
- 约 77页
- 2017-05-30 发布于北京
- 举报
数据结构的小结 Available[j]:目前资源 j可供使用的数量 Max[i,j]:进程i需要资源 j 的最大数量 Allocation[i,j]:进程i当前已获得资源 j的数量 Need[i,j]:进程i还需要多少资源 j,才能执行完 * 所以,Need[i,j]= Max[i,j]- Allocation[i,j] * 银行家算法 设向量Requesti[1...m] 如果Requesti[j]=K,表示进程Pi需要K个资源 j Pi申请资源时,OS如下进行检查: 如果Requesti[j]≤ Need[i,j],执行下一步;否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。 如果Requesti[j]≤Available[j],执行下一步;否则, 表示尚无足够资源,Pi须等待。 * OS假设把资源分配给进程Pi,并作如下修改: Available[j]:= Available[j]- Requesti[j]; Allocation[i,j]:= Allocation[i,j]+ Requesti[j]; Need[i,j]:= Need[i,j]- Requesti[j]; 执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才真正把资源分配给进程Pi;否则,本次假设的分配作废,恢复原来的资源分配状态,让进程Pi等待。 安全性算法
原创力文档

文档评论(0)