N个进程共享可以保留的M个资源单元,并且一次只能释放一个。每个过程的最大需求不超过M,所有最大需求的总和小于M + N。系统中会发生死锁吗?如何判断这个系统是否会发生死锁?
0
A
回答
1
你所描述的一样semaphores
关于你的最后一个问题看起来系统:YES。你“可能”总是会陷入僵局;如果你看不到如何,问一个年轻/可耻的/有动力/偏差的开发者。
一个很好的方法来做一个好的方法;是有奇怪的锁定/释放资源规则。例如,如果一个进程需要M个资源来执行任务,他可以立即锁定其中的一半,然后在做任何事之前等待另一半可用。
我认为,只有在完成任务后,他才会放弃,直到拥有了宝贵的M资源并释放它们。
单个进程不会引起太多问题,但会有多个问题,因为它们将锁定超过M个总资源,并且需要更多的资源才能解决此冻结状态。
0
我希望你能得到答案。为其他访问者回答这个问题。
答案是死锁在系统中不会发生。
该证明在下图中给出。
该图像来自于http://alumni.cs.ucr.edu/~choua/school/cs153/Solution%20Manual.pdf第31页
相关问题
- 1. RwLock何时会发生死锁而不是死锁?
- 2. RMI如何发生死锁?
- 3. 如何判断是否有可能在交易中看到死锁?
- 4. 这个BlockingQueue是否容易死锁?
- 5. 如何判断CSS转换是否即将发生?
- 6. 如何判断客户端进程是否死亡?
- 7. 在操作系统中发生多少次(即将发生)的死锁
- 8. 为什么它不会发生死锁?
- 9. SQL Server:如何判断数据库是否是系统数据库?
- 10. 是否有可能在单个线程上发生死锁?
- 11. 如何判断一行是否被锁定?
- 12. 会在这些情况下发生死锁吗?
- 13. 硬件发生“死锁”还是软件导致死锁?
- 14. 如何判断GXT发生的事件?
- 15. 如何判断系统偏好设置中是否启用了Voice Over功能?
- 16. 如何判断操作系统是否为Windows XP或更高版本?
- 17. 如何判断系统托盘中的气球提示是否已关闭?
- 18. 如何判断文件是否在使用Perl的远程文件系统上?
- 19. 此代码是否会导致死锁?
- 20. INSERT操作是否会导致死锁?
- 21. 如何重构这个死锁问题?
- 22. 如何判断一个Windows PE文件是编程控制台子系统还是Windows子系统?
- 23. 如何判断一个TClass是否是从另一个TClass派生的?
- 24. TAO在锁定时发生死锁
- 25. 如何判断一个文件系统对象是否是一个路径或目录
- 26. 如何判断soundmanager2是否使用html5?
- 27. 如何判断加载是否有效?
- 28. 如何判断W键是否按下
- 29. 如何判断码头是否冻结?
- 30. 如何判断UITextView是否脏?
听起来像家庭作业。通常的答案适用于:42 – 2011-02-23 14:29:35
得到这个:在SO中,人们可以帮助你处理你的功课。但要求真正为你做到这一点是无礼的 – 2011-02-23 14:31:59