- 18
- 0
- 约1.34千字
- 约 2页
- 2016-07-04 发布于安徽
- 举报
Dijkstra银行家算法.doc
Dijkstra银行家算法
系统当前有n个并发进程P1、P2、… 、Pn,有m类资源R1、R2、… 、Rm。
数据结构定义:
(1)当前可用资源向量Available[m]:Available[j]表示当前资源Rj的用于分配的数量;
(2)最大需求矩阵Max:一个n×m的矩阵,Max[i,j]表示进程Pi需要的资源Rj的最大数目;
(3)已分配矩阵Allocation:一个n×m的矩阵,Allocation [i,j]表示进程Pi已分配得到资源Rj的数量;
(4)需求矩阵Need:一个n×m的矩阵,Need [i,j]表示进程Pi将来运行过程还需要资源Rj的数量;
满足:Need [i,j]= Max[i,j] - Allocation [i,j]
输入:进程Pi提出新的资源申请:向量Request[m]表示它要申请的各资源的数量。
算法过程:
(1)如果Request[]>Need[i]:出错报告,因为它所申请的资源超过它的需求量;
(2)如果Request[]>Available[]:进程Pi进入等待状态,因为系统当前可用的资源不能满足这次的申请即缺乏资源;
(3)预分配:假定按Request[]的需求把资源分配给进程Pi。即
Available[]=Available[] - Request[],
Allocation [i]= Allocation [i]
原创力文档

文档评论(0)