电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

操作系统实验_银行家算法

24页
  • 卖家[上传人]:新**
  • 文档编号:482533306
  • 上传时间:2022-07-27
  • 文档格式:DOCX
  • 文档大小:437.72KB
  • / 24 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、。学号P71514032专业计算机科学与技术姓名实验日期2017.11.9教师签字成绩实验报告【实验名称】银行家算法【实验目的】掌握银行家算法,用银行家算法模拟操作系统避免死锁的方法【实验原理】银行家算法又称“资源分配拒绝”法,其基本思想是,系统中的所有进程放入进程集合,在安全状态下系统受到进程的请求后试探性的把资源分配给他,现在系统将剩下的资源和进程集合中其他进程还需要的资源数做比较,找出剩余资源能满足最大需求量的进程, 从而保证进程运行完成后还回全部资源。这时系统将该进程从进程集合中将其清除。此时系统中的资源就更多了。 反复执行上面的步骤,最后检查进程的集合为空时就表明本次申请可行,系统处于安全状态, 可以实施本次分配,否则,只要进程集合非空,系统便处于不安全状态,本次不能分配给他。请进程等待用 C 语言编写一个简单的银行家算法模拟程序, 用银行家算法实现资源分配。程序能模拟多个进程共享多种资源的情形。 进程可动态地申请资源, 系统按各进程的申请动态地分配资源。 要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源数量以及为某进程分配资源

      2、后的有关资源数据的情况【数据结构和符号说明 】。1。可利用资源向量Available最大需求矩阵 Max分配矩阵 Allocation需求矩阵 Need工作向量 Work标记向量 Finishchar name10010;/定义最大 100 个进程,每个大小为 10int Max100100;/定义int Allocation100100;/可利用资源向量资源数int Need100100;/需求矩阵int avaiable100;/系统可利用资源int avaiable1100;int state100; /进程状态数组char name110010;/进程名int bigger;/是否大于int N;/进程数int n;/资源数int counter;函数:void Input()/输入函数void Init()/初始化void output()/输出安全序列或等待void insert_pcb()/请求进程或更新进程void show()/显示界面与选择 int CmpRequestAvailable(int Pos,int n)/比较 Request 和 Available 的

      3、大小int CmpRequestNeed(int Pos,int n)/比较 Request 和 Need的大小void Reset(intn,intPos)/ 更新 request 之后的 Need,Allocation,Available的值 void Banker()/银行家算法【实验流程图及算法实现】用 C 语言编写一个简单的银行家算法模拟程序, 用银行家算法实现资源分配。程序能模拟多个进程共享多种资源的情形。 进程可动态地申请资源, 系统按各进程的申请动态地分配资源。 要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源数量以及为某进程分配资源后的有关资源数据的情况。2【流程图 】否输出信息。开始输入进程数目与资源个数输入现有的资源个数及各进程信息计算每个进程所需的资源数是进程状态释放与否否是否满足当前进程需求当前资源个数等于自身加上该进程所拥有进程数目,标记状态已扫描到最后一否转向下一个进程个进程是输出所有安全序列结束。3。代码:#includeusing namespace std;char name10010;定义最大100

      4、个进程,每个大小为10int Max100100;/定义int Allocation100100;/可利用资源向量资源数int Need100100; /需求矩阵int avaiable100;/int state100;/进程状态数组int dayu;是否大于int N;int n;void input ()cout输入进程个数N;cout输入资源个数n;cout系统现有的各资源的个数endl;for(int i=0; iavaiablei;for(int i=0; iN; i+)/输入cout输入第 i 个进程的名字namei;cout输入第 i 所需要各进程的最大资源数endl;for(int j=0; jMaxij;cout输入第 i 现在所拥有的资源个数endl;for(int j=0; jAllocationij;statei=0;for(int i=0; iN; i+)for(int j=0; jn; j+) /寻找需求矩阵Needij=Maxij-Allocationij;void yinhangjia()int i,j,k;for( i=0; iN; i+)。4。fo

      5、r( j=0; jN; j+)if(statej=1)continue;dayu=0;for( k=0; k=Needjk)dayu=1;elsedayu=0;break;if(dayu=1)/判断状态statej=1;coutnamejendl;for(int m=0; mn; m+)avaiablem+=Allocationjm;break;int main()input();/输入yinhangjia();截图:。5。6。带有 resquest请求更新的银行家算法:描述:1)如果 Requesti是进程 Pi 的请求向量,如果 Requesti ,j=K, 表示进程 Pi需要 K 个 Rj 类型的资源。当发出资源请求后,系统按下述步骤进行检查:如果Requestij= Needi,j ,便转向步骤 2;否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。2)如果 Requestij=Availablej,便转向步骤 3,否则,表示尚无足够资源,进程 Pi 须等待。3)系统试探着把资源分配给进程,并修改下面数据结构中的数值。4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进 i ,以完成本次分配; 否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程等待。7流程图:开始输入进程、资源数目, max、allocationAvailable 矩阵计算 need矩阵初始化 work 、 finish向量Finish=false&Need=work ?否是Work=work+allocationFinishi=true;。

      《操作系统实验_银行家算法》由会员新**分享,可在线阅读,更多相关《操作系统实验_银行家算法》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.