网络操作系统中的银行家算法是什么?

希望有人能给我一个详细的资料讲解,同时举个例子详细说明一下

利用银行家算法避免死锁
. 银行家算法
设Requesti是进程Pi的请求向量,如果Requestiï¼»jï¼½=K,表示进程Pi需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:�
(1) 如果Requesti[j]≤Need[i,j],便转向步骤2;否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。
(2) 如果Requesti[j]≤Available[j],便转向步骤(3);否则, 表示尚无足够资源,Pi须等待。
(3) 系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:�
Availableï¼»j]∶=Availableï¼»jï¼½-Requestiï¼»jï¼½;�
Allocationï¼»i,j]∶=Allocationï¼»i,jï¼½+Requestiï¼»jï¼½;�
Needï¼»i,j]∶=Needï¼»i,jï¼½-Requestiï¼»jï¼½;�
(4) 系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则, 将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。
(3) 系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:�
Availableï¼»j]∶=Availableï¼»jï¼½-Requestiï¼»jï¼½;�
Allocationï¼»i,j]∶=Allocationï¼»i,jï¼½+Requestiï¼»jï¼½;�
Needï¼»i,j]∶=Needï¼»i,jï¼½-Requestiï¼»jï¼½;�
(4) 系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则, 将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。
(3) 系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:�
Availableï¼»j]∶=Availableï¼»jï¼½-Requestiï¼»jï¼½;�
Allocationï¼»i,j]∶=Allocationï¼»i,jï¼½+Requestiï¼»jï¼½;�
Needï¼»i,j]∶=Needï¼»i,jï¼½-Requestiï¼»jï¼½;�
(4) 系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则, 将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-01
避免系统产生死锁的算法
所谓死锁,是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。如果没有外力作用,则会一直下去。
比如,进程A需要 R1 R2 R4资源才能继续运行,进程B需要R2 R3 R4资源
现在A进程占用了R1 R4资源,B占有R2 R3
A等待B占用的R2才能结束并释放现在占有的R1 R4,B在等到R4资源前不会释放R2资源
A和B互相占用对方需要的资源,并且互相等待对方释放资源,就产生死锁

银行家算法就是为防止死锁,在A申请所需资源时,像银行家贷款一样,如果A贷款数大于银行家的资本
银行家不会贷款给A。也就是 电脑不分配给A所需资源,当有足够资源时分配给A,A运行。