![時(shí)間片輪轉(zhuǎn)調(diào)度_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8facb74d-6612-4688-aa36-ada59f0170b1/8facb74d-6612-4688-aa36-ada59f0170b11.gif)
![時(shí)間片輪轉(zhuǎn)調(diào)度_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8facb74d-6612-4688-aa36-ada59f0170b1/8facb74d-6612-4688-aa36-ada59f0170b12.gif)
![時(shí)間片輪轉(zhuǎn)調(diào)度_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8facb74d-6612-4688-aa36-ada59f0170b1/8facb74d-6612-4688-aa36-ada59f0170b13.gif)
![時(shí)間片輪轉(zhuǎn)調(diào)度_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8facb74d-6612-4688-aa36-ada59f0170b1/8facb74d-6612-4688-aa36-ada59f0170b14.gif)
![時(shí)間片輪轉(zhuǎn)調(diào)度_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8facb74d-6612-4688-aa36-ada59f0170b1/8facb74d-6612-4688-aa36-ada59f0170b15.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、時(shí)間片輪轉(zhuǎn)調(diào)度算法的實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu):typedefstructpcb/*(charpnameN;intruntime;intarrivetime;charstate;structpcb*next;/*PCB;實(shí)驗(yàn)要求:進(jìn)程控制塊定義*/*進(jìn)程名*/*服務(wù)時(shí)間*/*到達(dá)時(shí)間*/*進(jìn)程X犬態(tài)*/聯(lián)接指針*/給出程序中使用的數(shù)據(jù)結(jié)構(gòu)及符號(hào)說(shuō)明給出程序流程圖和源程序,源程序中要附有詳細(xì)的注釋輸入:時(shí)間片,五個(gè)進(jìn)程的進(jìn)程名、到達(dá)時(shí)間、服務(wù)時(shí)間輸出:打印程序運(yùn)行時(shí)的初值和運(yùn)行結(jié)果,要求如下:(1)選中運(yùn)行進(jìn)程的名、運(yùn)行后各進(jìn)程控制塊狀態(tài);(2)計(jì)算平均周轉(zhuǎn)時(shí)間和帶權(quán)平均周轉(zhuǎn)時(shí)間??偨Y(jié)收獲體會(huì)及對(duì)該題解的改進(jìn)
2、意見(jiàn)和見(jiàn)解輸入時(shí)間片1作業(yè)號(hào)ABCDE到達(dá)時(shí)間12345開(kāi)始時(shí)間12345服務(wù)時(shí)間43524輸出運(yùn)行時(shí)刻:12345678運(yùn)行進(jìn)程名:ABCDEABC運(yùn)行后狀態(tài):RRRRRRRR9101112131415161718DEA_BCEACECCRRCRRCRCC數(shù)據(jù)結(jié)構(gòu)的建立可參考實(shí)驗(yàn)一與數(shù)據(jù)結(jié)構(gòu)書(shū)(二)寫(xiě)主要算法時(shí)間片輪轉(zhuǎn)調(diào)度算法的實(shí)現(xiàn):voidRR(queue*head,intq)/*進(jìn)程隊(duì)列不為空才可調(diào)度*/*第一種情況:當(dāng)前運(yùn)行的時(shí)間小于最后一個(gè)進(jìn)程到達(dá)的時(shí)間做以下操作*/1.運(yùn)行時(shí)間小于0,刪除隊(duì)首/2.運(yùn)行時(shí)間大于0,向后找位置插入(分三種情況)/*時(shí)刻變化*/*第二種情況:當(dāng)前運(yùn)行的
3、時(shí)間大于最后一個(gè)進(jìn)程到達(dá)的時(shí)間做以下操作*/1.運(yùn)行時(shí)間小于0,刪除隊(duì)首/2.運(yùn)行時(shí)間大于0,直接插在隊(duì)尾/*時(shí)刻變化,隊(duì)列為空時(shí)不做時(shí)刻變化*/詳情見(jiàn)源代碼注釋(三)調(diào)試運(yùn)行(多種情況都要運(yùn)行)c:*F二0S實(shí)驗(yàn)報(bào)告DEtmgRR_pT口CE3&-exei輸入共有幾個(gè)進(jìn)程;以及進(jìn)程名:估計(jì)運(yùn)行時(shí)間、以及進(jìn)程名工估計(jì)運(yùn)行時(shí)間、請(qǐng)分別輸入第1個(gè)進(jìn)程的到達(dá)時(shí)間、04A請(qǐng)分別輸入第2個(gè)進(jìn)程的到達(dá)時(shí)間、以及進(jìn)程名:估計(jì)運(yùn)行時(shí)間、3B分別輸入第3個(gè)進(jìn)程的到達(dá)時(shí)間.以及進(jìn)程名:估計(jì)運(yùn)行時(shí)間、以及進(jìn)程名:估計(jì)運(yùn)行時(shí)間、請(qǐng)分別輸入第4個(gè)進(jìn)程的到達(dá)時(shí)間、修為輸入第5個(gè)進(jìn)程的到達(dá)時(shí)間、您輸入的時(shí)間片輪轉(zhuǎn)進(jìn)
4、程隊(duì)列為二state=Rstate=Rstte=Rstate-Rstate=Rruntime=4runtime=3runtime=5runtime=2mntime=4ar'i'ivetine-0arrivetimE=1arrivetine=2ai'r-ivctime=3arrivetime=4name=Rname=Bname=Cname=Dna.me=E請(qǐng)輸入時(shí)間片輪轉(zhuǎn)調(diào)度的時(shí)間片為二RRRRRRRRRCCCRRRRCC為為徹為為為為為為為為為為龍為為沏為態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)太尖心態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)忒忒次次忒秋忒秋忒忒忒忒忒次戌忒次慶%/、產(chǎn)+/*/./7力/,電/日/“/、
5、產(chǎn)f/力/后后后后后后后后后后后后后后后后后后一llwuIruIIilu仃一ilaullTE仃運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)abacbdaecbdaecececTz-TzJz8lsss8fiise-曲曲>茜曲曲曲曲>曲曲曲曲>曲曲>跳WVrtV、1-lb-nA.、-L-,P-ILlb_Ij-t、1、VrVTa.r-A-、-J-、1-kr.I,>-1A-小iiuuuuuuHtiututiuutJHUU仃on運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)CD012345678123456789111111111y切甘切對(duì)即切句的切功甘切功甘功切斷之e&tB7b、s
6、rhBTrBrJ&t6B7bI!36&r&r0Tri5anJ-比ilwiltutuwizuuil尊es運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)匚人0S實(shí)驗(yàn)報(bào)告DebugRR_pr(icw.exe"請(qǐng)輸入共有幾個(gè)進(jìn)程:"卷分別輸入笫1個(gè)進(jìn)程的到達(dá)時(shí)間.估計(jì)運(yùn)行時(shí)間、以及進(jìn)程名:耨我的時(shí)間片輪轉(zhuǎn)進(jìn)程隊(duì)列為.pnameAaprivetime=0runtime=4state=R請(qǐng)輸入時(shí)間片輪轉(zhuǎn)調(diào)度的時(shí)間片為:RRRc態(tài)太黑態(tài)4nl1llil/m后后后后任仃運(yùn)運(yùn)運(yùn)運(yùn)AAHAA為為為為S8進(jìn)進(jìn)進(jìn)進(jìn)的的的的H仃運(yùn)運(yùn)_運(yùn)運(yùn)1234%肝肝肝.的的的的亍一丁亍亍一至芝唇豆&
7、gt;TafaJJ-LJJ-ftpLJJ-Anr一IT仃立卷運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)程程-7-/-7-進(jìn)*進(jìn)進(jìn)進(jìn)進(jìn)后后后后后后一JlJpyJIw運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)%肝0肝肝肝次次狀狀次狀vzInlnlnvoyln運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)一»%38%Jfnp,S&Q-JpP&Q-JJ-&p迂住仔IrIT仔IT史佳5T運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)一MvMv-17MvLMJ-5rxTzTztztztztztz&T,Br'&t'k*B7r'&tB1".*B7r'Bt'&T,B7r,為為為為為為為為為為為為后后
8、后后后后后后后后后后(IZlIGrfllIfTfllIcrfllIcr運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)一進(jìn)井先進(jìn)井先進(jìn)井注fi井井>TATALfrTA>TAV-TALfr_TA>TA>_TA-_TA¥TAY_TALfrA為為為為為為為為為為為為態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)態(tài)太(四)體會(huì)及不足1 .加深了自己對(duì)鏈表中字符的處理,以及時(shí)間片輪轉(zhuǎn)第一種情況(當(dāng)前運(yùn)行時(shí)間小于最后一個(gè)進(jìn)程的到達(dá)時(shí)間)的理解,花了不少時(shí)間分清類并修改。邏輯思考方面,這是我需要改進(jìn)的。2 .特別是調(diào)試運(yùn)行階段,一開(kāi)始,有些情況能運(yùn)行正確,有些不行,這就更需要我重新對(duì)時(shí)間片輪轉(zhuǎn)的時(shí)間分類處理好,查看有沒(méi)少
9、情況.3 .不足是:對(duì)于第一種和第二種情況的第1種情況都類似(運(yùn)行時(shí)間小于0,刪除隊(duì)首),覺(jué)得最好可寫(xiě)一個(gè)函數(shù),就不用重寫(xiě)代碼。最難做到的是使代碼表達(dá)簡(jiǎn)明,清晰。這也是我需要改進(jìn)的。源代碼:/*操作系統(tǒng)實(shí)驗(yàn)二:模擬時(shí)間片輪轉(zhuǎn)調(diào)度算法(頭文件RR.h)*/*定義進(jìn)程控制塊*/typedefstructpcb(charpname5;/進(jìn)程名intarrivetime;到達(dá)時(shí)間intruntime;運(yùn)行時(shí)間charstate;/運(yùn)行后的狀態(tài)/*structpcb*next;PCB;封裝頭結(jié)點(diǎn),指針?lè)至?J指向隊(duì)頭和隊(duì)尾*/typedefstruct(PCB*front,*rear;/*queue;進(jìn)
10、程隊(duì)列置空*/queue*init()(queue*head;head=(queue*)malloc(sizeof(queue);head->front=NULL;head->rear=NULL;returnhead;)/*檢驗(yàn)進(jìn)程隊(duì)列是否為空*/intempty(queue*head)return(head->front?0:1);)/*進(jìn)程隊(duì)列入隊(duì),往后插入*/queue*append(queue*head,charc5,inta,intr,chars)PCB*p;p=(PCB*)malloc(sizeof(PCB);strcpy(p->pname,c);p->
11、;arrivetime=a;p->runtime=r;p->state=s;p->next=NULL;if(empty(head)head->front=head->rear=p;elsehead->rear->next=p;head->rear=p;)returnhead;)/*創(chuàng)建進(jìn)程隊(duì)列*/queue*creat(queue*head)charc5;chars='R'inta,r,i,n;printf("請(qǐng)輸入共有幾個(gè)進(jìn)程:n");scanf("%d",&n);for(i=1;
12、i<=n;i+)printf("請(qǐng)分別車入第%d個(gè)進(jìn)程的到達(dá)時(shí)間、估計(jì)運(yùn)行時(shí)間、以及進(jìn)程名scanf("%d%d",&a,&r);gets(c);head=append(head,c,a,r,s);returnhead;:n",i);/*輸出創(chuàng)建的進(jìn)程隊(duì)列*/voidprint(queue*head)PCB*p;p=head->front;if(!p)printf("時(shí)間片輪轉(zhuǎn)調(diào)度隊(duì)列為空!n");while(p)printf("pname=%sarrivetime=%dstate=%c"
13、;,p->pname,p->arrivetime,p->runtime,p->state);printf("n");p=p->next;/*時(shí)間片輪轉(zhuǎn)調(diào)度算法的實(shí)現(xiàn)*/voidRR(queue*head,intq)intt=head->front->arrivetime,lt=head->rear->arrivetime;if(head->front->runtime<q)t=t+head->front->runtime;elset=t+q;/*進(jìn)程隊(duì)列不為空才可調(diào)度*/while(!emp
14、ty(head)PCB*p1,*p2;runtime=%d*/*第一種情況:當(dāng)前運(yùn)行的時(shí)間小于最后一個(gè)進(jìn)程到達(dá)的時(shí)間做以下操作while(t<lt)(p1=head->front;printf("運(yùn)行的時(shí)刻為%dt運(yùn)行的進(jìn)程為st",t,p1->pname);p1->runtime=p1->runtime-q;/1.運(yùn)行時(shí)間小于0,刪除隊(duì)首if(p1->runtime<=0)(p1->state='C'printf("運(yùn)行后的狀態(tài)為%cn",p1->state);head->fr
15、ont=p1->next;free(p1);/2.運(yùn)行時(shí)間大于0,向后找位置插入else(printf("運(yùn)行后的狀態(tài)為%cn",p1->state);p2=p1->next;while(p2->next&&p2->arrivetime!=t)p2=p2->next;此時(shí)無(wú)新進(jìn)入隊(duì)列的進(jìn)程時(shí),有兩種情況:1.不用找位置往后插入,隊(duì)首不變,不做操作2.找位置往后插入if(p2->arrivetime!=t)PCB*p3=p1,*p4;while(p3->next&&p3->arrivetim
16、e<t)p4=p3;p3=p3->next;if(p3->arrivetime>t)if(p4!=p1)/p1插在p4后,頭為p1->nexthead->front=p1->next;p1->next=p4->next;p4->next=p1;else/做操作p4=p3=p2=NULL;elsep4=p3=p2=NULL;此時(shí)有新進(jìn)入隊(duì)列的進(jìn)程時(shí):p1插在新進(jìn)入隊(duì)列的進(jìn)程p2后,隊(duì)首為p1->next/elsehead->front=p1->next;p1->next=p2->next;p2->ne
17、xt=p1;/*時(shí)刻變化*/if(head->front->runtime<q)t=t+head->front->runtime;elset=t+q;/*第一種情況結(jié)束*/*第二種情況:當(dāng)前運(yùn)行的時(shí)間大于最后一個(gè)進(jìn)程到達(dá)的時(shí)間做以下操作*/while(t>=lt)p1=head->front;printf("運(yùn)行的時(shí)刻為%dt運(yùn)行的進(jìn)程為st",t,p1->pname);p1->runtime=p1->runtime-q;/1.運(yùn)行時(shí)間小于0,刪除隊(duì)首if(p1->runtime<=0)p1->s
18、tate='C'printf("運(yùn)行后的狀態(tài)為%cn",p1->state);head->front=p1->next;free(p1);/2.運(yùn)行時(shí)間大于0,直接插在隊(duì)尾elseprintf("運(yùn)行后的狀態(tài)為%cn",p1->state);/若原隊(duì)列只有一個(gè)進(jìn)程,不必往隊(duì)尾插if(!p1->next)head->front=p1;若原隊(duì)列有多個(gè)進(jìn)程elsehead->front=p1->next;head->rear->next=p1;head->rear=p1;p1->next=NULL;/*時(shí)刻變化,隊(duì)列為空時(shí)不做時(shí)刻變化*/if(empty(head)return;elseif(head->front->runtime<q)t=t+head->front->runtime;elset=t+q;第二種情況結(jié)束*/*/*操作系統(tǒng)實(shí)驗(yàn)二:模擬時(shí)間片輪
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國(guó)可吸收骨折內(nèi)固定螺釘行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年農(nóng)業(yè)種植策劃場(chǎng)地租賃合同范本
- 2025年二手房按揭合同買賣范本
- 2025年事業(yè)單位勞動(dòng)合同條款釋義
- 2025年度國(guó)際貿(mào)易合同爭(zhēng)議解決機(jī)制及執(zhí)行細(xì)則
- 2025年度玻璃深加工技術(shù)合作開(kāi)發(fā)合同范本
- 2025年度小額貸款公司借款公證服務(wù)合同
- 2025年度房地產(chǎn)租賃保證金借款合同范本
- 2025年度建筑施工現(xiàn)場(chǎng)安全監(jiān)理合同
- 2025年度文化產(chǎn)業(yè)版權(quán)質(zhì)押貸款合同范本
- 建筑與市政工程第三方質(zhì)量安全巡查方案
- 成品移動(dòng)公廁施工方案
- 二零二五版財(cái)務(wù)顧問(wèn)保密與工作內(nèi)容協(xié)議3篇
- 2025-2030年中國(guó)干混砂漿行業(yè)運(yùn)行狀況及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年度部隊(duì)食堂食材采購(gòu)與質(zhì)量追溯服務(wù)合同3篇
- 2025江蘇鹽城市交通投資建設(shè)控股集團(tuán)限公司招聘19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 新人教版一年級(jí)下冊(cè)數(shù)學(xué)教案集體備課
- 2024托管班二人合伙的協(xié)議書(shū)
- 任務(wù)型閱讀 -2024年浙江中考英語(yǔ)試題專項(xiàng)復(fù)習(xí)(解析版)
- 繪本 課件教學(xué)課件
- 大型央國(guó)企信創(chuàng)化與數(shù)字化轉(zhuǎn)型規(guī)劃實(shí)施方案
評(píng)論
0/150
提交評(píng)論