操作系统(三十一)死锁的检测和解除
生活随笔
收集整理的这篇文章主要介绍了
操作系统(三十一)死锁的检测和解除
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
2.4.4 死锁的检测和解除
目录
2.4.4 死锁的检测和解除
2.4.4.1 死锁的检测
2.4.4.2 死锁的解除
2.4.4.1 死锁的检测
死锁检测算法:用于检测系统状态,以确定系统中是否发生了死锁。
对于死锁检测算法有一种专门的数据结构称为资源分配图:
一般用矩形表示资源结点,矩形中的小圆代表该类资源的数量。 死锁检测算法: (1) 在资源分配图中,找出一个既不阻塞又非独立的进程结点 Pi。在顺利的情况下,Pi可获得所需资源而继续运行,直至运行完毕,再释放其所占有的全部资源,这相当于消去pi所求的请求边和分配边,使之成为孤立的结点。 (2) p1释放资源后,便可使 p2获得资源而继续运行,直至 p2完成后又释放出它所占有的全部资源。 (3) 在进行一系列的简化后,若能消去图中所有的边,使所有的进程结点都成为孤立结点,则称该图是可完全简化的;若不能通过任何过程使该图完全简化,则称该图是不可完全简化的。 S 为死锁状态的充分条件是:当且仅当 S 状态的资源分配图是不可完全简化的。该充分条件被称为死锁定理。2.4.4.2 死锁的解除
死锁解除算法:当认定系统中已经发生了死锁,利用该算法可将系统从死锁状态中解脱出来。 死锁的解除方法:1. 资源剥夺法。挂起(暂时放到外存上)某些死锁进程,并抢占它的资源,将这些资源分配给其他的死锁进程。但是应防止被挂起的进程长时间得不到资源而饥饿。
2. 撤销进程法(或称终止进程法)。强制撤销部分、甚至全部死锁进程,并剥夺这些进程的资源。这种方式的优点是实现简单,但所付出的代价可能会很大。因为有些进程可能已经运行了很长时间,已经接近结束了,一旦被终止可谓功亏一篑,以后还得从头再来。
3. 进程回退法。让一个或多个死锁进程回退到足以避免死锁的地步。这就要求系统要记录进程的历史信息,设置还原点。
总结
以上是生活随笔为你收集整理的操作系统(三十一)死锁的检测和解除的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 6000字说透,如何做好产品「适老化」!
- 下一篇: 操作系统(三十二)内存的基础常识