如何理解产生死锁的4个必要条件

如题所述

第1个回答  2022-06-29

对于永久性资源,产生死锁有四个必要条件:

可能我一直犯了一个错误,把必要条件理解成了数学中的必要条件,其实这里更像是逻辑学的一些关系形式。这里或多或少还是有一定区别的。

有命题p、q,如果p推出q,则p是q的 充分条件 ,q是p的必要条件;如果p推出q且q推出p,则p是q的充分必要条件,简称 充要条件 。

我们按照逻辑学的定义来简述 :
产生死锁的4个必要条件是1.互斥2.不可剥夺3.请求和保持4.循环等待。

逻辑学的定义

如果没有这个4个条件(1.互斥2.不可剥夺3.请求和保持4.循环等待),则必然不会 产生死锁
如果 产生死锁 ,这一定有这个4个条件(1.互斥2.不可剥夺3.请求和保持4.循环等待)并且这4个条件都是要满足的。并不是满足其中一个。
4个条件是死锁产生的必要条件。不是充分条件,充分条件的意思是如果有这个4个条件,就一定会死锁,显示不是,要产生死锁肯定还有其他条件满足才行。但是必要条件的意思是,只要产生死锁,就会有这4种情况出现,如果有一条情况不满足,那么肯定不会产生死锁。所以我们经常预防死锁就是通过解除这4个必要条件来实现。

北京大学出版社 陈向群 的 《操作系统教程》第三版 我怎么感觉这句话不严谨呢?

我觉得应该改成 只要系统发生死锁,则以上四个条件都必须成立。

相似回答