操作系统之银行家算法

编程知识 更新时间:2023-04-23 22:39:21

银行家算法

银行家算法是解决死锁问题的。那么怎么解决呢? 死锁的一个原因就是互斥资源, 如上图,有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向量减少请求向量,然后继续进行计算。

更多推荐

操作系统之银行家算法

本文发布于:2023-04-18 04:56:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/5581b8536c313cfe21a51cee0c09a403.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:银行家   算法   操作系统

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 85014文章数
  • 14024阅读数
  • 0评论数