避免死锁
避免死锁方法通过资源分配之前预测是否会导致死锁,决定是否进行此次资源分配。
系统的两个状态:安全状态和不安全状态
Need[i,j]=Max[i,j]-Allocation[i,j]
银行家算法
1避免死锁的限制条件:
1、预先必须申明每个进程需要的资源总量
2、进程之间相互独立,其执行顺序取决于系统安全,而非进程间的同步要求
3、系统必须提供固定数量的资源供进程使用
4、若进程占有系统资源,则不能让其退出系统
监测并解除死锁
死锁定理:当且仅当系统某状态S所对应的资源分配图是不可完全简化的,则S是死锁状态。
解除死锁
1、撤销死锁进程
2、把死锁进程恢复到前一个检查点,重新执行每个进程
3、按照某种原则逐个选择死锁进程进行撤销,直到解除系统死锁
4、按照某种原则逐个剥夺进程资源,直到解除死锁
最小代价原则:到目前为止,花费处理机时间最少、产生输出最少、估计未执行部分最多、已获得资源最少、优先级最低的进程。