版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)三 利用預(yù)約表編程計(jì)算非線(xiàn)性流水線(xiàn)的任務(wù)調(diào)度方案一、 實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)本實(shí)驗(yàn)幫助學(xué)生理解單功能非線(xiàn)性流水線(xiàn)基本任務(wù)調(diào)度方法。二、 實(shí)驗(yàn)環(huán)境開(kāi)發(fā)工具使用windows平臺(tái)下的vc+6.0。三、 實(shí)驗(yàn)內(nèi)容給定某單功能非線(xiàn)性流水線(xiàn)的預(yù)約表,通過(guò)編程求出所有不沖突的任務(wù)調(diào)度方案并輸出。流水線(xiàn)功能段數(shù)隨機(jī)。四、 實(shí)驗(yàn)結(jié)果#include<stdio.h> #include<iostream.h> #include<iomanip.h> #include<string.h> const int MAXJOB=50;/定義數(shù)據(jù)結(jié)構(gòu)體
2、typedef struct node int number; int reach_time; int reach_hour; int reach_minite; int need_time; int privilege; float excellent; int start_time; int wait_time; int visited; job; job jobsMAXJOB; int quantity; /初始化函數(shù) void initial() int i; for(i=0;i<MAXJOB;i+) jobsi.number=0; jobsi.reach_time=0; job
3、si.reach_hour=0; jobsi.reach_minite=0; jobsi.privilege=0; jobsi.excellent=0; jobsi.start_time=0; jobsi.wait_time=0; jobsi.visited=0; quantity=0; void reset() /重置作業(yè)數(shù)據(jù)函數(shù) int i; for(i=0;i<MAXJOB;i+) jobsi.start_time=0; jobsi.wait_time=0; jobsi.visited=0; void readData() /讀入作業(yè)數(shù)據(jù)函數(shù) FILE *fp; char fnam
4、e20; int i; cout<<"請(qǐng)輸入作業(yè)數(shù)據(jù)文件名:" strcpy(fname,"8job.txt"); cin>>fname; if(fp=fopen(fname,"r")=NULL) cout<<"錯(cuò)誤,文件打不開(kāi),請(qǐng)檢查文件名:)"<<endl; else while(!feof(fp) fscanf(fp,"%d %d %d %d",&jobsquantity.number,&jobsquantity.reach_
5、time,&jobsquantity.need_time,&jobsquantity.privilege); jobsquantity.reach_hour=jobsquantity.reach_time/100; jobsquantity.reach_minite=jobsquantity.reach_time%100; quantity+; /輸出初始作業(yè)數(shù)據(jù) cout<<"輸出初始作業(yè)數(shù)據(jù)"<<endl; cout<<"-"<<endl; cout.setf(2); cout<&
6、lt;setw(10)<<"作業(yè)號(hào)"<<setw(12)<<"到達(dá)時(shí)間"<<setw(14)<<"所需時(shí)間(分)"<<setw(14)<<"優(yōu)先級(jí)(0>1)"<<endl; for(i=0;i<quantity;i+) cout<<setw(10)<<jobsi.number<<setw(12)<<jobsi.reach_time<<setw(14)
7、<<jobsi.need_time<<setw(14)<<jobsi.privilege<<endl; /FIFO算法 void FIFO() int i; int current_hour; int current_minute; int total_time=0; cout<<endl; /輸出作業(yè)流cout<<endl<<"FIFO算法作業(yè)流"<<endl; cout<<"-"<<endl; cout.setf(2); cout&
8、lt;<setw(10)<<"作業(yè)號(hào)"<<setw(12)<<"到達(dá)時(shí)間"<<setw(12)<<"開(kāi)始時(shí)間"<<setw(14)<<"周轉(zhuǎn)時(shí)間(分)"<<endl; current_hour=jobs0.reach_hour; current_minute=jobs0.reach_minite; for(i=0;i<quantity;i+) jobsi.start_time=current_hour*100
9、+current_minute; jobsi.wait_time=(current_hour-jobsi.reach_hour)*60+(current_minute-jobsi.reach_minite)+jobsi .need_time; cout<<setw(10)<<jobsi.number<<setw(12)<<jobsi.reach_time<<setw(12)<<jobsi.start_time<<setw(14)<<jobsi.wait_time<<endl; curre
10、nt_hour=current_hour+(jobsi.need_time+current_minute)/60; current_minute=(jobsi.need_time+current_minute)%60; total_time+=jobsi.wait_time; cout<<endl<<"總周轉(zhuǎn)時(shí)間:"<<total_time<<" 平均周轉(zhuǎn)時(shí)間:"<<total_time/quantity<<endl; void shorter() /運(yùn)算時(shí)間短的作業(yè)優(yōu)先算法 int
11、 i,j,p; int current_hour; int current_minute; int current_need_time; int total_time=0; /輸出作業(yè)流 cout<<endl; cout<<endl<<"時(shí)間短作業(yè)優(yōu)先算法作業(yè)流(開(kāi)始調(diào)度時(shí)刻為最后一個(gè)作業(yè)到達(dá)系統(tǒng)的時(shí)間)"<<endl; cout<<"-"<<endl; cout.setf(2); cout<<setw(10)<<"作業(yè)號(hào)"<<
12、setw(12)<<"到達(dá)時(shí)間"<<setw(14)<<"所需時(shí)間(分)"<<setw(12)<<"開(kāi)始時(shí)間"<<setw(14)<<"周轉(zhuǎn)時(shí)間(分)"<<endl; current_hour=jobsquantity-1.reach_hour; current_minute=jobsquantity-1.reach_minite; for(i=0;i<quantity;i+) current_need_time=
13、30000; for(j=0;j<quantity;j+) if(jobsj.visited=0)&&(jobsj.need_time<current_need_time) p=j; current_need_time=jobsj.need_time; jobsp.start_time=current_hour*100+current_minute; jobsp.wait_time=(current_hour-jobsp.reach_hour)*60+(current_minute-jobsp.reach_minite)+jobsp .need_time; cout
14、<<setw(10)<<jobsp.number<<setw(12)<<jobsp.reach_time<<setw(14)<<jobsp.need_time<<setw(12)<<jobsp.start_time<<setw(14)<<jobsp.wait_time<<endl; current_hour=current_hour+(jobsp.need_time+current_minute)/60; current_minute=(jobsp.need_ti
15、me+current_minute)%60; jobsp.visited=1; total_time+=jobsp.wait_time; cout<<endl<<"總周轉(zhuǎn)時(shí)間:"<<total_time<<" 平均周轉(zhuǎn)時(shí)間:"<<total_time/quantity<<endl; void privilege() /優(yōu)先數(shù)調(diào)度算法 int i,j,p; int current_hour; int current_minute; int current_privilege; int
16、total_time=0; /輸出作業(yè)流 cout<<endl; cout<<endl<<"優(yōu)先數(shù)調(diào)度算法作業(yè)流(開(kāi)始調(diào)度時(shí)刻為最后一個(gè)作業(yè)到達(dá)系統(tǒng)的時(shí)間)"<<endl; cout<<"-"<<endl; cout.setf(2); cout<<setw(10)<<"作業(yè)號(hào)"<<setw(12)<<"到達(dá)時(shí)間"<<setw(14)<<"優(yōu)先級(jí)(0>1)&q
17、uot;<<setw(12)<<"開(kāi)始時(shí)間"<<setw(14)<<"周轉(zhuǎn)時(shí)間(分)"<<endl; current_hour=jobsquantity-1.reach_hour; current_minute=jobsquantity-1.reach_minite; for(i=0;i<quantity;i+) current_privilege=30000; for(j=0;j<quantity;j+) if(jobsj.visited=0)&&(jobsj.pr
18、ivilege<current_privilege) p=j; current_privilege=jobsj.privilege; jobsp.start_time=current_hour*100+current_minute; jobsp.wait_time=(current_hour-jobsp.reach_hour)*60+(current_minute-jobsp.reach_minite)+jobsp .need_time; cout<<setw(10)<<jobsp.number<<setw(12)<<jobsp.reach
19、_time<<setw(14)<<jobsp.privilege<<setw(12)<<jobsp.start_time<<setw(14)<<jobsp.wait_time<<endl; current_hour=current_hour+(jobsp.need_time+current_minute)/60; current_minute=(jobsp.need_time+current_minute)%60; jobsp.visited=1; total_time+=jobsp.wait_time; co
20、ut<<endl<<"總周轉(zhuǎn)時(shí)間:"<<total_time<<" 平均周轉(zhuǎn)時(shí)間:"<<total_time/quantity<<endl; /響應(yīng)比最高者優(yōu)先調(diào)度算法 void excellent() int i,j,p; int current_hour; int current_minute; float current_excellent; int total_time=0; /輸出作業(yè)流 cout<<endl; cout<<endl<<&
21、quot;響應(yīng)比高者優(yōu)先調(diào)度算法作業(yè)流(開(kāi)始調(diào)度時(shí)刻為最后一個(gè)作業(yè)到達(dá)系統(tǒng)的時(shí)間)"<<endl; cout<<"-"<<endl; cout.setf(2); cout<<setw(10)<<"作業(yè)號(hào)"<<setw(12)<<"到達(dá)時(shí)間"<<setw(12)<<"開(kāi)始時(shí)間"<<setw(14)<<"周轉(zhuǎn)時(shí)間(分)"<<endl; curren
22、t_hour=jobsquantity-1.reach_hour; current_minute=jobsquantity-1.reach_minite; for(i=0;i<quantity;i+) current_excellent=-1; for(j=0;j<quantity;j+) if(jobsj.visited=0) jobsj.wait_time=(current_hour-jobsj.reach_hour)*60+(current_minute-jobsj.reach_minite); jobsj.excellent=(float)(jobsj.wait_time/
23、jobsj.need_time); for(j=0;j<quantity;j+) if(jobsj.visited=0)&&(jobsj.excellent>current_excellent) p=j; current_excellent=jobsj.excellent; jobsp.start_time=current_hour*100+current_minute; jobsp.wait_time=(current_hour-jobsp.reach_hour)*60+(current_minute-jobsp.reach_minite)+jobsp .need
24、_time; cout<<setw(10)<<jobsp.number<<setw(12)<<jobsp.reach_time<<setw(12)<<jobsp.start_time<<setw(14)<<jobsp.wait_time<<endl; current_hour=current_hour+(jobsp.need_time+current_minute)/60; current_minute=(jobsp.need_time+current_minute)%60; jobsp.visited=1; total_time+=jobsp.wait_time; cout<<endl<<"總周轉(zhuǎn)時(shí)間:"<<total_time<<" 平均周轉(zhuǎn)時(shí)間:"<<to
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土豆銷(xiāo)售合同格式
- 物流平臺(tái)服務(wù)合同違約
- 汽車(chē)美容服務(wù)協(xié)議
- 工間餐配送服務(wù)合同
- 信息服務(wù)合同的價(jià)格條款
- 個(gè)人汽車(chē)貸款補(bǔ)充協(xié)議
- 進(jìn)口啤酒品牌代理合同
- 高校安全防護(hù)合同
- 農(nóng)業(yè)用肥招標(biāo)文件解析
- 總分公司合作協(xié)議范本版
- 02R112 拱頂油罐圖集
- 全國(guó)民用建筑工程技術(shù)措施暖通空調(diào)動(dòng)力
- GB/T 6728-2017結(jié)構(gòu)用冷彎空心型鋼
- GB/T 3216-2016回轉(zhuǎn)動(dòng)力泵水力性能驗(yàn)收試驗(yàn)1級(jí)、2級(jí)和3級(jí)
- GB/T 25344-2010中華人民共和國(guó)鐵路線(xiàn)路名稱(chēng)代碼
- GB/T 13793-2016直縫電焊鋼管
- 紅色喜慶新年快樂(lè)企業(yè)年會(huì)PPT
- 積分系統(tǒng)-詳細(xì)設(shè)計(jì)說(shuō)明書(shū)-v1.1
- 水土保持工程學(xué)課程設(shè)計(jì)
- 變壓器變比測(cè)試課件
- 強(qiáng)制執(zhí)行恢復(fù)執(zhí)行申請(qǐng)書(shū)范本
評(píng)論
0/150
提交評(píng)論