什么是银行家算法

如题所述

银行家算法是最有代表性的避免死锁算法,是Dijkstra提出的银行家算法。这是由于该算法能用于银行系统现金贷款的发放而得名。
银行家可以把一定数量的资金供多个用户周转使用,为保证资金的安全,银行家规定:
(1)当一个用户对资金的最大需求量不超过很行家现有的资金时可接纳该用户.
(2)用户可以分期贷款,但贷款的总数不能超过最大需求量;
(3)当银行家现有的资金不能满足用户的尚需总数时,对用户的贷款可推迟支付,但总能使用户在有限的时间里得到贷款;
(4)当用户得到所需的全部资金后,一定能在有限的时间里归还所有资金

银行家算法是通过动态地检测系统中资源分配情况和进程对资源的需求情况来决定如何分配资源的,在能确保系统处于安全状态时才能把资源分配给申请者,从而避免系统发生死锁。
要记住的一些变量的名称
1 Available(可利用资源总数)
某类可利用的资源数目,其初值是系统中所配置的该类全部可用资源数目。
2 Max:某个进程对某类资源的最大需求数
3 Allocation: 某类资源已分配给某进程的资源数。
4 Need:某个进程还需要的各类资源数。
Need= Max-Allocation

系统把进程请求的资源(Request)分配给它以后要修改的变量
Available:=Available-Request;
Allocation:=Allocation+Request;
Need:= Need- Request;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-31
银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系 银行家算法统在进行资源分配之前,应先计算此次分配资源的z
第2个回答  2012-05-31
任务