常用調(diào)度算法
調(diào)度的實(shí)質(zhì)就是一種資源分配。不同的系統(tǒng)和系統(tǒng)目標(biāo),通常采用不同的調(diào)度算法——適合自己的才是最好的。
如批處理系統(tǒng)為照顧為數(shù)眾多的短作業(yè),應(yīng)采用短作業(yè)優(yōu)先的調(diào)度算法;
如分時(shí)系統(tǒng)為保證系統(tǒng)具有合理的響應(yīng)時(shí)間,應(yīng)采用輪轉(zhuǎn)法進(jìn)行調(diào)度。
目前存在的多種調(diào)度算法中,有的算法適用于作業(yè)調(diào)度,有的算法適用于進(jìn)程調(diào)度;但有些算法作業(yè)調(diào)度和進(jìn)程調(diào)度都可以采用。
1、先來先服務(wù)調(diào)度算法FCFS
一種最簡(jiǎn)單的調(diào)度算法,按先后順序進(jìn)行調(diào)度。既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。
按照作業(yè)提交,或進(jìn)程變?yōu)榫途w狀態(tài)的先后次序分派CPU;
新作業(yè)只有當(dāng)當(dāng)前作業(yè)或進(jìn)程執(zhí)行完或阻塞才獲得CPU運(yùn)行
被喚醒的作業(yè)或進(jìn)程不立即恢復(fù)執(zhí)行,通常等到當(dāng)前作業(yè)或進(jìn)程出讓CPU。?
2、短作業(yè)(進(jìn)程)優(yōu)先調(diào)度算法SJF/SPF
優(yōu)點(diǎn):通過上表可見采用SJF/SPF算法,平均周轉(zhuǎn)時(shí)間、平均帶權(quán)周轉(zhuǎn)時(shí)間都有明顯改善。SJF/SPF調(diào)度算法能有效的降低作業(yè)的平均等待時(shí)間,提高系統(tǒng)吞吐量。
方式:分搶占和非搶占兩種方式,上例為簡(jiǎn)單的非搶占式。
SJF/SPF的不足:
? a.對(duì)短作業(yè)有利,但同時(shí)造成了對(duì)長(zhǎng)作業(yè)的不利。
? b.由于作業(yè)(進(jìn)程)的長(zhǎng)短含主觀因素,不一定能真正做到短作業(yè)優(yōu)先。
? c.未考慮作業(yè)的緊迫程度,因而不能保證緊迫性作業(yè)(進(jìn)程)的及時(shí)處理。
3、 高優(yōu)先權(quán)優(yōu)先調(diào)度算法HPF Highest Priority First
照顧緊迫性作業(yè),使其獲得優(yōu)先處理而引入調(diào)度算法。常用于批處理系統(tǒng)中的作業(yè)調(diào)度算法,以及多種操作系統(tǒng)中的進(jìn)程調(diào)度算法
1)分兩種方式:非搶占式優(yōu)先權(quán)算法;搶占式優(yōu)先權(quán)算法 關(guān)鍵點(diǎn):新作業(yè)產(chǎn)生時(shí)
2)優(yōu)先權(quán)的類型:
靜態(tài)優(yōu)先權(quán):創(chuàng)建進(jìn)程時(shí)確定,整個(gè)運(yùn)行期間保持不變。一般利用某一范圍的一個(gè)整數(shù)來表示,又稱為優(yōu)先數(shù)。
動(dòng)態(tài)優(yōu)先權(quán):創(chuàng)建進(jìn)程時(shí)賦予的優(yōu)先權(quán)可隨進(jìn)程的推進(jìn)或隨其等待時(shí)間的增加而改變。
3)高響應(yīng)比優(yōu)先調(diào)度算法HRRN Highest Response Raito Next
短作業(yè)優(yōu)先算法是一種比較好的算法(相當(dāng)于根據(jù)作業(yè)長(zhǎng)度設(shè)定的靜態(tài)優(yōu)先權(quán)算法),適用于短作業(yè)較多的批處理系統(tǒng)中,其主要不足是長(zhǎng)作業(yè)的運(yùn)行得不到保證。
HRRN為每個(gè)作業(yè)引入動(dòng)態(tài)優(yōu)先權(quán),使作業(yè)的優(yōu)先級(jí)隨著等待時(shí)間的增加而以速率a提高:
? 優(yōu)先權(quán) =(等待時(shí)間+要求服務(wù)時(shí)間)/要求服務(wù)時(shí)間= 響應(yīng)時(shí)間 / 要求服務(wù)時(shí)間
4、基于時(shí)間片的輪轉(zhuǎn)調(diào)度算法RR(Round Robin)
分時(shí)系統(tǒng)新需求:及時(shí)響應(yīng)用戶的請(qǐng)求;采用基于時(shí)間片的輪轉(zhuǎn)式進(jìn)程調(diào)度算法。
早期分時(shí)系統(tǒng)采用的是簡(jiǎn)單的時(shí)間片輪轉(zhuǎn)法,進(jìn)入90年代后廣泛采用多級(jí)反饋隊(duì)列調(diào)度算法。