資源描述:
《處理機(jī)調(diào)度論文》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、《操作系統(tǒng)》綜合實(shí)踐(論文)處理機(jī)調(diào)度程序計控學(xué)院計本0452004021206學(xué)院專業(yè)班級姓名學(xué)號指導(dǎo)教師成績完成時間:2006-12-14處理機(jī)調(diào)度程序摘要:處理機(jī)模擬調(diào)度系統(tǒng)程序是操作系統(tǒng)中對處理機(jī)調(diào)度及調(diào)度算法的分析,其開發(fā)主要包括算法的理解和分析,以及對處理機(jī)的調(diào)度過程的實(shí)現(xiàn)。要求應(yīng)用程序功能完備,易使用等特點(diǎn)。經(jīng)過分析,我們使用VC為開發(fā)環(huán)境,實(shí)現(xiàn)模擬處理機(jī)調(diào)度。處理機(jī)調(diào)度系統(tǒng)具有以下特點(diǎn):(1)、交互性強(qiáng)(2)、內(nèi)容新穎(3)、使用簡便、靈活(4)、運(yùn)行速度快(5)、能動態(tài)查看執(zhí)行的過程(6)、算法實(shí)現(xiàn)易于理解第1節(jié)需求分析設(shè)計的目的和需求
2、分析:為了使同學(xué)對操作系統(tǒng)中的處理機(jī)調(diào)度有一個更好的理解和掌握,能夠更促進(jìn)學(xué)生對調(diào)度算法的學(xué)習(xí)興趣,加強(qiáng)學(xué)生的學(xué)習(xí)能力,激發(fā)學(xué)生的對知識的渴望。同吋也為了能夠?qū)⑺鶎W(xué)知識運(yùn)用到實(shí)踐中去,在實(shí)踐中不斷完善自己。為此利用學(xué)過的調(diào)度算法實(shí)現(xiàn)這個簡單的處理機(jī)模擬調(diào)度系統(tǒng)。耍學(xué)好這門課程,必須把理論與實(shí)踐緊密結(jié)合,才能取得較好的學(xué)習(xí)效果。培養(yǎng)計算機(jī)專業(yè)的學(xué)生的系統(tǒng)程序設(shè)計能力,是操作系統(tǒng)課程的一個非常重要的環(huán)節(jié)。通過操作系統(tǒng)上機(jī)實(shí)驗(yàn),可以培養(yǎng)學(xué)生程序設(shè)計的方法和技巧,提高學(xué)生編制清晰、合理、可讀性好的系統(tǒng)程序的能力,加深對操作系統(tǒng)課程的理解。使學(xué)生更好地掌握操作系統(tǒng)
3、的基木概念、基木原理、及基木功能,具有分析實(shí)際操作系統(tǒng)、設(shè)計、構(gòu)造和開發(fā)現(xiàn)代操作系統(tǒng)的基本能力。第2節(jié)程序運(yùn)行平臺1、硬件環(huán)境586以上計算機(jī)2、軟件環(huán)境MicrosoftVisualC++6.0C++簡介(1)C++繼承了C語言簡明、高效、靈活等眾多優(yōu)點(diǎn)。(2)以麗使用C語言編寫的大批軟件可以不加任何修改,直接在C語言開發(fā)環(huán)境下維護(hù)。(3)C語言程序員只需要學(xué)習(xí)C++擴(kuò)充的新特性,就可以很快地使用C++編寫程序。由于具有上述特點(diǎn),C++已經(jīng)開始取代C語言,被廣泛的應(yīng)用于各種領(lǐng)域的程序設(shè)計工作中。實(shí)踐表明,對于中型和大型程序的開發(fā)工作,使用C++的效果要
4、比C語言好木實(shí)驗(yàn)應(yīng)用C++作為運(yùn)行環(huán)境,在程序屮廣泛的應(yīng)用C++的知識,利用類的構(gòu)造,構(gòu)造函數(shù)等應(yīng)用。第3節(jié):程序及其功能算法簡介設(shè)計中引入了最高優(yōu)先權(quán)優(yōu)先調(diào)度算法目的是為了照顧緊迫型進(jìn)程,使Z在進(jìn)入系統(tǒng)后便獲得優(yōu)先處理。當(dāng)進(jìn)程調(diào)度時,該算法是把處理機(jī)分配給就緒隊列中優(yōu)先權(quán)高的進(jìn)程,這時,又可進(jìn)一步將算法分成兩種。非搶占式優(yōu)先權(quán)算法和搶占式優(yōu)先權(quán)調(diào)度算法。在非搶占方式下,系統(tǒng)一旦把處理機(jī)分配給就緒隊列屮優(yōu)先權(quán)最高的進(jìn)程后,該進(jìn)程便一直執(zhí)行下去,直至完成;在搶占方式中,系統(tǒng)同樣是把處理機(jī)分配給優(yōu)先權(quán)最高的進(jìn)程,使Z執(zhí)行。但在執(zhí)行過程中,只要出現(xiàn)了另一個其優(yōu)
5、先權(quán)更高的進(jìn)程,進(jìn)程調(diào)度程序就立即停止當(dāng)前的進(jìn)程的執(zhí)行,重新將處理機(jī)分配給新到的優(yōu)先權(quán)最高的進(jìn)程。本程序設(shè)計中就采用了進(jìn)程的兩種調(diào)度算法,即優(yōu)先級調(diào)度算法和時間片輪傳法。在時間片輪轉(zhuǎn)法屮,系統(tǒng)將所冇的就緒進(jìn)程按先來先服務(wù)的原則,排成一個隊列,每次調(diào)度時,把CPU分配給隊首進(jìn)程,并令具執(zhí)行一個時間片。吋間的大小從幾ms到幾百ms。當(dāng)執(zhí)行的吋間片用完吋,由一個計吋器發(fā)出吋鐘屮斷請求,調(diào)度程序便據(jù)此信號停止該進(jìn)程的執(zhí)行,并將它送往就緒隊列的末尾;再把處理機(jī)分配給就緒隊列屮新的隊首進(jìn)程,同時也讓它執(zhí)行一個時間片。這樣就可以保證就緒隊列中的所有進(jìn)程,在一個給定的時
6、間內(nèi),均能獲得一時間片的處理機(jī)執(zhí)行時間。程序主函數(shù)(源代碼見程序):廣主函數(shù)*/main()charalgo;廠算法標(biāo)記"/clrscr();printf(Ktypethealgorithm:P/R(priority/roundrobin)”);scanf(”%c“,&algo);廠輸入字符確定算法*/printf(HEnterprocessnumbertf);scanf(”%d“,&N);廣輸入進(jìn)程數(shù)*/if(algo=='P'l
7、algo=='p'){createl(algo);/*優(yōu)先數(shù)法*/priority(algo);}elseif(a
8、lgo=='R'
9、
10、algo==T){create2(algo);/*輪轉(zhuǎn)法"/roundrun(algo);}}優(yōu)先數(shù)通過主函數(shù)調(diào)用就可以對兩種算法進(jìn)行分別的實(shí)現(xiàn)了,運(yùn)行程序時出現(xiàn)的主界面如卜?圖所示,先選擇一種算法對處理機(jī)進(jìn)行的調(diào)度,如果按“P”就表示按優(yōu)先權(quán)調(diào)度算法,輸入表示你選擇了時間片輪轉(zhuǎn)法進(jìn)行對處理機(jī)調(diào)度。接下來就可以輸入進(jìn)程的數(shù)目了,確定進(jìn)程的數(shù)目后,按照提示輸入進(jìn)程名和運(yùn)行時間或者是優(yōu)先權(quán)數(shù),當(dāng)把這此輸入完Z后,回車就可以看到進(jìn)程調(diào)度的全部的動態(tài)過程了。一直按回車,直到所有的進(jìn)程都被調(diào)度完成,結(jié)束了這個程序。/*時間片輪轉(zhuǎn)法*/voidr
11、oundrun(charalg){while(run!=NULL)run->cp