当我们有锁,完成变量和信号量时为什么需要银行家算法。既然锁是在Linux中以一定顺序获取的,那么就不会有死锁。那么在这种情况下运行银行家算法有什么用。
最佳答案
Banker算法用于通过检查资源分配是否会导致系统死锁来避免死锁,而锁则用于解决关键部分问题,即,避免一个以上的进程可以进入系统的关键部分。同时。
如果不与其他死锁解决方案结合使用,则锁定本身无法避免/防止死锁。
正如deviantfan的评论:在大多数操作系统中,对锁定获取没有限制。以下是一个简单示例,其中即使使用锁定有效,系统也可能死锁:
P1:..;锁(文件A);锁(fileB); .... unlock(fileA); unlock(fileB); ....
P2:..;锁(fileB); lock(fileA); ..... unlock(fileB);解锁(fileA); ....
关于linux - 使用银行家算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22589149/