计算机操作系统课程设计报告(7)

2018-12-19 22:25

continue;

} else break; }

printf(\请输入该进程所请求的资源数request[j]:\\n\for(j=0;j

scanf(\

for(j=0;jneed[i][j]) p=1; //判断请求是否超过该进程所需要的资源数 if(p) printf(\请求资源超过该进程资源需求量,请求失败!\\n\ else { for(j=0;j

if(request[j]>available[j]) q=1; //判断请求是否超过可用资源数 if(q) printf(\没有做够的资源分配,请求失败!\\n\ else //请求满足条件 { for(j=0;j

allocation1[i][j]=allocation[i][j];

need1[i][j]=need[i][j];

//保存原已分配的资源数,仍需要的资源数和可用的资源数 available[j]=available[j]-request[j];

allocation[i][j]+=request[j];

need[i][j]=need[i][j]-request[j];

//系统尝试把资源分配给请求的进程 }

print();

check(); //检测分配后的安全性 if(r==0) //如果分配后系统不安全 { for(j=0;j

available[j]=available1[j];

allocation[i][j]=allocation1[i][j];

need[i][j]=need1[i][j];

//还原已分配的资源数,仍需要的资源数和可用的资源数 }

31

}

printf(\返回分配前资源数\\n\

print(); } }

}printf(\你还要继续分配吗?Y or N ?\\n\ //判断是否继续进行资源分配

c=getche();

}while(c=='y'||c=='Y');

}

void check() //安全算法函数 {

int k,f,v=0,i,j; int work[m],a[m];

bool finish[m]; r=1;

for(i=0;i

work[i]=available[i];//work[i]表示可提供进程继续运行的各类资源数 k=no1; do{ for(i=0;i

{

if(finish[i]==false) {

f=1;

for(j=0;j

if(need[i][j]>work[j]) f=0;

if(f==1) //找到还没有完成且需求数小于可提供进程继续运行{ }

的资源数的进程

}

finish[i]=true;

a[v++]=i; //记录安全序列号

for(j=0;j

}

k--; //每完成一个进程分配,未完成的进程数就减1

}while(k>0);

32

f=1;

for(i=0;i

break;

} }

if(f==0) //若有进程没完成,则为不安全状态 { printf(\系统处在不安全状态!\ r=0;

}

else { printf(\系统当前为安全状态,安全序列为:\\n\ for(i=0;i

}

}

void print() //输出函数 { int i,j;

printf(\

printf(\此时刻资源分配情况*********************\\n\

printf(\进程名/号 | 最大需求矩阵 | 当前分配矩阵 | 需求矩阵 for (i = 0; i < no1; i++)

{

printf(\ p%d/%d \

for (j = 0; j < no2; j++) {printf(\ \ for (j = 0; j < no2; j++)

{printf(\ %d \

for (j = 0; j < no2; j++)

{printf(\ \ printf(\

}

|\\n\33

printf(\ printf(\各类资源可利用的资源数为:\ for (j = 0; j < no2; j++)

{printf(\

printf(\

}

程序运行结果及分析

34

实验感想:

银行家算法是避免死锁的一种重要方法,通过编写一个简单的银行家算法程序,加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。死锁的产生,必须同时满足四个条件,即一个资源每次只能由一个进程;第二个为等待条件,即一个进程请求资源不能满足时,它必须等待,但它仍继续保持已得到的所有其他资源;第三个为非剥夺条件,即在出现死锁的系统中一定有不可剥夺使用的资源;第四个为循环等待条件,系统中存在若干个循环等待的进程,即其中每一个进程分别等待它前一个进程所持有的资源。防止死锁的机构只能确保上述四个条件之一不出现,则系统就不会发生死锁。

35


计算机操作系统课程设计报告(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1000字《铁道游击队》读书笔记范文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: