【操作系统】银行家算法,当其中一个进程发出请求时,需要判断系统是否能够将资源分配给它

编程知识 更新时间:2023-04-24 00:40:04

银行家算法的基本思想是分配资源前,先判断系统是否是安全的,只有在系统安全的情况下,才会进行分配资源

上接前一篇博文

Q:在银行家算法中,若出现下述资源分配情况(5 个进程,资源 A/B/C 共 3 类)

假设系统有 A类资源5个,B类资源7个,C类资源 12 个,某一时刻有以下分资源分配

                      Process Max                      Allocation                                 Need

            A             B             C               A            B           C               A               B              C

P1       4              1             3                2             1           2               2                0               1

P2       0              6            2                0             2           2              0                4              0

P3       1              2             2                0             0           1              1                2                 1

P4       1              0             3                1             0           0              0              0               3

P5       3              5             7                1             2           5               2                3               2

Max[i][j]=allocation[i][j]+need[i][j]

如果P2提出请求 Request(0,1,0)后,系统能否将资源分配给它 ? 为什么?(能与不能都要求详细写出各自的理由)

我们在分配资源前,已经先行判断过了系统是安全的,那么,在系统安全的情况下,就会进行分配资源

当P2提出请求的时候,银行家算法要按照以下规则来进行判断

第一步,判断该进程的Request是否小于等于该进程的Need,如果是,就跳转到下一步,如果不是,就说明不能分配资源

那么,我先将之前P2的Need给放上来(0,4,0)

那很明显,该进程的Request是小于该进程的Need的

第二步,判断该进程的Request是否小于等于该进程已分配的资源,如果是,就跳转到下一步,如果不是,就说明不能分配资源

那么,我先将之前P2的Available给放上来(1,2,2)

那很明显,该进程的Request是小于该进程已分配的资源的

所以,我们可以执行第三步,系统先试探性的分配资源

要满足如下条件:

Available[i]-=Request[i],那么很明显Available[i]=Available[i]-Request[i]=(1,2,2)-(0,1,0)=(1,1,2)

Allocation[i]+=Request[i],那么很明显Allocation[i]=Allocation[i]+Request[i]=(0,2,2)+(0,1,0)=(0,3,2)

Need[i]-=Request[i],那么很明显Need[i]=Need[i]-Request[i]=(0,4,0)-(0,1,0)=(0,3,0)

后系统进行安全性检查,如果安全就说明可以分配,如果不安全就说明不能分配

此时可以发现,Available不满足任何一个进程的need,所以显而易见,系统不能够将资源分配给它

 

 

更多推荐

【操作系统】银行家算法,当其中一个进程发出请求时,需要判断系统是否能够将资源分配给它

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

发布评论

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

>www.elefans.com

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

  • 85182文章数
  • 14679阅读数
  • 0评论数