




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
動向優(yōu)先權的進度調(diào)動算法模擬華北科技學院計算機系綜合性實驗實驗報告課程名稱計算機操作系統(tǒng)實驗學期2010至2011學年第2學期學生所在系部基礎部年級2008級專業(yè)班級信息與計算科學學生姓名范玉文學號200809014212任課教師杜杏菁實驗成績計算機系制華北科技學院計算機系綜合性實驗報告《操作系統(tǒng)》課程綜合性實驗報告開課實驗室:第六實驗室2011年6月15日進度調(diào)動算法程序設計實驗題目一、實驗目的經(jīng)過對進度調(diào)動算法的模擬,進一步理解進度的基本觀點,加深對進度運轉(zhuǎn)狀態(tài)和進度調(diào)動過程、調(diào)動算法的理解。二、設施與環(huán)境硬件設施:PC機一臺軟件環(huán)境:安裝Windows操作系統(tǒng)或許Linux操作系統(tǒng),并安裝有關的程序開發(fā)環(huán)境,如C\C++\Java等編程語言環(huán)境。三、實驗內(nèi)容用C語言(或其余語言,如Java)實現(xiàn)對N個進度采納某種進度調(diào)動算法(如動向優(yōu)先權調(diào)動)的調(diào)動。每個用來表記進度的進度控制塊PCB可用構造來描繪,包含以下字段:,進度表記數(shù)ID。進度優(yōu)先數(shù)PRIORITY,并規(guī)定優(yōu)先數(shù)越大的進度,其優(yōu)先權越高。進度已占用CPU時間CPUTIME。進度還需占用的CPU時間ALLTIME。當進度運轉(zhuǎn)完成時,ALLTIME變成0。,進度的堵塞時間STARTBLOCK,表示當進度再運轉(zhuǎn)STARTBLOCK個時間片后,進度將進入堵塞狀態(tài)。進度被堵塞的時間BLOCKTIME,表示已堵塞的進度再等候BLOCKTIME個時間片后,將轉(zhuǎn)換成就緒狀態(tài)。進度狀態(tài)STATE。行列指針NEXT,用來將PCB排成行列。優(yōu)先數(shù)改變的原則:,進度在就緒行列中呆一個時間片,優(yōu)先數(shù)增添1。進度每運轉(zhuǎn)一個時間片,優(yōu)先數(shù)減3。為了清楚地察看每個進度的調(diào)動過程,程序應將每個時間片內(nèi)的進度的狀況顯示出來,包含正在運轉(zhuǎn)的進度,處于就緒行列中的進度和處于堵塞行列中的進度。剖析程序運轉(zhuǎn)的結果,談一下自己的認識。第1頁華北科技學院計算機系綜合性實驗報告四、實驗結果及剖析實驗設計說明實驗代碼#include<stdio.h>#defineN5voidinit( );voidprint( );intgetRunning( );voidsort( );intrun(inttime);enumSTATE{Ready,Run,Block,RunOut};structPROCESS{intID;intPriority;intCputime;intAlltime;intStartblock;intBlocktime;enumSTATEState;}Process[N];intREADY[N];//儲存就緒行列intBLOCK[N];//儲存堵塞行列intRUNOUT[N][2];//儲存運轉(zhuǎn)完的進度和相應的時間片數(shù)intmain( ){intTime=0;init( );printf("Time:%d\n",Time);sort( );print( );while(1){Time++;getchar( );//要從鍵盤上獲得一個字符才持續(xù)運轉(zhuǎn),以此實現(xiàn)鍵盤控制逐漸進行的目的printf("Time:%d\n",Time);if(run(Time))break;}return0;}voidinit( )//無問題了第2頁華北科技學院計算機系綜合性實驗報告{inti;for(i=0;i<N;++i){READY[i]=-1;//是-1,便于后邊排序用且后邊假如大于0則表示有進度,假如小于0則表示沒有了BLOCK[i]=-1;RUNOUT[i][0]=-1;//表示第幾個進度RUNOUT[i][1]=-1;//表示第幾個時間片達成Process[i].ID=i;Process[i].Cputime=0;Process[i].State=Ready;Process[i].Startblock=-1;//再運轉(zhuǎn)這么長時間就進入堵塞,假如是0則馬長進入堵塞Process[i].Blocktime=0;//初始化為0}Process[0].Priority=9;Process[0].Alltime=3;Process[0].Startblock=2;//運轉(zhuǎn)兩個時間片就堵塞Process[0].Blocktime=3;//堵塞3個時間片就就緒Process[1].Priority=38;Process[1].Alltime=3;//默認無窮制Process[2].Priority=30;Process[2].Alltime=6;Process[3].Priority=29;Process[3].Alltime=3;Process[4].Priority=0;Process[4].Alltime=4;}voidprint( )//用于輸出目前狀態(tài){inti;if(getRunning( )>=0)printf("\tRUNNINGPROG:%d\n",getRunning( ));printf("\tREADY_QUEUE:");for(i=0;i<N;++i){if(READY[i]>=0)printf("->%d",Process[READY[i]].ID);else{break;}}printf("\n\tBLOCK_QUEUE:");for(i=0;i<N;++i){if(BLOCK[i]>=0)printf("->%d",Process[BLOCK[i]].ID);else{break;第3頁華北科技學院計算機系綜合性實驗報告}}printf("\n=====================================================\n");printf("ID\t");for(i=0;i<N;++i){printf("\t%d",Process[i].ID);}printf("\nPRIORITY");for(i=0;i<N;++i){printf("\t%d",Process[i].Priority);}printf("\nCPUTIME\t");for(i=0;i<N;++i){printf("\t%d",Process[i].Cputime);}printf("\nALLTIME\t");for(i=0;i<N;++i){printf("\t%d",Process[i].Alltime);}printf("\nSTARTBLOCK");for(i=0;i<N;++i){printf("\t%d",Process[i].Startblock);}printf("\nBLOCKTIME");for(i=0;i<N;++i){printf("\t%d",Process[i].Blocktime);}printf("\nSTATE\t");for(i=0;i<N;++i){switch(Process[i].State){case0:printf("\tReady");break;case1:printf("\tRun");if(Process[i].Alltime==0){Process[i].State=RunOut;}elseProcess[i].State=Ready;break;第4頁華北科技學院計算機系綜合性實驗報告case2:printf("\tBlock");break;case3:printf("\tRunOut");break;}}printf("\n");printf("\tRUNOUTLIST:");for(i=0;i<N;++i){if(RUNOUT[i][0]>=0)printf("->%d(%d)",Process[RUNOUT[i][0]].ID,RUNOUT[i][1]);else{printf("\n");break;}}printf("\n");}intgetRunning( ){inti;for(i=0;i<N;++i)//找出正在運轉(zhuǎn)的進度{if(Process[i].State==Run)returni;}for(i=0;i<N;++i)//假如沒有正在運轉(zhuǎn)的進度則找出立刻就要堵塞的進度{if(Process[i].Startblock==0)returni;}return-1;}voidsort( )//作用是排序,找出就緒行列和堵塞行列分別放入READY[],BLOCK[]{inti,j,k;for(i=0;i<N;++i){READY[i]=-1;BLOCK[i]=-1;}for(i=0;i<N;++i)//找出了READYQUEUE按權從大到小放在READY[]中{if(Process[i].State==Ready||Process[i].State==Run){if(Process[i].Alltime==0)continue;第5頁華北科技學院計算機系綜合性實驗報告for(j=0;j<N;++j){if(READY[j]<0){READY[j]=i;break;}elseif(Process[i].Priority<=Process[READY[j]].Priority){continue;}else{for(k=N-1;k>j;--k){READY[k]=READY[k-1];}READY[j]=i;break;}}}elseif(Process[i].State==Block)//找出堵塞行列放入BLOCK[]中{for(j=0;j<N;++j){if(BLOCK[j]<0){BLOCK[j]=i;break;}elseif(Process[i].Blocktime>=Process[BLOCK[j]].Blocktime){continue;}else{for(k=N-1;k>j;--k){BLOCK[k]=BLOCK[k-1];}BLOCK[j]=i;break;}}}}}intrun(inttime){第6頁華北科技學院計算機系綜合性實驗報告inti,runNum;//run的次數(shù)runNum=READY[0];if(runNum<0&&BLOCK[0]<0){printf("EveryprocessisOVER!\n");return1;}else{if(runNum>=0){Process[runNum].Priority-=3;Process[runNum].Alltime-=1;Process[runNum].Cputime+=1;Process[runNum].State=Run;for(i=0;i<N;++i)//對其余進度進行改正{if(i!=runNum){if(Process[i].State==Ready){Process[i].Priority+=1;}elseif(Process[i].State==Block){Process[i].Blocktime-=1;if(Process[i].Blocktime==0){Process[i].State=Ready;}}}}if(Process[runNum].Alltime==0){for(i=0;i<N;++i){if(RUNOUT[i][0]<0){RUNOUT[i][0]=runNum;RUNOUT[i][1]=time;break;}}}elseif(Process[runNum].Startblock>=0)第7頁華北科技學院計算機系綜合性實驗報告{Process[runNum].Startblock-=1;if(Process[runNum].Startblock==0){Process[runNum].State=Block;}}}elseif(BLOCK[0]>=0){for(i=0;i<N;++i){if(Process[i].State==Block){Process[i].Startblock=-1;Process[i].Blocktime-=1;if(Process[i].Blocktime==0){Process[i].State=Ready;}}}}}sort( );print( );return0;}實驗結果Time:1READY_QUEUE:->1->2->3->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY93830290CPUTIME00000ALLTIME33634STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyReadyReadyReadyReady第8頁華北科技學院計算機系綜合性實驗報告RUNOUTLIST:Time:1RUNNINGPROG:1READY_QUEUE:->1->2->3->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY103531301CPUTIME01000ALLTIME32634STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunReadyReadyReadyRUNOUTLIST:Time:2RUNNINGPROG:1READY_QUEUE:->1->2->3->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY113232312CPUTIME02000ALLTIME31634STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunReadyReadyReadyRUNOUTLIST:Time:3RUNNINGPROG:1READY_QUEUE:->2->3->0->4第9頁華北科技學院計算機系綜合性實驗報告BLOCK_QUEUE:=====================================================ID01234PRIORITY122933323CPUTIME03000ALLTIME30634STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunReadyReadyReadyRUNOUTLIST:->1(3)Time:4RUNNINGPROG:2READY_QUEUE:->3->2->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY132930334CPUTIME03100ALLTIME30534STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunOutRunReadyReadyRUNOUTLIST:->1(3)Time:5RUNNINGPROG:3READY_QUEUE:->2->3->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY142931305第10頁華北科技學院計算機系綜合性實驗報告CPUTIME03110ALLTIME30524STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunOutReadyRunReadyRUNOUTLIST:->1(3)Time:6RUNNINGPROG:2READY_QUEUE:->3->2->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY152928316CPUTIME03210ALLTIME30424STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunOutRunReadyReadyRUNOUTLIST:->1(3)Time:7RUNNINGPROG:3READY_QUEUE:->2->3->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY162929287CPUTIME03220ALLTIME30414STARTBLOCK2-1-1-1-1BLOCKTIME30000第11頁華北科技學院計算機系綜合性實驗報告STATEReadyRunOutReadyRunReadyRUNOUTLIST:->1(3)Time:8RUNNINGPROG:2READY_QUEUE:->3->2->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY172926298CPUTIME03320ALLTIME30314STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunOutRunReadyReadyRUNOUTLIST:->1(3)Time:9RUNNINGPROG:3READY_QUEUE:->2->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY182927269CPUTIME03330ALLTIME30304STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunOutReadyRunReadyRUNOUTLIST:->1(3)->3(9)Time:10RUNNINGPROG:2第12頁華北科技學院計算機系綜合性實驗報告READY_QUEUE:->2->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY1929242610CPUTIME03430ALLTIME30204STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunOutRunRunOutReadyRUNOUTLIST:->1(3)->3(9)Time:11RUNNINGPROG:2READY_QUEUE:->2->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY2029212611CPUTIME03530ALLTIME30104STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunOutRunRunOutReadyRUNOUTLIST:->1(3)->3(9)Time:12RUNNINGPROG:2READY_QUEUE:->0->4BLOCK_QUEUE:=====================================================ID01234第13頁華北科技學院計算機系綜合性實驗報告PRIORITY2129182612CPUTIME03630ALLTIME30004STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEReadyRunOutRunRunOutReadyRUNOUTLIST:->1(3)->3(9)->2(12)Time:13RUNNINGPROG:0READY_QUEUE:->0->4BLOCK_QUEUE:=====================================================ID01234PRIORITY1829182613CPUTIME13630ALLTIME20004STARTBLOCK1-1-1-1-1BLOCKTIME30000STATERunRunOutRunOutRunOutReadyRUNOUTLIST:->1(3)->3(9)->2(12)Time:14RUNNINGPROG:0READY_QUEUE:->4BLOCK_QUEUE:->0=====================================================ID01234PRIORITY1529182614CPUTIME23630ALLTIME10004STARTBLOCK0-1-1-1-1第14頁華北科技學院計算機系綜合性實驗報告BLOCKTIME30000STATEBlockRunOutRunOutRunOutReadyRUNOUTLIST:->1(3)->3(9)->2(12)Time:15RUNNINGPROG:4READY_QUEUE:->4BLOCK_QUEUE:->0=====================================================ID01234PRIORITY1529182611CPUTIME23631ALLTIME10003STARTBLOCK0-1-1-1-1BLOCKTIME20000STATEBlockRunOutRunOutRunOutRunRUNOUTLIST:->1(3)->3(9)->2(12)Time:16RUNNINGPROG:4READY_QUEUE:->4BLOCK_QUEUE:->0=====================================================ID01234PRIORITY152918268CPUTIME23632ALLTIME10002STARTBLOCK0-1-1-1-1BLOCKTIME10000STATEBlockRunOutRunOutRunOutRunRUNOUTLIST:->1(3)->3(9)->2(12)Time:17第15頁華北科技學院計算機系綜合性實驗報告RUNNINGPROG:4READY_QUEUE:-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年化輕建材項目可行性研究報告
- 2025年八面翻大型戶外廣告設備項目可行性研究報告
- Calcitonin-13C6-15N4-salmon-TFA-Salmon-calcitonin-sup-13-sup-C-sub-6-sub-sup-15-sup-N-sub-4-sub-TFA-生命科學試劑-MCE
- 2025年度高科技項目融資居間服務合同樣本
- 2025至2030年自動平滑門項目投資價值分析報告
- 2025年度綠色環(huán)保型紙箱加工定制服務合同
- 中國交通運輸市場前景預測及投資規(guī)劃研究報告
- 2025至2030年石英砂粉項目投資價值分析報告
- 2025年度全域旅游導覽服務合同范本
- 2025至2030年智能動力節(jié)電控制裝置項目投資價值分析報告
- 白城2025年吉林大安市事業(yè)單位面向上半年應征入伍高校畢業(yè)生招聘5人筆試歷年參考題庫附帶答案詳解
- 2025年市婦聯(lián)執(zhí)委會議上的工作報告
- 安全生產(chǎn)事故調(diào)查與案例分析(第3版)課件 呂淑然 第5、6章 事故案例評析、相關法律法規(guī)
- 2024-2025學年人教版數(shù)學六年級下冊第二單元百分數(shù)(二)(含答案)
- 2024年湖南鐵路科技職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 祖沖之的平生與貢獻
- 2025年版護理法律法規(guī)
- 統(tǒng)編版(2024新版)七年級下冊道德與法治期末復習背誦知識點提綱
- 口服降糖藥物分類詳解
- 健康體檢報告解讀頁課件
- (高清版)DB43∕T 1147-2015 太陽能果蔬烘干機
評論
0/150
提交評論