关于银行家算法
银行家算法:Request[i]是进程pi的请求向量。
(1)request[i]<=need[i],则(2),否则出错。
(2) request[i]<=available,则(3),否则系统无足够资源满足pi申请。
(3)系统试探为pi分配
available=available-request[i]
allocation[i]=allocation[i]+request[i]
need[i]=need[i]-request[i]
(4)安全性检查,如果安全将资源正式分配给pi,否则分配作废,让pi进程等待。
以上是我们老师PPT中所给的内容。
其中第三步是那个Request与available、allocation、need这几个之间的计算。但是在第4步安全性检查的时候,不是要对need allocation need available等数组进行计算么。那么在第三步中request对其它3个数组的计算会不会影响到第四步?若此不是只要在第三步计算前令其通过安全性检查,之后只要request的值小于need的值不就可以通过了么?
主要是那个试分配之后,申请资源的进程的need allocation和available的值是分配之后还是分配之前的?
附上我到目前用写的程序 请帮忙看一下这样写是否是正确的银行家算法
[[it] 本帖最后由 Dreamawaker 于 2008-4-14 13:10 编辑 [/it]]
银行家算法.rar
(70.77 KB)