N processes share M resource units that can be reserved and release only one at a time. The maximum need of each process does not exceed M, and the sum of all maximum needs is less than M+N. Can a deadlock occur in the system ?
问问题
1497 次
2 回答
1
您描述的系统看起来像信号量
关于你的最后一个问题:是的。你“可以”总是陷入僵局;如果您不明白如何,请询问年轻/可耻/有动力/离经叛道的开发人员。
一种制作好作品的好方法;是有奇怪的锁定/释放资源规则。例如,如果一个进程需要 M 个资源来执行一项任务,他可以立即锁定其中的一半,然后等待另一半可用后再做任何事情。
我假设他永远不会放弃,直到他拥有 M 宝贵的资源并在任务完成后将它们全部释放。
单个进程不会引起太多问题,但有几个进程会造成问题,因为它们将锁定超过 M 个总资源,并且需要更多资源才能摆脱这种冻结状态。
于 2011-02-23T16:04:12.290 回答
0
我希望你得到答案。为其他访客回答这个问题。
答案是系统不会发生死锁。
下图给出了证明。
图片取自http://alumni.cs.ucr.edu/~choua/school/cs153/Solution%20Manual.pdf第 31 页
于 2014-12-17T18:41:34.073 回答