logo资料库

银行家算法讲解 带流程图.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
银行家算法例子: 假设系统中有三类互斥的资源,R1,R2,R3,可用资源数分别是 9、8、5,在 TO 时刻系统 中有 P1、P2、P3、P4 和 P5 五个进程,这些进程对资源的最大需求量和已分配资源数量如 下所示,如果进程按______序列执行,那么系统状态是安全的。 小提示:互斥的意思是他们不能共享使用。 做法:(一个一个的判断它是不是安全序列,一般做不到一半就可以判断) 1 已经分配了这些资源出去了,求出现在系统剩余的资源是多少。在已分配资源数中把 R1 的序列加起来的数,然后再用资源总数 9 减去 7 就得到了现有的资源数量。 同上:R1= 9 — (1+2+2+1+1)=2; R2= 8 — (2+1+1+2+1)=1; R3= 5 — (1+1+3)=0. 分别求出了系统 R1 R2 R3 的现有资源 2 再求出还需资源数,用最大需求量减去已分配资源数就是还需的资源数,得到下表。 3, 然后我们就去拿还需资源数去和上边所求出来的现有资源数去比较,再做出判断 现在 R1=2;R2=1;R3=0;发现只有 P2 可以运行,别的 P1,P3 到 P5 的还需资源数 都不符合要求。 这样我们在回头去看那 4 个选项,找出以 P2(先运行的)开头的 B 答案和 C 答案, 把 A 和 D 排除掉。 4,下面就结合下面的表过程判断,根据 还需资源 和 现有资源 2 1 0 只能先运行 P2 然后 现在系统现有的资源是 2 1 0,那么已分配资源是 2 1 1 已经它运行完以后资源还会被释放 这样就得到了新的现有资源 4 2 1,然后再拿 4 2 1 去和上表的还需资源数 ,R1,R 2,R 3 去比较,选择下一个运行 P 几,这样发现只能运行 P4,然后运行完 P4,P4 所占的资源也 要被释放,这样系统里就有 5 4 1 个资源 然后再在还需资源里选择适合的运行的,发现 P5 可以运行,这样运行完 P5 系统还省下 6 5 4 个资源,这样继续下去直到运行完最后一个。 要注意的是运行过的 P 不可以再运行。
这道题的唯一正确答案是 B。注意要理解它的流程和思想,这样考试时才 OK; 操作系统分配资源时的一个主要考虑是避免死锁的发生。若系统中有同类资源 16 个,有 4 个进程 p1、p2、p3、p4 共享该资源。已知 p1、p2、p3、p4 所需的 资源总数分别为 8、5、9、6。各进程请求资源的次序如表 8-1 所示,若系统采 用银行家算法为他们分配资源,那么____次申请分配会使系统进入不安全状态。 表 8-1 进程申请资源的情况 序号 1 2 3 4 5 6 供选择的答案 进程 P1 P2 P3 P4 P1 P2 申请量 6 4 5 1 1 1 A.3、4 B.3、5 C.4、5 D.5、6 银行家算法的基本思想是:当某个进程提出申请时,必须判断将资源分配给该进 程后,回不回引起死锁。若不会,则进行分配;否则就不分配。这样做能保证在 任何时刻至少有一个进程可以得到所需的全部资源而执行借宿,并将归还资源加 入到系统的剩余资源中,这些资源又至少可以满足一个进程的最大需求。于是保 证了所有进程都能在有限的时间内得到需求的全部资源。 本体按进程的请求顺序过程如表 8-2 所示 序号 进程 申请量 最大需求量 如果申请成 功,还需要 如果给予分 配,系统还 1 2 3 4 5 6 P1 P2 P3 P4 P5 P6 6 4 5 1 1 1 8 5 9 6 2 1 资源数量 剩资源数 2 1 4 10 6 1 如果分配,就会死锁 如果分配,就会死锁 0 0
分享到:
收藏