如何确定此系统中是否会发生死锁?

时间:2011-02-23 14:28:06

标签: deadlock bankers-algorithm

N个进程共享可以保留的M个资源单元,并且一次只释放一个。每个过程的最大需求不超过M,并且所有最大需求的总和小于M + N.可以在系统中发生死锁吗?

2 个答案:

答案 0 :(得分:1)

您描述的系统看起来像semaphores

关于你的最后一个问题:是的。你“可以”总是陷入僵局;如果你不知道如何,请问一个年轻/可耻/有动力/不正常的开发人员。

一个做好事的好方法;是有奇怪的锁定/释放资源规则。例如,如果一个进程需要M个资源来执行任务,他可以立即锁定其中的一半,然后在做任何事情之前等待另一半可用。

我认为他永远不会放弃,直到他拥有M宝贵的资源,并在完成任务后释放所有资源。

单个进程不会造成太多问题,但会有多个问题,因为它们会锁定超过M个总资源,并且需要更多的资源来解决这个冻结状态。

答案 1 :(得分:0)

我希望你能得到答案。为其他访客回答这个问题。

答案是系统中死锁不会发生

证据如下图所示。

图片来自第31页的http://alumni.cs.ucr.edu/~choua/school/cs153/Solution%20Manual.pdf