資源描述:
《課程設(shè)計(jì):處理機(jī)調(diào)度算法的實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、摘要處理機(jī)調(diào)度基本概念、調(diào)度算法優(yōu)劣的評(píng)價(jià)準(zhǔn)則、多種處理機(jī)調(diào)度算法的介紹引言操作系統(tǒng)是處理計(jì)算機(jī)硬件的一層軟件和作為計(jì)算機(jī)用戶(hù)與計(jì)算機(jī)硬件的中間的協(xié)調(diào)者。操作系統(tǒng)的CPU調(diào)度器負(fù)責(zé)給各個(gè)任務(wù)分發(fā)CPU帶寬資源。調(diào)度算法負(fù)貴管理當(dāng)前執(zhí)行任務(wù)等額順序和性能。目錄1.碰32.課程設(shè)計(jì)任務(wù)及要求42.1沒(méi)計(jì)任務(wù)42.2設(shè)計(jì)要求42.3任務(wù)分工43.1算法的總體思想53.2動(dòng)態(tài)優(yōu)先級(jí)模塊83.2.1功能83.2.2算法83.3時(shí)間片輪轉(zhuǎn)模塊103.3.1功能103.3.2算法103.4短作業(yè)優(yōu)先模塊113.4.1功能113.4.2算法124.程序設(shè)計(jì)與實(shí)現(xiàn)
2、144.1程序代碼144.2實(shí)驗(yàn)結(jié)果155.^1^184.收獲、體會(huì)和建議。191.概述在多道程序系統(tǒng)屮,調(diào)度的實(shí)質(zhì)是一種資源分配,處理機(jī)調(diào)度是對(duì)處理機(jī)資源進(jìn)行分配。處理機(jī)調(diào)度算法是指根據(jù)處理機(jī)分配策略所規(guī)定的處理機(jī)分配算法。在多道批處理系統(tǒng)中,一個(gè)作業(yè)從提交到獲取處理機(jī)執(zhí)行,直至作業(yè)運(yùn)行完畢,4能需要經(jīng)歷多級(jí)處理機(jī)調(diào)度,下面先來(lái)了解處理機(jī)調(diào)度的層次。1.課程設(shè)計(jì)任務(wù)及要求2.1設(shè)計(jì)任務(wù)在多道程序和多任務(wù)系統(tǒng)中,系統(tǒng)內(nèi)同時(shí)處于就緒狀態(tài)的進(jìn)程可能有若干個(gè)。也就是說(shuō)能運(yùn)行的進(jìn)程數(shù)大于處理機(jī)個(gè)數(shù)。力了使系統(tǒng)屮的進(jìn)程能育條不紊地工作,必須選用某種調(diào)度策略
3、,選擇一進(jìn)程占用處理機(jī)。要求學(xué)生設(shè)計(jì)一個(gè)模擬處理機(jī)調(diào)度算法,以鞏固和加深處理機(jī)調(diào)度的概念。2.2設(shè)計(jì)要求1)先由用戶(hù)輸入進(jìn)程數(shù)量(至少5個(gè)進(jìn)程),再由系統(tǒng)隨機(jī)生成一個(gè)進(jìn)程序列(包括到達(dá)時(shí)間和服務(wù)時(shí)間)。2)然后顯示進(jìn)程調(diào)度算法由用戶(hù)選擇,包括:吋間片輪轉(zhuǎn)法,短作業(yè)優(yōu)先算法,動(dòng)態(tài)優(yōu)先級(jí)算法。3)顯示結(jié)果包栝每個(gè)進(jìn)程的開(kāi)始時(shí)間、完成時(shí)間、周轉(zhuǎn)時(shí)間以及帶權(quán)周轉(zhuǎn)時(shí)間,顯示界面可參考書(shū)本的例子以表格形式但可不要表格線(xiàn)。2.3任務(wù)分工時(shí)間成員姓名任務(wù)完成情況第1天曾飛躍、廖曉丹功能分析完成曾飛躍、廖曉丹設(shè)計(jì)算法完成第2天曾飛躍、廖曉丹修改編碼完成曾飛躍、廖曉
4、丹測(cè)試功能,撰寫(xiě)課程設(shè)計(jì)報(bào)告完成第3天曾飛躍、廖曉乃-撰寫(xiě)課程設(shè)計(jì)報(bào)告,修改并完善完成3.算法及數(shù)據(jù)結(jié)構(gòu)2.1算法的總體思想①動(dòng)態(tài)優(yōu)先數(shù)調(diào)度算法:思想:為每一個(gè)進(jìn)程沒(méi)一個(gè)優(yōu)先數(shù),它總是把處理機(jī)給就緒隊(duì)列中具有最高優(yōu)先級(jí)的進(jìn)程。初始的進(jìn)程優(yōu)先數(shù)是隨機(jī)產(chǎn)生的,隨著進(jìn)程的運(yùn)行對(duì)優(yōu)先數(shù)進(jìn)行調(diào)整,每次運(yùn)行時(shí)都是從就緒隊(duì)列中選取優(yōu)先數(shù)最大的進(jìn)程運(yùn)行,所以將就緒隊(duì)列按照優(yōu)先數(shù)的大小從高到低排序,這樣,每次取對(duì)首進(jìn)程即可。將進(jìn)程按優(yōu)先數(shù)的大小排列在就緒隊(duì)列屮,每次選取就緒隊(duì)列中優(yōu)先權(quán)最尚的進(jìn)程首先占用處理機(jī)。優(yōu)先數(shù)巾隨機(jī)函數(shù)產(chǎn)生進(jìn)程最初的優(yōu)先數(shù)。優(yōu)先數(shù)的動(dòng)態(tài)變化
5、:進(jìn)程每執(zhí)行一次優(yōu)先數(shù)-1。優(yōu)先數(shù)隨著進(jìn)程的執(zhí)行進(jìn)行調(diào)整,每次執(zhí)行時(shí)都從就緒隊(duì)列中選収優(yōu)先數(shù)最大的進(jìn)程投入運(yùn)行。①吋間片輪轉(zhuǎn)調(diào)度算法:思想:將所有進(jìn)程按照先來(lái)先服務(wù)的規(guī)則排成一個(gè)隊(duì)列,把CPU分配給就緒隊(duì)列的隊(duì)首進(jìn)程,并規(guī)定它的執(zhí)行時(shí)間(稱(chēng)此時(shí)間為時(shí)間片),當(dāng)時(shí)間片用完但并未執(zhí)行結(jié)來(lái)時(shí),剝奪該進(jìn)程的執(zhí)行,將其鏈接到就緒隊(duì)列的隊(duì)尾,等待丁一次的選擇。將就緒隊(duì)列的隊(duì)首指針投入運(yùn)行。②短作業(yè)優(yōu)先調(diào)度算法(不可剝奪式的)思想:根據(jù)估計(jì)運(yùn)行時(shí)間的長(zhǎng)短,將各個(gè)進(jìn)程排成一個(gè)就緒隊(duì)列(估計(jì)運(yùn)行時(shí)間最短的進(jìn)程排在隊(duì)首),每次運(yùn)行將隊(duì)首進(jìn)程投入運(yùn)行,直到運(yùn)行結(jié)來(lái),將
6、此進(jìn)程連接到完成隊(duì)列的隊(duì)尾。然后,再將卜一個(gè)隊(duì)首進(jìn)程投入運(yùn)行,直到所有的進(jìn)程都運(yùn)行完畢。流程圖:結(jié)束短作業(yè)優(yōu)先動(dòng)態(tài)優(yōu)先級(jí)吋間片輪轉(zhuǎn)調(diào)度數(shù)據(jù)結(jié)構(gòu):typedefstruct{//進(jìn)程塊iniid;//進(jìn)程名intreach;//到達(dá)時(shí)間floatservice;//服務(wù)吋間intprior;//優(yōu)先權(quán)intfinish;//完成時(shí)間floatturnover;//周轉(zhuǎn)時(shí)間floatcum」umover;//帶權(quán)周轉(zhuǎn)吋M}process;processp[20];intsort[20];//排序數(shù)組intwait[20];//等待隊(duì)列intn;int
7、alltime=O;//運(yùn)行所需耍的總吋叫charc;in();為創(chuàng)建進(jìn)程的函數(shù):通過(guò)調(diào)用函數(shù),輸入進(jìn)程標(biāo)志,動(dòng)態(tài)生成進(jìn)程的到達(dá)時(shí)間,服務(wù)時(shí)間,優(yōu)先權(quán)等,然后把進(jìn)程存儲(chǔ)到隊(duì)列中,講進(jìn)程按到達(dá)時(shí)間順序進(jìn)行排序。Out()為進(jìn)程調(diào)度輸出打印函數(shù),選擇不同的調(diào)度方式按照不同的打印方式打印TimesliceO:吋間片輪轉(zhuǎn)法函數(shù):函數(shù)將到達(dá)的進(jìn)程放進(jìn)等待隊(duì)列wait,通過(guò)岀隊(duì)比較來(lái)完成調(diào)度,講滿(mǎn)足調(diào)度的隊(duì)列計(jì)算周轉(zhuǎn)時(shí)間,和帶權(quán)周轉(zhuǎn)時(shí)間。Sjf()短作業(yè)優(yōu)先算法:該算法將到達(dá)的進(jìn)程放進(jìn)等待隊(duì)列里而,將等待隊(duì)列按進(jìn)程服務(wù)時(shí)間從大到小進(jìn)行排列,相同服務(wù)時(shí)間的按先
8、到達(dá)先處理方式排列,然后出隊(duì),計(jì)算周轉(zhuǎn)時(shí)間Fpf()動(dòng)態(tài)優(yōu)先級(jí)算法:該算法將到達(dá)的進(jìn)程放進(jìn)等待隊(duì)列里面,將等待隊(duì)列按進(jìn)程優(yōu)先權(quán)從小到大進(jìn)