計(jì)算機(jī)操作系統(tǒng)調(diào)度策略(箅法)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
調(diào)度策略是依靠調(diào)度算法來(lái)實(shí)現(xiàn)的。調(diào)度算法有很多種,它們各有特點(diǎn)。這里只簡(jiǎn)要介紹如下幾種?! 。?)時(shí)閭片輪轉(zhuǎn)法 這種方法要求系統(tǒng)中的每個(gè)進(jìn)程輪流占用處理器運(yùn)行一個(gè)相同的時(shí)間片。 具體做法是:將就緒的進(jìn)程排列為一個(gè)就緒進(jìn)程隊(duì)列。調(diào)度器每次把處理器分配給處在隊(duì)列首部的進(jìn)程,并使之運(yùn)行一個(gè)規(guī)定的時(shí)間。當(dāng)時(shí)間片結(jié)束時(shí),強(qiáng)迫當(dāng)前進(jìn)程讓出處理器,并把這個(gè)進(jìn)程插人就緒進(jìn)程隊(duì)列的尾部,然后就把處理器分配給排在隊(duì)列首部的進(jìn)程,并同樣使之運(yùn)行一個(gè)規(guī)定的時(shí)間,之后再重復(fù)上述過(guò)程,如此循環(huán)輪轉(zhuǎn)地運(yùn)行系統(tǒng)中的所有就緒進(jìn)程。時(shí)間片輪轉(zhuǎn)法的示意圖如圖1所示。
圖1 具有8個(gè)進(jìn)程的時(shí)閭片輪轉(zhuǎn)調(diào)度示意圖 時(shí)間片輪轉(zhuǎn)法是一種運(yùn)行時(shí)問(wèn)一到就剝奪進(jìn)程處理器使用權(quán)的剝奪式調(diào)度?! 。?)優(yōu)先級(jí)調(diào)度法 在這種調(diào)度算法中,是按進(jìn)程的優(yōu)先級(jí)別來(lái)確定待運(yùn)行進(jìn)程的,即系統(tǒng)中的所有進(jìn)程都各自有一個(gè)優(yōu)先級(jí)別,這個(gè)級(jí)別就標(biāo)志著一個(gè)進(jìn)程在搶占處理器時(shí)的權(quán)利大小。調(diào)度器在調(diào)度時(shí),通過(guò)觀察就緒進(jìn)程的優(yōu)先級(jí)別首先選擇優(yōu)先級(jí)別最大的進(jìn)程來(lái)作為待運(yùn)行進(jìn)程?! ∫话銇?lái)說(shuō),使用外圍設(shè)各頻繁的進(jìn)程所具有的優(yōu)先級(jí)別要大一些,這樣有利于提高效率;承擔(dān)重要計(jì)算任務(wù)的進(jìn)程所具有的優(yōu)先級(jí)別要大一些,這樣有利于盡早得到計(jì)算結(jié)果;交互式用戶(hù)的進(jìn)程所具有的優(yōu)先級(jí)別要大一些,這樣可使用戶(hù)等待響應(yīng)的時(shí)間短一些,等等?! ≡谡{(diào)度時(shí),也可對(duì)進(jìn)程的優(yōu)先級(jí)別進(jìn)行動(dòng)態(tài)的調(diào)整,即在當(dāng)進(jìn)程耗盡時(shí)間片或重新被調(diào)度時(shí),根據(jù)前一次運(yùn)行的情況再次計(jì)算并調(diào)整所有進(jìn)程的優(yōu)先級(jí)別。例如,若一個(gè)進(jìn)程占用處理器時(shí)間越長(zhǎng),那么當(dāng)它被阻塞之后再次獲得調(diào)度的優(yōu)先級(jí)別就應(yīng)降低一些;也可根據(jù)一個(gè)進(jìn)程等待處理器的時(shí)間長(zhǎng)短來(lái)重新確定進(jìn)程新的優(yōu)先級(jí)別。一個(gè)進(jìn)程在隊(duì)列中等待處理器的時(shí)間越長(zhǎng),那么在它再次被調(diào)度時(shí),它的優(yōu)先級(jí)別就可以適當(dāng)?shù)靥岣咭恍! 。?)多級(jí)反饋隊(duì)列調(diào)度法 這種調(diào)度算法的思想是,把系統(tǒng)中的所有進(jìn)程分成若干個(gè)具有不同優(yōu)先級(jí)別的組,同一組的進(jìn)程都具有與所在組同樣的優(yōu)先級(jí)別,并且把每組進(jìn)程組織成一個(gè)先進(jìn)先出的隊(duì)列。在設(shè)計(jì)時(shí),按優(yōu)先級(jí)別越高的組中的進(jìn)程應(yīng)得時(shí)間片越短的原則分配時(shí)間片。在調(diào)度時(shí),調(diào)度器每次都從優(yōu)先級(jí)別高的就緒隊(duì)列中隊(duì)首選擇就緒進(jìn)程。當(dāng)在高優(yōu)先級(jí)別的隊(duì)列中找不到就緒進(jìn)程時(shí),才到低優(yōu)先級(jí)別的就緒進(jìn)程隊(duì)列中選取?! 《嗉?jí)反饋隊(duì)列調(diào)度法示意圖如圖2所示。
圖2 具有24個(gè)進(jìn)程的多級(jí)反饋隊(duì)列調(diào)度選中高級(jí)別進(jìn)程時(shí)的示意圖 調(diào)度工作以獲得待運(yùn)行進(jìn)程的進(jìn)程控制塊為最終目的。調(diào)度器在調(diào)度部分根據(jù)調(diào)度算法、一旦得到了待運(yùn)行進(jìn)程的進(jìn)程控制塊之后,立即就會(huì)開(kāi)始進(jìn)行進(jìn)程切換工作。之所以在進(jìn)程切換前一定要獲得待運(yùn)行進(jìn)程的進(jìn)程控制塊,是因?yàn)榭刂茐K中存放了進(jìn)程切換時(shí)需要用到一個(gè)重要信息——進(jìn)程的私有堆棧指針。
歡迎轉(zhuǎn)載,信息來(lái)源維庫(kù)電子市場(chǎng)網(wǎng)()