死锁产生和避免及计算题

产生死锁的必要条件:

1.互斥
从资源层面来看: 两个进程不能同时占有 互斥
2.不剥夺/不可抢占
从俩进程之间来看: 总是等待另一个进程执行完 不抢夺正在占用资源的线程
3.请求与保持
自己占有着资源还不放手 一直等着别人的资源
4.循环等待

总结 好记:东西少 不抢 还客气 还不着急

如何处理死锁?

1.打破互斥
允许进程 同时访问某些资源
2.打破不剥夺
如果资源已经被进程占据了,允许进程强行从占有者那里夺取某些资源
3.打破请求与保持
进程在运行前申请得到所有的资源,否则该进程不能进入准备执行状态
避免总是请求其他的资源
4.打破循环等待
避免出现资源申请环路,即对资源事先分类编号,按号分配。
参考文章:进程死锁及解决方案

死锁的公式

理解:众多的进程都差一个资源 这一个资源跑来跑去的 保证不发生死锁
目标:资源总数应该确保众多的进程之间还有至少1个资源是于富的
公式:资源 大于 进程个数*(每个线程需要的最大资源总数-1)
m>n*(w-1)
习题:

一台计算机有8台磁带机,它们由N个进程竞争使用,每个进程可能需要3台磁带机。请问N为多少时,系统没有死锁危险

总资源:8
8> n(3-1)
n<4 n小于4的时候都可以

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值