【操作系统笔记】死锁

死锁是指多个进程或线程因循环等待资源而无法继续执行的状态。它需要满足四个必要条件:互斥使用、不可抢占、持有和等待、循环等待。处理死锁的方法包括预防、避免、检测与恢复。银行家算法用于寻找安全序列,确保系统不会进入死锁。当发生死锁时,可以终止线程或剥夺资源来恢复。死锁预防和避免策略旨在破坏死锁的形成条件,确保系统的稳定运行。
摘要由CSDN通过智能技术生成

死锁概念

死锁:多个进程(线程)因循环等待资源而造成无法执行的现象。

死锁形成的4个必要条件

  1. 互斥使用
  2. 不可抢占
  3. 持有和等待:进程占有资源,同时去申请资源。
  4. 循环等待:存在环路。

死锁处理方法

死锁预防:破坏死锁的必要条件

然而互斥使用一般无法破除。

死锁避免:检测到有死锁的风险就拒绝

动态检查资源分配状态,确保永远不会有一个环形等待状态,使系统处于安全状态。

安全状态:系统中所有进程存在一个可完成执行序列的状态。
安全序列:使系统处于安全状态的执行序列。

银行家算法:尝试寻找一个安全的执行时序。
所需参数:

n:进程总数
m:资源种类总数
Available:资源当前可用总量
Allocation:已分配的各种资源数量
Need:进程还需分配的各种资源数量
Work:可分配资源(包括可回收的)

核心思想:

安全序列P1,P2,…,Pn应满足:
Pi(1<=i<=n)需要资源 <= 剩余资源+分配给Pj(1<=j<=i)资源

死锁检测+恢复:从死锁状态中恢复

  • 方法一:终止线程
  • 方法二:剥夺资源

死锁忽略:躺平

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值