操作系统知识整理 - 死锁

版权声明: https://blog.csdn.net/Ha1f_Awake/article/details/85345272

定义死锁是指各并发进程互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己占有的资源,从而造成了各并发进程不能继续往前推进的状态。

起因系统提供的资源个数少于并发进程所要求的该类资源数。

显然,由于资源的有限性,不可能为所有进程无限制地提供资源。采用适当的资源分配算法,就可以达到消除死锁的目的。因此需要先了解产生死锁的必要条件。

必要条件

(1)互斥条件。并发进程所要求占有的资源不能同时被两个以上进程使用,进程对它所需要的资源进行排他性控制

(2)不剥夺条件。进程占有的资源只能由进程本身释放,而不能被其他进程强行剥夺。

(3)部分分配。进程每次申请它所需要的一部分资源,在等待新资源的同时,继续占用已分配到的资源(即使已经使用完)。

(4)环路条件。存在一种进程循环链,链中的每一个进程已获得的资源同时被下一个进程所请求。

只要使上述4个必要条件中的某一个不满足,死锁就能解除

实际上,消除死锁一般依靠检测恢复

当进程进行资源请求时,死锁检测算法检查并发进程是否出现环路,若出现,最简单的方法是终止各锁住进程,或按影响级别由低到高的顺序中止进程序列,直至释放的资源足够完成剩余进程。

猜你喜欢

转载自blog.csdn.net/Ha1f_Awake/article/details/85345272