03第三章-死锁汇编.ppt

* 3.4.3 银行家算法 最著名的避免死锁的算法叫做“银行家算法”(Banker’s Algorithm)。 银行家算法的设计思想是:当用户申请一组资源时,系统必须做出判断;如果把这些资源分出去,系统是否还处于安全状态。若是,就可以分出这些资源;否则,该申请暂不予满足。 借还是 不借? * 模型如下: 银行家算法 银行家拥有一笔周转资金 客户要求分期贷款,如果客户能够得到各期贷款,就一定能够归还贷款,否则就一定不能归还贷款 银行家应谨慎的贷款,防止出现坏帐 用银行家算法避免死锁 操作系统(银行家) 操作系统管理的资源(周转资金) 进程(要求贷款的客户) * 数据结构 令n表示系统中进程的数目,m表示资源分类数。 ① Available是一个长度为m的向量,它表示每类资源可用的数量。Available[ j]=k,表示rj类资源可用的数量是k。 ② Max是一个n×m矩阵,它表示每个进程对资源的最大需求。Max[i, j]=k,表示进程pi至多可申请k个rj类资源单位。 ③ Allocation是一个n×m矩阵,它表示当前分给每个进程的资源数目。Allocation [i, j]=k,表示进程pi当前分到k个rj类资源。 ④ Need是一个n×m矩阵,它表示每个进程还缺少多少资源。Need [i, j]=k,表示进程pi尚需k个rj类资源才能完成其任务。 可

文档评论(0)

1亿VIP精品文档

相关文档