linux核心的三種排程方法

2021-09-23 08:15:17 字數 2026 閱讀 9420

1,sched_other分時排程策略,

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

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

分時程序則通過nice和counter值決定權值,nice越小,counter越大,被排程的概率越大,也就是曾經使用了cpu最少的程序

將會得到優先排程

實時

程序將得到

優先呼叫,實時程序根據實時優先順序決定排程權值

shced_rr和sched_fifo的不同:

1, 當採用shced_rr策略的程序的時間片用完,系統將重新分配時間片,並置於就緒佇列尾。放在佇列尾保證了所有具有相同優先順序的rr任務的排程公平

2, sched_fifo一旦占用cpu則

一直執行。一直執行直到

有更高優先順序任務到達或自己放棄

如果有相同優先順序的實時程序(根據優先順序計算的排程權值是一樣的)已經準備好,fifo時必須等待該程序主動放棄後才可以執行這個優先順序相同的任務。而rr可以讓每個任務都執行一段時間。

shced_rr和sched_fifo的相同點:

1,rr和fifo都只用於實時任務

2,建立時優先順序大於0(1-99)

3,按照

可搶占優先順序排程演算法進行

4,就緒態的實時任務

立即搶占

非實時任務

所有任務都採用linux分時排程策略時:

1,建立任務指定採用分時排程策略,並指定優先順序nice值(-20~19)

2,將根據每個任務的nice值確定在cpu上的執行時間(counter)

3,如果沒有等待資源,則將該任務加入到就緒佇列中

4,排程程式遍歷就緒佇列中的任務,通過對每個任務動態優先順序的計算(counter+20

-nice)結果,選擇計算結果最大的乙個去執行,當這個時間片用完後(counter減至0)或者主動放棄cpu時,該任務將被放在就緒佇列末尾(時間片用完)或等待佇列(因等待資源而放棄cpu)中

5,此時排程程式重複上面計算過程,轉到第4步

6,當排程程式發現所有就緒任務計算所得的權值都為不大於0時,重複第2步

所有任務都採用fifo時:

1,建立程序時指定採用fifo,並設定實時優先順序rt_priority(1-99)

2,如果沒有等待資源,則將該任務加入到就緒佇列中

3,排程程式遍歷就緒佇列,根據實時優先順序計算排程權值(1000+rt_priority), 選擇權值最

高的任務使用cpu,該fifo任務將一直占有cpu直到有優先順序更高的任務

排程策略時:

1,建立任務時指定排程引數為rr,並設定任務的實時優先順序和nice值(nice值將會轉換為該任務的

時間片的長度)

2,如果沒有等待資源,則將該任務加入到就緒佇列中

3,排程程式遍歷就緒佇列,根據實時優先順序計算排程權值(1000+rt_priority), 選擇權值最高的任務使用cpu

4,如果就緒佇列中的rr任務時間片為0,則會根據nice值設定該任務的時間片,同時將該任務放入就緒佇列的末尾。重複步驟3

5,當前任務由於等待資源而主動退出cpu,則其加入等待佇列中。重複步驟3.

系統中既有分時排程,又有時間片輪轉排程和先進先出排程(非單一排程方式):

1,rr排程和fifo排程的程序屬於實時程序,以分時排程的程序是非實時程序

2,當實時程序準備就緒後,如果當前cpu正在執行非實時程序,則實時程序立即搶占非實時程序

3,rr程序和fifo程序都採用實時優先順序做為排程的權值標準,rr是fifo的乙個延伸。fifo時,如果兩個進 程的優先順序一樣,則這兩個優先順序一樣的程序具體執行哪乙個是由其在佇列中的位置決定的,這樣導致一些不公正性(優先順序是一樣的,為什麼要讓你一直運 行?),如果將兩個優先順序一樣的任務的排程策略都設為rr,則保證了這兩個任務可以迴圈執行,保證了公平。

linux核心的三種排程方法

linux核心的三種排程方法 1,sched other 分時排程策略,2,sched fifo實時排程策略,先到先服務 3,sched rr實時排程策略,時間片輪轉 實時程序將得到優先呼叫,實時程序根據實時優先順序決定排程權值,分時程序則通過nice和counter值決定權值,nice越小,cou...

作業系統 linux 核心的三種程序排程方法

1。sched other 分時排程策略 2。sched fifo 實時排程策略。先到先服務 3,sched rr 實時排程策略,時間片輪轉 實時程序將得到優先呼叫,實時程序依據實時優先順序決定排程權值,分時程序則通過nice和counter值決定權值,nice越小,counter越大,被排程的概率...

作業系統linux核心的三種程序排程方法

1,sched other 分時排程策略 2,sched fifo 實時排程策略,先到先服務 3,sched rr 實時排程策略,時間片輪轉 實時程序將得到優先呼叫,實時程序根據實時優先順序決定排程權值,分時程序則通過nice和counter值決定權值,nice越小,counter越大,被排程的概率...