嵌入式系统设计师十二:进程管理③——死锁

嵌入式系统设计师十二:进程管理③

进程管理:死锁

死锁概念:进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一个不可能的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。

产生死锁的三大主要原因:

①系统资源不足
②进程运行推进的顺序不合适
③资源分配不当
在这里插入图片描述

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

①互斥条件:进程对所分配到的资源不允许其他进程访问,若其他进程访问该资源,只能等待,直至占有该资源的进程使用完成后释放该资源。

②环路等待条件(循环等待条件):指进程发生死锁后,必然存在一个进程–资源之间的环形链。

③不可剥夺条件:指进程已获得的资源,在未使用完成之前,不可被剥夺,只能在使用完成后自己释放。

④请求和保持条件:进程获得一定的资源之后,又对其他资源发出请求,但是该资源可能被其他进程占有,此时请求阻塞,但该进程又对自己获得的资源保持不释放。

上述四个条件是死锁的必要条件,只要系统发生死锁,则这些条件必然成立,只要上述条件之一不满足,就不会发生死锁。

死锁的预防措施:打破四大必然条件。

死锁的避免(2种方法):

①有序资源分配法:当有多个进程同时申请资源时,先把资源分给一个进程,等该进程完成后再继续分配给下一个进程,按序分配避免死锁的产生。

②银行家算法
分配的原则:
①当一个进程对资源的最大需求量不超过系统中的资源总数时可以接纳该进程。

②进程可以分期请求资源,但请求的总数不能超过最大需求量。

③当系统现有的资源不能满足进程尚需资源时,对该进程的请求可以推迟分配,但总能使该进程在有限的时间里得到资源。

设系统中有R类资源m个,n个进程互斥使用。若每个进程对R资源的最大需求为w,
那么当m、n、w满足m>=n*(w-1)+1时,该系统不会发生死锁。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值