首页 > 代码库 > 计算机操作系统学习笔记_6_进程管理 --死锁

计算机操作系统学习笔记_6_进程管理 --死锁

一、死锁的概念


1.死锁的概念


  系统中两个或两个以上的进程无限期地相互等待永远不会发生的条件,系统处于一种停滞状态,这种情况称为死锁。





2.死锁产生的原因


  (1)进程推进顺序不当


  (2)对互斥资源的分配不当[并不是资源不足,但是剩余资源不足是有可能产生死锁的]。


 必须要指出的是,系统资源不足并不是产生死锁的原因,进程资源如果不足则进程就不会被创建,只有在资源部分分配以后,剩余的资源不能满足某些个进程的请求,造成进程集无法推进的现象才是死锁。





3.产生死锁的四个必要条件[必须满足四个条件,才有可能产生死锁]


  互斥条件: 任一时刻只允许一个进程使用资源。


  非剥夺条件: 进程已经占用的资源,不会被强制剥夺。


  占用并请求条件: 进程占有部分资源,申请更多的资源,且不会释放已经占有的资源。


  循环等待: 请求资源的进程形成了循环。





二、死锁处理策略


  对死锁的处理,常用的方法有:忽略死锁、死锁的检测与恢复、死锁的避免和死锁的预防。





1.死锁忽略


  死锁忽略最典型的算法是鸵鸟算法。





2.死锁检测和恢复


 死锁的检测方法:


  1).资源分配图算法


  2).资源矩阵法


计算机操作系统学习笔记_6_进程管理 --死锁