处理机调度与死锁之银行家算法笔记

银行家算法所用到的数据结构:

       以各类资源为矩阵的首行,以各类进程为矩阵的首列。i表示i行,j表示j列,

       进程需要的最大资源数目为矩阵   MAX[i,j];

       分配给各进程的资源数 目为矩阵       Allocation[i,j];

       各类进程需要的资源数目为矩阵    Need[i,j];

        可用的资源数       Available[j]  ;


      首先执行银行家算法,假设进程REQUESTi[j] 表示进程i请求j类资源。

       将REQUESTi[j]<Need[i,j]  and  REQUESTi[j]<Available[j];

       如果满足就试探的将资源分配给进程i.

              此时 Available[j]=Available[j]-REQUESTi[j]

                      Allocation[i,j]=Available[i,j]+REQUEST[j];

   第二步,执行安全性算法。

    设置一个工作向量Work[j]=Avaliable[j];  设置一个标识Finsh[i]=false;

      寻找一个进程满足如下条件。

                          Need[i,j]<Work[j]  否则,执行第四部

         满足执行第三步:

          第三步: 将Finsh[i]=true;  Work[j]=Work[j]+Availbale[i,j];

        第四步: 没有合适的安全性序列,系统不进行分配。                      

   


先预分配资源,再执行安全性算法,若能找到一个安全性序列,则予以分配,否则系统不安全,易产生死锁,不进行分配。

       


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒徒词客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值