




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、福建農(nóng)林大學(xué)計算機(jī)與信息學(xué)院課程設(shè)計報告課程名稱:操作系統(tǒng)實習(xí)題目:進(jìn)程調(diào)度算法模擬姓 名:*系:計算機(jī)專 業(yè):計算機(jī)科學(xué)與技術(shù)年 級:2011級學(xué) 號:*指導(dǎo)教師:*職 稱:*2014年1月16日福建農(nóng)林大學(xué)計算機(jī)與信息學(xué)院信息工程類課程設(shè)計報告結(jié)果評定評語:成績:指導(dǎo)教師簽字:評定日期:目 錄1.進(jìn)程調(diào)度算法模擬課程設(shè)計的目的12.進(jìn)程調(diào)度算法模擬課程設(shè)計的要求13.進(jìn)程調(diào)度算法模擬課程設(shè)計報告內(nèi)容131前言 132進(jìn)程調(diào)度算法模擬設(shè)計的環(huán)境 133系統(tǒng)流程圖及各模塊 24總結(jié)18參考文獻(xiàn)19參考網(wǎng)站19進(jìn)程調(diào)度算法模擬1.進(jìn)程調(diào)度算法模擬課程設(shè)計的目的和意義2013-2014學(xué)年,在學(xué)習(xí)
2、了操作系統(tǒng)這門課后,對當(dāng)中的進(jìn)程調(diào)度算法產(chǎn)生了濃厚的興趣。各種調(diào)度算法,理論上比較好理解。為了加深印象,我決定把各種調(diào)度算法用C語言寫出來。于是便產(chǎn)生這份從頭到尾都讓我絞盡腦汁的課程設(shè)計。做這份課程設(shè)計,對從事系統(tǒng)開發(fā)的人員來說,是必要的,可以在一定程度上為自己以后的發(fā)展鋪路。雖然用處不是特別明顯,但對加深系統(tǒng)調(diào)用算法的理解無疑用處是巨大的。2.進(jìn)程調(diào)度算法模擬課程設(shè)計的要求1. 用C語言寫出至少兩種進(jìn)程調(diào)度算法。2. 畫出大概流程圖。3. 對算法過程出現(xiàn)的bug進(jìn)行調(diào)試。4. 展示最后的算法結(jié)果3.1前言:目前比較常見的幾種進(jìn)程調(diào)度算法有:1. 先到先服務(wù)(FCFS)2. 短進(jìn)程優(yōu)先(非搶占
3、和搶占)算法(SPF)3. 高響應(yīng)比優(yōu)先算法4. 時間片輪轉(zhuǎn)算法我選出其中三種即先到先服務(wù),短進(jìn)程優(yōu)先(2種)和時間片輪轉(zhuǎn)算法進(jìn)行C語言描述以加深對這三種算法的理解。3.2進(jìn)程調(diào)度算法模擬設(shè)計的環(huán)境VC+6.0及CodeBlocks,32位計算機(jī)WIN7操作系統(tǒng)。3.3流程圖定義進(jìn)程結(jié)構(gòu)體:struct Proint num;/進(jìn)程號int time_in;/進(jìn)程到達(dá)時間int work_time;/進(jìn)程服務(wù)時間 int btime;/用于搶占式進(jìn)程優(yōu)先記錄該進(jìn)程開始時間 int l_w_time;/用于搶占式進(jìn)程優(yōu)先記錄剩余服務(wù)時間 int end_time; /記錄該進(jìn)程結(jié)束時間,(需要時
4、時監(jiān)測)int judge;/用于需要時的標(biāo)記pro10;/進(jìn)程結(jié)構(gòu)體1先到先服務(wù)算法描述:把所有進(jìn)程按到達(dá)先后排序,每次取最先到的進(jìn)程執(zhí)行后淘汰,再取下一個,直到所有進(jìn)程調(diào)度完畢。主要代碼:void FCFS() /先到先服務(wù)char s = "先到先服務(wù)"printmat(s); PT;int i, j;int min;int t = pro_num;int begin_time = 0x7fff;for(i = 1; i <= pro_num; i+) if(proi.time_in < begin_time) begin_time = proi.time
5、_in;proi.judge = 0;/所有進(jìn)程號查找標(biāo)志置0,表示還未查找 while(t-) for(i = 1; i <= pro_num; i+) if(proi.judge=0) min = i;/設(shè)其為目前最早到達(dá)的時間for(j = i+1; j <= pro_num; j+) if(proj.judge = 0 && proj.time_in <= promin.time_in)/該進(jìn)程號若還未被查找且小于預(yù)設(shè) min = j; promin.judge = 1;/該進(jìn)程號被查找過 printf(Format2,promin.num,promi
6、n.time_in,promin.work_time,begin_time,begin_time+promin.work_time,begin_time+promin.work_time-promin.time_in); begin_time += promin.work_time; puts(""); printmat(s);puts("");程序截圖:2段進(jìn)程優(yōu)先非搶占算法描述:每次選出最短的進(jìn)程進(jìn)行調(diào)度,調(diào)度完畢則淘汰,直到所有進(jìn)程都調(diào)度完畢;void SJF() /短進(jìn)程優(yōu)先(非搶占) char s = "非搶占短進(jìn)程優(yōu)先"
7、printmat(s); PT;struct Pro *p,*q,*head;int t_num,t_work_time,t_time_in;head = &pro1;/*按所有進(jìn)程到達(dá)時間排序*/p = head;while(p - head < pro_num) for(q = p+1; q-head < pro_num; q+) if(q->time_in < p->time_in | (q->work_time < p->work_time && q->time_in = p->time_in) t_n
8、um = p->num,t_time_in = p->time_in,t_work_time = p->work_time; p->num = q->num,p->time_in = q->time_in,p->work_time = q->work_time; q->num = t_num, q->time_in = t_time_in,q->work_time = t_work_time; p+; /*/*找出第一個執(zhí)行的進(jìn)程,即最先到達(dá)的最短進(jìn)程*/int time = 0;p = head;for(q = head
9、; q < head + pro_num; q+)q->judge = 0;if(q->time_in < p->time_in)p = q;if(q->time_in = p->time_in && q->work_time < p->work_time)p = q;int cnt = pro_num;p = head;while(cnt-)time = time < p->time_in ? p->time_in:time;p->judge = 1;p->begin_time = ti
10、me;time += p->work_time;p->end_time = time;for(q = head; q < head + pro_num; q+)if(p->judge = 1 && q->judge = 0)p = q;else if(p->judge = 0 &&(q->work_time < p->work_time)p = q;for(p = head; p < head+pro_num; p+)printf(Format2,p->num,p->time_in,p-&g
11、t;work_time,p->begin_time,p->end_time,p->end_time-p->time_in);puts("");printmat(s);puts("");3短進(jìn)程優(yōu)先(搶占)算法描述:按時間疊加,當(dāng)新進(jìn)程到達(dá)時,判斷如果比當(dāng)前執(zhí)行的進(jìn)程短,則發(fā)生搶占,執(zhí)行完的淘汰,直到所有進(jìn)程都調(diào)度完畢。int find(int pp,int time)int i;for(i = 1; i <= pro_num; i+)if(propp.l_w_time = 0 |( proi.l_w_time != 0 &a
12、mp;& proi.l_w_time < propp.l_w_time && time >= proi.time_in)pp = i;return pp;void test()int i;for(i = 1; i <= pro_num; i+)printf(Format2,proi.num,proi.time_in,proi.work_time,proi.btime,proi.end_time,proi.end_time-proi.time_in);puts("");void SJF2()/搶占式短進(jìn)程優(yōu)先char s = &quo
13、t;搶占式短進(jìn)程優(yōu)先"printmat(s); PT;int i; struct Pro *p,*q;/ 先對到達(dá)時間進(jìn)行排序/struct Pro *head = &pro1; int t_num, t_time_in,t_work_time;int time_cnt = 0,time; p = head = &pro1; while(p - head < pro_num) for(q = p+1; q-head < pro_num; q+) if(q->time_in < p->time_in) t_num = p->num,t
14、_time_in = p->time_in,t_work_time = p->work_time; p->num = q->num,p->time_in = q->time_in,p->work_time = q->work_time; q->num = t_num, q->time_in = t_time_in,q->work_time = t_work_time; p+; for(i = 1; i <= pro_num; i+)proi.l_w_time = proi.work_time;time_cnt += pro
15、i.work_time;int pp = 1;time = propp.time_in;while(time_cnt-)propp.l_w_time-;time+;if(propp.l_w_time=0)propp.end_time = time;else;if(propp.btime = 0 && propp.time_in != 0)propp.btime = time-1;else;pp = find(pp,time);test();printmat(s);puts("");4時間片輪轉(zhuǎn)(以單位1為例)取當(dāng)前已經(jīng)到達(dá)的進(jìn)程,執(zhí)行一個時間片,跳轉(zhuǎn)至下一個
16、已經(jīng)到達(dá)的進(jìn)程,再執(zhí)行一個時間片,直到所有進(jìn)程都調(diào)度完畢。void TROT()char *s = "時間片輪轉(zhuǎn)算法"printmat(s);PT;struct Pro *p,*q,*head;int t_num,t_time_in,t_work_time;head = &pro1;p = head;/*給所有進(jìn)程按到達(dá)時間排序*/while(p - head < pro_num) for(q = p+1; q-head < pro_num; q+) if(q->time_in < p->time_in) t_num = p->n
17、um,t_time_in = p->time_in,t_work_time = p->work_time; p->num = q->num,p->time_in = q->time_in,p->work_time = q->work_time; q->num = t_num, q->time_in = t_time_in,q->work_time = t_work_time; p+; /*/int time = pro1.time_in;for(p = head; p < head+pro_num; p+)p->ju
18、dge = 0;p->left_work = p->work_time;int flag = 1;for(p = head; flag; p+)if(p->time_in <= time && p->left_work > 0)p->left_work-;if(p->judge = 0)p->judge = 1; p->begin_time = time;if(p->left_work = 0)p->end_time = time+1;else continue;time+;for(q = head; q
19、< head+pro_num; q+)if(q->left_work!=0)break;if(q = head + pro_num)flag = 0;if(p = head + pro_num - 1)/設(shè)從開頭再開始找p = head-1;for(q = head; q < head + pro_num; q+)printf(Format2,q->num,q->time_in,q->work_time,q->begin_time,q->end_time,q->end_time-q->time_in);puts(""
20、;);printmat(s);5高響應(yīng)比優(yōu)先先對所有進(jìn)程排序,已經(jīng)到達(dá)的進(jìn)程,每次選取響應(yīng)比最高的進(jìn)程進(jìn)行調(diào)度,直到所有進(jìn)程調(diào)度完畢。void FPF()char *s = "高響應(yīng)比優(yōu)先算法"char *ss = "*"printmat(s);PT;struct Pro *p,*q,*head;int t_num,t_time_in,t_work_time;head = &pro1;p = head;/*給所有進(jìn)程按到達(dá)時間排序*/while(p - head < pro_num) for(q = p+1; q-head < pro
21、_num; q+) if(q->time_in < p->time_in) t_num = p->num,t_time_in = p->time_in,t_work_time = p->work_time; p->num = q->num,p->time_in = q->time_in,p->work_time = q->work_time; q->num = t_num, q->time_in = t_time_in,q->work_time = t_work_time; p+; /*/int time = pro1.time_in;int cnt = pro_num;for(p = head; p < head+pro_num; p+)p->judge = 0;p->left_work = p->work_time;p = he
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 晉中信息學(xué)院《核醫(yī)學(xué)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 航空新員工培訓(xùn)
- 郴州思科職業(yè)學(xué)院《專業(yè)英語聽說》2023-2024學(xué)年第一學(xué)期期末試卷
- 襄陽科技職業(yè)學(xué)院《統(tǒng)計學(xué)原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025考試題目及答案
- 2025高考試題及答案
- 10道數(shù)學(xué)考試題及答案
- 基于深度學(xué)習(xí)的績效薪酬掛鉤模型構(gòu)建-洞察及研究
- 論“觀課議課”對教學(xué)過程的再設(shè)計再優(yōu)化
- 勞動教育與初中化學(xué)教學(xué)的有效融合
- 2025年河北省中考麒麟卷生物(一)
- 2025初升高數(shù)學(xué)銜接教材
- 基層醫(yī)院護(hù)理課件
- 貴州省貴陽市2022-2023學(xué)年七年級下學(xué)期語文期末試卷(含答案)
- 法律職業(yè)倫理試題及答案
- 2025年國家公務(wù)員考錄《申論》真題及參考答案(行政執(zhí)法卷)
- 2024珠海農(nóng)商銀行社會招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 2025年公路水運(yùn)工程重大事故隱患判定標(biāo)準(zhǔn)
- 綜合實踐:畫數(shù)學(xué)連環(huán)畫(大單元教學(xué)設(shè)計)一年級數(shù)學(xué)下冊北師大版2025
- 2025年大學(xué)英語六級考試試卷及答案
- 車間物料員員試題及答案
評論
0/150
提交評論