【操作系统】 - Operation System 第十一章 - 死锁

来自: https://www.bilibili.com/video/BV1js411b7vg?p=78

 

2 系统模型

 

    进程对资源的争夺才会产生死锁, 资源可以是CPU、内存、I/O等等。 当一个资源状态是free时,可以被一个进程get(获取), 资源就变成use/hold 状态,进程使用完资源后,需要release资源, 资源变回free状态。 资源状态如此往复循环,重复被其他进程使用。

    资源状态:

    死锁产生的情况:

    资源分配图,用有向图表示进程与资源的占用与请求情况如下图,当P -> R, 表示进程依赖资源R, 当R -> P, 表示资源R被进程P占用。

    资源分配图, 一个资源R里可能由多个资源,能被多个进程占有

    下图无死锁。

    形成死锁

    无死锁

    结论: 如果死锁, 一定有环, 如果有环, 不一定死锁。 死锁是有环的充分不必要条件。

3 死锁的特征

    死锁的出现的一定有下面四个条件, 但有下面四个条件不一定会死锁

 

4 死锁处理办法

 

    死锁的解决办法

4.1 死锁预防

    只要打破死锁存在的四个必要条件之一, 就可以打破死锁。 (四个条件是1.互斥  2.持有并等待  3.无抢占   4. 循环等待)

4.2 死锁避免

 

 

 

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页