2011-02-23 140 views
0

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

+2

听起来像家庭作业。通常的答案适用于:42 – 2011-02-23 14:29:35

+1

得到这个:在SO中,人们可以帮助你处理你的功课。但要求真正为你做到这一点是无礼的 – 2011-02-23 14:31:59

回答

1

你所描述的一样semaphores

关于你的最后一个问题看起来系统:YES。你“可能”总是会陷入僵局;如果你看不到如何,问一个年轻/可耻的/有动力/偏差的开发者。

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

我认为,只有在完成任务后,他才会放弃,直到拥有了宝贵的M资源并释放它们。

单个进程不会引起太多问题,但会有多个问题,因为它们将锁定超过M个总资源,并且需要更多的资源才能解决此冻结状态。

相关问题