欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    操作系统-实验四(共8页).doc

    • 资源ID:14182981       资源大小:24.50KB        全文页数:8页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统-实验四(共8页).doc

    精选优质文档-倾情为你奉上实验四 银行家算法(一)教学要求掌握处理死锁的方法,掌握银行家算法的实现(二)知识点提示死锁的概念,死锁产生的原因和条件,处理死锁的方法,银行家算法,安全状态和不安全状态,安全性算法(三)教学内容银行家算法的模拟实现实验步骤:(1)定义数据结构:allocation; /分配矩阵available; /可用资源向量need; /需求矩阵request; /资源请求向量(2)定义函数:void bank_arithmetic(int i, int request) /银行家算法 void isSafe( ); /安全性算法 主函数中对可用资源向量,分配矩阵和需求矩阵进行初始化(输入数据参照课本P113的例题),输入请求资源的进程编号以及请求的资源向量,通过调用银行家算法判断是否可以把资源分配给请求资源的进程。(3)银行家算法的执行步骤:设Requesti是进程Pi的请求向量。若Requestij=k,表示进程Pi需要k个j类资源。当Pi发出资源请求后,系统按下述步骤进行检查: 若RequestiNeedi ,则转;否则,认为出错。因为它所需要的资源数已超过它所宣布的最大值。 若RequestiAvailable,则转;否则,表示系统中尚无足够的资源,Pi必须等待。 系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的数值。 Available=Available Requesti Allocationi = Allocationi + Requesti Needi = Needi Requesti 系统执行安全性算法,检测此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分给进程Pi;否则,将试探分配作废,恢复资源状态,让Pi等待。(4)安全性算法的执行步骤: 设置两个向量work和finish工作向量work,它表示系统可提供给进程继续运行的各类资源数,含有m个元素,其初始值为:workj=availablej。完成向量finish,它表示系统是否有足够资源使进程推进完成,开始执行安全性算法时,Finishi=false;当有足够资源分配给进程Pi,Pi推进完成时,令Finishi=true。 从进程集合中找到一个进程,其满足: Finishi=false Needi,j Workj 如找到则执行步骤 ,找不到则执行步骤。 当进程Pi获得资源后,便可以向前推进,直至完 成,并释放出分配给它的全部资源,故应执行: Workj=Workj+Allocationi,j; Finishi=true; 执行步骤。 若所有进程的Finish都为true,则系统为安全状态;否则,系统为不安全状态。实验程序:#include <stdio.h>#define M 3#define N 5int available=3,3,2;int allocationNM=0,1,0,2,0,0,3,0,2,2,1,1,0,0,2;int needNM=7,4,3,1,2,2,6,0,0,0,1,1,4,3,1;void banker_arithmetic(int i,int request)int isSafe();int j,k,l;printf("进程P%d请求资源,资源请求向量为: n",i);for(j=0;j<M;j+)printf("%d ",requestj);printf("n");j=0;while(j < M)if(requestj<=needij) j+;elsebreak;if(j=M)k=0;while(k < M)if(requestk<=needik)k+;elsebreak;if(k=M)for(l=0;l<M;l+)availablel=availablel-requestl;allocationil=allocationil+requestl;needil=needil-requestl;if(isSafe()printf("分配是安全的,可以把资源分配给p%dn",i);elseprintf("分配是不安全的,不能把资源分配给P%dn",i);for(l=0;l<M;l+)availablel=availablel+requestl;allocationil=allocationil-requestl;needil=needil+requestl;printf("Allocation:");for(j=0;j<N;j+)for(k=0;k<M;k+)printf("%d ",allocationjk); printf("n");printf("Need:");for(j=0;j<N;j+)for(k=0;k<M;k+)printf("%d ",needjk); printf("n");printf("Available:n");for(j=0;j<M;j+)printf("%d ",availablej);printf("n");i+;int isSafe()int workM;int i,j,k,l=0,a=0;int finish=0,0,0,0,0;for(i=0;i<M;i+)worki=availablei;while(l<N|a < N) i=0;while(i<N) if(finishi=0) j=0; while(j<M) if(needij<=workj) j+; else break; if(j=M) printf("P%d ",i); for(k=0;k<M;k+) workk=workk+allocationik; printf("n"); finishi=1; l+; i+;a+;for(i=0;i<N;i+)if(finishi=0)return 0;return 1;int main()int i=1;int request=1,0,2; banker_arithmetic(i,request);return 0;实验结果:进程p1请求资源,资源请求向量为:1 0 2p1p3p4p0p2分配是安全的,可以把资源分配给p1Allocation:0 1 03 0 23 0 22 1 10 0 2Need:7 4 30 2 06 0 00 1 14 3 1Available:2 3 0Press any key to continue.(四)思考题1、死锁产生的原因是什么?死锁产生的原因有竞争不可抢占型资源引起死锁 竞争可消耗资源引起死锁 进程推进顺序不当引发死锁2、处理死锁的方法有哪些?预防死锁:通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或几个。避免死锁:在系统的资源分配过程中,用某种方法去防止系统进入不安全状态(可能会导致思索的状态),从而避免发生死锁。检测和解除死锁:当进程申请资源时,不进行任何限制,即允许死锁发生。但要求系统定期或不定期检测是否有死锁发生。当检测到系统中已发生死锁时,将进程从死锁状态中解脱出来专心-专注-专业

    注意事项

    本文(操作系统-实验四(共8页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开