您的位置:首页 > 其它

个人学习笔记-操作系统银行家算法题目

2017-12-02 23:46 288 查看
银行家算法的详细描述,请自行查阅资料。

笔者只以一道简单的题目做描述。

题目:

5个进程从p0到p4

3个资源类型A(10个实例),B(5个实例),C(7个实例)

具体输入如下表:

在T0时刻有:

 

Allocation

Max

Available

 

A  B  C

A  B   C

A  B   C

P0

0   1  0

7  5    3

3  3    2

P1

2   0  0

3  2    2

P2

3   0  2

9  0    2

P3

2   1  1

2   2   2

P4

0   0  2

4   3   3

Available表示每类资源可用的数量。

Allocation表示当前分给每个进程的资源数目。

Max表示每个进程对资源的最大需求

答案分析如下表:

  初始时:

   Work:= Available 

   Need:=Max-Allocation

即:(只看黑字)

 

Work

Need

Allcation

Work=Work+Allcation

finish(Work+Allcation<(10,5,7))

 

A   B  C

A   B  C

A   B  C

A   B  C

 

P0

     

7   4   5

0    1   1 
P1

 3 3   2

1  2   2

2  0   05   3   2true

P2

  

6  0   03   0   2 
P3

5   3   2

0  1   1

2  1   17   4    3

true

P4

4   3   1

0   0  2

开始时Work=Available=(3,3,2)我们可以看到Need P1 P3 资源可以满足 Work>=Need,从算法遍历运行的顺序可知,先P1行求得(红字),work=(5,3,2)
然后看P2不满足Work>=Need,P3满足条件Work>=Need,P1行求得(蓝色)。以此类推,P4也可以求出。之后又从头开始遍历,依次完成P0,P2。

当完成后,finish都为true表示,系统处于安全状态。输出顺序就可以了,如下图:

 

Work

Need

Allcation

Work+Allcation

finish

 

A   B  C

A   B  C

A   B  C

A   B  C

 

P1

3   3   2

1   2   2

2   0   0

5    3   2

true

P3

5   3   2

0   1   1

2   1   1

7   4    3

true

P4

7   4   3

4   3   1

0   0   2

7    4   5

true

P0

7   4   5

7   4   3

0   1   0

7    5   5

true

P2

7   5   5

6   0   0

3   0   2

10    5    7

true

如表银行家算法的结果为 <P1,P3,P4,P0,P2>

笔者是个初学者,如有问题请联系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息