银行家算法的二解
所属分类:其他
开发工具:Visual C++
文件大小:2KB
下载次数:9
上传日期:2005-12-28 19:00:59
上 传 者:
guoqiangfly
说明: 数据结构
假设有M个进程N类资源,则有如下数据结构:
MAX[M*N] M个进程对N类资源的最大需求量
AVAILABLE[N] 系统可用资源数
ALLOCATION[M*N] M个进程已经得到N类资源的资源量
NEED[M*N] M个进程还需要N类资源的资源量
2.银行家算法
设进程I提出请求Request[N],则银行家算法按如下规则进行判断。
(1)如果Request[N]<=NEED[I,N],则转(2);否则,出错。
(2)如果Request[N]<=AVAILABLE,则转(3);否则,出错。
(3)系统试探分配资源,修改相关数据:
AVAILABLE=AVAILABLE-REQUEST
ALLOCATION=ALLOCATION+REQUEST
NEED=NEED-REQUEST
(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。
3.安全性检查
(1)设置两个工作向量WORK=AVAILABLE;FINISH[M]=FALSE
(2)从进程集合中找到一个满足下述条件的进程,
FINISH[i]=FALSE
NEED<=WORK
如找到,执行(3);否则,执行(4)
(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。
WORK=WORK+ALLOCATION
FINISH=TRUE
GO TO 2
(4)如所有的进程Finish[M]=true,则表示安全;否则系统不安全。
(data structure assumptions M N Resources process, the following data structure : MAX [M* N] M N process to the largest category of resources demand AVAILABLE [N] system available funding several sources ALLOCATION [M* N] M N process has been kind of resources RESOURCES NEED [M* N] M N process also needs the resources to resources such as volume two. Bankers algorithm based process I request Request [N], the banker's algorithm as follows rules of judgment. (1) If the Request [N])
文件列表:
银行家算法 2.txt (6119, 2004-12-28)
近期下载者:
相关文件:
收藏者: