银行家算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(2)T0时刻若P2请求[0,1,4]能 否实施分配?为什么?
T0时刻P2请求:[0,1,4]
进程
A P1 5 max B 5 C 9 allocation A 2 B 1 C 2 A 3 need B 4 C 7 T0时刻后 available
A B C
2 3 3
P2
P3
5
4
3
6
4
0
0
2
5
1
0
能否实施分配?为什么?
P1剩余最大需求为[3,4,7]超过了系统目前剩余资
源[0,3,2],为了使系统处于安全状态,系统不会
为P1分配资源。
避免死锁的实质在于如何使系统不 进入不安全状态。
银行家算法特点
缺点:
(1)这个算法要求客户数保持不变,这在多道程 序中是难以做到的。
(2)这个算法保证所有客户在有限的时间内得到 满足,但实时客户要求快速响应,所以要考虑 这个因素
请资源,系统在进行资源分配之前,先计
算资源分配的安全性。若此次分配不会导
致系统进入不安全状态,便将资源分配给
进程;否则进程等待。
操 作 系 统 分 配 资 源 过 程 示 意 图
进程P首次请求分配k个资源 系统现存资源>=进程 P对资源最大需求m? 是 给进程P分配k个资源 推迟分配 否
进程P又请求分配h个资源
分配资源,分配后,系统剩余资源个数变成[0,3,2]。经以
上分析这时系统中有一个安全序列:<P4,P5,P1,P2,P3>。 故系统为P4分配资源[2,0,1]后仍处于安全状态,不会产 生死锁。
(4)在T0时刻P4请求[2,0,1]之后,P1又 请求[0,2,0]能否实施分配?为什么?
P4请求:[2,0,1]P1又请求[0,2,0]
3
0
4
6
0 11 4
P4
P5
4
4
2
2
5
4
2
3
0
1
4
4
2
1
2
1
1
0
(2)T0时刻若P2请求[0,1,4]能否实施分配?为什 么? P2需求为[0,1,4],超过了T0时刻系统剩余资 源个数[2,3,3],故系统无法为进程P2分配,故 P2进程等待,系统剩余资源个数仍为[2,3,3]
(3)在T0时刻P4请求[2,0,1]能否 实施分配?为什么?
1: <P4,P5,P1,P2,P3> 2: <P4,P5,P1,P3,P2> 3: <P4,P5,P2,P1,P3> 4: <P4,P5,P2,P3,P1> 5: <P4,P5,P2,P3,P1> 6: <P4,P5,P3,P2,P1> 7: <P4,P2,P3,P5,P1> 8: <P4,P2,P5,P3,P1> 9: <P4,P2,P5,P1,P3> 10:<P4,P3,P2,P5,P1> 11:<P4,P3,P5,P1,P2> 12:<P4,P3,P5,P2,P1>
2
5 5 4 4
1
0 0 2 1
3
0 2 1
4
6 0 1 0
P4 P5 P1 P2
P3
(3)在T0时刻P4请求[2,0,1]能否实施分配?为什么?
在T0时刻系统剩余资源为[2,3,3]大于P4的剩余最大需求 [2,2,1] , 且 P4 现 在 请 求 [2,0,1] 加 上 T0 时 刻 前 已 分 配 [2,0,4]也没有超过其最大需求max[4,2,5],因此系统可以
Need= Max-Allocation
例 设系统中有3种类型的资源(A、B、C)和5个进程 P1,P2,P3,P4,P5。已知A,B,C的最多资源个数为
[17,5,20],在T0时刻的状态如下表
进程 P1 P2 max allocation
P3 P4 P5
A 5 5 4 4 4
B 5 3 0 2 2
available A B C
T0时刻后
P4 P5 P1 P2 P3
2 3 3 4 3 7
P2
P3
5
4
3
6
4
0
0
2
5
1
0
3
0
4
6
7 4 11 9 5 13 13 5 15 17 5 20
0 11 4
P4
P5
4
4
2
2
wk.baidu.com
5
4
2
3
0
1
4
4
2
1
2
1
1
0
(1)T0时刻是否为安全状态?若是则给出安全序列。
<P4,P5,P1,P2,P3>
C 9 6 11 5 4
A 2 4 4 2 3
B 1 0 0 0 1
C 2 2 5 4 4
资源总数:[17,5,20]
T0时刻后
进程
A P1 P2 P3 5 5 4
max B 5 3 C 9 6
allocation A 2 4 B 1 0 0 C 2 2 5 A 3 1 0
need B 4 3 0 C 7 4 6
安全序列
当前系统中所有进程能够执行完毕的一种执行顺 序,表示为<Pi,Pj,…,Pm>,称之为安全序列。 其中Pi,Pj,…,Pm代表系统中的进程。 系统中的安全序列可能会有多种。
安全状态
如果系统中的所有进程至少能以某一种顺
序执行完毕,则称系统当前处于安全状态。
安全状态
在避免死锁的方法中,允许进程动态地申
available A B C 2 3 3
0 11 4
P4
P5
4
4
2
2
5
4
2
3 15
0
1
4
4
2
1
2
1
1
0
2 17
(1)T0时刻是否为安全状态?若是则
给出安全序列。
资源总数:[17,5,20]
进程
A P1 5 max B 5 C 9 allocation A 2 B 1 C 2 A 3 need B 4 C 7
进程
P1 allocation A 2 B 1 3 C 2 A 3 need B 4 2 C 7 A 0 0 B 3 1 C 2 2 available
P2
P3 P4 P5
4
4 4 2 3
0
0 0 1
2
5 5 4 4
1
0 0 2 1
3
0 2 1
4
6 0 1 0
(4)在T0时刻P4请求[2,0,1]之后, P1又请求[0,2,0]
k+h>m? 否 系统现存资源>=h? 是 给进程P分配h个资源 否 推迟分配 是
拒绝分配
数据结构
Max最大需求矩阵 某个进程对某类资源的最大需求数 Allocation已分配矩阵 某类资源当前已分配给某进程的资源数。 Available(剩余资源向量) 某类可利用的资源数目,其初值是系统中所配臵的该 类全部可用资源数目。 Need需求矩阵 某个进程还需要的各类资源数。
(3)由于要寻找一个安全序列,实际上增加了系 统的开销。
作业 available 假定系统中有五个进程{P0、P1、P2、P3 、P4}和三种类型的资源{A,B,C},每一 A B C 种资源的数量分别为10、5、7,在T0时刻 的资源分配情况如图,请找出该表中T0时 刻以后存在的安全序列(至少2种) T0时刻后
资源情况 进程 P0 P1 P2 7 3 9 Max A B C 5 2 0 3 2 2 Allocation A B C Need A B C
0 1
2 0 3 0
0
0 2
P3
P4
2
4
2
3
2
3
2
0
1
0
1
2
资源总数:[17,5,20]
P4请求:[2,0,1]
available
进程
P1
allocation A 2 B 1 C 2 A 3
need B 4 C 7 A B C 2 3 13 20 15 11 7
0 3 3 2 5 17 4 13 5 9 7 4
P2
P3 P4 P5
4
4 4 2 3
0
0 0 1
相关文档
最新文档