admin管理员组文章数量:1023138
死锁的防止:是在申请资源时,采取某种策略,来以此防止产生死锁。是用防来不产生死锁。
死锁的避免:采用避的方式来不产生死锁。
安全状态:如果操作系统能保证所有进程在有限的时间内得到需要的全部资源,则称系统处于安全状态,否则说系统是不安全的。显然,处于安全状态的系统不会发生死锁,而处于不安全状态的系统可能会发生死锁。
- 银行家算法
这个算法就是让系统处于安全状态,从而避免死锁的产生。
这个算法的内容是:银行家可以把一定数量的资金供多个用户周转使用。为保证资金的安全,银行家规定:
(1)当一个用户对资金的最大需求量不超过银行家现有的资金时,就接纳该用户;
(2)用户可以分期贷款,但贷款总数不能超过最大需求量;
(3)当银行家现有的资金不能满足用户的尚需贷款数时,可以推迟支付,但总能使用户在有限的时间里得到贷款;
(4)当用户得到所需的全部资金后,一定能在有限时间里归还所有的资金。
我们按照银行家算法来申请资源一定不会产生死锁。即这样就避免了死锁的产生。
死锁的防止并没有按照某种算法去申请资源,它只是在申请资源时,进行一个判断,如自己所申请的资源被其他进程占用,自己该采取的方式是什么。
其实不管是避免,还是防止,都是在告诉我们操作系统需采取什么样的方式来不使系统产生死锁,使系统处于一种安全状态。一个防一个避免,防是在做的过程中再决定自己应该怎么做,而避则提前就知道应该怎么做可以不产生死锁。这就是两者之间的差别。
死锁的防止:是在申请资源时,采取某种策略,来以此防止产生死锁。是用防来不产生死锁。
死锁的避免:采用避的方式来不产生死锁。
安全状态:如果操作系统能保证所有进程在有限的时间内得到需要的全部资源,则称系统处于安全状态,否则说系统是不安全的。显然,处于安全状态的系统不会发生死锁,而处于不安全状态的系统可能会发生死锁。
- 银行家算法
这个算法就是让系统处于安全状态,从而避免死锁的产生。
这个算法的内容是:银行家可以把一定数量的资金供多个用户周转使用。为保证资金的安全,银行家规定:
(1)当一个用户对资金的最大需求量不超过银行家现有的资金时,就接纳该用户;
(2)用户可以分期贷款,但贷款总数不能超过最大需求量;
(3)当银行家现有的资金不能满足用户的尚需贷款数时,可以推迟支付,但总能使用户在有限的时间里得到贷款;
(4)当用户得到所需的全部资金后,一定能在有限时间里归还所有的资金。
我们按照银行家算法来申请资源一定不会产生死锁。即这样就避免了死锁的产生。
死锁的防止并没有按照某种算法去申请资源,它只是在申请资源时,进行一个判断,如自己所申请的资源被其他进程占用,自己该采取的方式是什么。
其实不管是避免,还是防止,都是在告诉我们操作系统需采取什么样的方式来不使系统产生死锁,使系统处于一种安全状态。一个防一个避免,防是在做的过程中再决定自己应该怎么做,而避则提前就知道应该怎么做可以不产生死锁。这就是两者之间的差别。
版权声明:本文标题:操作系统之死锁的避免 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1743865545a2043219.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论