银行家算法,操作系统中的Available,Max,Allocation,Need |
您所在的位置:网站首页 › 753是啥 › 银行家算法,操作系统中的Available,Max,Allocation,Need |
全文分四部分:
一、什么是银行家算法? 二、银行家算法中的数据结构 三、银行家算法自然语言描述 四、银行家算法流程图表示 五、银行家算法举例 一、什么是银行家算法?用于避免死锁情况的出现,每一个新进程进入系统时,必须声明需要每种资源的最大数目,其数目不能超过系统所拥有的的资源总量。当进程请求一组资源时,系统必须首先确定是否有足够的资源分配给该进程,若有,再进一步计算在将这些资源分配给进程后,是否会使系统处于不安全状态如果不会才将资源分配给它,否则让进程等待。 二、银行家算法中的数据结构为了实现银行家算法,在系统中必须设置这样四个数据结构: 1、Available向量:表示可利用资源的数量,初值为系统每类资源总数量。Availabeli]=K 2、Max矩阵:每个进程对每类资源的最大需求数量。Max[i,j]=K 3、Allocation矩阵:每个进程已分配的每类资源数量。Allocation[i,j]=K 4、Need矩阵:每个进程尚需要的每类资源数量。Need[i,j]=Max[i,j]-Allocation[i,j] 三、银行家算法自然语言描述 四、银行家算法流程图表示 五、银行家算法举例首先看P0行,A、B、C总需求量7,5,3 P0进程对已分配资源分别是0 1 0,需求为 7 4 3 ,此时可用资源3 3 2 Need=Max - Allocation,根据这个可以算出P1、P2、P3、P4进程的Need Work向量,Finish向量,开始Work向量是等于Available向量也就是当前剩余的资源,我们就从列表中找哪个Work向量小于Need向量,P1的Need是1 2 2,而可用资源数目Available是3 3 2 ,P1进程需求满足,因此P1进程可以执行,Work+Allocation代表完成后的资源数。然后继续判断其他进程,如上表示例 最后进程序列为 ,因此是安全的。 另外,安全序列可能会不唯一 情况一: 情况二: 拒绝: |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |