银行算法是怎样避免死锁的:
计算机银行家算法是通过动态地检测系统中资源分配情况和进程对资源的需求情况,在保证到少有一个进程能得到所需要的全部资源,从而能确保系统处于安全状态进,才把资源分配给申请者,从而避免了进程共享资源时系统发生死锁。
采用银行家算法时为进程分配资源的方式:
1)对每一个首次申请资源的进程都要测试该进程对资源的最大的需求量。如果系统现存资源可以满足他的最大需求量,就按当前申请量为分配资源。否则推迟分配。
2)进程执行中继续申请资源时,先测试该进程已占用资源数和本次申请资源总数有没有超过最大需求量。超过就不分配。
若没有超过,再测试系统现存资源是否满足进程尚需的最大资源量,满足则按当前申请量分配,否则也推迟分配。
总之,银行家算法要保证分配资源时系统现存资源一定能满足至少一个进程所需的全部资源。