尽管银行动态分配资源以确保系统始终安全,但是如果其中一个线程不放弃已分配的资源(由于某些无限循环或某种原因)会导致银行无法满足其他线程该怎么办?需要吗?这会被称为僵局吗?

最佳答案

在银行家算法的形式论证中,假设所有程序在有限的时间后返回其资源,因此从技术上讲这种情况不会发生(至少在描述问题的数学上是完美的世界中不是这样;- )。

但是,它仍然不会被认为是死锁-进入无限循环的线程不会等待任何资源,只是坐在那里没有任何进展。这种类型的问题可能只是一个问题。几种可能的挂起类型为starvation and livelock,尽管在最简单的情况下,如果线程刚刚进入睡眠状态/进入了一个不执行任何操作的无限循环,我没有一个正式的术语来描述。

关于operating-system - 相关银行家算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8345743/

10-15 21:39