银行家算法的使用

时间:2014-03-23 09:39:55

标签: linux linux-kernel operating-system bankers-algorithm

当我们有锁,完成变量和信号量时,为什么我们需要银行家的算法。因为锁是在linux中以一定的顺序获取的,所以不会有任何死锁。那么运行银行家的用途是什么? #39;在这种情况下的算法。

1 个答案:

答案 0 :(得分:0)

银行家算法用于避免死锁,方法是检查资源分配是否会导致系统死锁,而锁定用于解决临界区问题,即避免多个进程同时进入临界区。

如果不与其他死锁解决方案结合使用,锁定本身无法避免/防止死锁。

正如 deviantfan的评论:对大多数操作系统中的锁定获取没有限制。以下是一个简单的示例,即使使用锁定有效,系统也可能出现死锁:

P1:....;锁(的fileA);锁(FILEB); ....解锁(fileA);解锁(FILEB); ....

P2:......;锁(FILEB); lock(fileA); ..... unlock(fileB);解锁(的fileA); ....