操作系统之死锁的避免

死锁的防止:是在申请资源时,采取某种策略,来以此防止产生死锁。是用防来不产生死锁。
死锁的避免:采用避的方式来不产生死锁。
安全状态:如果操作系统能保证所有进程在有限的时间内得到需要的全部资源,则称系统处于安全状态,否则说系统是不安全的。显然,处于安全状态的系统不会发生死锁,而处于不安全状态的系统可能会发生死锁。

  1. 银行家算法
    这个算法就是让系统处于安全状态,从而避免死锁的产生。
    这个算法的内容是:银行家可以把一定数量的资金供多个用户周转使用。为保证资金的安全,银行家规定:
    (1)当一个用户对资金的最大需求量不超过银行家现有的资金时,就接纳该用户;
    (2)用户可以分期贷款,但贷款总数不能超过最大需求量;
    (3)当银行家现有的资金不能满足用户的尚需贷款数时,可以推迟支付,但总能使用户在有限的时间里得到贷款;
    (4)当用户得到所需的全部资金后,一定能在有限时间里归还所有的资金。
    我们按照银行家算法来申请资源一定不会产生死锁。即这样就避免了死锁的产生。
    死锁的防止并没有按照某种算法去申请资源,它只是在申请资源时,进行一个判断,如自己所申请的资源被其他进程占用,自己该采取的方式是什么。
    其实不管是避免,还是防止,都是在告诉我们操作系统需采取什么样的方式来不使系统产生死锁,使系统处于一种安全状态。一个防一个避免,防是在做的过程中再决定自己应该怎么做,而避则提前就知道应该怎么做可以不产生死锁。这就是两者之间的差别。
发布了105 篇原创文章 · 获赞 37 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章