死锁以及如何避免死锁

死锁的定义

死锁是指在多个进程或线程之间,彼此持有对方需要的资源,导致它们都无法继续执行的情况。

死锁通常涉及的四个必要条件

1. 互斥条件

一个资源每次只能被一个进程使用。

2. 占有且等待条件

一个进程在持有至少一个资源的同时还可以请求其他资源。

3. 非抢占条件

资源不能被强制从一个进程中取走,只能由持有它的进程自愿释放。

4. 循环等待条件

一组进程之间形成一个循环,每个进程都在等待下一个进程所占有的资源。

死锁预防策略

1. 破坏互斥条件

允许多个进程共享某些资源,而不是互斥地独占。

2. 破坏占有且等待条件

要求一个进程在申请资源时不持有其他资源,或者在等待时释放已经占有的资源。一次性申请所有的资源。

3. 破坏非抢占条件

可以强制抢占某些资源,使其立即释放。

4. 破坏循环等待条件

可以通过对资源进行全局编号,并要求进程按顺序申请资源,从而破坏循环等待。

死锁避免方法

通过在分配资源时进行安全性检查,避免系统进入可能导致死锁的状态。

死锁检测与恢复

允许系统进入死锁状态,但会定期地检测死锁,并采取措施解除死锁。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值