死锁的处理策略

死锁的处理策略

1.预防死锁

  1. 破坏互斥条件:把必须互斥使用的资源改造成可以同时使用的资源。比如SPOOLing技术将进程在逻辑上把互斥设备改造成共享设备。

  2. 破坏不剥夺条件:当某个进程请求资源得不到满足时,它必须释放所有资源,待以后需要时再申请;

  3. 破坏请求和保持条件:采用静态分配方法。再它请求的资源未满足前,不让它投入运行。投入运行后,资源一直归它所有。

  4. 破坏循环等待条件:采用顺序资源分配法。首先给系统中的资源编号,规定必须按编号递增的顺序请求资源。

    在这里插入图片描述

2.避免死锁

1)安全序列

如果按某个顺序分配资源,则每个进程都能顺利完成。安全序列可能有多个。

2)银行家算法

  1. 检查此次申请是否超过了之前的最大需求数

  2. 检查此时系统剩余的可用资源是否还能满足这次请求

  3. 试探着分配,更改各数据结构

  4. 用安全性算法检查此次分配是否会导致系统进入不安全状态。即检查当前剩余可用资源是否能满足某个进程的最大需求,如果可以就把该进程加入安全序列。
    在这里插入图片描述

3.检测和解除

1)死锁检测算法

依次消除与不阻塞进程相连的边,直到无边可消。

死锁定理:如果某时刻系统的资源分配图是不可完全简化的,那么此时系统死锁。

在这里插入图片描述

2)死锁解除算法

  1. 资源剥夺法:挂起某些死锁进程,并将他的资源分配给其它死锁进程。

  2. 撤销进程法:强制撤销部分甚至全部死锁进程。

  3. 进程回退法:让一个或多个死锁进程回退到足以避免死锁的地步。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值