银行家算法
银行家算法
- 定义
- 原理
- 局限
- 参数
- 原则
定义
银行家算法是一种死锁避免算法,该算法允许进程动态申请资源。
原理
系统毎次在进行资源分配之前,先计算此次分配资源的安全性,若此次资源分配不会导致系统进入不安全状态,则分配资源;否则,不分配资源,让进程等待。
局限
银行家算法在避免死锁上非常有效,但是需要在进程运行前就知道其所需资源的最大值,且进程数也通常不是固定的。因此很难实现。
参数
已分配给进程的资源:Allocation
进程总共需要的资源数:Claim
进程还需要的资源数:Need
资源池(空闲资源数):Available
原则
(1) 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
(2) 进程可以分期请求资源,但请求的总数不能超过最大需求量。
(3) 当系统空闲的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。
(4) 当系统空闲的资源能满足进程尚需资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。
参考资料:银行家算法
还没有评论,来说两句吧...