linux程序排程演算法

2021-08-30 06:27:08 字數 796 閱讀 9602

一:什麼是程序排程

都知道linux是一種多使用者多工的作業系統,而當多個程序同時執行去,搶占有限資源的時候,這時作業系統就會按照一定的原則將資源合理分配給請求資源的程序,這就是程序排程。

二:在linux作業系統中都有哪些程序排程演算法

1. 先進先出演算法(fifo):

按照程序進入就緒佇列的先後次序來選擇。即每當進入程序排程,總是把就緒佇列的隊首程序投入執行。

2. 時間片輪轉演算法(rr):

分時系統的一種排程演算法。輪轉的基本思想是,將cpu的處理時間劃分成乙個個的時間片,就緒佇列中的程序輪流執行乙個時間片。當時間片結束時,就強迫程序讓出cpu,該程序進入就緒佇列,等待下一次排程,同時,程序排程又去選擇就緒佇列中的乙個程序,分配給它乙個時間片,以投入執行。

3. 最高優先順序演算法(hpf):

程序排程每次將處理機分配給具有最高優先順序的就緒程序。最高優先順序演算法可與不同的cpu方式結合形成可搶占式最高優先順序演算法和不可搶占式最高優先順序演算法。

4. 多級佇列反饋法:

幾種排程演算法的結合形式多級佇列方式。

三:linux核心的三種排程方法:

1. sched_other 分時排程策略

2. sched_fifo實時排程策略,先到先服務

3. sched_rr實時排程策略,時間片輪轉

實時程序將得到優先呼叫,實時程序根據實時優先順序決定排程權值,分時程序則通過nice和counter值決

定權值,nice越小,counter越大,被排程的概率越大,也就是曾經使用了cpu最少的程序將會得到優先調

度。

Linux 程序排程演算法

程序排程 無論是在批處理系統還是分時系統中,使用者程序數一般都多於處理機數 這將導致它們互相爭奪處理機。另外,系統程序也同樣需要使用處理機。這就要求程序排程程式按一定的策略,動態地把處理機分配給處於就緒佇列中的某乙個程序,以使之執行。程序排程具有四條基本屬性和三個基本狀態 基本屬性 1 多型性 從誕...

Linux 程序排程演算法

linux中的程序排程演算法分類如下 一 先來先服務和短作業 程序 優先排程演算法 1 先來先服務排程演算法 fcfs 先來先服務 first come first service fcfs 排程演算法是一種最簡單的 不可搶占式的 排程演算法,既可用於作業排程,也可用於程序排程。該演算法按照程序進入...

linux程序 程序排程演算法(十三)

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