欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    c实现银行家算法.docx

    • 资源ID:1205751       资源大小:17.03KB        全文页数:7页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    c实现银行家算法.docx

    钺行家算法银行家算法是一种最有代表性的防止死锁的算法.要好糅银行家算法,必须先解择操作系统平安状态和不平安状态.平安状态;如果存在一个由系统中所有进程构成的平安序列P1.,,Pn,则系统处于平安状态。平安状态一定是没有死镇发生。不平安状态:不存在一个平安序列.不平安状态不一定导致死桢.那么什么是平安序列呢?平安序列:一个进程序列IP1.,Pnj是平安的,如果对于每一个进程Pi(IWiWn),它以后尚需要的资源砧不超过系统当前剩余资源乖与所有进程Pj(j<i)当前占有资源址之和,银行家算法:我们可以把操作系统看作是极行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款.操作系统按照银行家制定的规则为进程分配资源当进程首次申请资源时,要川试该进程对资源的最大需求属,如果系统现存的资源可以满足它的最大需求家则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续巾诂资源时,先测试该迸程已占用的资源数与木次申请的资源数之和是否超过了该进程对资源的最大需求量,若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请城分配资源,否则也要推迟分配.算法:n:系统中进程的总数m:资源类总数Avai1.ab1.e:ARRY1.ofinteger:Max:ARRAY1.r,1.inofinteger;A1.1.ocation:ARRAY1.n,1.tnofinteger;Need:ARRAY1.n,1.ofinteger;Request:AKRY1.n,1.mJofinteger:符号说明:Avai1.ab1.eUr用剩余资源Max豉大需求A1.1.ocation已分配资源Need需求资淘Request请求资源当进程Pi提出资源申请时,系统执行以下步臊:(«=为赋值符号,"="为等号)step(1)若ReqUeSt<=Need.gotostep(2)s否则惜误返回step(2)RequestC=Avai!ab1.e,gotostep(3>:否则进程等待step(3)假设系统分配了资源,则有:Avai1.ab1.e=AvaiIab1.e-Request;A1.1.ocation=A1.Iocation+Rcques1.:Need=Need-Request若系统新状态是平安的.则分配完成若系统新状态是不平安的,则恢复原状态,进程等待为进行平安性检性,定义数据结构:WorkiARRAYt1.11>Jofinteer:FinishiARRAYt1.11ofBoo1.ean:平安性检住的步骤:step:Work=Avai1.ab1.e;FiniSh=fa1.se:step(2)寻找满足条件的i:a.Finish=fa1.se;b.NeecK=Work:如果不存在gotostep(4)step(3)Work=Iork÷AI1.ocation;Finish=Iruc;otostcp(2)step(4)若对所有KPinishYni3则系统处于平安状态否则处于不平安状态/*银行家算法操作系统概念(OSconceptsSixEdition)reeditbyJohnnyhagen.SCA1.runatvc6.0*/inc1.ude1.1.oc.h*Sinc1.ude*stdio.h*Uinc1.ude*std1.ib.h*Mefinea1.Ioc1.ensizeof(structa1.1.ocation)WefinemaxIensizeof(structmax)sizeof(structavai1.ab1.e)SdefineneedIensizeof(structneed)RdefinefiniIenSiZeOf(StnIetfinish)Udefinepath1.ensizeof(structpath)structa1.1.ocation(intva1.ue;structa1.1.ocationnext:):structBaXintva1.ue;structax*next;);structavai1.ab1.e*可用资源数*/intva1.ue;structavai1.ab1.e*next;);structneed*潴求资源数”intva1.ue;structneed*next;):structpathintva1.ue;structpath*next;):structfinish(intstat;structfinish*next;):intIiiainO(introw,co1.um.status=0.i,j,t.t<n,processtest;structa1.1.ocationa1.Iochead1.*a1.1.oci,1.oc2,*a1.Iocternp;structaax*maxhcad,11axiu111.,*miixiu2,uxtmp;structavai1.ab1.e*avahead>*avaiIab1.e1.*avai1.ab1.c2,Morkhead,*ux>rk1.,Work2,*worktcra,*worktc三p1.;structneed*needhead.need1.,*need2,*needtemp;structfinish*finihead.*finish1.,finish2.!'inishtemp;structpath*pathhead,>ath1.,*path2;printfn请输入系统资源的种类数:D;scanf("%d”,Aco1.um);PrintfC请输入现时内存中的进程数scant'(*%d*,4row):PrintN”请输入已分配资源矩阵:<):for(i=0ii<row;i+)(for(j=0;j<co1.um:j)(Printfe请输入已分配给进程PM的耻种系统资源:",i,'A'+j);if(status=©)a11ochcad=a11oc1=a11oc2=(s1.rue1.a1.1.ocution*)ma1.1.oc(a1.Ioc1.en):a1.1.oci>next-a1.1.oc2->next-N1.1.1.;scant,<*,d*,fta1.1.ochead->va1.ue);status+;)e1.se(a1.1.oc2=(structa1.1.ocation*)ma1.1.oc(a1.Ioc1.en);scant'(*%d,%d*.&a1.1.oc2->va1.ue):if(Status=I)a1.Iochead>next=a1.1.oc2;status*4;a1.1.oc1.->next=a1.1.oc2;a1.1c1=bI1.oc2;a1.1.oc2>next-N1.1.1.;Status=O;Mimfr请输入G大商求矩阵:n");for(i=0;i<row;i+)for(j-0;j<co1.um:j0PriZfr清输入进程网种类%c系统资源爆大需求:",i,'A'+j);if(status=0)maxhead-maxium1-maxium2-(struetmij)三a1.Ioc(max1.en);maxiun1.->next=maxium2->next=N1.I.1.;scanf(*¾<i*,maxium1->va1ue):status+*;)e1.semaxiu三2=(struct11hx)三a1.1.oc(max)en);scanf(*%dt¼d*.foaxiu三2->vaIUe);ifCstatus=I)mnxhead->next-maxium2:status+;)maxius1.->next=naxiu2:maxiu三1.=11axium2:maxiui2->next=MJ1.1.;S1.atus=O;printf(“请输入现时系统财余的资源矩阵:r);for(j=0:j<co1.um;j+)PriZfr种类%c的系统责源剩余:wA'j);if(Status=O)avahead-avai1ab1e1-avai1ab1e2-(struetavai1.ab1.e*)ma1.1.oc(ava1.en);workhead-workI-work2-(struetavaiIab1.e*)11w1.Ioc(ava1.en);avaiIab1.e1.->next=avai1ab1.e2->next=NU1.1.:work1.->next=work2->next-N1.1.1.;scanf(',Aavai1.ab1.e1.->va1.ue);work1.->va1ue=avai1.ab1.e1.->va1ue;status*;)e1.seavai1.ab1.e2=(structavai1.ab1.e*)m<d1.oc(ava1.en):work2三(structavai1ab1e*)ma11oc(ava1on);scanf(*d.%d*.avaiIab1.e2>va1.ue);work2->va1ue=avaiIab1.e2->va1ue;if(Status=I)avahead->ncxt=avai1.ab1.e2;workhead>next-work2;status+;)avai1.ab1.e1.->next=avai1.ab1.e2:avai1.ab1.e1.=avai1.ab1.c2:work1.>next=work2;work1.=work2;)avai1ab1c2->next=NU1.1.:work2->next=N1.1.1.:status-0;a1.1.octBp=a1.Iochead;maxte三p=maxhead;for<i=0;i<row;i+)for(j=0;j<co1.um:j÷+)(if(status=©)needhead=need1=need2=(structneed*)三a1.Ioc(need1.en):necd1.->ncxt=need2->next=N1.1.1.;need1.Xa1.ue-OuixtBnp-Xa1.ueH1.1.octenp>va1.ue:status+:)e1.senoed2二(Stn1.Ctneed*)ma1Ioc(need1.en);need2>va1.ue-(11uxtemp>va1.ue)(1.Ioctemp>va1.ue);if(status-=!)needhead->next=need2:status+;)need1.>next-need2:need1.-need2;)maxteBp=maxtemp->next;a1.1.octcp-a11.octcmp->next:)need2>next=N1.1.1.:status=0;for(i=0ii<row;i+)if(status=0)(finihead=finish1.=finish2=(structinish*)ma1.1.oc(fini1.en);finish1.->nex

    注意事项

    本文(c实现银行家算法.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

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

    收起
    展开