操作系统课程设计银行家算法和页面置换算法464.docx

上传人:you****now 文档编号:62448154 上传时间:2022-11-22 格式:DOCX 页数:49 大小:505.58KB
返回 下载 相关 举报
操作系统课程设计银行家算法和页面置换算法464.docx_第1页
第1页 / 共49页
操作系统课程设计银行家算法和页面置换算法464.docx_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《操作系统课程设计银行家算法和页面置换算法464.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计银行家算法和页面置换算法464.docx(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 南京工程学院院操作系统课程设设计说明书题 目 操作作系统银行行家算法和页页面置换算法法 班班 级 软件1001 学 生 姓 名名 刘 洋 学 号 22021000320 课设截图:源代码:3个类:MainFraame.jaava:import java.awt.FFont;import java.awt.eevent.ActioonEvennt;import java.awt.eevent.ActioonListtener;import javaxx.swinng.ButttonGrroup;import javaxx.swinng.JBuutton;import javaxx.swinng

2、.JFrrame;import javaxx.swinng.JLaabel;import javaxx.swinng.JPaanel;import javaxx.swinng.JRaadioBuutton;import javaxx.swinng.UIMManageer;import javaxx.swinng.UIMManageer.LoookAndFFeelInnfo;public classs MainnFramee exteends JJFramee impllementts ActtionLiisteneer /* * */ privvate sstaticc finaal lonn

3、g serrialVeersionnUID = 1L; privvate JPaneel pannel1,ppanel22,paneel3; privvate JLabeel labbel1,llabel22; privvate JButtton buutton11; privvate JRadiioButtton b11,b2; publlic MainFFrame() supper(操操作系统课程程设计); thiis.settBoundds(300, 150, 800, 500); thiis.settBackggroundd(java.awt.CColor.LIGHTT_GRAYY);

4、 thiis.settLayouut(new jaava.awwt.GriidLayoout(3, 1); pannel1=nnew JPPanel(); pannel2=nnew JPPanel(); pannel3=nnew JPPanel(); Fonnt f =new FFont(楷体,1,60); Fonnt f1=new FFont(宋体,3,30); Fonnt f2=new FFont(幼圆,1,15); labbel1=nnew JLLabel(操作系统统课程设计); labbel1.ssetFonnt(f); labbel2=nnew JLLabel(算法模拟拟题目:);

5、labbel2.ssetFonnt(f1); pannel1.aadd(laabel1); pannel2.aadd(laabel2); ButttonGrroup bgrouup=neww ButttonGrooup(); b1=new JJRadiooButtoon(银行家算算法,trrue); b1.setFoont(f11); bgrroup.aadd(b1); b2=new JJRadiooButtoon(页面置换换算法); b2.setFoont(f11); bgrroup.aadd(b2); pannel2.aadd(b11); pannel2.aadd(b22); buttto

6、n1=new JJButtoon(开始演示示); buttton1.setFoont(f22); buttton1.addAcctionLListenner(thhis); pannel3.aadd(buutton11); thiis.addd(panell1); thiis.addd(panell2); thiis.addd(panell3); thiis.settDefauultClooseOpeeratioon(EXIT_ON_CLLOSE); thiis.settVisibble(true); publicc voidd actiionPerrformeed(ActioonEvennt

7、 e) if(e.getSoource()=buutton11)if(bb1.isSSelectted() neww Bankker();if(bb2.isSSelectted()neww Yemiaan();publicc stattic vooid maain (SStringg arrgs) tryfor(LLookAnndFeellInfo info : UIMManageer.gettInstaalledLLookAnndFeells()if(Nimbuus.eqquals(info.getNaame()UIMManageer.settLookAAndFeeel(info.getCl

8、lassNaame();breeak;catchh(Exceeptionn e1) new MainFFrame(); Banker.java:import java.awt.*;import java.awt.eevent.*;import java.util.ArrayyList;import javaxx.swinng.*;import javaxx.swinng.tabble.DeefaulttTableeCellRRenderrer;import javaxx.swinng.tabble.DeefaulttTableeModell; publicc classs Baanker ex

9、tennds JFFrame impleementss ActiionLisstenerr /* * */privatte staatic ffinal long seriaalVerssionUIID = 11L;privatte JTablle tabble1,ttable22; priivate JPaneel p0,p1,p111,p122,p13,p14,pp2,p3,p31,pp32,p333,p344,p4,pp5; priivate JLabeel t1,t2,t33,t4,tt5,t6,t7,t88,t9,tt10,t111; priivate JButtton b11,b2

10、,bb3,b4,b5,b66; priivate TextFField text001,texxt02,ttext033,textt04,teext05,text006;/编编辑框 priivate JTexttFieldd ttext1,text22,textt3,texxt4,teext5;/进程组的的数据 DeffaultTTableMModel tableemodell,tabllemodeel1; ArrrayLisst listt ; intt cllaim,aallocaation,need; intt avaailablle;int requeest,teemavaiil,re

11、llease; booolean posssiblee; intt m,n,iindex=0; pubblic BBankerr() suuper(银行家算法法模拟); p00=new JPaneel(); p11=new JPaneel(); p111=neww JPannel(); p112=neww JPannel(); p113=neww JPannel(); p114=neww JPannel(); p22=new JPaneel(); p33=new JPaneel(); p331=neww JPannel(); p332=neww JPannel(); p333=neww JPa

12、nnel(); p334=neww JPannel(); p44=new JPaneel(); p55=new JPaneel(); p00.setLLayoutt(new GridLLayoutt(5,1); p11.setLLayoutt(new GridLLayoutt(4,1); p33.setLLayoutt(new GridLLayoutt(4,1); p11.add(p11); p11.add(p12); p11.add(p13); p11.add(p14); p33.add(p31); p33.add(p32); p33.add(p33); p33.add(p34); p00.

13、add(p1); p00.add(p2); p00.add(p3); p00.add(p4); p00.add(p5); t1=nnew JLLabel(进程数); t2=nnew JLLabel(资源数); t3=nnew JLLabel(进程号); t4=nnew JLLabel(已分配资资源:); t5=nnew JLLabel(资源最大大需求:); t6=nnew JLLabel(可用资源源:); t7=nnew JLLabel(请求资源源进程号); t8=nnew JLLabel(请求资源源为); t9=nnew JLLabel(释放资源源); t10=new JJLabell(安全

14、序列列); t11=new JJLabell(释放资源源进程号); b1=nnew JBButtonn(确定); b2=nnew JBButtonn(添加); b3=nnew JBButtonn(确定); b4=nnew JBButtonn(请求); b5=nnew JBButtonn(开始检测测); b6=nnew JBButtonn(释放); textt1=neww JTexxtFielld6; textt2=neww JTexxtFielld6; textt3=neww JTexxtFielld6; textt4=neww JTexxtFielld6; textt5=neww JTexx

15、tFielld6; for(int i=0;i55;i+) texxt1i=new JTexttFieldd(4); text22i=nnew JTTextFiield(44); text33i=nnew JTTextFiield(44); text44i=nnew JTTextFiield(44); text55i=nnew JTTextFiield(44); textt01=neew TexxtFielld(4); textt02=neew TexxtFielld(4); textt03=neew TexxtFielld(4); textt04=neew TexxtFielld(4); t

16、extt05=neew TexxtFielld(4); textt06=neew TexxtFielld(20); Striing colummnNamees1= 进程号, alloocatioon,cclaim,neeed,aavailaable; taablemoodel=new DeefaulttTableeModell(coluumnNammes1,00); taable1 = neww JTabble (tabllemodeel); taable1.setPrreferrredScrrollabbleVieewporttSize(new DDimenssion(7700, 2200)

17、; taable1.setRoowHeigght (220); taable1.doLayyout (); DeefaulttTableeCellRRenderrer r = neww DefaaultTaableCeellRenndererr(); r.settHorizzontallAlignnment(JLabeel.CENNTER); tablee1.settDefauultRenndererr(Objeect.cllass,rr); JSScrolllPane pane11 = neew JSccrollPPane (tablee1); p11.add(tt1); p11.add(t

18、text011); p11.add(tt2); p11.add(ttext022); p11.add(bb1); p12.add(tt3); p12.add(ttext033); p12.add(bb2); p13.add(tt4); for(int i=0;i55;i+) p13.add(ttext1i); p14.add(tt5); for(int i=0;i55;i+) p14.add(ttext2i); p2.aadd (ppane1); p31.add(tt6); for(int i=0;i55;i+) p31.add(ttext3i); p31.add(bb3); p32.add(

19、tt7); p32.add(ttext044); p32.add(tt8); for(int i=0;i55;i+) p32.add(ttext4i); p32.add(bb4); p33.add(tt11); p33.add(ttext055); p333.addd(t9); foor(intt i=0;i5;ii+) p33.add(ttext5i); p333.addd(b6); p334.addd(b5); Sttring collumnNaames2= 进程程号, curreentavaail,need,alllocatiion,curr.+alllo.,poossiblle; ta

20、ablemoodel1=new DDefaulltTablleModeel(colummnNamees2,0); taable2 = neww JTabble (ttablemmodel11); taable2.setPrreferrredScrrollabbleVieewporttSize(new DDimenssion(7700, 2200); taable2.setRoowHeigght (220); taable2.doLayyout (); DeefaulttTableeCellRRenderrer r11 = neew DeffaultTTableCCellReendereer()

21、; r1.seetHoriizontaalAliggnmentt(JLabbel.CEENTER); tablee2.settDefauultRenndererr(Objeect.cllass,rr1); JSScrolllPane pane22 = neew JSccrollPPane (tablee2); p44.add (panee2); p5.aadd(t110); p5.aadd(teext06); b1.aaddActtionLiisteneer(thiis); b2.aaddActtionLiisteneer(thiis); b3.aaddActtionLiisteneer(th

22、iis); b4.aaddActtionLiisteneer(thiis); b5.aaddActtionLiisteneer(thiis); b6.aaddActtionLiisteneer(thiis); p00.setBBackgrround (Coloor.ligghtGraay); liist = new AArrayLList(); thhis.seetConttentPaane (pp0); thhis.seetVisiible(true); thhis.paack(); thhis.seetLocaation(300, 10); thhis.seetDefaaultCllose

23、Opperatiion(JFramme.HIDDE_ON_CLOSEE); publicc voidd actiionPerrformeed(ActioonEvennt e) if(ee.getSSourcee()=bb1) try m= Intteger.parseeInt(text001.gettText(); catcch(NumbeerFormmatExcceptioon e1) JOOptionnPane.showMMessaggeDiallog(thhis,进进程数不能为为空);reeturn; try n = IIntegeer.parrseIntt(text002.gettTe

24、xt(); catcch(NumbeerFormmatExcceptioon e1) JOOptionnPane.showMMessaggeDiallog(thhis,资资源数不能为为空);reeturn; claiim= neew inttmnn; needd=new intmn; alloocatioon = nnew inntmn; avaiilablee = neew inttn; requuest = new intn; releease=nnew inntn; for(int i=0;i55-n;i+) p113.remmove(ttext14-i); p13.uupdateeUI

25、(); for(innt i=00;i5-n;i+) p114.remmove(ttext24-i); p14.uupdateeUI(); for(innt i=00;i5-n;i+) p31.rremovee(textt34-ii); p31.uupdateeUI(); for(innt i=00;i5-n;i+) p32.rremovee(textt44-ii); p32.uupdateeUI(); for(innt i=00;i5-n;i+) p33.rremovee(textt54-ii); p33.uupdateeUI(); temavvail=new inntn; Strinng

26、strr=,; for(innt i=00;i=m) JOpptionPPane.sshowMeessageeDialoog(thiis,进程程个数已满);retturn;tryfor(int j=0;jnn;j+) alllocatiioninndexj=Inntegerr.parsseInt(text11j.ggetTexxt();claaiminndexj=Inntegerr.parsseInt(text22j.ggetTexxt();neeedinddexjj=claaiminndexj-alllocattioniindexj; cattch(Exxceptiion f)nammein

27、ddex=P+inndex; Strinng strrd=,;strrd0=naameinndex; forr(int j=0;jnn;j+)sttrd1+=aallocaationindexxj+ ; for(innt j=00;jn;j+) strdd2+=cclaimindexxj+ ; for(innt j=00;jn;j+) strdd3+=nneediindexj+ ; strd4= ; tableemodell.addRRow(strd); indexx+; if(ee.getSSourcee()=bb3) tryy foor(intt i=0;in;ii+) aavailaab

28、leii=Intteger.parseeInt(ttext3i.geetTextt(); temmavailli=avvailabblei; ccatch(NumbeerFormmatExcceptioon f) JJOptioonPanee.showwMessaageDiaalog(tthis,可用资源不不能为空,请请重新输入);rreturnn; Strring sstr=; forr(int i=0;inn;i+) sttr+=avvailabblei+ ; tabblemoddel.seetValuueAt(str, 00, 4); if(ee.getSSourcee()=bb5) l

29、isst.cleear(); saffe(); forr(int i=0;ittable11.getRRowCouunt();i+) taablemoodel1.removveRow(0); upddate_ttable22(); if(ee.getSSourcee()=bb4) forr(int i=0;inn;i+) trry rrequessti=Integger.paarseInnt(texxt4i.getTText(); catchh(NumbeerFormmatExcceptioon f1) JOptiionPanne.shoowMesssageDiialog(this,请求资源源

30、不能 为空,请重重新输入);returrn; reqquestrresourrce(); if(ee.getSSourcee()=bb6) for(int i=0;inn;i+) trry rreleassei=Integger.paarseInnt(texxt5i.getTText(); catchh(NumbeerFormmatExcceptioon f1) JOptiionPanne.shoowMesssageDiialog(this,释放资源源不能 为空,请重重新输入); returrn; relleaserresourrce(); privatte booleean saafe()

31、booleean reesult =falsse;for(iint i=0;imm;i+) int j=0; wwhile(jm) bbooleaan cann =truue; ffor(innt k=00;kavaiilableek)cann=falsse; iif(cann&!liist.coontainns(Obbject)j) list.add(j); for(innt k=00;k=m) breakk; if(ii=m-11)breaak; if(lisst.sizze()=m)for(iint k=0;knn;k+) aavailaablekk=temmavaillk;resull

32、t=truue;returrn ressult; publiic voiid upddate_ttable11() int indexx1=Intteger.parseeInt(ttext044.getTText(); Striing sttr=,; forr(int k=0;knn;k+) str0+=aallocaationindexx1k+ ; taablemoodel.ssetVallueAt(str0, inddex1, 1); forr(int k=0;knn;k+) sttr1+=nneediindex11k+ ; taablemoodel.ssetVallueAt(str1,

33、inddex1, 3); forr(int k=0;knn;k+) sttr2+=aavailaablekk+ ; taablemoodel.ssetVallueAt(str2, 0, 4); publiic voiid upddate_ttable22() if(ssafe() Strinng temmp = ; foor(Intteger x:lisst) temp += (PP+x + ,); Strinng strr=,; str0=P+x; for(innt k=00;kn;k+) sstr1+=aavailaablekk+ ; for(innt k=00;kn;k+) str2+=

34、nneedxxk+ ; for(innt k=00;kn;k+) str3+=aallocaationxk+ ; for(innt k=00;kn;k+) aavailaablekk+=alllocattionxxk; for(innt k=00;kn;k+) str4+=aavailaablekk+ ; str5=TTrue; tableemodell1.adddRow(sstr); foor(intt k=0;kn;kk+) avvailabblek=temaavailk; teext06.setTeext(teemp); elsee texxt06.ssetTexxt(不存存在安全序列列)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 其他资料

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

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