常見的Linux程序排程演算法

2021-09-29 12:54:59 字數 1402 閱讀 5862

程序排程:在作業系統中,排程是指一種資源分配

排程演算法:就是根據作業系統的資源分配策略所規定的資源分配的演算法

1.先來先去服務:

如果早就緒的程序排在就緒佇列的前面,遲就緒的程序排在就緒佇列的後面,那麼先來先服務(fcfs: first come first service)總是把當前處於就緒佇列之首的那個程序排程到執行狀態。也就說,它只考慮程序進入就緒佇列的先後,而不考慮它的下乙個cpu週期的長短及其他因素。

優點有利於長作業以及cpu繁忙的作業

缺點不利於短作業以及i/o繁忙的作業

2.程序優先排程演算法:

對預計執行時間短的作業(程序)優先分派處理機.通常後來的短作業不搶先正在執行的作業.

優點:

比fcfs改善平均周轉時間和平均帶權周轉時間,縮短作業的等待時間;

提高系統的吞吐量;

缺點:

對長作業非常不利,可能長時間得不到執行;

未能依據作業的緊迫程度來劃分執行的優先順序;

難以準確估計作業(程序)的執行時間,從而影響排程效能。

3.輪轉法:

讓每個程序在佇列中的等待時間和享受服務的時間成比例

4.多級反饋佇列演算法:

概念:

設定多個就緒佇列,分別賦予不同的優先順序,如逐級降低,佇列1的優先順序最高。每個佇列執行時間片的長度也不同,規定優先順序越低則時間片越長,如逐級加倍。

新程序進入記憶體後,先投入佇列1的末尾,按fcfs演算法排程;若按佇列1乙個時間片未能執行完,則降低投入到佇列2的末尾,同樣按fcfs演算法排程;如此下去,降低到最後的佇列,則按「時間片輪轉」演算法排程直到完成。

僅當較高優先順序的隊列為空,才排程較低優先順序的佇列中的程序執行。如果程序執行時有新程序進入較高優先順序的佇列,則搶先執行新程序,並把被搶先的程序投入原佇列的末尾。

多級反饋佇列排程演算法又稱反饋迴圈佇列或多佇列策略,主要思想是將就緒程序分為兩級或多級,系統相應建立兩個或多個就緒程序佇列,較高優先順序的佇列一般分配給較短的時間片。處理器排程先從高階就緒程序佇列中選取可占有處理器的程序,只有在選不到時,才從較低階的就緒程序佇列中選取。

優點:

為提高系統吞吐量和縮短平均周轉時間而照顧短程序。

為獲得較好的i/o裝置利用率和縮短響應時間而照顧i/o型程序。

不必估計程序的執行時間,動態調節。

linux 幾種常見的程序排程演算法

先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。當在作業排程中採用該演算法時,每次排程都是從後備作業佇列中選擇乙個或多個最先進入該佇列的作業,將它們調入記憶體,為它們分配資源 建立程序,然後放入就緒佇列。在程序排程中採用fcfs演算法時,則每次排...

Linux 下常見的程序排程演算法

在作業系統中資源是有限的,當有多個程序或執行緒要使用這些資源時,因為資源的有限性,必須按照一定的原則選擇程序來使用資源。所以排程演算法就是 根據系統的資源分配策略所規定的資源分配演算法。排程演算法要求 高資源利用率,高吞吐量,使用者滿意等原則。排程演算法設計目標 1.批處理系統 增加系統吞吐量和提高...

常見程序排程演算法

程序排程 實質是一種資源分配。決定將cpu分配給就緒佇列中的某個程序。發生程序排程原因 1 正在執行的程序執行完畢 2 執行中的程序因發生i o請求或等事件而暫停執行 3 時間片用完 4 在程序通訊或同步過程中執行了某項原語操作,如p操作 wait操作 5 高優先順序進入。作業排程 簡單來說就是決定...