概念
多个进程循环等待它方占有的资源而无限期地僵持下去的局面
原因:
竞争资源
程序推进顺序不当
必要条件:
个资源每次只能被一个进程使用
循环等待
进程已获得的资源,在末使用完之前,不能强行剥夺
个进程因请求资源而阻塞时,对已获得的资源保持不放
处理死锁基本方法:
1. 预防死锁(摒弃除1以外的条件)
进程申请资源时遵循某种协议,打破产生死锁的四个必要条件
允许进程同时访问某些资源
允许进程强行从占有者那里夺取某些资源
实行资源预先分配策略
实行资源有序分配策略
2. 避免死锁(银行家算法)
系统在系统运行过程中小心地避免死锁的最终发生
3. 检测死锁(资源分配图)
资源的分配不加限制,即允许死锁的发生。但系统定时地运行一个”死锁检测”程序,判断系统是否已发生死锁,若检测到死锁发生则设法加以解除。
4. 解除死锁
1、 剥夺资源
2、 撤销进程