操作系统课程设计报告——银行家算法(2)

2019-03-27 18:35

中原工学院信息商务学院 操作系统课程设计报告 #include #include//用于调用函数 setw() #include using namespace std;

#include //调用字符输入函数 getch(); #include//用于调用 Sleep()函数 #define BACKSPACE 8 #define False 0 #define True 1

int Max[100][100]={0};//各进程所需各类资源的最大需求 int Avaliable[100]={0};//系统可用资源 char name[100]={0};//资源的名称 int Allocation[100][100]={0};//系统已分配资源 int Need[100][100]={0};//还需要资源 int Request[100]={0};//请求资源向量 int temp[100]={0};//存放安全序列 int Work[100]={0};//存放系统可提供资源 int M=100;//进程的最大数为 100 int N=100;//资源的最大数为 100 2,休眠函数 SLEEP()用于延缓进入系统时间 void SLEEP()

{ int i; for (i=10;i>=0;i--) { cout<

cout<<\\cout<<\\cout<<\\cout<<\\cout<<\\cout<<\\☆★\★☆ \3,显示可用资源和各个进程资源非配情况的函数 showdata() void showdata()//显示资源矩阵 {int i,j; cout<<\系统目前可用的资源[Avaliable]:\ for(i=0;i

- 4 -

中原工学院信息商务学院 操作系统课程设计报告 cout<<\进程名\for(j=0;j<3;j++){for(i=0;i

cout<Work[m]=Work[m]+Allocation[i][m];//变分配数 Finish[i]=True; temp[k]=i;//记录调度进程的安全序列 i=-1; //用于返回上一级寻找需求资源小于可用资源的进程 k++;} }}} for(i=0;i

中原工学院信息商务学院 操作系统课程设计报告 cout<<\请输入要求分配的资源进程号(0-\ cin>>i;//输入须申请的资源号 cout<<\请输入进程 P \申请的资源:\for(j=0;j>Request[j]; }//输入需要申请的资源 for (j=0;jNeed[i][j])//判断申请是否大于需求,若大于则出错 { cout<<\进程 P \申请的资源大于它需要的资源\分配不合理,不予 分配!\else { if(Request[j]>Avaliable[j])//判断申请是否大于当前资源,若大于则出错 { cout<<\进程 P\申请的资源大于系统现在可利用的资源\ cout<<\分配出错,不予分配!\ if(ch=='y'){changdata(i);//根据进程需求量变换资源 showdata();//根据进程需求量显示变换后的资源 safe();}}//根据进程需求量进行银行家算法判断 7, 添加资源,并检测安全性 addresources() void addresources()//添加资源 {int n,flag; cout<<\请输入需要添加资源种类的数量:\flag=N;N=N+n;

for(int i=0;i>Max[i][j];cout<<\对 \类 资 源 的 已 分 配 量 :\afe();} 8,删除资源,并检测安全性函数 void delresources()//删除资源 {char ming;int i,flag=1; cout<<\请输入需要删除的资源名称:\do{cin>>ming;

for(i=0;i>Nam;

for(i=0;i

中原工学院信息商务学院 操作系统课程设计报告 if(i>=M) cout<<\该进程名称不存在,请重新输入:\for(int m=0;m

{ Avaliable[i]= Avaliable[i]+Allocation[i][m];//将删除的进程已分配的资源存入可 用资源中去 }

for(j=i;j

Allocation[j][m]= Allocation[j+1][m]; Need[j][m]= Need[j+1][m];}} M=M-1;showdata();safe();} 10,修改资源数量,并检测安全性 changeresources() void changeresources()//修改资源函数 cout<<\系统目前可用的资源[Avaliable]:\for(int i=0;i>Avaliable[0]>>Avaliable[1]>>Avaliable[2]; cout<<\经修改后的系统可用资源为\for (int k=0;k>Max[flag][i];} cout<<\请输入该进程已分配的资源 Allocation\for(int j=0;j>Allocation[flag][j];} for(int k=0;k


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

下一篇:物理8上光学运动质量密度复习 - 图文

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

马上注册会员

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