N个进程共享可以保留的M个资源单元,并且一次只释放一个。每个过程的最大需求不超过M,并且所有最大需求的总和小于M + N.可以在系统中发生死锁吗?
答案 0 :(得分:1)
您描述的系统看起来像semaphores
关于你的最后一个问题:是的。你“可以”总是陷入僵局;如果你不知道如何,请问一个年轻/可耻/有动力/不正常的开发人员。
一个做好事的好方法;是有奇怪的锁定/释放资源规则。例如,如果一个进程需要M个资源来执行任务,他可以立即锁定其中的一半,然后在做任何事情之前等待另一半可用。
我认为他永远不会放弃,直到他拥有M宝贵的资源,并在完成任务后释放所有资源。
单个进程不会造成太多问题,但会有多个问题,因为它们会锁定超过M个总资源,并且需要更多的资源来解决这个冻结状态。
答案 1 :(得分:0)
我希望你能得到答案。为其他访客回答这个问题。
答案是系统中死锁不会发生。
证据如下图所示。
图片来自第31页的http://alumni.cs.ucr.edu/~choua/school/cs153/Solution%20Manual.pdf