银行家算法解题方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
4.银行家算法之例
③ T1之后的T2时刻P4请求资源 Request4(3,3,0)是否允许?
Request4(3,3,0)≤Need4(4,3,1),P4请求在最大 需求范围内。 Request4(3,3,0)≤Available(2,3,0)不成立,即 可用资源暂不能满足P4请求资源需要,P4阻 塞等待。 P4请求资源Request4(3,3,0)不允许。
4 2 0 1 3
3 2 0 1 1
0 2 3 2 0
1 0 0 1 0
0 0 2 1 2
7 5 10 7 7
5 3 5 4 4
5 true 2 true 7 true
3 true 5 true
2
从表中可找出一个序列{P1 、 P3、 P4 、 P0 、 P2} 使各进程顺序地一个个地执行完成。 安全序列为{P1、P3、P4、P0、P2},T0时刻系统是 安全的。
Allocation A B C 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2
Need A B 7 4 1 2 6 0 0 1 4 3
C 3 2 0 1 1
Available A B C 3 3 2
1
试问: ①T0时刻是否安全? ② T0之后的T1时刻P1请求资源Request1(1,0,2)是否允许? ③ T1之后的T2时刻P4请求资源Request4(3,3,0)是否允许? ④ T2之后的T3时刻P0请求资源Request0(0,2,0)是否允许? 解:① T0时刻是否安全?
7
4.银行家算法之例
进行安全性检查:可用资源Available(2,1,0) 已不能满足任何进程的需要,故系统进入不安 全状态,此时系统不分配资源。
如果在银行家算法中,把P0发出的请求向 量改为Request0(0,1,0),系统是否能将资 源分配给它,请读者考虑。
8
工作向量Work.它表示系统可提供给进程继续运行所需要的各类资源的 数目
资源情况 进程 A work B Need B Allocation A B C
Work+Allocation finish
C
A
百度文库
C
A
B
C
P0 P1 P2 P3 P4
7 3 7 5 7
4 3 5 3 4
5 2 5 2 3
7 1 6 0 4
6
4.银行家算法之例
④ T2之后的T3时刻P0请求资源Request0(0,2,0)是否允 许?
Request0(0,2,0)≤Need0(7,4,3); Request0(0,2,0)≤Available(2,3,0); 系统暂时先假定可为P0分配资源,并修改有关数据, 如下图所示。
银行家算法之例
假定系统中有五个进程{P0、P1、P2、P3、P4}和三种 类型资源{A、B、C},每一种资源的数量分别为10、 5、7。各进程的最大需求、T0时刻资源分配情况如下 所示。
最大值 已分配 还需要 可用
P0 P1 P2 P3 P4
A 7 3 9 2 4
Max B C 5 3 2 2 0 2 2 2 3 3
② T0之后的T1时刻P1请求资源Request1(1,0,2)
可否允许?
Request1(1,0,2)≤Need1(1,2,2),P1请求在最大需 求范围内。 Request1(1,0,2)≤ Available(3,3,2),可用资源可 满足P1请求需要。
3
4.银行家算法之例
试探把要求的资源分配给进程P1并修改有 关数据结构的数值:
利用安全性算法检查试探将资源分配后状 态的安全性如下:
4
资源情况 A 进程
work B
C
A
Need B
C
Allocation A B C
Work+Allocation finish
A
B
C
P0 P1 P2 P3 P4
7 2 7 5 7
4 3 5 3 4
5 0 5 2 3
7 0 6 0 4
4 2 0 1 3
• Available(2,3,0) = Available(3,3,2)Request1(1,0,2); • Need1(0,2,0) = Need1(1,2,2)-Request1(1,0,2); • Allocation1(3,0,2) =Allocation1(2,0,0)+Request1(1,0,2);
3 0 0 1 1
0 3 3 2 0
1 0 0 1 0
0 2 2 1 2
7 5 10 7 7
5 3 5 4 4
5 true 2 true 7 true
3 true 5 true
因为先分配资源给P1进程符合按安全序列{P1、P3、 P4、P0、P2}分配资源,所以试探将资源分配给进程 P1后的状态是安全的,可将资源分配给进程P1。
4.银行家算法之例
③ T1之后的T2时刻P4请求资源 Request4(3,3,0)是否允许?
Request4(3,3,0)≤Need4(4,3,1),P4请求在最大 需求范围内。 Request4(3,3,0)≤Available(2,3,0)不成立,即 可用资源暂不能满足P4请求资源需要,P4阻 塞等待。 P4请求资源Request4(3,3,0)不允许。
4 2 0 1 3
3 2 0 1 1
0 2 3 2 0
1 0 0 1 0
0 0 2 1 2
7 5 10 7 7
5 3 5 4 4
5 true 2 true 7 true
3 true 5 true
2
从表中可找出一个序列{P1 、 P3、 P4 、 P0 、 P2} 使各进程顺序地一个个地执行完成。 安全序列为{P1、P3、P4、P0、P2},T0时刻系统是 安全的。
Allocation A B C 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2
Need A B 7 4 1 2 6 0 0 1 4 3
C 3 2 0 1 1
Available A B C 3 3 2
1
试问: ①T0时刻是否安全? ② T0之后的T1时刻P1请求资源Request1(1,0,2)是否允许? ③ T1之后的T2时刻P4请求资源Request4(3,3,0)是否允许? ④ T2之后的T3时刻P0请求资源Request0(0,2,0)是否允许? 解:① T0时刻是否安全?
7
4.银行家算法之例
进行安全性检查:可用资源Available(2,1,0) 已不能满足任何进程的需要,故系统进入不安 全状态,此时系统不分配资源。
如果在银行家算法中,把P0发出的请求向 量改为Request0(0,1,0),系统是否能将资 源分配给它,请读者考虑。
8
工作向量Work.它表示系统可提供给进程继续运行所需要的各类资源的 数目
资源情况 进程 A work B Need B Allocation A B C
Work+Allocation finish
C
A
百度文库
C
A
B
C
P0 P1 P2 P3 P4
7 3 7 5 7
4 3 5 3 4
5 2 5 2 3
7 1 6 0 4
6
4.银行家算法之例
④ T2之后的T3时刻P0请求资源Request0(0,2,0)是否允 许?
Request0(0,2,0)≤Need0(7,4,3); Request0(0,2,0)≤Available(2,3,0); 系统暂时先假定可为P0分配资源,并修改有关数据, 如下图所示。
银行家算法之例
假定系统中有五个进程{P0、P1、P2、P3、P4}和三种 类型资源{A、B、C},每一种资源的数量分别为10、 5、7。各进程的最大需求、T0时刻资源分配情况如下 所示。
最大值 已分配 还需要 可用
P0 P1 P2 P3 P4
A 7 3 9 2 4
Max B C 5 3 2 2 0 2 2 2 3 3
② T0之后的T1时刻P1请求资源Request1(1,0,2)
可否允许?
Request1(1,0,2)≤Need1(1,2,2),P1请求在最大需 求范围内。 Request1(1,0,2)≤ Available(3,3,2),可用资源可 满足P1请求需要。
3
4.银行家算法之例
试探把要求的资源分配给进程P1并修改有 关数据结构的数值:
利用安全性算法检查试探将资源分配后状 态的安全性如下:
4
资源情况 A 进程
work B
C
A
Need B
C
Allocation A B C
Work+Allocation finish
A
B
C
P0 P1 P2 P3 P4
7 2 7 5 7
4 3 5 3 4
5 0 5 2 3
7 0 6 0 4
4 2 0 1 3
• Available(2,3,0) = Available(3,3,2)Request1(1,0,2); • Need1(0,2,0) = Need1(1,2,2)-Request1(1,0,2); • Allocation1(3,0,2) =Allocation1(2,0,0)+Request1(1,0,2);
3 0 0 1 1
0 3 3 2 0
1 0 0 1 0
0 2 2 1 2
7 5 10 7 7
5 3 5 4 4
5 true 2 true 7 true
3 true 5 true
因为先分配资源给P1进程符合按安全序列{P1、P3、 P4、P0、P2}分配资源,所以试探将资源分配给进程 P1后的状态是安全的,可将资源分配给进程P1。