银行家算法的实现课程设计报告.doc

上传人:龙*** 文档编号:1008154 上传时间:2018-11-15 格式:DOC 页数:9 大小:70KB
下载 相关 举报
银行家算法的实现课程设计报告.doc_第1页
第1页 / 共9页
银行家算法的实现课程设计报告.doc_第2页
第2页 / 共9页
银行家算法的实现课程设计报告.doc_第3页
第3页 / 共9页
银行家算法的实现课程设计报告.doc_第4页
第4页 / 共9页
银行家算法的实现课程设计报告.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、操作系统课程设计报告设计题目:银行家算法的实现姓名: 梅济民 学号: 2012015014 同组人姓名: 赵宇昊 学号: 2012012962 班级: 2012 级信息与计算科学 完成日期: 2015 年 11 月 12 日设计题目 银行家算法的实现设计形式 自由结组完成(2 人一组)设计目的1、了解死锁避免的原理。2、研究银行家算法的实现方法。设计预备知识 一、死锁概念二、死锁的避免三、银行家算法会用 C 语言编程实现这个过程设计内容编程实现银行家算法,语言不限。自行设置资源向量的元素个数及初始值。由用户通过输入界面提出某进程对各类资源的请求向量,由程序判断是否能为用户请求分配资源,并显示结

2、果。小组成员分工梅济民:编程,写报告赵宇昊:查找资料银行家算法分析、设计与实现一、理论描述银行家算法要求每个进程的最大资源需求,其基本思想是:始终保持系统处于安全状态,当设计进程提出资源请求时,系统先进行预分配,再判断系统分配后是否仍然处于安全状态。如果仍然处于安全状态,就进行实际分配;如果处于不安全状态,则拒绝该进程的资源请求。二、算法描述及数据结构模型#define False 0#define True 1int Max100100=0;/各进程所需各类资源的最大需求int Avaliable100=0;/系统可用资源char name100=0;/资源的名称int Allocation

3、100100=0;/系统已分配资源int Need100100=0;/还需要资源int Request100=0;/请求资源向量int temp100=0;/存放安全序列int Work100=0;/存放系统可提供资源int M=100;/作业的最大数为 100int N=100;/资源的最大数为 10三、源代码void showdata()/显示资源矩阵int i,j;printf(“系统目前可用的资源Avaliable:n“);for(i=0;i“);printf(“n“);return 0;void share()/利用银行家算法对申请资源对进行判定char ch;int i=0,j=0

4、;ch=y;printf(“请输入要求分配的资源进程号(0-%d):“,M-1); scanf(“%d“,/输入须申请的资源号printf(“请输入进程 %d 申请的资源:n“,i);for(j=0;jNeedij)/判断申请是否大于需求,若大于则出错 printf(“进程 %d 申请的资源大于它需要的资源, 分配不合理,不予分配!n“,i);ch=n;break;else if(RequestjAvaliablej)/判断申请是否大于当前资源,若大于则出错 printf(“进程%d 申请的资源大于系统现在可利用的资源n“,i);printf(“ 分配出错,不予分配!n“);ch=n;brea

5、k;if(ch=y) changdata(i);/根据进程需求量变换资源showdata();/根据进程需求量显示变换后的资源safe();/根据进程需求量进行银行家算法判断int main()/主函数int i,j,q,choice,m,n,flag;char ming;printf(“请首先输入系统可供资源种类的数量:“);scanf(“%d“,N=n;for(i=0;iMaxij) flag=1;Needij=Maxij-Allocationij;if(flag)printf(“申请的资源大于最大需求量,请重新输入!n“);while(flag);showdata();/显示各种资源sa

6、fe();/用银行家算法判定系统是否安全while(choice)printf(“n“);printf(“ 0:离开 n“);printf(“ 1:分配资源 n“);printf(“请选择功能号:“);scanf(“%d“,switch(choice)case 1: share();break;case 0: break;default: printf(“请正确选择功能号(0-1)!n“);break;return 1;四、程序运行结果及分析T0 时刻的资源分配表(各种资源的数量分别为:10、5、7)资源情况进程MaxA B CAllocationA B CNeedA B CAvailableA B CP0 7 5 3 0 1 0 7 4 3 3 3 2P1 3 2 2 2 0 0 1 2 2P2 9 0 2 3 0 2 6 0 0P3 2 2 2 2 1 1 0 1 1P4 4 3 3 0 0 2 4 3 1运行结果五、课程设计心得与体会通过这次实验,我了解了银行家算法的原理,在编写和调试程序过程中,我的算法和编程能力提高了很多六.参考文献:计算机操作系统第四版, C 程序设计教程谭浩强。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。