死锁的四个必要条件

Posted paper大讲堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了死锁的四个必要条件相关的知识,希望对你有一定的参考价值。

死锁的四个必要条件

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 死锁的四个必要条件

互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。


请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。


非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。


循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。


死锁的四个必要条件

例如:

    T1、T2表示两个任务;R1和R2表示两个资源;由资源指向任务的箭头(如R1->T1,R2->T2)表示该资源被改任务所持有;由任务指向资源的箭头(如T1->S2,T2->S1)表示该任务正在请求对应目标资源;
    其满足上面死锁的四个必要条件:
(1).互斥:资源S1和S2不能被共享,同一时间只能由一个任务使用;
(2).请求与保持条件:T1持有S1的同时,请求S2;T2持有S2的同时请求S1;
(3).非剥夺条件:T1无法从T2上剥夺S2,T2也无法从T1上剥夺S1;
(4).循环等待条件:上图中的箭头构成环路,存在循环等待。

死锁的四个必要条件
死锁的四个必要条件


以上是关于死锁的四个必要条件的主要内容,如果未能解决你的问题,请参考以下文章

死锁的四个必要条件,及处理方法

死锁的四个必要条件

死锁的四个必备条件

面试问题之操作系统:死锁的四个必要条件和解决办法

iOS开发----操作系统----死锁的四个必要条件

MySQL - 死锁的产生及解决方案