热门搜索 :
考研考公
您的当前位置:首页正文

操作系统之银行家算法

来源:东饰资讯网
操作系统之银⾏家算法银⾏家算法

银⾏家算法是解决死锁问题的。那么怎么解决呢? 死锁的⼀个原因就是互斥资源, 如上图,有A,B,C三个资源,数量分别是10,5,7,MAX表⽰的是每个进程需要该资源,需要多少,Allocation表⽰现在分配了多少,Need表⽰他们还需要多少,⾃然Max-

Allocation就能算出need。那么怎样算Available呢?某个资源⼀共有的减去分配了的,就是当前可⽤的。 work表⽰当前可⽤的资源的数⽬,刚开始肯定就是3 3 2,这个表⽰我们的系统中的资源还剩多少,然后判断可以分配给哪个进程,把这个进程的名字写在前⾯,然后need就是这个进程需要的资源数,Allocation是这个进程当前分配了多少,work+Allocation为把两个加起来,意思就是系统执⾏这个进程,完了以后会释放之前分配给他的,然后这个系统中当前有的资源数就是work+Allocation。执⾏完,最后的work+Allocation应该跟刚

开始系统的资源数相同。 「怎样判断系统是否安全呢?」 如果每个进程都能执⾏,也就是finish都为true,那么这个系统就是安全的,反之就不安全。

P1发出请求向量,是在他原来需要的1 2 2⾥,先要请求1 0 2,所以先要判断请求的向量是不是⽐需要的多,如果多肯定是不对的。第⼆步,请求的向量需要⽐当前可⽤的少,这两个条件都满⾜以后,我们就把Allocation的向量增加请求向量,把Need向量减少请求向量,然后继续进⾏计算。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top