資源描述:
《進(jìn)程調(diào)度模擬設(shè)計(jì)——優(yōu)先級(jí)法、最高響應(yīng)比優(yōu)先調(diào)度算法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、學(xué)號(hào):課程設(shè)計(jì)題目進(jìn)程調(diào)度模擬設(shè)計(jì)——優(yōu)先級(jí)法、最高響應(yīng)比優(yōu)先調(diào)度算法學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)班級(jí)姓名指導(dǎo)教師吳利軍2013年1月15日課程設(shè)計(jì)任務(wù)書學(xué)生姓名:指導(dǎo)教師:吳利軍工作單位:計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院題目:進(jìn)程調(diào)度模擬設(shè)計(jì)——優(yōu)先級(jí)法、最高響應(yīng)比優(yōu)先調(diào)度算法初始條件:1.預(yù)備內(nèi)容:閱讀操作系統(tǒng)的處理機(jī)管理章節(jié)內(nèi)容,對(duì)進(jìn)程調(diào)度的功能以及進(jìn)程調(diào)度算法有深入的理解。2.實(shí)踐準(zhǔn)備:掌握一種計(jì)算機(jī)高級(jí)語(yǔ)言的使用。要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書撰寫等具體要求)1.模擬進(jìn)程調(diào)度,能夠處理以下的情形:⑴能夠選擇不同的調(diào)度算法(要求中給出的調(diào)度算法);⑵能夠輸
2、入進(jìn)程的基本信息,如進(jìn)程名、優(yōu)先級(jí)、到達(dá)時(shí)間和運(yùn)行時(shí)間等;⑶根據(jù)選擇的調(diào)度算法顯示進(jìn)程調(diào)度隊(duì)列;⑷根據(jù)選擇的調(diào)度算法計(jì)算平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間。2.設(shè)計(jì)報(bào)告內(nèi)容應(yīng)說(shuō)明:⑴需求分析;⑵功能設(shè)計(jì)(數(shù)據(jù)結(jié)構(gòu)及模塊說(shuō)明);⑶開發(fā)平臺(tái)及源程序的主要部分;⑷測(cè)試用例,運(yùn)行結(jié)果與運(yùn)行情況分析;⑸自我評(píng)價(jià)與總結(jié):i)你認(rèn)為你完成的設(shè)計(jì)哪些地方做得比較好或比較出色;ii)什么地方做得不太好,以后如何改正;iii)從本設(shè)計(jì)得到的收獲(在編寫,調(diào)試,執(zhí)行過(guò)程中的經(jīng)驗(yàn)和教訓(xùn));iv)完成本題是否有其他方法(如果有,簡(jiǎn)要說(shuō)明該方法);時(shí)間安排:設(shè)計(jì)安排一周:周1、周2:完成程序分析及設(shè)計(jì)。周2、周3
3、:完成程序調(diào)試及測(cè)試。周4、周5:驗(yàn)收、撰寫課程設(shè)計(jì)報(bào)告。(注意事項(xiàng):嚴(yán)禁抄襲,一旦發(fā)現(xiàn),一律按0分記)指導(dǎo)教師簽名:年月日系主任(或責(zé)任教師)簽名:年月日進(jìn)程調(diào)度模擬設(shè)計(jì)優(yōu)先級(jí)法、最高響應(yīng)比優(yōu)先調(diào)度算法1.設(shè)計(jì)目的與實(shí)現(xiàn)功能模擬進(jìn)程調(diào)度,使程序能夠完成:能夠輸入若干進(jìn)程,包括進(jìn)程的一些基本信息,如進(jìn)程名、優(yōu)先級(jí)、到達(dá)時(shí)間和運(yùn)行時(shí)間等,選擇不同的調(diào)度算法(優(yōu)先級(jí)法或者最高響應(yīng)比法),選擇算法后,根據(jù)選擇的調(diào)度算法顯示進(jìn)程調(diào)度隊(duì)列;根據(jù)選擇的調(diào)度算法計(jì)算平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間。2.需求分析2.1實(shí)驗(yàn)原理最高響應(yīng)比優(yōu)先算法(HRN):最高響應(yīng)比是對(duì)先來(lái)先服務(wù)和最短進(jìn)程優(yōu)先法德一
4、種綜合平衡。HRN調(diào)度策略同時(shí)考慮每個(gè)進(jìn)程的等待時(shí)間長(zhǎng)短和估計(jì)需要的執(zhí)行時(shí)間長(zhǎng)短,從中選出響應(yīng)比最高的進(jìn)程投入執(zhí)行。響應(yīng)比R定義如下:R=(W+T)/T=1+W/T其中T為該進(jìn)程的估計(jì)需要的執(zhí)行時(shí)間,W為進(jìn)程在后備狀態(tài)隊(duì)列的等待時(shí)間。每當(dāng)要進(jìn)行進(jìn)程調(diào)度是,系統(tǒng)計(jì)算每個(gè)進(jìn)程的響應(yīng)比,選擇其中R最大者投入執(zhí)行。優(yōu)先級(jí)法:系統(tǒng)和用戶按某種原則為進(jìn)程制定一個(gè)優(yōu)先級(jí)來(lái)表示該進(jìn)程所享有的調(diào)度優(yōu)先權(quán)。根據(jù)優(yōu)先級(jí)的高低來(lái)對(duì)進(jìn)程加以調(diào)度。3.數(shù)據(jù)結(jié)構(gòu)3.1主要結(jié)構(gòu)及函數(shù)structtimer//時(shí)間類型{bytehour;byteminute;}typedefstructprocess//進(jìn)程結(jié)構(gòu){
5、charname[20];//進(jìn)程名byterank;//進(jìn)程等級(jí)timertime_in;//進(jìn)程到達(dá)的時(shí)間byteuse_time;//運(yùn)行需要消耗時(shí)間timertime_start;//開始運(yùn)行時(shí)刻byteused_time;//已經(jīng)運(yùn)行的時(shí)間timertime_end;//進(jìn)程結(jié)束時(shí)刻boolflag;//進(jìn)程運(yùn)行完成標(biāo)志,完成true}process,*process_ptr;boolsearch(processprocess_n[])//查看是否所有進(jìn)程都執(zhí)行完boolcompare(timertime1,timertime2)//比較兩個(gè)時(shí)間類型的大小voidpaix
6、v(processprocess_n[])//進(jìn)程按優(yōu)先級(jí)有大到小排序,規(guī)定rank越小優(yōu)先級(jí)越高voidprintf_last(processprocess_n[])//打印結(jié)果voidgrade_first(processprocess_n[])//搶占式優(yōu)先級(jí)調(diào)度算法voidHRN(processprocess_n[])//最高響應(yīng)比優(yōu)先算法優(yōu)先級(jí)調(diào)度的思路:這里設(shè)計(jì)的是一個(gè)搶占式優(yōu)先級(jí)調(diào)度設(shè)一個(gè)標(biāo)志位作為時(shí)鐘,時(shí)間一分分地走,通過(guò)每次掃描各個(gè)進(jìn)程的狀態(tài),確定這一分鐘該哪個(gè)進(jìn)程執(zhí)行,在這之間要記錄某個(gè)進(jìn)程的開始時(shí)間、已運(yùn)行時(shí)間和結(jié)束最后,到每個(gè)進(jìn)程都執(zhí)行過(guò),完成優(yōu)先級(jí)調(diào)度。最
7、高響應(yīng)比優(yōu)先調(diào)度的思路:每次調(diào)度前都計(jì)算每個(gè)作業(yè)的響應(yīng)比,從而選擇其中最大者投入運(yùn)行。3.2流程圖輸入進(jìn)程信息最高響應(yīng)比算法選擇使用的方法優(yōu)先級(jí)算法輸出調(diào)度序列4.源程序的主要部分4.1查看是否所有進(jìn)程都執(zhí)行完boolsearch(processprocess_n[]){for(inti=0;i