下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4页共4页操作系统课程设计银行家算法报告《操作系统--银行家算法》课程设计报告姓名:学号:班级:计科班专业:计算机科学与技术指导老师:时间:2022__大学计算机科学与信息学院目录1课程设计目的……………………12课程设计的要求…………………13课程设计题目描绘………………24课程设计之银行家算法原理……25程序构造分析^p及代码实现……46课程设计总结……………………25一、课程设计的目的操作系统是计算机系统的核心系统软件,它负责控制和管理整个系统的资并组织用户协调使用这些资,使计算机高效的工作。《操作系统课程设计》是《操作系统》理论课的必要补充,是复习和检验所学课程的重要手段,本课程设计的目的是综合应用学生所学知识,通过实验环节,加深学生对操作系统根本原理和工作过程的理解,进步学生独立分析^p问题、解决问题的才能,增强学生的动手才能。二、课程设计的要求1.分析^p设计内容,给出解决方案〔要说明设计实现的原理,采用的数据构造〕。2.画出程序的根本构造框图和流程图。3.对程序的每一局部要有详细的设计分析^p说明。4.代码格式要标准。5.设计适宜的测试用例,对得到的运行结果要有分析^p。6.设计中遇到的问题,设计的心得体会。7.按期提交完好的程序代码、可执行程序和课程设计报告。三、课程设计题目描绘银行家算法是一种最有代表性的防止死锁的算法。要解释银行家算法,必须先解释操作系统平安状态和不平安状态。平安状态:假如存在一个由系统中所有进程构成的平安序列P1,…,Pn,那么系统处于平安状态。平安状态一定是没有死锁发生。不平安状态:不存在一个平安序列。不平安状态不一定导致死锁。那么什么是平安序列呢?平安序列:一个进程序列{P1,…,Pn}是平安的,假如对于每一个进程Pi(1≤i≤n〕,它以后尚需要的资量不超过系统当前剩余资量与所有进程Pj(j>“#include#include#include//定义全局变量constint_=10,y=10;//常量,便于修改intAvailable[_];//各资可利用的数量intAllocation[y][y];//各进程当前已分配的资数量intMa_[y][y];//各进程对各类资的最大需求数intNeed[y][y];//尚需多少资intRequest[_];//申请多少资intWork[_];//工作向量,表示系统可提供应进程继续运行所需的各类资数量intFinish[y];//表示系统是否有足够的资分配给进程,1为是intp[y];//存储平安序列inti,j;//i表示进程,j表示资intn,m;//n为进程i的数量,m为资j种类数intl=0;//l用来记录有几个进程是Finish[i]=1的,当l=n是说明系统状态是平安的intcounter=0;//函数声明voidchushihua;//初始化函数voidsafe;//平安性算法voidshow;//函数show,输出当前状态voidbank;//银行家算法voidjieshu;//完毕函数voidchushihua{cout>n;cout>m;cout>Available[j];//输入数字的过程Work[j]=Available[j];//初始化Work[j],它的初始值就是当前可用的资数}cout>Allocation[i][j];}cout>Ma_[i][j];if(Ma_[i][j]>=Allocation[i][j])//假设最大需求大于已分配,那么计算需求量Need[i][j]=Ma_[i][j]-Allocation[i][j];elseNeed[i][j]=0;//Ma_小于已分配的时候,此类资已足够不需再申请}cout=Need[i][j])counter=counter+1;//可用大于需求,记数}if(counter==m)//i进程的每类资都符合Work[j]>=Need[i][j]条件二{p[l]=i;//存储平安序列Finish[i]=1;//i进程标志为可分配for(j=0;j>k;coutn-1)//输入错误处理{cout>k;cout>Request[j];coutNeed[k][j]){//申请大于需求量时出错,提示重新输入〔贷款数目不允许超过需求数目〕coutAvailable[j]){//申请大于可利用量,应该阻塞等待?……???coutNeed[k][j]);//Request[j]>Available[j]||}//改变Avilable、Allocation、Need的值for(j=0;j>“>b;cout>“<<“进程“<<“(“<<p[i]<<“)“;for(i=0;i<n;i++)Finish[i]=0;//所有进程置为未分配状态cout<<endl;}bank;//调用银行家算法函数cout<<“\t\t演示计算完毕“<<endl;return0;}运行结果:1.初始化结果2.检测系统资分配是否平安结果:六、课程设计的总结操作系统的根本特征是并发与共享。系统允许多个进程并发执行,并且共享系统的软、硬件资。为了最大限度的利用计算机系统的资,操作系统应采用动态分配的策略,但是这样就容易因资缺乏,分配不当而引起“死锁”。而我本次课程设计就是得用银行家算法来防止“死锁”。银行家算法就是一个分配资的过程,使分配的序列不会产生死锁。此算法的中心思想是:按该法分配资时,每次分配后总存在着一个进程,假如让它单独运行下去,必然可以获得它所需要的全部资,也就是说,它能完毕,而它完毕后可以归还这类资以满足其他申请者的需要。本次程序就是按照上面的思路展开的。但是因为时间上的仓促,本课程设计的存在着以下缺乏:一、不能实现并发操作,即当总资同时满足几个进程所需要的资数时,这些进程不能同时进展,只能一一按进程顺序执行。二、扫描进程顺序单一,只能按进程到来的顺序〔即编号〕来扫描,从而产生的平安顺序只能是在这个顺序的根底上产生的,而其实平安顺序是有多个的。三、对进程数和资数进展的数量进展了限制,都只能最多有十个。四、运行程序后,界面较差,进程数,所需要资数,已分配资数,能用资数,不能一目了然。这次课程设计时间上虽说仓促点,但是我仍然学到了很多的实用性知识。除了更深的理解这个算法,而且对C语言进展了复习,而且
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中美术八年级下册第四单元第1课单幅故事画教学设计
- 高中一年级数学“指数及其运算”教学设计
- 初中物理八年级《物体的颜色》教学设计
- 广东外语外贸大附设外语学校2027届数学七上期末学业质量监测模拟试题含解析
- 2026及未来5年中国时装纽数据监测研究报告
- 2026年通信电子计算机技能考试-传输网络维护员历年参考题库含答案解析
- 2026年贵州住院医师-贵州住院医师神经内科历年参考题库含答案解析
- 2026年福建住院医师-福建住院医师眼科历年参考题库含答案解析
- 2026年石油石化技能考试-生产作业助理监督岗位资格认证考试历年参考题库含答案解析
- 2026年监理考试-人防工程监理历年参考题库含答案解析
- 实施指南(2026)《JBT 7364-2014倍速输送链和链轮》
- 2026年法律职业资格之法律职业客观题考试题库及完整答案【各地真题】
- ERCP手术应急预案(3篇)
- 质量安全总监培训手册课件
- 建筑工程项目文档及表格大全
- 大米包装设计分析
- 物业月度工作总结及下月计划
- 上海市幼儿园幼小衔接活动指导意见(修订稿)
- 2024-2025学年湖南省长沙市长郡教育集团七年级(上)月考数学试卷(10月份)(含答案)
- 作业消消乐打卡模板
- (高清版)DZT 0350-2020 矿产资源规划图示图例
评论
0/150
提交评论