- 死锁的概念
(1)死锁的定义:
各进程在使用系统资源时,应注意系统产生死锁的问题。死锁,是指各并发进程彼此互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。从而造成大家都想得到资源而又得不到资源,各并发进程不能继续向前推进的状态。
(2)产生死锁的原因:
死锁的起因是并发进程对资源的竞争。产生死锁的根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数。因为资源的有限性,所以需要采用适当的资源分配算法,以达到消除死锁的目的。
(3)产生死锁的必要条件:
互斥条件:并发进程所要求和占有的资源是不能同时被两个或两个以上进程使用或操作的。
不可剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行剥夺,而只能由获得该资源的进程自己释放。
部分分配:进程每次申请它所需要的一部分资源,在等待新资源的同时,继续占用已分配到的资源。
环路条件:存在一种进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。
只要上述4个必要条件中的某一个不满足,死锁就可以排除。
- 死锁的处理策略
解决死锁的方法一般可分为预防、避免、监测与解除3种。
预防是采用某种策略,限制并发进程对资源的请求,从而使得死锁的必要条件在系统执行的任何时间都不满足。
避免是指系统再分配资源时,根据资源的使用情况提前做出预测,从而避免死锁的发生。
死锁监测与解除是指设有专门的机构,当死锁发生时