若某一系统有同类资源12个,进程A、B、C所需的资源总数分别为5、10、7。下表中列出了这些进程向系统申请资源的次序和数量,请回答:
(1)如采用银行家算法分配资源,请写出完成第5次分配后各进程的状态及所占资源量。
(2)请继续完成以后的资源分配,直到全部进程满足资源分配的要求。
【正确答案】:
(1)用列表法分析这个问题。
下表中每一行表示这一次资源分配后的情况。
在进程第1、2、3次申请时,剩余资源量都能分别满足进程B、C、A的最大需求量10、7、5,所以都能分配,第4次申请时进程C尚需4个资源,大于剩余量(2个),虽然本次仅申请2个,根据银行家算法不能分配,只能等待。
同理,第5次申请时进程B也只能等待,当第6次申请时,进程A的要求能得到满足,这实际上是第4次分配资源,待进程A归还资源后,可分配资源达到5个,此时它已超过进程C的尚需资源量(4),而小于B的尚需资源量(6),所以可完成第4次申请,即第5次实际分配。
由上表可以看出,完成第5次分配后,进程A已分配到全部资源(5个),且已归还给系统(或许该进程已完成),进程B已占有资源4个,进程C已占资源5个。
(2)用(1)中同样的方法完成全部进程的资源分配,具体分配过程列在上表的最后四行。P145