操作系统——银行家算法
1 实验目的:
银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。
2 实验内容:
1)设计进程对各类资源最大申请表示及初值确定。
2)设定系统提供资源初始状况。
3)设定每次某个进程对各类资源的申请表示。
4)编制程序,依据银行家算法,决定其申请是否得到满足。
3 源代码:
银行家算法(Java)完整代码
下面是实现框架
import java.util.Scanner;
//银行家算法的数据结构
class Banker{
//Map<Integer, String> P_name = new HashMap<Integer, String>(); //进程名
//Map<Integer, String> S_name = new HashMap<Integer, String>(); //资源名
int ID[], //进程代号
M, //m个进程
N, //n类资源
All[], //系统各资源数量
Max[][], //m个进程对n类资源的最大需求量
Allocation[][], //m个进程已经得到n类资源的资源量
Need[][], //m个进程还需要n类资源的资源量
Available[][]; //系统可用资源数
boolean Finish[]; //标记进程是否完成
int a=0;//Available的第一个下标
public Banker() {
//无参构造函数
//代码空缺
}
public Banker(int[] iD, int m, int n, int[] all, int[][] max, int[][] allocation, int[][] need, int[][] available,
boolean[]