算法-银行家算法

1.当出现死锁状态时,就意味着我们需要强行中止线程或者进程,导致资源的浪费,以及无用的操作。如何解决死锁问题呢?

2.解决死锁问题之一的银行家算法,银行家算法能够按照安全序列来执行相应的操作,只有能够保证自身安全的安全序列才能够被执行

3.如何去解释银行家算法呢?

  想要解释银行家算法,首先需要了解两种状态,安全状态和不安全状态。安全状态,那么就不会产生死锁,那么也就不需要银行家算法;不安全状态,不一定会产生死锁

  银行家算法同时也具有一定的局限性:当资源是有限的时,所需求的总资源单位大于银行家的资源单位,则不满足银行家算法执行的条件,同样可能导致死锁。

 

  我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。

posted @ 2018-07-23 10:53  zxh_python  阅读(1203)  评论(0编辑  收藏  举报