死锁的四个必要条件

死锁产生的四个必要条件:

① 互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。

② 不可剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,继续占用已分配到的资源。

③ 请求和保持条件:进程每次申请它所需要的一部分资源,在申请新的资源的同时,保持已分配到的资源。

④:循环等待条件:在发生死锁时必然存在一个进程等待队列{P1,P2,…,Pn},其中P1等待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源,形成一个进程等待环路,环路中每一个进程所占有的资源同时被另一个申请,也就是前一个进程占有后一个进程所深情地资源。 

死锁预防:

①:破坏“不可剥夺”条件:一个进程不能获得所需要的全部资源便处于等待状态,等待期间它所占优的资源将被隐式的释放到系统的资源列表中,从而被其他进程使用,而这个等待的线程,只有重新获得原来的资源以及等待的资源后才可以重新启动。

②:破坏”请求与保持条件“:第一种方法静态分配即每个进程在开始执行时就申请他所需要的全部资源。第二种是动态分配即每个进程在申请所需要的资源时他本身不占用系统资源。

③:破坏“循环等待”条件:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反。

死锁避免:系统对进程发出的每一个资源申请进行动态检查,并根据检查结果决定是否分配资源,如果分配后系统可能发生死锁,则不予分配,否则分配资源。

如果操作系统能保证所有进程在有限时间内得到需要的全部资源,则系统处于安全状态否则系统是不安全的。

死锁解除:

①:资源剥夺:挂起某些死锁进程,并抢占它的资源,将这些资源分配给其他的死锁进程,但应防止被挂起的进程长时间得不到资源。

②:撤销进程法:强制撤销部分、甚至全部死锁进程并剥夺这些进程的资源。撤销的原则可以按进程优先级和撤销进程代价的高低。

③:进程回退法:让一个进程回退到足以避免死锁的地步,进程回退时自愿释放资源而不是被剥夺。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值