如何判断这个系统是否会发生死锁?
答
你所描述的一样semaphores
关于你的最后一个问题看起来系统:YES。你“可能”总是会陷入僵局;如果你看不到如何,问一个年轻/可耻的/有动力/偏差的开发者。
一个很好的方法来做一个好的方法;是有奇怪的锁定/释放资源规则。例如,如果一个进程需要M个资源来执行任务,他可以立即锁定其中的一半,然后在做任何事之前等待另一半可用。
我认为,只有在完成任务后,他才会放弃,直到拥有了宝贵的M资源并释放它们。
单个进程不会引起太多问题,但会有多个问题,因为它们将锁定超过M个总资源,并且需要更多的资源才能解决此冻结状态。
答
我希望你能得到答案。为其他访问者回答这个问题。
答案是死锁在系统中不会发生。
该证明在下图中给出。
该图像来自于http://alumni.cs.ucr.edu/~choua/school/cs153/Solution%20Manual.pdf第31页
听起来像家庭作业。通常的答案适用于:42 – 2011-02-23 14:29:35
得到这个:在SO中,人们可以帮助你处理你的功课。但要求真正为你做到这一点是无礼的 – 2011-02-23 14:31:59