- 3
- 0
- 约2.23千字
- 约 5页
- 2022-03-03 发布于上海
- 举报
?
?
【系统架构设计师】第一章
操作系统死锁问题
?
?
这一章本来计划写pv操作的后续,写几个实际的题目。不过由于条件不是很允许,这里就不写了。我们这一节直接往后写,关于死锁的问题。上一章:【系统架构设计师】第一章:操作系统(1.2.2) 信号量与pv操作
1.2.3 死锁
这里先介绍一下死锁问题的产生。
上一节我在pv操作的时候写过,在控制进程同步的时候,p和v分别用了两个信号量。为了使进程A对进程B进行等待,就需要开启A之后在开启B。
然而,有时候我们在开启A之后,因为某些特殊的原因,导致进程B没有开启,最后让进程A一直处于等待态。
这些特殊原因有很多,比如有时候人工造成的,又或者是因为系统的资源不足最终导致没有办法运行B等等之类的各种原因。总之,最后导致的结果就是,我们的A进程一直处于等待态,无法继续运行。
这样,我们就称其为锁死。
因此,我们就可以得出锁死的概念:当一个进程在等待一个不可能的事件的时候,我们就称其为锁死状态。
锁死的原因
归根结底,我们进程产生锁死的原因就是因为某个进程在等待一个不可能的事件产生的。当多个进程被锁死,就造成了系统的锁死。所以,这里给出了4个死锁产生的条件:
互斥条件:一个资源每次只能被一个进程使用。
保持与等待条件:一个进程已经获得一些资源,但是由于其他资源没有满足,最终导致不放已拥有的资源。
不可抢占资源:因为有些资源
原创力文档

文档评论(0)