版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實驗二 作業(yè)調(diào)度 一. 實驗題目 1、編寫并調(diào)試一個單道處理系統(tǒng)的作業(yè)等待模擬程序。 作業(yè)調(diào)度算法:分別采用先來先服務(wù)(FCFS),最短作業(yè)優(yōu)先(SJF)的調(diào)度算法。 (1)先來先服務(wù)算法:按照作業(yè)提交給系統(tǒng)的先后順序來挑選作業(yè),先提交的先被挑選。 (2)最短作業(yè)優(yōu)先算法:是以進入系統(tǒng)的作業(yè)所提出的“執(zhí)行時間”為標(biāo)準(zhǔn),總是優(yōu)先選取執(zhí)行時間最短的作業(yè)。二. 實驗?zāi)康模罕緦嶒炓笥酶呒壵Z言(C語言實驗環(huán)境)編寫和調(diào)試一個或多個作業(yè)調(diào)度的模擬程序,了解作業(yè)調(diào)度在操作系統(tǒng)中的作用,以加深對作業(yè)調(diào)度算法的理解三 .實驗過程 單道處理系統(tǒng)作業(yè)調(diào)度 1)單道處理程序作業(yè)調(diào)度實驗的源
2、程序: zuoye.c 執(zhí)行程序: zuoye.exe 2)實驗分析:1、由于在單道批處理系統(tǒng)中,作業(yè)一投入運行,它就占有計算機的一切資源直到作業(yè)完成為止,因此調(diào)度作業(yè)時不必考慮它所需要的資源是否得到滿足,它所占用的 CPU時限等因素。2、每個作業(yè)由一個作業(yè)控制塊JCB表示,JCB可以包含如下信息:作業(yè)名、提交時間、所需的運行時間、所需的資源、作業(yè)狀態(tài)、鏈指針等等。作業(yè)的狀態(tài)可以是等待W(Wait)、運行R(Run)和完成F(Finish)三種狀態(tài)之一。每個作業(yè)的最初狀態(tài)總是等待W。3、對每種調(diào)度算法都要求打印每個作業(yè)開始運行時刻、完成時刻、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,以及這組作業(yè)的平均周轉(zhuǎn)時間及
3、帶權(quán)平均周轉(zhuǎn)時間。 3)流程圖:代替 二.最短作業(yè)優(yōu)先算法代替 三.高響應(yīng)比算法圖一.先來先服務(wù)流程圖專心-專注-專業(yè)4)源程序: #include #include #include #define getpch(type) (type*)malloc(sizeof(type) #define NULL 0int n;float T1=0,T2=0;int times=0;struct jcb /作業(yè)控制塊 char name10; /作業(yè)名 int reachtime; /作業(yè)到達時間 int starttime; /作業(yè)開始時間 int needtime; /作業(yè)需要運行的時間 floa
4、t super; /作業(yè)的響應(yīng)比 int finishtime; /作業(yè)完成時間 float cycletime; /作業(yè)周轉(zhuǎn)時間 float cltime; /作業(yè)帶權(quán)周轉(zhuǎn)時間 char state; /作業(yè)狀態(tài) struct jcb *next; /結(jié)構(gòu)體指針*ready=NULL,*p,*q;typedef struct jcb JCB; void inize() /初始化界面 printf(nntt*ttn); printf(tttt實驗二 作業(yè)調(diào)度n); printf(tt*ttn); printf(nnnttttt計算機學(xué)院軟件四班n); printf(ttttt藍小花n); pr
5、intf(tttttn); printf(ttttt完成日期:2006年11月17號); printf(nnntt請輸入任意鍵進入演示過程n); getch();void inital() /建立作業(yè)控制塊隊列,先將其排成先來先服務(wù)的模式隊列int i;printf(n輸入作業(yè)數(shù):);scanf(%d,&n);for(i=0;iname); getch(); p-reachtime=i; printf(作業(yè)默認到達時間:%d,i); printf(n輸入作業(yè)要運行的時間:); scanf(%d,&p-needtime); p-state=W; p-next=NULL; if(ready=NUL
6、L) ready=q=p; else q-next=p; q=p; void disp(JCB* q,int m) /顯示作業(yè)運行后的周轉(zhuǎn)時間及帶權(quán)周轉(zhuǎn)時間等 if(m=3) /顯示高響應(yīng)比算法調(diào)度作業(yè)后的運行情況 printf(n作業(yè)%s正在運行,估計其運行情況:n,q-name); printf(開始運行時刻:%dn,q-starttime); printf(完成時刻:%dn,q-finishtime); printf(周轉(zhuǎn)時間:%fn,q-cycletime); printf(帶權(quán)周轉(zhuǎn)時間:%fn,q-cltime); printf(相應(yīng)比:%fn,q-super); getch();
7、else / 顯示先來先服務(wù),最短作業(yè)優(yōu)先算法調(diào)度后作業(yè)的運行情況 printf(n作業(yè)%s正在運行,估計其運行情況:n,q-name); printf(開始運行時刻:%dn,q-starttime); printf(完成時刻:%dn,q-finishtime); printf(周轉(zhuǎn)時間:%fn,q-cycletime); printf(帶權(quán)周轉(zhuǎn)時間:%fn,q-cltime); getch(); void running(JCB *p,int m) /運行作業(yè) if(p=ready) /先將要運行的作業(yè)從隊列中分離出來 ready=p-next; p-next=NULL; else q=re
8、ady; while(q-next!=p) q=q-next; q-next=p-next; p-starttime=times; /計算作業(yè)運行后的完成時間,周轉(zhuǎn)時間等等 p-state=R; p-finishtime=p-starttime+p-needtime; p-cycletime=(float)(p-finishtime-p-reachtime); p-cltime=(float)(p-cycletime/p-needtime); T1+=p-cycletime; T2+=p-cltime; disp(p,m); /調(diào)用disp()函數(shù),顯示作業(yè)運行情況 times+=p-need
9、time; p-state=F; printf(n%s has been finished!npress any key to continue.n,p-name); free(p); /釋放運行后的作業(yè) getch();void super() /計算隊列中作業(yè)的高響應(yīng)比 JCB *padv; padv=ready; do if(padv-state=W&padv-reachtimesuper=(float)(times-padv-reachtime+padv-needtime)/padv-needtime padv=padv-next; while(padv!=NULL);void fin
10、al() /最后打印作業(yè)的平均周轉(zhuǎn)時間,平均帶權(quán)周轉(zhuǎn)時間 float s,t; t=T1/n; s=T2/n; getch(); printf(nn作業(yè)已經(jīng)全部完成!); printf(n%d個作業(yè)的平均周轉(zhuǎn)時間是:%f,n,t); printf(n%d個作業(yè)的平均帶權(quán)周轉(zhuǎn)時間是%f:nnn,n,s); void hrn(int m) /高響應(yīng)比算法 JCB *min; int i,iden; system(cls); inital(); for(i=0;istate=W&p-reachtimesupermin-super) min=p; p=p-next; while(p!=NULL); i
11、f(iden) i-;times+; /printf(ntime=%d:tno JCB submib.wait.,time); if(times1000)printf(nruntime is too long.error.);getch(); else running(min,m); /調(diào)用running()函數(shù) /for final(); /調(diào)用running()函數(shù)void sjf(int m) / 最短作業(yè)優(yōu)先算法 JCB *min; int i,iden; system(cls); inital(); for(i=0;istate=W&p-reachtimeneedtimeneedti
12、me) min=p; p=p-next; while(p!=NULL) ; if(iden) i-; /printf(ntime=%d:tno JCB submib.wait.,time); times+; if(times100)printf(nruntime is too long.error);getch(); else running(min,m); /調(diào)用running()函數(shù) /for final(); /調(diào)用running()函數(shù)void fcfs(int m) /先來先服務(wù)算法 int i,iden; system(cls); inital(); for(i=0;istate=
13、W&p-reachtimenext; while(p!=NULL&iden) ; if(iden) i-; printf(n沒有滿足要求的進程,需等待); times+; if(times100)printf(n時間過長);getch(); else running(p,m); /調(diào)用running()函數(shù) final(); /調(diào)用running()函數(shù)void mune() int m; system(cls); printf(nntt*ttn); printf(tttt作業(yè)調(diào)度演示n); printf(tt*ttn); printf(nnnttt1.先來先服務(wù)算法.); printf(nttt2.最短作業(yè)優(yōu)先算法.); printf(nttt3.響應(yīng)比高者優(yōu)先算法); printf(nttt0.退出程序.); printf(nntttt選擇所要操作:); scanf(%d,&m);switch(m) case 1: fcfs(m); getch(); system(cls); mune(); break; case 2: sjf(m); getch(); system(cls); mune(); break; case 3: hrn(m); getch(); system(cls); mune(); break; case 0: system(cls); break
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024雙方同意離婚協(xié)議之法律咨詢服務(wù)合同
- 2024年度能源設(shè)施安防監(jiān)控工程項目合同
- 2024醫(yī)療器械銷售代理合同
- 2024年大連智能鎖產(chǎn)品測試與質(zhì)量控制合同
- 2024年度學(xué)校教學(xué)樓照明改造合同
- 2024年衛(wèi)星導(dǎo)航與位置服務(wù)系統(tǒng)合作協(xié)議
- 2024年多功能砂漿添加劑采購合同
- 2024年全球貿(mào)易合作伙伴協(xié)議
- 2024年口腔門診部員工合同模板
- 痤瘡護理課件教學(xué)課件
- 企業(yè)如何利用新媒體做好宣傳工作課件
- 如何培養(yǎng)孩子的自信心課件
- 中醫(yī)藥膳學(xué)全套課件
- 頸脊髓損傷-匯總課件
- 齒輪故障診斷完美課課件
- 2023年中國鹽業(yè)集團有限公司校園招聘筆試題庫及答案解析
- 大班社會《特殊的車輛》課件
- 野生動物保護知識講座課件
- 早教托育園招商加盟商業(yè)計劃書
- 光色變奏-色彩基礎(chǔ)知識與應(yīng)用課件-高中美術(shù)人美版(2019)選修繪畫
- 前列腺癌的放化療護理
評論
0/150
提交評論