:进程管理 -- 死锁的概念死锁饥饿死循环的区别死锁的处理策略(预防 / 避免死锁 / 死锁的检测和解除)SPOOLing技术银行家算法
Posted CodeJiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:进程管理 -- 死锁的概念死锁饥饿死循环的区别死锁的处理策略(预防 / 避免死锁 / 死锁的检测和解除)SPOOLing技术银行家算法相关的知识,希望对你有一定的参考价值。
1. 死锁
本节知识架构图:
1.1 死锁的定义
在多道程序系统中,由于多个进程的并发执行,改善了系统资源的利用率并提高了系统的处理能力。然而,多个进程的并发执行也带来了新的问题——死锁。所谓死锁,是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。
1.2 死锁、饥饿、死循环的区别
1.3 死锁产生的原因
总之,对不可剥夺资源的不合理分配,可能导致死锁。
1.4 死锁产生的四个必要条件
1.5 死锁的处理策略
1.6 小结
2. 死锁的处理策略
2.1 预防死锁
防止死锁的发生只需破坏死锁产生的4个必要条件之一即可。
2.1.1 破坏互斥条件(ex: SPOOLing技术)
2.1.2 破坏不剥夺条件
2.1.3 破坏请求和保持条件
2.1.4 破坏循环等待条件
2.2 避免死锁
避免死锁同样属于事先预防策略,但并不是事先采取某种限制措施破坏死锁的必要条件,而是在资源动态分配过程中,防止系统进入不安全状态,以避免发生死锁。这种方法所施加的限制条件较弱,可以获得较好的系统性能。
2.2.1 系统的安全序列(安全状态)
处于安全状态,一定不会发生死锁。但是发生了死锁,一定是处于不安全的状态。
2.2.2 银行家算法:最著名的死锁避免算法
银行家算法步骤:
2.3 死锁的检测和解除
前面介绍的死锁预防和避免算法,都是在为进程分配资源时施加限制条件或进行检测,若系统为进程分配资源时不采取任何措施,则应该提供死锁检测和解除的手段。
2.3.1 资源分配图
2.3.2 死锁的检测、死锁定理
死锁定理:
2.3.3 死锁解除
2.3.4 小结
以上是关于:进程管理 -- 死锁的概念死锁饥饿死循环的区别死锁的处理策略(预防 / 避免死锁 / 死锁的检测和解除)SPOOLing技术银行家算法的主要内容,如果未能解决你的问题,请参考以下文章