《计算机操作系统》
课程设计
题目银行家算法分析
学院计算机与软件学院
专业计算机科学与技术
班级
学号
姓名
指导教师
起止时间
2
一、算法综述
银行家算法:在进程向系统提出资源分配请求时,算法会先对进程]Allocation;//已分配矩阵
int[][]Need;//需求矩阵
int[]Available;//可用资源数
int[]Work;//Available的试分配向量
boolean[]Finish=newboolean[50];//试分配结果标识向量
publicYinHang(){start();
}
publicvoidstart(){
"*******************************************************
17
17
.println(
”*******************************************************
****");
退出 " );
("请选择操作:\n\\n\t2.
inta;
a=();if(a==1){
input();
}else{quit();
publicvoidinput(){
("请输入T0时刻进程个数Pnum:");
=();
17
("请输入资源种类数Stype:");
=();
=getSsum();
=getMax();
=getAllocation();
=getNeed();
=getAvailable(Pnum,Stype);
("该时刻的资源分配表:");
output();
(Available);
(false);
}
publicint[]getSsum(){
Ssum=newint[Stype];
("请输入各类资源总数Ssum:");
for(inti=0;i<Stype;i++){
Ssum[i]=();
}returnSsum;
}
publicint[][]getMax(){
Max=newint[Pnum][Stype];
("请输入最大需求矩阵Max:");
for(inti=0;i<Pnum;i++){
for(intj=0;j<Stype;j++){
Max[i][j]=();
}
}
returnMax;
}
publicint[][]getAllocation(){
Allocation=newint[Pnum][Stype];
("请输入已分配资源情况矩阵Allocation");
for(inti=0;i<Pnum;i++){
12
for(intj=0;j<Stype;j++){
Allocation[i][j]=();
}
}
returnAllocation;
}
public
int [][] getNeed() {
Need = new int [ Pnum][ Stype ];
for ( int i = 0; i <
for ( int j = 0; j <
Need [i][j] =
Pnum; i++) {
Stype ; j++) {
Max[i][j] - Allocation
[i][j];
}
}
return Need ;
}
public int [] getAvailable(
int x, int y) {
Available = new int [ Stype ];
Available = Ssum ;
System. out .println(
" 进程的可用资源 Available
为: " );
for ( int j = 0; j < Stype ; j++) {
for ( int i = 0; i < Pnum ; i++) {
Available [j]
操作系统银行家算法实验报告汇总 来自淘豆网www.taodocs.com转载请标明出处.