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

2019-03-27 18:35

中原工学院信息商务学院 操作系统课程设计报告 do//查找要删除的与输入进程名相同的进程 {cin>>Nam;

for(i=0;i=M) cout<<\该进程名称不存在,请重新输入:\}while(flag); for(int m=0;m

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

for(j=i;j

{Max[j][m]=Max[j+1][m]; Allocation[j][m]= Allocation[j+1][m]; Need[j][m]= Need[j+1][m];} }

M=M-1;showdata();safe(); }

void changeresources()//修改资源函数 {

cout<<\\cout<<\\cout<<\\cout<<\\cout<<\\cout<<\系统目前可用的资源[Avaliable]:\ for(int i=0;i>Avaliable[0]>>Avaliable[1]>>Avaliable[2]; cout<<\经修改后的系统可用资源为\for (int k=0;k

- 21 -

┏━━━━━━━━━━━━━━━━━━━━━━━┓ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┃ 修改资源数量,并检测安全性 ┃ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┗━━━━━━━━━━━━━━━━━━━━━━━┛

中原工学院信息商务学院 操作系统课程设计报告 void addprocess()//添加进程 { int flag=M; M=M+1; cout<<\\cout<<\\cout<<\\cout<<\\cout<<\┗━━━━━━━━━━━━━━━━━━━━━━━┛ \cout<<\请输入该进程的最大需求量[Max]\{cout<>Max[flag][i];} cout<<\请输入该进程已分配的资源 Allocation\for(int j=0;j>Allocation[flag][j]; }

for(int k=0;k

void version() //显屏函数 {

cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\┏━━━━━━━━━━━━━━━━━━━━━━━┓\┃ 欢迎进入银行家算法系统 ┃\┠───────────────────────┨\┃ 1:初始化资源种类和大小、进程,并检测安全性┃\┠───────────────────────┨\┃ 2: 请求分配资源,并检测安全性 ┃\┠───────────────────────┨\┃ 3: 删除资源,并检测安全性 ┃\┠───────────────────────┨\┃ 4:增加资源,并检测安全性 ┃\┠───────────────────────┨\┃ 5: 修改资源,并检测安全性 ┃\┠───────────────────────┨\┃ 6: 增加进程,并检测安全性 ┃\┠───────────────────────┨\┃ 7: 删除进程,并检测安全性 ┃\┠───────────────────────┨\ - 22 -

┏━━━━━━━━━━━━━━━━━━━━━━━┓ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┃ 添加进程,并检测安全性 ┃ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃

中原工学院信息商务学院 操作系统课程设计报告 cout<<\┃ 0: 退出系统系统 ┃\cout<<\┗━━━━━━━━━━━━━━━━━━━━━━━┛\cout<

void init()//初始化进程,分配资源 并检测安全性 {int i,j,number,m,n,flag;char Name; cout<<\┏━━━━━━━━━━━━━━━━━━━━━━━┓ \cout<<\┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ \cout<<\\cout<<\\cout<<\┗━━━━━━━━━━━━━━━━━━━━━━━┛ \cout<<\请首先输入系统可供资源种类的数量:\cin>>n; N=n;

for(i=0;i>m; M=m; cout<<\请输入各进程的最大需求量(\矩阵)[Max]:\for(i=0;i>Max[i][j]; do{

flag=0; cout<<\请输入各进程已分配的资源量(\矩阵)[Allocation]:\for(i=0;i

cin>>Allocation[i][j]; if(Allocation[i][j]>Max[i][j]) flag=1; Need[i][j]=Max[i][j]-Allocation[i][j]; } if(flag) cout<<\已分配的资源大于最大需求量,请重新输入!\\n\} - 23 -

┃ 初始化资源种类和大小、进程 ,并检测安 ┃ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃

中原工学院信息商务学院 操作系统课程设计报告 while(flag); showdata();//显示各种资源 safe();//用银行家算法判定系统是否安全 } char *get_password(const char *prompt) {

static char buffer[128]; int i = 0; char letter=NULL; printf( prompt ); // 最多可输入 127 个字符,最后一个留个'\\0' while ((i<127) && (letter!='\\r')) {

letter = getch(); // 当前输入的字符为退格'\\b' if ( letter==BACKSPACE) {

// buffer 中有字符存在 if(i>0) {

// 缓冲区中字符退一个 buffer[--i] = NULL;// 当前光标正等着你输入一个字符,而你却按下了 退格键, 屏幕上字符也应该退一个,这里相当于 putchar( '\\b' ); // 这样就将光标退到了上一个字符的位置, putchar(BACKSPACE); // 这里光标在要删除的字符上面闪烁,输出一个空格就将'*'号换掉了 putchar(' '); // 因为你的空格操作导致光标又跳到了下一个字符位置,所以还需要退 一次,以使光标在正确位置显示 putchar(BACKSPACE); } else { putchar(7);} } else if ( letter != '\\r' ) {buffer[ i++ ] = letter;putchar( '*' );} } buffer[i] = '\\0'; return buffer;// 加上字符串结束标志,在 C++编译器下这上语句 是错的, buffer = NULL; 可以这样处理 }

void mima( ) {char *password;

cout<<\┏━━━━━━━━━━━━━━━━━━━━━━━┓ - 24 -

中原工学院信息商务学院 操作系统课程设计报告 \cout<<\┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ \ cout<<\┃ 请输入密码,您最多可以输入三次 ┃ \ cout<<\┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ \ cout<<\┗━━━━━━━━━━━━━━━━━━━━━━━┛ \ for(int i=1;i<=3;i++) { cout<<\您第\次\password = get_password( \输入密码:\if((i!=3)&&strcmp( password, {

cout<

cout<< \您的密码有误,请重新输入密码!\continue; }

else if((i==3)&&strcmp( password, \{ cout<

{printf( \你的密码正确,欢迎进入银行家算法系 统!\\n\ } } void main()//主{ system(\ mima( );//密SLEEP(); int choice; while(choice) { version(); cout<<\*\cout<<\请选择功能号(0-7):\cin>>choice; system(\switch(choice) {

case 1: init();break; case 2: share();break;

case 3: delresources();break;

- 25 -

函码\);break;}数b\数 函

中原工学院信息商务学院 操作系统课程设计报告 case 4: addresources();break; case 5: changeresources();break; case 6: addprocess();break; case 7: delprocess();break; case 0: cout<

cout<<\┏━━━━━━━━━━━━━━━━━━━━━━━┓ \cout<<\\cout<<\\cout<<\\cout<<\\ cout<

}}} ┗━━━━━━━━━━━━━━━━━━━━━━━┛ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┃ 谢谢使用银行家算法 ┃ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ 六、 参考资料 计算机操作系统(第二版);汤小丹,梁红冰,哲凤屏,汤子瀛;西 安电子科技大学出版社。 数据结构(c 语言版);严蔚敏,吴伟民;清华大学出版社。 C 程序设计教程;谭浩强;清华大学出版社。 - 26 -


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

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

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

马上注册会员

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