程序的排程演算法

2021-08-18 14:17:04 字數 1718 閱讀 9610

大家都知道作業系統管理了系統的有限資源,當有多個程序(或多個程序發出的請求)要使用這些資源時,因為資源的有限性,必須按照一定的原則選擇程序(請求)來占用資源,這就是排程。簡單來說排程就是一種資源分配。

排程演算法是根據系統的資源分配策略所規定的資源分配演算法。目前存在的多種排程演算法中,有的演算法適用於作業排程,有的演算法適用於程序排程;但也有些排程演算法既可以用於作業排程,也可以用於程序排程。

這裡我主要總結的是程序的排程演算法

排程演算法要求:高資源利用率、高吞吐量、使用者滿意等原則。

下面是五中排程演算法的總結:

1、先來先服務排程演算法(fcfs):根據程序到達的先後順序執行程序,不考慮等待時間和執行時間,會產生飢餓現象。屬於非搶占式排程,優點是公平,實現簡單;缺點是不利於短作業。

2、時間片輪轉排程演算法(rr):給每個程序固定的執行時間,根據程序到達的先後順序讓程序在單位時間片內執行,執行完成後便排程下乙個程序執行,時間片輪轉排程不考慮程序等待時間和執行時間,屬於搶占式排程。優點是兼顧長短作業;缺點是平均等待時間較長,上下文切換較費時。適用於分時系統。 3、優先順序排程演算法(hpf):在程序等待佇列中選擇優先順序最高的來執行。

4、多級反饋佇列排程演算法:將時間片輪轉與優先順序排程相結合,把程序按優先順序分成不同的佇列,先按優先順序排程,優先順序相同的,按時間片輪轉。優點是兼顧長短作業,有較好的響應時間,可行性強,適用於各種作業環境。

5、高響應比優先排程演算法:根據「響應比=(程序執行時間+程序等待時間)/ 程序執行時間」這個公式得到的響應比來進行排程。高響應比優先演算法在等待時間相同的情況下,作業執行的時間越短,響應比越高,滿足段任務優先,同時響應比會隨著等待時間增加而變大,優先順序會提高,能夠避免飢餓現象。優點是兼顧長短作業,缺點是計算響應比開銷大,適用於批處理系統。

linux程序的排程演算法

linux核心的三種排程方法:

1. sched_other 分時排程策略,

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

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

程序提供了兩種優先順序,一種是普通的程序優先順序,第二個是實時優先順序,前者使用scheed_normal排程策略,後者可選sched_fifo或sched_rr排程。任何時候,實時程序的優先順序都高於普通程序,實時程序只會被更高階的實時程序搶占,同時實時程序之間是按照fifo(一次機會做完)或者rr(多次輪轉)規則排程的

首先說一下實時程序的排程:

實時程序,只有靜態優先順序,因為核心不會根據休眠時間等因素對其靜態優先順序做調整,預設的實時優先順序範圍是0~99

不同於普通的程序,系統排程時。實時優先順序高的程序總是先於優先順序低的程序執行,直到實時優先順序高的實時程序無法執行。如果有數個優先順序相同的實時程序,那麼系統就會按照程序出現在佇列上的順序選擇程序。

不同的排程策略的實時程序只有在相同優先順序的時候才有可比性:

1)對於fifo的程序,意味著只有當前程序執行完畢才會輪到其他程序執行。由此可見相當霸道。

2)對於rr程序,一旦時間片消耗完畢,則會將該程序置於佇列的末尾,然後執行其他相同優先順序的程序,如果沒有其他相同優先順序的程序,則該程序會繼續執行。

總而言之,對於實時程序,高優先順序的程序就是大爺,他執行到沒法執行,採會輪到優先順序低的程序執行。等級制度行當森嚴。

普通程序:

sched_orher:基於動態優先順序進行排程,其動態優先順序可以理解為排程器為每個程序根據多個因素計算出的權值。

程序排程演算法(程序排程策略)

程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...

程序排程演算法

排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短作業 程序 由此...

程序排程演算法

先來先服務 first come first service,fcfs 排程演算法按照程序進入就緒佇列的先後順序選擇可以占用處理器的程序。這是一種不可搶占方式的排程演算法,優點是實現簡單,缺點是後來的程序等待cpu的時間較長。它現今主要用作輔助排程法 例如結合在優先順序排程演算法中使用,當有兩個最高...