资源描述
6. 现有四个进程P1,P2,P3,P4共享R1,R2,R3三类资源,资源分配情况如表1所示,采用银行家算法
(1) 目前系统是否处于安全状态?
(2) 现在如果进程P2提出申请资源数量为(1,0,1),能否为它分配?
(3) P2申请资源后,若P1再请求(1,0,1),能否为它分配?
(4) P1申请资源后,若P3再请求(0,0,1),能否为它分配?
表1系统当前资源分配表
进程
Max
R1 R2 R3
Allocation
R1 R2 R3
Need
R1 R2 R3
Available
R1 R2 R3
P1
3
2
2
1
0
0
2
2
2
1 1 2
P2
6
1
3
5
1
1
1
0
2
P3
3
1
4
2
1
1
1
0
3
P4
4
2
2
0
0
2
4
2
0
MAX表示各进程最大需求资源数,Allocation表示已经分配的资源数,Need表示仍需要的资源数,Available表示现在可用的资源数。这几项不需要都给出,要注意表里给出的是什么。
以下为简答:
(1) 只要能通过分析,举出一个安全序列, 比如:P2、P3、P4、P1,说明系统能够按这一次序执行完所有进程,那么就说明当前系统处于安全状态。
进程
Max
R1 R2 R3
Allocation
R1 R2 R3
Need
R1 R2 R3
Available
R1 R2 R3
P1
3
2
2
1
0
0
2
2
2
1 1 2
P2
6
1
3
5
1
1
1
0
2
P3
3
1
4
2
1
1
1
0
3
P4
4
2
2
0
0
2
4
2
0
P2 (0 1 0) (6 2 3)
P3(5 2 0) (8 3 4)
P4(4 1 4 ) ( 8 3 6)
P1(6 1 4) (9 3 6)
(2) 分配给P2后剩下资源为(0,1,1),P2此时需求变为(0,0,1),仍可以使P2执行完毕,即仍存在(1)中的安全序列,因此可以分配。
(3) 此时剩余资源是(0,1,1),不能满足P1的请求(1,0,1),因此P1进入阻塞状态,不能进行分配。
(4) P1申请资源后进入阻塞状态,此时剩余资源仍是(0,1,1),若分配给P3(0,0,1)则剩余(0,1,0),不足以满足任何进程执行完,因此不能分配。
3.(7分)假设某系统有同类资源12个,有3进程p1、p2、p3,已知p1、p2、p3所需资源总数是8、6、9,它们申请资源的次序如表1所示。系统采用银行家算法为它们分配资源。请回答:
(1)哪次申请分配会使系统进入不安全状态?说明理由。
(2)写出执行完序号为6的申请后,各进程的状态和各进程已占的资源数。
序号
进程
申请量
1
P1
4
2
P2
4
3
P3
2
4
P1
1
5
P2
2
6
P3
2
……
答: (1)若序号4的申请被满足, 会使系统进入不安全状态。因为在序号1、2、3的申请被满足后,进程p1、p2、p3分别后得资源数为4、4、2,尚需资源数分别为:4、2、7,系统上可使用的资源数为2。若序号4的申请被满足,进程p1、p2、p3分别后得资源数为5、4、2,尚需资源数分别为:3、2、7,系统尚可使用的资源数为1,在继续执行,三个进程所需资源都不能得到满足,使系统进入不安全状态。
(2)执行完序号为6的申请后,进程p1、p2、p3的状态分别为阻塞或执行、执行或完成、阻塞。各进程已占的资源数4、6、2 ?(把每个步骤看成很短一段时间,P2在第五步获得足够的资源,在第六步得到执行,可能完成,也可能没完,如果完成了则可能释放资源,P1等到资源得到执行;没完成则P1继续阻塞)。因为进程p2在序号5的申请被满足时,已得到全部资源它能运行结束且归还资源,那么执行完序号为6的申请后,进程p2的状态可以是执行或完成,这样p1的状态为阻塞或执行。
3.(7分)假设某系统有同类资源10个,进程p、q、r所需资源总数是8、4、9,它们申请资源的次序如表1所示。系统采用银行家算法为它们分配资源。请回答:
(1)写出执行完序号为6的申请后,各进程的状态和各进程已占的资源数。
(2)在以后的各次申请中,哪次申请要求可先得到满足?说明理由。
表1 进程申请资源情况
序号
进程
申请量
1
r
2
2
p
4
3
q
2
4
p
2
5
r
1
6
q
2
7
r
3
8
p
2
9
r
3
……
答:
(1) 执行完序号为6的申请后,进程p、q、r的状态分别为阻塞、就绪或执行、阻塞。各进程已占的资源数4、4、2。其中q进程已得到全部资源它能运行结束且归还资源。
(2)在以后的各次申请中,序号为8的申请要求可先得到满足。因为若进程q 已归还了所占资源,则系统目前有4各资源,可以满足进程p的尚需资源数,但不能满足进程r的尚需资源数。
2.(9分)假设系统中有5个进程P1、P2、P3、P4和P5,4种类型的资源R1、R2、R3和R4。某时刻系统资源分配情况如下表所示。
已分配资源
尚需资源
剩余资源
R1
R2
R3
R4
R1
R2
R3
R4
R1
R2
R3
R4
P1
0
0
3
2
0
0
1
2
1
6
2
2
P2
1
0
0
0
1
7
5
0
P3
1
3
5
4
2
3
5
6
P4
0
3
3
2
0
6
5
2
P5
0
0
1
4
0
6
5
6
试回答下列问题:
(1)此时系统是否安全?为什么?
(2)如安全,P2申请资源(1、2、2、2),系统能否分配给它?为什么?
(1)此时系统剩余资源( 1 6 2 2 ),可以满足P1的要求,分配给P1所需资源,P1在有限时间内可以执行完,P1执行完释放所占资源,系统可用资源(1 6 5 4);可以满足P4的要求,分配给P4所需资源,P4在有限时间内可以执行完,P4执行完释放所占资源,系统可用资源(1 9 8 6);可以满足P2的要求,分配给P2所需资源,P2在有限时间内可以执行完,P2执行完释放所占资源,系统可用资源(2 9 8 6);可以满足P3的要求,分配给P3所需资源,P3在有限时间内可以执行完,P3执行完释放所占资源,系统可用资源(3 12 13 10);可以满足P5的要求,分配给P5所需资源,P5在有限时间内可以执行完。故系统是安全的。
(2)假设满足P2的请求,系统状态为:
已分配资源
尚需资源
剩余资源
R1
R2
R3
R4
R1
R2
R3
R4
R1
R2
R3
R4
P1
0
0
3
2
0
0
1
2
0
4
0
0
P2
2
2
2
2
0
5
3
0
P3
1
3
5
4
2
3
5
6
P4
0
3
3
2
0
6
5
2
P5
0
0
1
4
0
6
5
6
此时系统剩余资源( 0 4 0 0),任何一个进程的需求都不能满足,因此系统是不安全的。不能满足P2的请求。
2.现有四个进程P1,P2,P3,P4共享R1,R2,R3三类资源,资源分配情况如表1所示,采用银行家算法
表1系统当前资源分配表
进程
最大需求数
R1 R2 R3
已分配数
R1 R2 R3
空闲
R1 R2 R3
P1
3
2
2
1
0
0
1 1 2
2
2
2
P2
6
1
3
5
1
1
1
0
2
P3
3
1
4
2
1
1
1
0
3
P4
4
2
2
0
0
2
4
2
0
(1)将系统中此刻各进程对各资源的需求数目用向量或矩阵表示出来
所需空间
R1
R2
R3
P1
2
2
2
P2
1
0
2
P3
1
0
3
P4
4
2
0
(2,2,2,)(1,0,2)(1,0,3)(4,2,0)
(2)目前系统是否处于安全状态?
空闲R1 R2 R3=(1 1 2)
分配给P2,回复空闲(6 2 3)
分配给P1,回复空闲(7 2 3)
分配给P3,回复空闲(9 3 4)
分配给P4,回复空闲(9 3 6)
均可以分配,所以安全。
(3) 现在如果进程P2提出申请资源数量为(1,0,1),能否为它分配?
申请之后
空闲(0 1 1)
R1
R2
R3
P1
2
2
2
P2
0
0
1
P3
1
0
3
P4
4
2
0
空闲(0 1 1)
分配给P2,回复空闲(6 2 3)
同上
(4) P2申请资源后,若P1再请求(1,0,1),能否为它分配?
分配给P2,回复空闲(6 2 3)
分配给P1(1 0 1)
空闲(5 2 2 )
(5) P1申请资源后,若P3再请求(0,0,1),能否为它分配?
展开阅读全文