什么情况会发生死锁,死锁的处理方法

如两个进程分别等待对方占有的资源,于是两个进程都不能执行而处于等待状态,此线程称为死锁。

进程的三态模型

就绪态 ↔ \leftrightarrow 运行态 → \to 等待态 → \to 就绪态

进程的五态模型

创建进程 → \to 就绪态 ↔ \leftrightarrow 执行态 → \to 等待态 → \to 就绪态 (执行态 → \to 结束进程)

进程的七态模型

添加 挂起就绪态 和 挂起等待态。

进程创建后可能是就绪态,也可能是挂起就绪态。

死锁的四个条件

(1)互斥条件

(2)占有和等待

(3)不可剥夺

(4)循环等待

前三个条件是必要条件,但不是充分条件。第四个条件是前三个条件共同作用的结果,不会单独存在。

死锁防止

破坏(1):使得临界资源可同时访问。

破坏(2):静态分配。在程序执行前就将所需的全部资源都分配。

破坏(3):剥夺调度。

破坏(4):层次分配,有序分配。

死锁防止会降低系统的并发度,导致低效的资源利用率。

死锁避免

银行家算法

它允许死锁的前三个条件存在,但是可以通过算法避免循环等待。

死锁的恢复和检测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值