首页 > 代码库 > 死锁的避免——银行家算法

死锁的避免——银行家算法




     银行家把一定数量的资金供多个用户周转使用。当顾客对资金的最大申请量不超过银行家现金时,就可接纳一个新顾客;顾客可以分期借款;但借款总数不能超过最大申请量;银行家对顾客的借款可以推迟支付,但一定是顾客总能在有限的时间里得到借款;当顾客得到全部资金后,他一定能在有限时间里面归还所有资金。

 

     采用银行家算法分配资源时候,测试进程对资源的最大需求量,如果系统现存的资源可以满足他的最大需求量时,就满足进程当前的申请,否则就推迟分配。这样做,能保证至少有一个进程可得到需要的全部资源而执行到结束,然后归还资源供别的进程使用。如果操作系统能保证所有的进程在有限事件爱你内得到需要的全部资源,则称系统是安全的,否则就说系统是不安全的。不安全状态可能引起死锁。银行家算法是在能确保系统处于安全状态时才把资源分配给申请者。


死锁的避免——银行家算法