1、 设系统中有3种类型的资源(A,B,C)和5个进程P1、P2、P3、P4、P5,A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态见下表(T0时刻系统状态表)所示。系统采用银行家算法实施死锁避免策略。(12分)
T0时刻系统状态表
P1 P2 P3 P4 P5 最大资源需求量 已分配资源数量 A B C A B C 5 5 9 2 1 2 5 3 6 4 0 2 4 0 11 4 0 5 4 2 5 2 0 4 4 2 4 3 1 4 T0时刻系统状态表
(1) T0时刻是否为安全状态?若是,请给出安全序列。 (2) 在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?
(3) 在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?
(4) 在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么?
答:当前的系统状态描述为:
?5?5?C??4??4??4530229??2?46???11?最大需求A??4??5??2?4??3?12??3?102???05? (已分配到的) C?A??0??04??2?14???147?34??06?(还缺的
?21?10??各类资源数量)
R??17520? (系统拥有的资源总量) V??233? (系统剩余未分配资源)
(1)
在T0时刻,由于V(2,3,3)大于等于(C-A)中P5所在行的向量(1,1,0),因此V能满足P5的运行,在P5运行后,系统的状态为:
?2?4?A??4??2??012??3?102???05? C?A??0??04??2?00??0?47?34??06? V'??547?
?21?00??同样的,在P5运行后,V’(5,4,7)也大于等于C-A中P4所在的行(2,2,1),则能
满足P4的运行。P4运行后,系统的状态为:
?2?4?A??4??0??012??3?102???05? C?A??0??00??0?00??0?47?34??06? V'??7411?
?00?00??按照上述同样的方法,P4运行后,P3,P2,P1也能按顺序运行。(备注:考试时需要都写
出来)。
因此,在T0时刻,存在安全序列:P5、P4、P3、P2、P1。 T0时刻是安全的。
(2) P2申请资源(0,3,4),但在C-A(还缺资源数量)中,P2所在行向量是(1,3,4)。对于资源R1,P2的申请超过它所预定的需求。因此,该申请不给予分配。
(3)
A)P4申请(2,0,1)不超过C-A中P4所在行的向量(2,2,1)。 B)V(2,3,3)大于等于P4的申请(2,0,1)
C)对P4的申请(2,0,1)进行预分配,预分配后,系统的状态为:
?2?4?A??4??4??312??3?102???05? C?A??0??05??0?14??1?47?34??06? V??032?
?20?10??
可用资源V(0,3,2)大于等于C-A中P4所在的行(0,2,0),因此可以满足P4的运行。P4运行后,系统的状态为:
?2?4?A??4??0??312??3?102???05? C?A??0??00??0?14??1?47?34??06? V'??437?
?00?10??
同样的方法(考试时需要列出),可计算出存在安全序列:P4,P5,P3,P2,P1。 因此,预分配后系统的状态是安全状态。 对于,P4请求资源(2,0,1),给予分配,分配后的系统新状态为:
?5?5?C??4??4??4530229??2?46???11? A??4??5??4?4???312??3?102???05? C?A??0??05??0?14??1?47?34??06?
?20?10??R??17520? V??032?
(4)
进程P1请求资源(0,2,0)
A)P1申请(0,2,0)不超过C-A中P1所在行的向量(3,4,7)。 B)V(0,3,2)大于等于P1的申请(0,2,0)
C)对P1的申请(0,2,0)进行预分配,预分配后,系统的状态为:
?2?4?A??4??4??332??3?102???05? C?A??0??05??0?14??1?27?34??06? V??012?
?20?10??
V(0,2,1)不大于等于P1到P5任一进程在C-A中的向量,因此系统进行预分配后处于不安全状态。
对于P1申请资源(0,2,0),不给予分配。