- 1、本文档共161页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分析: 如满足Q的申请,余下资金为10-4-2=4,4万还可以满足P(还需4万)、Q(还需1万)(或Q、P)的继续申请。找到安全系列P,Q,R或Q,P,R,故目前资金放贷情况处于安全状态,故Q的申请应该满足。 问题一 (1)若P申请了4万,Q申请了2万,R提出申请2万,如果满足R的申请是否处于安全状态? 2 P(4):4 P:4 Q:2 R:2 10 P(4):4 Q(2):1 R(2):7 2 P(4):4 Q(3) R(2):7 1 Q:1 P(4):4 R(2):7 4 Q归还 P(8) R(2):7 P:4 1 R(9) P 归 还 R:7 8 R(2):7 R 归 还 10 结果: 系统有安全系列Q、P、R,故状态{P:4,Q:2,R:2}是安全状态。 问题(1)解答: 10 P(4):4 Q(2):1 R(4):5 1 P:4 Q:2 R:3 Q:1 P(4):4 Q(3):0 R(4):5 0 P(4):4 R(4):5 1 R(4):5 3 故若开始R申请3万元则不应满足,否则可能会导致死锁 结果:系统无安全系列。{P:4,Q:2,R:3}非安全状态 问题(2):如果P申请了4万,Q申请了2万,R提出申请3万,能满足吗? 若满足,看是否存在安全状态? 三、什么是系统安全状态? 设系统有n个进程,若在某一时刻,系统能按某种顺序如〈P1,P2,…,Pn〉来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成,则称此时的系统为安全状态,称序列〈P1,P2,…,Pn〉为安全序列。 ★银行家算法应用举例: 设系统中共有10台磁带机,有三个进程P1,P2,P3,分别拥有3台、2台和2台磁带机,而它们的最大需求量分别是9台、4台和7台。问题: (1)此时系统安全吗? (2)当P1申请1台系统满足后,此时系统安全吗? 时刻 最大需求 已有台数 还需要量 当前可 用台数 P1 P2 P3 P1 P2 P3 P1 P2 P3 T0 9 4 7 3 2 2 6 2 5 3 ★解: (1)查找安全系列:见下表,有安全系列{P2,P3,P1},故T0时刻系统安全。 时刻 最大需求 已有台数 还需要量 当前可 用台数 P1 P2 P3 P1 P2 P3 P1 P2 P3 T0 9 4 7 3 2 2 6 2 5 3 T1 9 4 7 3 4 2 6 0 5 1 T2 9 0 7 3 0 2 6 0 5 5 T3 9 0 7 3 0 7 6 0 0 0 T4 9 0 0 3 0 0 6 0 0 7 T5 9 0 0 9 0 0 0 0 0 1 T6 0 0 0 0 0 0 0 0 0 10 如果P2申请2满足,P2完成 如果P3申请5满足,P3完成 最后完成P1 ★解: (2)当P1申请1台(T1时刻)后,此时找不到安全系列,T1时刻系统不安全。 时刻 最大需求 已有台数 还需要量 当前可 用台数 P1 P2 P3 P1 P2 P3 P1 P2 P3 T0 9 4 7 3 2 2 6 2 5 3 T1 9 4 7 4 2 2 5 2 5 2 T2 9 4 7 4 4 2 5 0 5 0 T3 9 0 7 4 0 2 5 0 5 4 如果P1申请1满足 剩下资源只能满足P2,若P2申请2满足,P2完成,返回资源4个 P2返回的资源不能满足P1,P3的需求 ★四、银行家算法的实现 1、向量(矩阵)说明 n为系统中的进程个数。m为系统中的资源类型数。 (1)Available(1:m):现有资源向量(或称未分配资源向量)。 Available(j)=k表示有k个未分配的j类资源。 如: Available(1:3)=(1,3,3),说明系统有3类未分配资源,第1类有1个资源,第2类有3个,第三类有3个。 (2)Max(1:n,1:m):资源最大申请量矩阵。Max(i,j)=k表示第i个进程对第j类资源的最大申请量为k. Max R1 R2 R3 P1 2 5 8 P2 4 4 4 P3 5 4 4 如右图:矩阵Max说明系统有3个进程,有3类资源R1,R2,R3。 进程P1对这三类资源的最大申请量为(2,5,8),进程P2对这三类资源的最大申请量为(4,4,4),进程P3对这三类资源的最大申请量为(5,4,4), (3)Allocation(1:n,1:m):资源分配矩阵。Allocation(i,j)=k表示进程i已占有k个j类资源。 Allocati
文档评论(0)