银行家算法的问题

来源:6-8 作业管理之死锁

慕哥2296688

2019-09-04

Dijkstra提出的银行家算法属于
A)死锁预防
B)死锁避免
C)死锁检测
D 死锁解除

一道很常见的银行家算法辨析题,我不明白为什么选择B。
为什么说它可以避免死锁,而不是预防死锁?这两个词到底有什么区别?
避免死锁算法和预防死锁的算法又有什么区别?

写回答

1回答

咚咚呛

2019-09-04

这个点确实需要注意一下,但是转过头一想感觉也有点背书式了,按照自己的理解说明一下,有点绕口。

所谓死锁预防,主要是从离散数学,或者是数理逻辑上去考虑的,我们知道死锁有四个必要条件,只要满足这四个条件,死锁一定发生,那么只要破坏其中一个条件,就不构成死锁了。因为破坏了必要条件,所以不造成死锁,那么作为不发生死锁的前置条件,就是预防。

而死锁避免,则不是通过破坏这四个必要条件去解决死锁的,他是在运行过程中通过一定的策略不让死锁发生,这就算避免。


0
3
八朔
回复
慕哥2296688
是因为他没有预防死锁吧,比如资源都不够,他就还是会死锁,只是在资源够的情况下,避免死锁发生。
2020-02-28
共3条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程