死锁的检测和解除
上一节
下一节
解决死锁的另一个思路:系统允许死锁发生,不断监视系统状态,判断死锁是否发生,死锁一旦发生则采取措施,解除死锁,以最小的代价恢复操作系统运行。
资源分配图化简
最常用的检测死锁的方法就是对资源分配图进行化简,在图中找一个请求边均能立即满足的进程顶点Pi,将与Pi相连的边全部删去,重复直至找不到Pi为止。
若所有的进程顶点都成了孤立点,则称该图可完全化简,否则不可完全化简,非孤立点的进程处于死锁状态。
环路与死锁的关系
如果资源分配图中没有环路,则系统中没有死锁。
如果图中存在环路则系统中可能存在死锁。
如果每个资源类中只包含一个资源实例,则环路是死锁存在的充分必要条件。
死锁的解除
一般采用破坏循环等待条件的方式来解除死锁:从死锁进程中选择一个或多个进程删除,剥夺它们的资源给其它的进程使用。选择要删除的进程时,一般从优先级、已运行时间及已用多少资源等几个方面去考虑,使系统损失最小。
本节资料

