死锁定义:
两个或多个进程无限期地等待永远不会发生的一种系统状态
要求:
{
• 参与死锁进程2个或以上;
• 参与思索的进程至少有两个已经占有资源;
• 参与死锁所有进程必须都在等待;
• 参与思索的进程是当前系统中所有的子集;
}
结果:每个进程都永远阻塞
死锁产生原因:
• 系统资源有限(不可能无限);
• 并发进程的推进顺序不当;
• 不正确的p-v操作;
互斥条件,不剥夺条件,部分分配条件(),环路条件(就餐问题)
死锁的预防策略:
银行家算法
预先静态分配法
有序资源分配法
鸵鸟策略(Window&&Linux)
解决方法:
• 预防死锁 (排除后三个基本条件,资源互斥解决不了,无法剥除)
• 避免死锁(银行家算法)
• 检测死锁 (先运行,出错再解决)
解除死锁(鸵鸟策略)典型策略