某系统有A、B、C、D四类资源可供五个进程P1、P2、P3、P4、P5共享。系统对这四类资源的拥有量为:A类3个、B类14个、C类12个、D类12个。进程对资源的需求和分配情况如下: 按银行家算法回答下列问题: (1)现在系统中的各类资源还剩余多少? (

admin2016-06-30  19

问题 某系统有A、B、C、D四类资源可供五个进程P1、P2、P3、P4、P5共享。系统对这四类资源的拥有量为:A类3个、B类14个、C类12个、D类12个。进程对资源的需求和分配情况如下:

按银行家算法回答下列问题:
(1)现在系统中的各类资源还剩余多少?
(2)现在系统是否处于安全状态?为什么?
(3)如果现在进程P2提出需要A类资源0个、B类资源4个、C类资源2个和D类资源0个,系统能否去满足它的请求?

选项

答案(1)系统拥有资源量为A类3个,B类14个,C类12个,D类12个,把它用(3,14,12,12)来表示。由于五个进程已占用的资源量为(2,9,10,12),故现在系统中各类资源的剩余量为(1,5,2,0)。 (2)根据各进程对资源的最大需求和已占资源量可知它们尚需的资源量如下: 进程P1尚需(0,0,0,0) 进程P2尚需(0,7,5,0) 进程P3尚需(1,0,0,2) 进程P4尚需(0,0,2,0) 进程P5尚需(0,6,4,2) 由于进程P1不会再申请资源,根据系统当前的资源剩余量(1,5,2,0)可先满足进程P4的需求,当进程P4执行结束后归还所占的全部资源,收回的资源又可继续分配给其他进程。如果系统按P4、P2、P3、P5顺序分配和回收资源,则可保证所有进程在有限时间里得到所需的全部资源,因而,现在系统处于安全状态。 (3)如果现在进程P2提出需要(0,4,2,0)个资源,则由于当前剩余的资源(1,5,2,0)小于它的尚需量(0,7,5,0),暂时不能满足它的请求。

解析 银行家算法是保证至少有一个进程能得到所需的全部资源的前提下进行资源分配的。当进程请求分配资源时,银行家算法总是测试该进程对资源的尚需量,仅当系统的资源不少于它的尚需量时才会根据该进程当前的申请把资源分配给它。这样,可保证所有的进程在有限的时间内能得到所需的全部资源,确保系统处于安全状态。
本题共有A、B、C、D四类资源,系统对这四类资源的量为:A类3个、B类14个、C类12个、D类12个,可以把它记为(3,14,12,12)。根据五个进程对资源的需求和分配情况可知它们已占资源的尚需量为:
进程P1尚需(0,0,0,0)
进程P2尚需(0,7,5,0)
进程P3尚需(1,0,0,2)
进程P4尚需(0,0,2,0)
进程P5尚需(0,6,4,2)
现在来测试系统是否处于安全状态。由于进程P1已经得到了所需的全部资源,它在执行中不再会申请资源,因而可把资源先分配给进程P4,然后再依次分配给进程P2、P3、P5,使每个进程都在有限时间里能得到各自所需的全部资源,且系统处于安全状态。
但是,如果当前进程P2先提出需要资源(0,4,2,0)个时,按银行家算法暂时不能满足它的请求,这是因为当前剩余资源数(1,5,2,0)小于它尚需资源数(0,7,5,0)。
转载请注明原文地址:https://kaotiyun.com/show/tIAx777K
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)