- 5
- 0
- 约1.5万字
- 约 82页
- 2019-09-29 发布于湖北
- 举报
3.7.2 利用银行家算法避免死锁 1.银行家算法中的数据结构 (1)可利用资源向量Available,是一个含有m个元素的数组。其中每一个元素代表一类可利用的资源数目,其数值随该类资源的分配和回收而动态地改变。如Available[j]=K. (3) 分配矩阵Allocation,n×m的矩阵。如果Allocation[i,j]=K,则表示进程i当前已分得R j类资源的数目为K。 (4) 需求矩阵Need,n×m的矩阵。如果Need[i,j]=K,则表示进程i还需要R j类资源K个,方能完成其任务。 (2)最大需求矩阵Max,一个n×m的矩阵。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。 2.银行家算法 设Request i是进程Pi的请求向量。当P i发出资源请求后,系统按下述步骤进行检查: (3) 系统试探着把资源分配给进程Pi,并修改: Available[j]= Available[j]-Request i[j]; Allocation[i,j]=Allocation[i,j]+Request i[j];Need[i,j]=Need[i,j]-Request i[j]; (4) 系统执行安全性算法,检查此次资源分配后系统是否处于安全状态。 (1) 如果Request i[j]≤Need[i,j],转向步骤(
原创力文档

文档评论(0)