【OS笔记 25】死锁的必要条件

一、死锁的定义

如果一组进程中的每一个进程都在等待只能由该组进程中的其它进程引发的事件,那么该组进程是死锁的。



二、产生死锁的必要条件

PS: 必要条件:发生了死锁的话,这四个条件一定满足;但是这四个条件满足,不一定发生死锁。

1. 互斥条件

也就是多个进程必须对临界资源互斥访问,临界资源不能被多个进程一起使用,只能一个一个用。

2. 请求和保持(占有并等待)条件

“请求”指请求新资源,“保持”指已经有了至少一个资源,但是该进程对已有的资源保持占有,不释放。
该组进程中的每一个进程已经保持(正在占用)了一个资源,但又提出了新的资源请求,而该资源正在被其他进程使用,它只能等待(即阻塞),但对自己已有的资源保持不放。

3. 不可抢占条件

进程已获得的资源在未使用完之前不得被抢占,只能等它自己用完然后释放。
(PS:很容易理解,要是可以抢占的话,优先级高的想要什么直接去抢,那它就不会阻塞,等它运行完了就可以释放他的资源了)

4. 循环等待条件

发生死锁时,必然存在一个“进程——资源循环链”
有一组等待进程{P0,P1,P2,…,Pn},其中Pi等待的资源被P i+1占有(i=0, 1,…,n-1),Pn等待的资源被P0占有。下面举一个小小的例子:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值