詞語解釋
在操作系統(tǒng)中調(diào)度的是指是一種自遠(yuǎn)方分配,因而調(diào)度算法是指:根據(jù)系統(tǒng)的資源分配策略所規(guī)定的資源分配算法。對于不同的的系統(tǒng)和系統(tǒng)目標(biāo),通常采用不同的調(diào)度算法,例如,在批處理系統(tǒng)中,為了照顧為數(shù)眾多的段作業(yè),應(yīng)采用短作業(yè)優(yōu)先的調(diào)度算法;又如在分時系統(tǒng)中,為了保證系統(tǒng)具有合理的響應(yīng)時間,應(yīng)當(dāng)采用輪轉(zhuǎn)法進(jìn)行調(diào)度。目前存在的多種調(diào)度算法中,有的算法適用于作業(yè)調(diào)度,有的算法適用于進(jìn)程調(diào)度;但也有些調(diào)度算法既可以用于作業(yè)調(diào)度,也可以用于進(jìn)程調(diào)度。 1. FCFS算法 按照作業(yè)提交或進(jìn)程變?yōu)榫途w狀態(tài)的先后次序,分派CPU; 當(dāng)前作業(yè)或進(jìn)程占用CPU,直到執(zhí)行完或阻塞,才出讓CPU(非搶占方式)。 在作業(yè)或進(jìn)程喚醒后(如I/O完成),并不立即恢復(fù)執(zhí)行,通常等到當(dāng)前作業(yè)或進(jìn)程出讓CPU。最簡單的算法。 2. FCFS的特點(diǎn) 比較有利于長作業(yè),而不利于短作業(yè)。 有利于CPU繁忙的作業(yè),而不利于I/O繁忙的作業(yè)。 1. 輪轉(zhuǎn)法 ? 將系統(tǒng)中所有的就緒進(jìn)程按照FCFS原則,排成一個隊(duì)列。 ? 每次調(diào)度時將CPU分派給隊(duì)首進(jìn)程,讓其執(zhí)行一個時間片。時間片的長度從幾個ms到幾百ms。 ? 在一個時間片結(jié)束時,發(fā)生時鐘中斷。 ? 調(diào)度程序據(jù)此暫停當(dāng)前進(jìn)程的執(zhí)行,將其送到就緒隊(duì)列的末尾,并通過上下文切換執(zhí)行當(dāng)前的隊(duì)首進(jìn)程。? 進(jìn)程可以未使用完一個時間片,就出讓CPU(如阻塞)。 ? 2. 時間片長度的確定 ? 時間片長度變化的影響2 過長->退化為FCFS算法,進(jìn)程在一個時間片內(nèi)都執(zhí)行完,響應(yīng)時間長。2 過短->用戶的一次請求需要多個時間片才能處理完,上下文切換次數(shù)增加,響應(yīng)時間長。 ? 對響應(yīng)時間的要求:T(響應(yīng)時間)=N(進(jìn)程數(shù)目)*q(時間片) ? 就緒進(jìn)程的數(shù)目:數(shù)目越多,時間片越小 ? 系統(tǒng)的處理能力:應(yīng)當(dāng)使用戶輸入通常在一個時間片內(nèi)能處理完,否則使響應(yīng)時間,平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間延長。 3. 多級反饋隊(duì)列算法(Round Robin with Multiple Feedback) 多級反饋隊(duì)列算法時間片輪轉(zhuǎn)算法和優(yōu)先級算法的綜合和發(fā)展。優(yōu)點(diǎn):2 為提高系統(tǒng)吞吐量和縮短平均周轉(zhuǎn)時間而照顧短進(jìn)程。2 為獲得較好的I/O設(shè)備利用率和縮短響應(yīng)時間而照顧I/O型進(jìn)程。2 不必估計(jì)進(jìn)程的執(zhí)行時間,動態(tài)調(diào)節(jié)。 1. 多級反饋隊(duì)列算法2 設(shè)置多個就緒隊(duì)列,分別賦予不同的優(yōu)先級,如逐級降低,隊(duì)列1的優(yōu)先級最高。每個隊(duì)列執(zhí)行時間片的長度也不同,規(guī)定優(yōu)先級越低則時間片越長,如逐級加倍。2 新進(jìn)程進(jìn)入內(nèi)存后,先投入隊(duì)列1的末尾,按FCFS算法調(diào)度;若按隊(duì)列1一個時間片未能執(zhí)行完,則降低投入到隊(duì)列2的末尾,同樣按FCFS算法調(diào)度;如此下去,降低到最后的隊(duì)列,則按“時間片輪轉(zhuǎn)”算法調(diào)度直到完成。2 僅當(dāng)較高優(yōu)先級的隊(duì)列為空,才調(diào)度較低優(yōu)先級的隊(duì)列中的進(jìn)程執(zhí)行。如果進(jìn)程執(zhí)行時有新進(jìn)程進(jìn)入較高優(yōu)先級的隊(duì)列,則搶先執(zhí)行新進(jìn)程,并把被搶先的進(jìn)程投入原隊(duì)列的末尾。2 2. 幾點(diǎn)說明2 I/O型進(jìn)程:讓其進(jìn)入最高優(yōu)先級隊(duì)列,以及時響應(yīng)I/O交互。通常執(zhí)行一個小時間片,要求可處理完一次I/O請求的數(shù)據(jù),然后轉(zhuǎn)入到阻塞隊(duì)列。2 計(jì)算型進(jìn)程:每次都執(zhí)行完時間片,進(jìn)入更低級隊(duì)列。最終采用最大時間片來執(zhí)行,減少調(diào)度次數(shù)。2 I/O次數(shù)不多,而主要是CPU處理的進(jìn)程。在I/O完成后,放回優(yōu)先I/O請求時離開的隊(duì)列,以免每次都回到最高優(yōu)先級隊(duì)列后再逐次下降。2 為適應(yīng)一個進(jìn)程在不同時間段的運(yùn)行特點(diǎn),I/O完成時,提高優(yōu)先級;時間片用完時,降低優(yōu)先級。
通常將作業(yè)或進(jìn)程歸入各種就緒或阻塞隊(duì)列。有的算法適用于作業(yè)調(diào)度,有的算法適用于進(jìn)程調(diào)度,有的兩者都適應(yīng)。 1.先來先服務(wù)(FCFS)
先來先服務(wù)(FCFS, First Come First Serve)是最簡單的調(diào)度算法,按先后順序進(jìn)行調(diào)度。2. 輪轉(zhuǎn)法(Round Robin)
輪轉(zhuǎn)法(Round Robin)是讓每個進(jìn)程在就緒隊(duì)列中的等待時間與享受服務(wù)的時間成正比例。
掃碼付費(fèi)即可復(fù)制
X