操作系统概念第七章-死锁

死锁概念:一个进程A申请资源时,若申请的资源被其他等待进程B所占用,那么A有可能无法再改变其状态,这种情况称为死锁。如下交通即产生了死锁:
在这里插入图片描述
正常操作模式下,进程只能按如下顺序使用资源:
1.进程请求资源
2.进程对资源进行操作
3.进程释放资源

死锁特征:
如果在一个系统中以下四个条件同时成立,那么就能引起死锁:
1.互斥。至少有一个资源处于非共享模式,即一次仅有一个进程可对其进行访问。
2.占有并等待。一个进程应占有至少一个资源,并等待另一个资源,而该资源为其他资源所占有。
3.非抢占。即资源只能在进程完成任务后资源释放。
4.循环等待。

死锁处理方法:
1.预防或避免死锁
2.允许系统进入死锁状态,然后检测它并加以恢复
3.忽视这个问题,认为死锁不可能在系统内发生
第三种方案为大多数操作系统所采用,包括Linux和Windows。因此,应用程序开发人员需自己编写程序以便处理死锁问题。

死锁预防:
死锁预防主要从死锁产生的四个必要条件入手,只要设法使得其中的一个条件不成,则死锁就不会发生。
如若产生死锁则必有至少一个资源是非共享的,那么共享资源必然不会产生死锁。
对于第二个必要条件,只要使得进程在申请资源时释放其占有的资源,或者仅允许进程在不占用资源时才可以申请新的资源,则死锁也不会发生。
对于第三个必要条件,如果一个进程持有资源并申请另一个不能立即分配的资源,那么它现在占有的资源都可被抢占,换句话说,这些资源都被隐士释放了。

死锁恢复:
打破死锁有两个选择,一是终止进程,二是从死锁进程中抢占资源。
进程终止的两个选择:
1.终止所有死锁进程
2.一次终止一个进程,知道消除死锁循环为止
抢占资源的三个问题:
1.如何选择从哪些进程中抢占资源
2.被抢占资源的进程应进行回滚以便再次执行
3.饥饿问题,即确保不会一直对一个进程进行资源抢占,否则该进程一直无法正常执行,处于饥饿状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值