死锁的检测与解除
*当系统为进程分配资源时,若未采取任何限制性措施,则系统必须提供检测和解除死锁的手段,为此系统必须:
1.保存有关资源的请求和分配信息;
2.提供一种算法,以利用这些信息来检测系统是否已进入死锁状态。
资源分配图
系统死锁可利用资源分配图来描述。
圆圈
表示进程
方框
表示一类资源,其中的一个点代表一个该类资源
请求边
由进程指向方框中的资源
分配边
则由方框中的一个点即资源。*
死锁的检测
检测时机:
- 当进程等待时检测死锁
- 定时检测
- 系统资源利用率下降时检测死锁
死锁的解除
当发现进程死锁时,便应立即把它们从死锁状态中解脱出来。常采用的方法是:
剥夺资源
。从其他进程剥夺足够数量的资源给死锁进程以解除死锁状态。
撤销进程。
最简单的是让全部进程都死掉;温和一点的是按照某种顺序逐个撤销进程,直至有足够的资源可用,使死锁状态消除为止