Roma
世界已黑白,此人已成仙。

年少轻狂,总以为天下事竭力有为。人事尽时,终感力不能及。

 

                 图1

 

 

             图3

 

 

 

          图2 

由图2可知p1A项目总共要贷3万块钱,B项目要贷2万块钱,C项目要贷2万块钱,项目才能够启动。银行可分配给贷款方的钱只有(9,3,6)。银行已经分配给贷款方每个项目的钱,分配完之后只剩(0,1,1)。这个剩余的钱可以分配给p2,因为p2还需要(0,0,1),把这个Available(0,1,1)也就是银行还剩的钱分给p2,分完之后银行还剩:

( 0 1 1)-(0 0 1)=(0,1,0)

此时p2可以启动项目,项目完成后,p2的资源释放掉,还给银行,此时银行还剩:

(0,1,0)+(6,1,3)=(6,2,3)

p2项目完成了可以拜拜了,此时还有p1,p3,p4在等待

p1需要(2,2,2),p3(1,0,3),p4(4,2,0)而银行还剩下(6,2,3)贷给谁呢?p1,p3,p4都可以贷。那按顺序贷吧,贷给p1,贷给p1后银行还剩

(6,2,3)-(2,2,2)=(4,0,1)

p1可以完成项目了,项目完成后,把钱还回去可以还(3,2,2)

 

 还给银行后银行剩余的钱为:

(4,0,1)+(3,2,2)=(7,2,3)

p1完成后剩下p3和p4,银行剩余(7,2,3)贷给p3

(7,2,3)-(1,0,3)=(6,2,0)

p3项目完成,返回给银行的钱

(6,2,0)+(3,1,4)=(9,3,4)

最后贷给p4

(9,3,4)-(4,2,0)+(4,2,2)=(9,3,6)刚好等于银行最开始有的钱

贷款顺序为p2,p1,p3,p4,这个顺序就是安全序列

 

 

发出向量Request1(0,0,1)是否分配问题

 

 

 

 

此时应该修改表中的Allocation,Need,以及Available

Allocation=Allocation+(0,0,1)

Need=Max-Allocation

Available=Available-(0,0,1)

 

 

 

 

 然后求安全序列,顺利求出即可同意分配

posted on 2022-10-03 10:21  罗|马  阅读(294)  评论(0编辑  收藏  举报

Live2D