os

 

银行家算法

进程\资源workNeedAllocationwork+AllocationAvailable
           
           
           
           
           

计算机操作系统p1 28例题解析

第一问

1.列表
进程\资源workNeedAllocationwork+AllocationAvailable
           
           
           
           
           
2.将题目中的Available(1622)写入work
进程\资源workNeedAllocationwork+AllocationAvailable
  1622        
           
           
           
           
3.在题目中的Need中找到一个Need使它满足小于work

(比如题中:0012<1622。(注意:这不是一个四位数比较,而是单独四个数对应位置比较)0012这一行是P0,那么就把P0这一行写入表格)

如果在题目中的Need中找不到一个Need使它满足小于work,则为false,检查一下,如果自己没出现失误,那就不用继续找了

进程\资源workNeedAllocationwork+AllocationAvailable
P0 1622 0012 0032 1654 true
           
           
           
           

(注意:这不是一个四位数比较,而是单独四个数对应位置比较

4.下一个work是上一个work+Allocation

(比如题中:0012<1622。(注意:这不是一个四位数比较,而是单独四个数对应位置比较)0012这一行是P0,那么就把P0这一行写入表格)

进程\资源workNeedAllocationwork+AllocationAvailable
P0 1622 0012 0032 1654 true
  1654        
           
           
           
5.在题目中的Need中找到一个Need(这个Need不包括我们已经分配过的,比如P0)使它满足小于work
进程\资源workNeedAllocationwork+AllocationAvailable
P0 1622 0012 0032 1654 true
P3 1654 0652 0332 1986 true
           
           
           
6.重复以上操作

work+Allcation时要注意(注意:这不是一个四位数加法,而是单独四个数对应位置做加法

进程\资源workNeedAllocationwork+AllocationAvailable
P0 1622 0012 0032 1654 true
P3 1654 0652 0332 1986 true
P4 1986 0656 0014 199 10 true
P1 199 10 1750 1000 299 10 true
P1 299 10 2356 1354 3 12 14 14 true
7.总结

当遇到false,不能找到一个安全序列,这个状态是不安全的

能找到一个一个安全序列P0P3P4P1P2,所有这个状态是安全

第二问

1.看所提出请求的Request必须要小于等于Need,若不小于失败

例题:P2的Request(1,2,2,2)要小于等于Need(2,3,5,6)

2.看所提出请求的Request必须要小于等于Available,若不小于等待

例题:P2的Request(1,2,2,2)要小于等于Available(2,3,5,6)

3.尝试分配,并将Available,Allocation,Need重新分配
Available=Available-Request
所请求的进程发生了变化
所请求的进程Allocation=Allocation+Request
所请求的进程Need=Need-Request

例题

Available=Available-Request=1622-1222=0400
所请求的进程P2发生了变化
所请求的进程P2:Allocation=Allocation+Request=1354+1222=2576
所请求的进程P2:Need=Need-Request=2356-1222=1134
4.如第一问判断安全
进程\资源workNeedAllocationwork+AllocationAvailable
  0400        
           
           
           
           

找不到一个进程的Need使它满足小于work,则为false

所以这个进程不安全

posted @ 2021-11-10 19:59  chasteness  阅读(459)  评论(0)    收藏  举报