操作系统死锁的必要条件
操作系统中死锁产生是需要条件的,这几个条件缺一不可,是必要条件。下面由学习啦小编为大家整理了操作系统的死锁产生的必要条件相关知识,希望对大家有帮助!
一、操作系统死锁产生的必要条件
产生死锁的四个必要条件
-----互斥条件:一个资源每次只能被一个进程(线程)使用。
-----不可剥夺条件:一个进程(线程)对已获得的资源在未使用完毕之前,不能被其他进程强行剥夺,而只能又该进程自愿释放。
-----请求保持条件条件: 进程(线程)每次申请它所需要的一部分资源,在申请新资源的同时继续占用已分配的资源。
-----循坏等待条件: 多个进程(线程)之间形成一种头尾相接的循环等待资源关系,即前一个进程占有后一个进程所请求的资源。
注:这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之 一不满足,就不会发生死锁。
二、参考:解决死锁的方法
-----预防死锁(破坏产生死锁的条件)
-----避免死锁(银行家算法)
-----检测死锁(资源分配图)
-----解除死锁
注:第三条与第四条一般联合使用
预防死锁的策略
-----破坏互斥条件(SPOOLing)
----- 允许剥夺其他进程的资源(破坏不可剥夺条件)
-----一次性分配所有的资源(破坏请求与保持条件)
-----有序分配资源(破坏请求与保持条件)
检测死锁的策略
资源分配图
解除死锁的策略
-----撤销进程
-----撤消陷于死锁的全部进程
-----逐个撤消陷于死锁的进程,直到死锁不存在
-----剥夺资源
-----将陷于死锁的进程所占用的资源逐个强迫放弃,直至死锁消失
-----从另外一些进程那里强行剥夺足够数量的资源分配给死锁进程,以解除死锁状态