银行家算法(Banker's Algorithm)
银行家算法(Banker's Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行,这种算法的提出能保证银行在发送贷款的时候,不会发生不满足所有用户需要的情况。
银行家算法的设计思想是
(1)进行T0时刻的安全性检查,即在T0时刻若能找到一个安全序列,则系统是安全的。
(2)以后若有进程发出资源请求,先要判断其合法性,需满足两个条件。即判断请求的各资源数目是否都小于或者等于该进程执行完成所需的各资源数目,接着再判断请求的各资源数目是否都小于或者等于系统当前可分配的各资源数目。若不满足以上两个条件,系统不分配资源给它,让该进程等待。
(3)若满足步骤(2)的两个条件,则系统假定可为该进程分配资源,并修改该进程的相关参数(最大需求数,已分配资源数,仍需资源数)以及系统当前的资源可分配数。
(4)再利用安全性算法检查此时系统是否安全,如果能找到一个安全序列,则可判定系统是安全的,可以立即将该进程所申请的资源分配给它。否则,系统不分配资源给它,让该进程等待。
(5)循环步骤(2)至步骤(4),直至各进程都执行完毕
X 关闭
Copyright 2015-2022 科技讯版权所有 备案号:豫ICP备2021032478号-15 联系邮箱:897 18 09@qq.com