@740340735
2016-04-19T05:20:31.000000Z
字数 971
阅读 894
操作系统
陆一洲 5140309557 of F1403020
考虑如下的死锁可能发生在哲学家进餐中,哲学家在同个时间获得筷子。讨论此种情况下死锁的四个必要条件的设置。讨论如何在消除其中任一条件来避免死锁的发生。
死锁是可能的,因为哲学家进餐问题是以以下的方式满足四个必要条件:
死锁可避免克服的条件方式如下:
一种可能以防止死锁的解决办法是要有一个单一的,优先于任何其他资源的资象 源。例如,如果多个线程试图访问同步对象 A……E ,那么就可能发生死锁。(这种同步对象可能包括互斥体,信号量,条件变量等),我们可以通过增加第六个象 对象来防止死锁。每当一个线程希望获得同步锁定给对象 A……E ,它必须首先获得对象 F 的锁。该解决方案被称为遏制:对象 A……E 的锁内载对象 F 的锁。对比此方案的循环等待和 Section7.4.4 的循环等待。
在一个真实的计算机 系统中,可用的资源和进程命令对资源的要求都不会持续很久是一致的长期(几个月)。资源会损坏或被替换,新的进程会进入和离开系统,新的资源会被购买和添加到系统中。如果用银行家算法控制死锁,下面哪些变化是安全的(不会导致可能的死锁) ,并且在什么情况下发生?
