




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗二作業(yè)調(diào)度模擬程序?qū)I(yè):08信息管理與信息系統(tǒng)姓名:黃贊潤學(xué)號:200806054113實驗?zāi)康?1)加深對作業(yè)調(diào)度算法的理解;(2)進(jìn)行程序設(shè)計的訓(xùn)練。實驗內(nèi)容和要求用高級語言編寫一個或多個作業(yè)調(diào)度的模擬程序。單道批處理系統(tǒng)的作業(yè)調(diào)度程序。作業(yè)一投入運(yùn)行,它就占有計 算機(jī)的一切資源直到作業(yè)完成為止,因此調(diào)度作業(yè)時不必考慮它所需 要的資源是否得到滿足,它所運(yùn)行的時間等因素。作業(yè)調(diào)度算法:采用先來先服務(wù)(FCFS)調(diào)度算法,即按作業(yè)到 達(dá)的先后次序進(jìn)行調(diào)度。總是首先調(diào)度在系統(tǒng)中等待時間最長的作業(yè)。 每個作業(yè)由一個作業(yè)控制塊 JCB表示,JCB可以包含以下信息:作業(yè) 名、提交(到達(dá))時間、所需
2、的運(yùn)行時間、所需的資源、作業(yè)狀態(tài)、 鏈指針等等。作業(yè)的狀態(tài)可以是等待 W (Wait)、印R (Run)和完成F (Finish)三 種之一。每個作業(yè)的最初狀態(tài)都是等待 Wo一、模擬數(shù)據(jù)的生成1. 允許用戶指定作業(yè)的個數(shù)(2-24),用認(rèn)值為5。 允許用2. 戶選擇輸入每個作業(yè)的到達(dá)時間和所需運(yùn)行時間。3. (*)從文件中讀入以上數(shù)據(jù)。4. (*)也允許用戶選擇通過偽隨 機(jī)數(shù)指定每個作業(yè)的到達(dá)時問(0-30)和所需運(yùn)行時間(1-8)。模擬程序的功能1.按照模擬數(shù)據(jù)的到達(dá)時間和所需運(yùn)行時間,執(zhí)行 FCFS, SJF和HRRN調(diào)度算法,程序計算各作業(yè)的開始執(zhí)行時間,各作 業(yè)的完成時間,周轉(zhuǎn)時間和帶
3、權(quán)周轉(zhuǎn)時間。乙動態(tài)演示每調(diào)度一次,更新現(xiàn)在系統(tǒng)時刻,處于運(yùn)行狀態(tài)和等待各作業(yè)的相應(yīng)信息(作業(yè)名、到達(dá)時間、所需的運(yùn)行時 間等)對于HRRN算法,能在每次調(diào)度時顯示各作業(yè)的響應(yīng) 比R情況。3. (*)允許用戶在模擬過程中提 交新作業(yè)。4. (* )編寫并調(diào)度一個多道程序 系統(tǒng)的作業(yè)調(diào)度模擬程序。只要求作業(yè)調(diào)度算法:采用基于先來先服務(wù)的調(diào)度算法。對于多道程序系統(tǒng),要假定系統(tǒng)中具有的各種資源及數(shù)量、調(diào) 度作業(yè)時必須考慮到每個作業(yè)的資源要求。三、模擬數(shù)據(jù)結(jié)果分析1. 對同一個模擬數(shù)據(jù)各算法的平均周轉(zhuǎn)時間,平均帶權(quán)周轉(zhuǎn)時間比較。2. (*)用曲線圖或柱形圖表示出以上數(shù)據(jù),分析算法的優(yōu)點(diǎn)和缺點(diǎn)。四、其他要
4、求1, 完成報告書,內(nèi)容完整,規(guī)格規(guī)范。三、實驗方法、步驟及結(jié)果測試1 .源程序名:壓縮包文件(zip)中源程序名run.c 可執(zhí)行程序名:run.exe2 .原理分析及流程圖程序主要為帶指針的結(jié)構(gòu)體存儲struct jcb(char name10;int artime;/* 至U達(dá) shijian*/int rqtime;/* 服務(wù)*/int sttime;/* 調(diào)度*/int fntime;/* 完成*/float tat;/* 周轉(zhuǎn)*/float taw;/* 帶權(quán)*/float r;/* 優(yōu)先權(quán)*/char statut;/*狀態(tài) */structjcb *link;/*結(jié)構(gòu)體指針*/
5、,調(diào)用相關(guān)功能的子函數(shù),實現(xiàn)程序!流程圖:開始初始化所有作業(yè),并選擇進(jìn)行作業(yè)的方 式。時間為0輸入作業(yè)數(shù),作業(yè)到達(dá)時間等void start()/輸入作業(yè)數(shù)和選擇作業(yè)方式,調(diào)用input和run子函數(shù)voidinput()/子程序-輸入作業(yè)數(shù)據(jù)k void run(int m)/開始運(yùn)算,通過for(i=0;i<n;i+)循環(huán),其中n為作 “業(yè)數(shù)。判斷到達(dá)且狀態(tài)為未到達(dá)的作業(yè)。并把狀態(tài)轉(zhuǎn)為到達(dá),然后通過switch對M進(jìn)行判斷選擇,m=1 調(diào)用 fcfs, m=2 為 sjf, m = 3 調(diào)用 hrn。*WN* fcfs(int m)/對作業(yè)進(jìn)行排序。返回指針*tWN* sjf(int
6、 m)/ /對作業(yè)要求時間進(jìn)行由小到 大排序,返回*minint m) /調(diào)用jisuanr,計算權(quán)值,然后對作業(yè)優(yōu)先權(quán)也進(jìn)行由小到大排序,返回*minvoid jisuanr()/計算作業(yè)優(yōu)先權(quán)值。running(WN *p,int m)/ 將 FCFS 的*p 或者 SJF 和 HRN 的*min傳遞到running,然后進(jìn)行A狀態(tài)轉(zhuǎn)換到R狀態(tài),計算調(diào)用時間等。void print(int m)/輸出各狀態(tài)作業(yè)。void print2(WN *pr,int m)/ 輸出最后結(jié)果void last()/計算平均TAT 平均TAWmain()/主函數(shù)start();last();printf(
7、"n 結(jié)束 n");getchar();getchar();算法實現(xiàn):存儲結(jié)構(gòu)為帶指針的結(jié)構(gòu)體,關(guān)鍵函數(shù):包括三種作業(yè)調(diào)度方式。與關(guān)于作業(yè)數(shù)的總循3 o主要算法實現(xiàn):通過dowhile();函數(shù)做關(guān)于指針的遍歷循 環(huán),通過子函數(shù)調(diào)用,實現(xiàn)程序邏輯。3.主要程序段及其解釋:首先通過struct jcb ;定義帶指針結(jié)構(gòu)體,主函數(shù)只有main()start();last();printf("結(jié)束)其他由子函數(shù)相互調(diào)用實現(xiàn)。通過 for(i=0;i<n;i+)實現(xiàn)總循環(huán)通過 doif(p->statut='u'&&p->
8、artime<=time) p->statut='a'p=p->link;iden=0;elsep=p->link ;while(p!=NULL);對已經(jīng)到達(dá)的作業(yè)進(jìn)行從'UlWU達(dá))到'A到 達(dá))狀態(tài)轉(zhuǎn)化,其中iden為標(biāo)記是否有作業(yè)到達(dá), 為1的話則表示無作業(yè)到達(dá),執(zhí)行if(iden)i-;time+;直到有作業(yè)到達(dá),iden變?yōu)?通過switch(m)case1:p=fcfs(m);/*running*/ running(p,m);break;case2:min=sjf(m);/*running*/ running(min,m);b
9、reak;case3:min=hrn(m);/*running*/ running(min,m);break;實現(xiàn)選擇調(diào)度方式,并通過 running子函數(shù)運(yùn) 行作業(yè),其中min皆為由子函數(shù)調(diào)回的最 短作 業(yè)指針和最小權(quán)值指針。通過void jisuanr()/*計算優(yōu)先權(quán)值*/WN *s;s=head;doif(s->statut='a')s->r=(float)(time-s->artime+s->rqtime)/s->rqtime ;s=s->link ;while(s!=NULL);通過running(WN *p,int m) 運(yùn)行作
10、業(yè)并計算p->sttime=time;p->statut='r'/*a->r*/p->fntime=p->sttime+p->rqtime;p->tat=(float)p->fntime-p->artime;p->taw=(float)p->tat/p->rqtime;atat=atat+p->tat;ataw=ataw+p->taw;print(p,m);p->statut='f;/*r->f*/time = p->rqtime+time;printf("接
11、回車?yán)^續(xù)");getch();其中有A到R(運(yùn)行中)和R到F(完成)的狀態(tài)轉(zhuǎn)化。通過 void print2(WN *pr,int m)p = head;/*完成*/printf("nn 系統(tǒng)時間為=%d", time);printf("n全部作業(yè)已經(jīng)完成:n");doif(p->statut = 'f)if(m = 3)printf("%st%dt%dt%dt%dt%4.2ft%4.2ft%fn", p->name, p->artime , p->rqtime , p->sttime
12、, p->fntime, p->tat, p->taw, p->r);elseprintf("%st%dt%dt%dt%dt%4.2ft%4.2ft%fn", p->name, p->artime , p->rqtime , p->sttime , p->fntime, p->tat, p->taw);p = p->link;while( p != NULL );輸出全部作業(yè)!4.運(yùn)行結(jié)果及分析測試1:KFCffS2Z&JF3. H跑推序號選擇工作方式,1作業(yè)不數(shù)6H輸入作業(yè)名字:H0L調(diào)度方式
13、的選擇!系統(tǒng)時間為=202咨部作業(yè)己經(jīng)完亦血1811*西1郎0.080088州N111BL1.HH陽21102im.m1肛000.000000帽43工6日102麗iHbti=160.fi0R ®wi= 25,?7FCFS的結(jié)果(與SJF一樣) 測試2ll.FCF% 2.£JF?小水按序號選擇工作方式1作業(yè)個數(shù)萬式為FCFS結(jié)果為子主十時間為T8堂部環(huán)乍也已經(jīng)完成;6010484431 00P0213476必2,00心隨即002S712電M2.皿修修行你他321214H0544161BB3.S0et i = Lii:,7,090GWL =2.800FCFS I'JF3
14、 .HUM技芹恃選擇工作方式方式為SJF結(jié)果為系統(tǒng)時間為=18 全部作業(yè)己經(jīng)完成;B104a44 如1 .加日WZ136yS.0B2* &7 啊犯HHH3251318If320歸用制"!04324$3,001 .$00.0900600544913?.002 25800000h七± =8.000 ewi=L-TCFa 2_fiJF3 .HUH按月號選擇工作方丈3作業(yè)個數(shù)41的儲5IHSffiRH系統(tǒng)時間為q全郃作業(yè)已過完成:3H104044.UUl.UUL.waiAm酗21347J幽12.002.3Q32691412.082.402.403030曲4327?&
15、.蒯3.0B3.0用flH目仲廢4414tH14. HHm3,.匚印內(nèi)國目日st 1- S.400twi-2.3B0自測:l.FCFS 2.EJF3 .HRN技廳節(jié)5眸,作一方甘 1作業(yè)卜舅141函崎鬧入作業(yè)名字,血卜人到達(dá)時間:i4人要求服務(wù)時間二】,人作業(yè)名字,門輸人勇腦時間1糧人要求服務(wù)時間這喻人作業(yè)名字:史&也,人到達(dá)時間 1入察求服務(wù)時跳口數(shù)據(jù)如上,方式為FCFS 結(jié)果為目.we4日燈 0.000l»U PLfWl哪如樂筑時間為=7 隹部作業(yè)已經(jīng)完成;1112l.Be L卜4匕ZZ43.B01.5BA4413176.H03.00rt i- 3.333 ovi 1l.
16、FCPfi 2.SJP3 -蝌快J; 2作犯個數(shù)輸入作業(yè)名字T *輸入到達(dá)時間工1瑜人更求服務(wù)時間日 輸入作業(yè)名字上演 輸入到達(dá)時間率1 輸入要求服務(wù)時閘之 輸入作業(yè)名字:前A到達(dá)時間 1 輸、要求服務(wù)的門數(shù)據(jù)如上,方式為SJF 結(jié)果為照筑呼間為“生郃作業(yè)已經(jīng)兄威士alli21.B01. 99aa12243.帆L日口 Cd13476 明2.靦&.&&&&&&pt 1 =3,333ewi= 1.500L -fCFS 2.SJF3.HU*按算號選擇工作方式作ik卜軸輸鼠作批名字.a輸入到達(dá)時間,1輸入要求服務(wù)時間這輸入作業(yè)名字.丑輸入到達(dá)時河,1瑜人要求服務(wù)時間,會輸入俏:世名-7-:4ad輸入到達(dá)時間.1輸於花收行時間門數(shù)據(jù)如上,方式為HRN 結(jié)果為1.U0工日日.H1.S01.5603062-BWHffllft修統(tǒng)時間為
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智力基礎(chǔ)測試題及答案
- 清單制度面試題及答案
- 在建工程消防安全知識培訓(xùn)
- 發(fā)熱患者護(hù)理常規(guī)
- 回腸造瘺管護(hù)理
- 采購財務(wù)知識培訓(xùn)
- 腫瘤登記報告卡規(guī)范與實施
- 客戶經(jīng)理十個嚴(yán)禁培訓(xùn)
- 班長質(zhì)量培訓(xùn)課件
- 新源縣哈拉布拉鎮(zhèn)麥后復(fù)播大豆高產(chǎn)栽培技術(shù)
- 酒店收益管理關(guān)鍵試題及答案
- 100米課件教學(xué)課件
- 裝修避坑知識
- 廣東省深圳市龍崗區(qū)2023-2024六年級下學(xué)期期中科學(xué)試卷(含答案)
- Unit 5 Animal friends Reading 課件 譯林版英語七年級下冊
- 2025年版村規(guī)民約
- 2023西寧中考物理試題(附參考答案)
- 太極拳理論考試復(fù)習(xí)題
- 2025至2031年中國火鍋底料行業(yè)投資前景及策略咨詢研究報告
- DG∕TJ 08-53-2016 行道樹栽植技術(shù)規(guī)程
- 2025版特種金屬礦山股權(quán)收購與轉(zhuǎn)讓合同2篇
評論
0/150
提交評論