正在加载图片...
P4发出请求向量 Reques(3,3,0),系统按银行家算法进行检查 (3,3,0)<=Need4(4,3,1) Request4(3,3,0)> Available(2,3,0),让P4等待。 (4)PO请求资源 0发出请求向量 Request(0,2,0),系统按银行家算法进行检查: Requesto(0, 2, 0)<=Needo(7, 4, 3) Requesto(0, 2, 0)<=Available(2, 3, 0) 系统先假定可为P0分配资源,并修改有关数据,如表4.6所示。 表4.6P0分配资源后的有关资源数据 资源分配[ Allocation Need Available 进程 A B CA BCI A B C 0307232 P 302020 302600 我们再利用安全性算法检查此时系统是否安全。从表3.4中可以看出,可用资源 Available {2,1,0}已不能满足任何进程的需要,故系统进入不安全状态,此时系统不分配资源 死锁检测程序的运行频率较高或较低,各有什么优缺点? 答:死锁的检测可非常频繁地在每次资源请求时进行,其优点是:可以尽早地检测到死锁及 其所涉及的进程,并有可能找到引起系统死锁的那个(或那几个)进程。其缺点是:频繁的检测 会耗费相当多的CFU时间,增加系统的开销。相反,每隔较长时间或当CF利用率下降到较低 程度时进行死锁的检测,则可以降低运行死锁检测程序的开销,但在检测到死锁时可能涉及到 很多进程,也难以找到引起死锁的那个进程 9.假设三个进程共享相同类型的四个资源,每个进程一次只能申请或释放一个资源,每 个进程至多需要两个资源,证明该系统不会发生死锁 证:假定该系统死锁,那么就隐含其中的每一进程已占有一资源并正等待另一资源.由于该 系统只有三个进程且有四个资源,因此,必有一进程能获得两个资源,不必等待.于是该进程不 再申请资源,而且当它执行完后将归还它占有的资源。故该系统不会发生死锁 10.在一个实际的计算机系统中,资源可以更新和增减,进程可以创建和撤销。如果系统 用 banker算法处理死锁,那么,在什么情况下,下列改变可以安全地进行而不会引起死锁发 主? (1)增加 Avaiiable(增添新资源) (2)减少 Available(资源永久性地从系统中删除) (3)增大Max(对一进程而言,它可能希望更多的资源) 4)减少Max(一进程决定不需要那么多资源) (5)增加进程数 (6)减少进程数 解(1)任何时候都不会引起死锁发生 (2)仅当每一进程的Max请求数不超过可用资源的总数时,系统才保持在安全态 (3)仅当每一进程的Max请求数不超过可用资源的总数时,系统才保持在安全态 (4)任何时候都不会引起死锁发生 (5)任何时候都不会引起死锁发生 (6)任何时候都不会引起死锁发生P4 发出请求向量 Requesu(3,3,0),系统按银行家算法进行检查: Request4(3,3,0)<=Need4(4,3,1) Request4(3,3,0)>Available (2,3,0),让 P4 等待。 (4)PO 请求资源 PO 发出请求向量 Requesto(0,2,0),系统按银行家算法进行检查: Requesto(0,2,0〉<=Needo(7,4,3) Requesto(0,2,0)<=Available (2,3,0) 系统先假定可为 P0 分配资源,并修改有关数据,如表 4.6 所示。 表 4.6 P0 分配资源后的有关资源数据 资源分配 进程 Allocation Need Available A B C A B C A B C P0 P1 P2 P3 P4 0 3 0 3 0 2 3 0 2 2 1 1 0 0 2 7 2 3 0 2 0 6 0 0 0 1 1 4 3 1 2 1 0 我们再利用安全性算法检查此时系统是否安全。从表3.4中可以看出,可用资源Available {2,1,0}已不能满足任何进程的需要,故系统进入不安全状态,此时系统不分配资源。 8.死锁检测程序的运行频率较高或较低,各有什么优缺点? 答:死锁的检测可非常频繁地在每次资源请求时进行,其优点是:可以尽早地检测到死锁及 其所涉及的进程,并有可能找到引起系统死锁的那个(或那几个)进程。其缺点是:频繁的检测 会耗费相当多的 CFU 时间,增加系统的开销。相反,每隔较长时间或当 CFU 利用率下降到较低 程度时进行死锁的检测,则可以降低运行死锁检测程序的开销,但在检测到死锁时可能涉及到 很多进程,也难以找到引起死锁的那个进程。 9.假设三个进程共享相同类型的四个资源,每个进程一次只能申请或释放一个资源,每 个进程至多需要两个资源,证明该系统不会发生死锁。 证:假定该系统死锁,那么就隐含其中的每一进程已占有一资源并正等待另一资源.由于该 系统只有三个进程且有四个资源,因此,必有一进程能获得两个资源,不必等待.于是该进程不 再申请资源,而且当它执行完后将归还它占有的资源。故该系统不会发生死锁. 10.在一个实际的计算机系统中,资源可以更新和增减,进程可以创建和撤销。如果系统 用 banker 算法处理死锁,那么,在什么情况下,下列改变可以安全地进行而不会引起死锁发 生? (1)增加 Avaiiable(增添新资源): (2)减少 Available (资源永久性地从系统中删除): (3)增大 Max(对一进程而言,它可能希望更多的资源): (4)减少 Max(一进程决定不需要那么多资源): (5)增加进程数: (6)减少进程数。 解(1)任何时候都不会引起死锁发生: (2)仅当每一进程的 Max 请求数不超过可用资源的总数时,系统才保持在安全态: (3)仅当每一进程的 Max 请求数不超过可用资源的总数时,系统才保持在安全态: (4)任何时候都不会引起死锁发生: (5)任何时候都不会引起死锁发生: (6)任何时候都不会引起死锁发生
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有