模拟银行家算法,用银行家算法实现资源分配。
Output() 输出某时刻的资源分配情况;
Bank() 银行家算法的步骤 1、2、3、及 4 调用安全性算法;
Security() 进行安全性检查;
Main() 各种数据结构的定义。
假设 有 0-4 五个进程(假设系统的当前状态是安全的),三类资源 即:A、B、C
(以下各种数据均取自课本P
97
例子)
T
0
时刻的资源分配表(各种资源的数量分别为:10、5、7)
资源情况
进程
Max
A B C
Allocation
A B C
Need
A B C
Available
A B C
P
0
7 5 3 0 1 0 7 4 3 3 3 2
P
1
3 2 2 2 0 0 1 2 2
P
2
9 0 2 3 0 2 6 0 0
P
3
2 2 2 2 1 1 0 1 1
P
4
4 3 3 0 0 2 4 3 1
#include <stdio.h>
output(int arr[5][3])
{
int i,j;
printf(" A B C");
for(i=0;i<5;i++)
{
printf("P%d",i);
for(j=0;j<3;j++)