操作系統(tǒng)有哪些主要調(diào)度算法
學(xué)習(xí)操作系統(tǒng)的朋友們肯定遇到過(guò)調(diào)度算法,這是操作系統(tǒng)中很重要但是又相對(duì)難的部分,那么有哪些重要調(diào)度算法呢。下面由學(xué)習(xí)啦小編為大家整理了操作系統(tǒng)調(diào)度算法的相關(guān)知識(shí),希望對(duì)大家有幫助!
操作系統(tǒng)調(diào)度算法一、磁盤(pán)調(diào)度
1.先來(lái)先服務(wù)(FCFS):是按請(qǐng)求訪(fǎng)問(wèn)者的先后次序啟動(dòng)磁盤(pán)驅(qū)動(dòng)器,而不考慮它們要訪(fǎng)問(wèn)的物理位置
2.最短尋道時(shí)間優(yōu)先(SSTF):讓離當(dāng)前磁道最近的請(qǐng)求訪(fǎng)問(wèn)者啟動(dòng)磁盤(pán)驅(qū)動(dòng)器,即是讓查找時(shí)間最短的那個(gè)作業(yè)先執(zhí)行,而不考慮請(qǐng)求訪(fǎng)問(wèn)者到來(lái)的先后次序,這樣就克服了先來(lái)先服務(wù)調(diào)度算法中磁臂移動(dòng)過(guò)大的問(wèn)題
3.掃描算法(SCAN)或電梯調(diào)度算法:總是從磁臂當(dāng)前位置開(kāi)始,沿磁臂的移動(dòng)方向去選擇離當(dāng)前磁臂最近的那個(gè)柱面的訪(fǎng)問(wèn)者。如果沿磁臂的方向無(wú)請(qǐng)求訪(fǎng)問(wèn)時(shí),就改變磁臂的移動(dòng)方向。在這種調(diào)度方法下磁臂的移動(dòng)類(lèi)似于電梯的調(diào)度,所以它也稱(chēng)為電梯調(diào)度算法。
4.循環(huán)掃描算法(CSCAN):循環(huán)掃描調(diào)度算法是在掃描算法的基礎(chǔ)上改進(jìn)的。磁臂改為單項(xiàng)移動(dòng),由外向里。當(dāng)前位置開(kāi)始沿磁臂的移動(dòng)方向去選擇離當(dāng)前磁臂最近的哪個(gè)柱面的訪(fǎng)問(wèn)者。如果沿磁臂的方向無(wú)請(qǐng)求訪(fǎng)問(wèn)時(shí),再回到最外,訪(fǎng)問(wèn)柱面號(hào)最小的作業(yè)請(qǐng)求。
操作系統(tǒng)調(diào)度算法二、進(jìn)程調(diào)度算法
1.先進(jìn)先出算法(FIFO):按照進(jìn)程進(jìn)入就緒隊(duì)列的先后次序來(lái)選擇。即每當(dāng)進(jìn)入進(jìn)程調(diào)度,總是把就緒隊(duì)列的隊(duì)首進(jìn)程投入運(yùn)行。
2. 時(shí)間片輪轉(zhuǎn)算法(RR):分時(shí)系統(tǒng)的一種調(diào)度算法。 輪轉(zhuǎn)的基本思想是,將CPU的處理時(shí)間劃分成一個(gè)個(gè)的時(shí)間片,就緒隊(duì)列中的進(jìn)程輪流運(yùn)行一個(gè)時(shí)間片。當(dāng)時(shí)間片結(jié)束時(shí),就強(qiáng)迫進(jìn)程讓出CPU,該進(jìn)程進(jìn)入就 緒隊(duì)列,等待下一次調(diào)度,同時(shí),進(jìn)程調(diào)度又去選擇就緒隊(duì)列中的一個(gè)進(jìn)程,分配給它一個(gè)時(shí)間片,以投入運(yùn)行。
3. 最高優(yōu)先級(jí)算法(HPF):進(jìn)程調(diào)度每次將處理機(jī)分配給具有最高優(yōu)先級(jí)的就緒進(jìn)程。最高優(yōu)先級(jí)算法可與不同的CPU方式結(jié)合形成可搶占式最高優(yōu)先級(jí)算法和不可搶占式最高優(yōu)先級(jí)算法。
4. 多級(jí)隊(duì)列反饋法:幾種調(diào)度算法的結(jié)合形式多級(jí)隊(duì)列方式。
操作系統(tǒng)調(diào)度算法三、常見(jiàn)的批處理作業(yè)調(diào)度算法
1.先來(lái)先服務(wù)調(diào)度算法(FCFS):就是按照各個(gè)作業(yè)進(jìn)入系統(tǒng)的自然次序來(lái)調(diào)度作業(yè)。這種調(diào)度算法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,公平。其缺點(diǎn)是沒(méi)有考慮到系統(tǒng)中各種資源的綜合使用情況,往往使短作業(yè)的用戶(hù)不滿(mǎn)意,因?yàn)槎套鳂I(yè)等待處理的時(shí)間可能比實(shí)際運(yùn)行時(shí)間長(zhǎng)得多。
2.短作業(yè)優(yōu)先調(diào)度算法(SPF): 就是優(yōu)先調(diào)度并處理短作業(yè),所謂短是指作業(yè)的運(yùn)行時(shí)間短。而在作業(yè)未投入運(yùn)行時(shí),并不能知道它實(shí)際的運(yùn)行時(shí)間的長(zhǎng)短,因此需要用戶(hù)在提交作業(yè)時(shí)同時(shí)提交作業(yè)運(yùn)行時(shí)間的估計(jì)值。
3.最高響應(yīng)比優(yōu)先算法(HRN):FCFS可能造成短作業(yè)用戶(hù)不滿(mǎn),SPF可能使得長(zhǎng)作業(yè)用戶(hù)不滿(mǎn),于是提出HRN,選擇響應(yīng)比最高的作業(yè)運(yùn)行。響應(yīng)比=1+作業(yè)等待時(shí)間/作業(yè)處理時(shí)間。
4. 基于優(yōu)先數(shù)調(diào)度算法(HPF):每一個(gè)作業(yè)規(guī)定一個(gè)表示該作業(yè)優(yōu)先級(jí)別的整數(shù),當(dāng)需要將新的作業(yè)由輸入井調(diào)入內(nèi)存處理時(shí),優(yōu)先選擇優(yōu)先數(shù)最高的作業(yè)。
5.均衡調(diào)度算法,即多級(jí)隊(duì)列調(diào)度算法
基本概念:
作業(yè)周轉(zhuǎn)時(shí)間(Ti)=完成時(shí)間(Tei)-提交時(shí)間(Tsi)
作業(yè)平均周轉(zhuǎn)時(shí)間(T)=周轉(zhuǎn)時(shí)間/作業(yè)個(gè)數(shù)
作業(yè)帶權(quán)周轉(zhuǎn)時(shí)間(Wi)=周轉(zhuǎn)時(shí)間/運(yùn)行時(shí)間
響應(yīng)比=(等待時(shí)間+運(yùn)行時(shí)間)/運(yùn)行時(shí)間
操作系統(tǒng)調(diào)度算法四、空閑分區(qū)分配算法
1. 首先適應(yīng)算法:當(dāng)接到內(nèi)存申請(qǐng)時(shí),查找分區(qū)說(shuō)明表,找到第一個(gè)滿(mǎn)足申請(qǐng)長(zhǎng)度的空閑區(qū),將其分割并分配。此算法簡(jiǎn)單,可以快速做出分配決定。
2. 最佳適應(yīng)算法:當(dāng)接到內(nèi)存申請(qǐng)時(shí),查找分區(qū)說(shuō)明表,找到第一個(gè)能滿(mǎn)足申請(qǐng)長(zhǎng)度的最小空閑區(qū),將其進(jìn)行分割并分配。此算法最節(jié)約空間,因?yàn)樗M量不分割到大的空閑區(qū),其缺點(diǎn)是可能會(huì)形成很多很小的空閑分區(qū),稱(chēng)為“碎片”。
3. 最壞適應(yīng)算法:當(dāng)接到內(nèi)存申請(qǐng)時(shí),查找分區(qū)說(shuō)明表,找到能滿(mǎn)足申請(qǐng)要求的最大的空閑區(qū)。該算法的優(yōu)點(diǎn)是避免形成碎片,而缺點(diǎn)是分割了大的空閑區(qū)后,在遇到較大的程序申請(qǐng)內(nèi)存時(shí),無(wú)法滿(mǎn)足的可能性較大。
操作系統(tǒng)調(diào)度算法五、虛擬頁(yè)式存儲(chǔ)管理中的頁(yè)面置換算法
1.理想頁(yè)面置換算法(OPT):這是一種理想的算法,在實(shí)際中不可能實(shí)現(xiàn)。該算法的思想是:發(fā)生缺頁(yè)時(shí),選擇以后永不使用或在最長(zhǎng)時(shí)間內(nèi)不再被訪(fǎng)問(wèn)的內(nèi)存頁(yè)面予以淘汰。
2.先進(jìn)先出頁(yè)面置換算法(FIFO):選擇最先進(jìn)入內(nèi)存的頁(yè)面予以淘汰。
3. 最近最久未使用算法(LRU):選擇在最近一段時(shí)間內(nèi)最久沒(méi)有使用過(guò)的頁(yè),把它淘汰。
4.最少使用算法(LFU):選擇到當(dāng)前時(shí)間為止被訪(fǎng)問(wèn)次數(shù)最少的頁(yè)轉(zhuǎn)換。