死锁面试题

(1)为什么会产生死锁?产生死锁有什么条件?

由于系统中存在一些不可剥夺资源,而当两个或两个以上的进程占有自身资源,并请求对方资源时,会导致每个进程都无法向前推进,这就是死锁。死锁产生的必要条件有四个:互斥条件、不可剥夺条件、请求与保持条件、循环等待条件。

互斥条件指进程要求分配的资源是排他性的,即最多只能同时给一个进程使用。

不剥夺条件是指进程在使用资源完毕之前,资源不能被强行夺走。

请求并保持条件是指进程占有自身本来拥有的资源并要求其他资源。

循环等待条件是指存在一种进程资源的循环等待链。

(2)有什么办法可以解决死锁

死锁的处理策略可以分为死锁预防、死锁避免、死锁的检测和解除

死锁的预防是通过设立一些限制条件,破坏死锁的一些必要条件,让死锁无法发生。

死锁的避免是在动态分配资源的过程中,用一些算法防止系统进入不安全状态,从而避免死锁。

死锁的检测和解除是在死锁产生前不采取任何措施,只检测当前系统有没有发生死锁,并采取一些措施解除死锁。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值