操作系统课程设计银行家算法模拟实现.doc
《操作系统课程设计银行家算法模拟实现.doc》由会员分享,可在线阅读,更多相关《操作系统课程设计银行家算法模拟实现.doc(18页珍藏版)》请在咨信网上搜索。
1、操作系统课程设计银行家算法模拟实现 作者: 日期:2 个人收集整理 勿做商业用途课 程 设 计 报 告课程设计名称: 银行家算法模拟实现 系 : 学生姓名: 班 级: 学 号: 成 绩: 指导教师: 开课时间: 学年 学期题目要求:一设计题目 银行家算法模拟实现二主要内容设计目的1、 了解多道程序系统中,多个进程并发执行的资源分配。2、 掌握思索的产生原因、产生死锁的必要条件和处理死锁的基本方法。3、 掌握预防死锁的方法,系统安全状态的基本概念。4、 掌握银行家算法,了解资源在进程并发执行中的资源分配策略。5、 理解死锁避免在当前计算机系统不常使用的原因。三具体要求设计一个n个并发进程共享m个
2、系统资源的系统,进程可动态申请资源和释放资源,系统按各进程的申请动态的分配资源.要求采用银行家算法实现.四进度安排序号内 容时间(天)1熟悉课题、分析课题0。52对系统进行模块分解,问题分析和确定解决方案13编程调试34测试和差错15书写课程设计报告16考核1合 计7.5五成绩评定考核方法:根据学生平时表现、测试检查、课程设计报告、运行演示和学生回答问题相结合的形式作为考核依据,考察学生的动手能力,独立分析解决问题的能力和创新精神,并根据学生的学习态度综合考评。平时表现(占30%),课程设计报告(占40%),课程答辩(占30%)。成绩评定:成绩分“优秀”、“良好”、“中等”、“及格”、“不及格
3、”五个级别。“优秀”为100分到90分,“良好为89分到80分,“中等为79分到70分,“及格”为69分到60分,“不及格为60分以下.目录1。需求分析42。概要设计43.详细设计64.调试分析125。总结166.参考文献161.需求分析1、始化这组进程的最大资源请求和一次申请的资源序列。把各进程已占用和需求资源情况记录在进程控制块中。假定进程控制块的内容包括:进程名,状态,当前申请量,资源需求总量,已占资源量,能执行完标志。其中,进程的状态有:就绪,等待和完成。当系统不能满足进程的资源请求时,进程出于等待状态。资源需求总量表示进程运行过程中对资源的总的需求量。已占资源量表示进程目前已经得到但
4、还为归还的资源量。因此,进程在以后还需要的剩余资源量等于资源需要总量减去已占资源量。陷入每个进程的资源需求总量不应超过系统拥有的资源总量。2、银行家算法分配资源的原则是:当某个进程提出资源请求时,假定先分配资源给它,然后查找各进程的剩余请求,检查系统的剩余资源量是否由于进程的分配而导致系统死锁。若能,则让进程等待,否则,让进程的假分配变为真分配。A) 查找各进程的剩余请求,检查系统的剩余资源量是否能满足其中一进程,如果能,则转B)。B)将资源分配给所选的进程,这样,该进程已获得资源最大请求,最终能运行完成.标记这个进程为终止进程,并将其占有的全部资源归还给系统.重复第A)步和B)步,直到所有进
5、程都标记为终止进程,或知道一个死锁发生。若所有进程都标记为终止进程,则系统的初始状态是安全的,否则为不安全的。若安全,则正式将资源分配给它,否则,假定的分配作废,让其等待。2。概要设计2。1设计思想当某个进程提出资源请求时,假定先分配资源给它,然后查找各进程的剩余请求,检查系统的剩余资源量是否由于进程的分配而导致系统死锁。若能,则让进程等待,否则,让进程的假分配变为真分配。2.2数据结构假设有m个进程,则有如下数据结构:#define w 50 /宏定义define r 50 /宏定义int m; /总进程数 int allw;/各种资源的数目总和int maxwr; /m个进程最大资源需求量
6、int availabler; /系统可用资源数int allocationwr; /m个进程已经得到资源的资源量int needwr; /m个进程还需要资源的资源量int requestr; /请求资源个数2.3程序流程图开始输入进程数m,各资源总数,初始化Available向量i=1i=m输入进程i的最大需求向量max。maxAvailable,则进程i进入等待资源状态,返回。 (3)假设进程i的申请已获批准,于是修改下面数据结构中的数值: Available=Available-Request Allocation=Allocation+RequestNeed=Need-Request
7、(4)系统执行安全性检查,如安全,则分配成立;否则恢复原来的资源分配状态,系统恢复原状,进程等待。 程序void bank() /银行家算法 int i=0,j=0; char flag=Y; while(flag=Y|flag=y) i=-1; while(i0i=m) cout” 请输入需申请资源的进程号(从0到m-1):”; cini; if(i0|i=m)cout 该进程号不存在,请重新输入!”endl; cout” 请输入进程”irequestj; if(requestjneedij) /若请求的资源数大于进程还需要i类资源的资源量j cout 进程”i申请的资源数大于进程”i还需要
8、资源的资源量!; cout申请不合理,请重新选择!endlendl; flag=1; break; else if(requestjavailablej) /若请求的资源数大于可用资源数 cout” 进程i申请的资源数大于系统可用资源的资源量!”; cout申请不合理!请重新选择!endlendl; flag=1; break; if(flag=Yflag=y) change(i); /调用change(i)函数,改变资源数 if(chkerr(i)) /若系统安全 rstore(i); /调用rstore(i)函数,恢复资源数 show(); /输出资源分配情况 else /若系统不安全 s
9、how(); /输出资源分配情况 else /若flag=N|flag=n show(); coutflag; 3.3安全性检查算法(1)设置两个工作向量Work=Available;FinishM=False(2)从进程集合中找到一个满足下述条件的进程, Finish i=False Need=Work 如找到,执行(3);否则,执行(4) (3)设进程获得资源,可顺利执行,直至完成,从而释放资源. Work=Work+Allocation Finish=True GO TO 2 (4)如所有的进程FinishM=true,则表示安全;否则系统不安全.程序int chkerr(int s)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 银行家 算法 模拟 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。