银行家算法详解

为了方便大家复习这里就不再详细赘述银行家算法的一些前世今生什么的,咱们直接上例题

上概念。

先熟悉几个要用到的关键词的概念。

最大申请矩阵(MAX):每个进程运行完所需要的最大资源向量

分配矩阵(allocation):这个时刻已经占有的资源向量

需求矩阵(need):这个时刻还需要的资源向量

可用矩阵(avaailable):这个时刻可用的资源向量

银行家算法

资源分配算法:

安全性算法:

讲解综合例题

解析

(1)分析:判断此时是否为安全状态,就是推出此时是否能够写出他的安全序列。我们先用有效向量(available)按照顺序依次对比需求矩阵,当所有类型的资源都满足时说明该进程可以执行,每有一个符合的之后。可用进程就得加上该进程的分配矩阵,(之前cpu给他分了一些,用完了得收回来,就是回收之前给他分配的),每一次有一个进程符合之后就从需要按照顺序从第一个开始,开始满足的就不管他了。

答:

注释:work第一个先是有效矩阵,之后是不断更新上一个那个work+allocation,其实就是可用矩阵的意思

(2)分析:我们需要先对于他的请求进行判断。首先是必须要小于我们的need矩阵,就是可以理解成超过需求矩阵之后他已经超过他的max了,来判断合不合法。其次我们判断这个时刻运行至这个进程时,cpu的有效向量是否满足他的请求(可以看一下判断安全序列的那个图)接着画出资源变化图即可。

答:

同时根据安全分析表检查可知,可以找到一个安全序列,因此系统是安全的可以将p1分配的资源分配给他

(3)分析:这道题和第二小问类似,步骤思路也一样。可以将分析表画出来

答:


__EOF__

本文作者jasun
本文链接https://www.cnblogs.com/jasunzhang/p/17034376.html
关于博主:编程小弱鸡一名,希望从今天开始慢慢提高,一步步走向技术的高峰!
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   jasun9  阅读(570)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示