程序排程演算法

2021-10-08 19:26:58 字數 1315 閱讀 1810

批處理系統沒有太多的使用者操作,在該系統中,排程演算法目標是保證吞吐量和周轉時間(從提交到終止的時間)。

1.1 先來先服務 first-come first-serverd(fcfs)

非搶占式的排程演算法,按照請求的順序進行排程。

有利於長作業,但不利於短作業,因為短作業必須一直等待前面的長作業執行完畢才能執行,而長作業又需要執行很長時間,造成了短作業等待時間過長。

1.2 短作業優先 shortest job first(sjf)

非搶占式的排程演算法,按估計執行時間最短的順序進行排程。

長作業有可能會餓死,處於一直等待短作業執行完畢的狀態。因為如果一直有短作業到來,那麼長作業永遠得不到排程。

1.3 最短剩餘時間優先 shortest remaining time next(srtn)

最短作業優先的搶占式版本,按剩餘執行時間的順序進行排程。 當乙個新的作業到達時,其整個執行時間與當前程序的剩餘時間作比較。如果新的程序需要的時間更少,則掛起當前程序,執行新的程序。否則新的程序等待。

互動式系統有大量的使用者互動操作,在該系統中排程演算法的目標是快速地進行響應。

2.1 時間片輪轉

將所有就緒程序按 fcfs 的原則排成乙個佇列,每次排程時,把 cpu 時間分配給隊首程序,該程序可以執行乙個時間片。當時間片用完時,由計時器發出時鐘中斷,排程程式便停止該程序的執行,並將它送往就緒佇列的末尾,同時繼續把 cpu 時間分配給隊首的程序。

時間片輪轉演算法的效率和時間片的大小有很大關係:

因為程序切換都要儲存程序的資訊並且載入新程序的資訊,如果時間片太小,會導致程序切換得太頻繁,在程序切換上就會花過多時間。

而如果時間片過長,那麼實時性就不能得到保證。

2.2 優先順序排程

為每個程序分配乙個優先順序,按優先順序進行排程。

為了防止低優先順序的程序永遠等不到排程,可以隨著時間的推移增加等待程序的優先順序。

2.3 多級反饋佇列

乙個程序需要執行 100 個時間片,如果採用時間片輪轉排程演算法,那麼需要交換 100 次。

多級佇列是為這種需要連續執行多個時間片的程序考慮,它設定了多個佇列,每個佇列時間片大小都不同,例如 1,2,4,8,…。程序在第乙個佇列沒執行完,就會被移到下乙個佇列。這種方式下,之前的程序只需要交換 7 次。

每個佇列優先權也不同,最上面的優先權最高。因此只有上乙個佇列沒有程序在排隊,才能排程當前佇列上的程序。

可以將這種排程演算法看成是時間片輪轉排程演算法和優先順序排程演算法的結合。

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

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

程序排程演算法

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

程序排程演算法

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