程序排程演算法

2021-07-23 08:57:37 字數 1116 閱讀 3048

實現作業系統的主要程序排程演算法:先來先服務(fcfs)演算法,短程序優先(spn)演算法和時間片輪轉(rr)演算法。

(1)先來先服務排程演算法(fcfs)

該演算法採用非剝奪策略,

演算法按照程序提交或程序變為就緒狀態的先後次序,分派 cpu。當前程序占用cpu,直到執行完或阻塞,才出讓cpu(非搶占方式)。在程序喚醒後(如i/o 完成),並不立即恢復執行,通常等到當前程序出讓cpu。

這是最簡單的排程演算法,

比較有利於長程序,而不利於短程序,有利於cpu 繁忙的程序,而不利於i/o 繁忙的程序。往往使短作業的使用者不滿意,因為短作業等待處理的時間可能比實際執行時間長得多。

(2)短程序優先排程演算法(spn)

該演算法也採用非剝奪策略,對預計執行時間短的程序優先分派處理機。

通常後來的短程序不搶先正在執行的程序。相比fcfs 演算法,

該演算法可改善平均周轉時間和平均帶權周轉時間,縮短程序的等待時間,提高系統的吞吐量。

缺點是對長程序非常不利,可能長時間得不到執行,且未能依據程序的緊迫程度來劃分執行的優先順序,以及難以準確估計程序的執行時間,從而影響排程效能。

就是優先排程並處理短作業,所謂短是指作業的執行時間短。而在作業未投入執行時,並不能知道它實際的執行時間的長短,因此需要使用者在提交作業時同時提交作業執行時間的估計值。(3)

時間片輪轉演算法(rr)

該演算法採用剝奪策略。讓就緒程序以fcfs 的方式按時間片輪流使用cpu 的排程方式,

即將系統中所有的就緒程序按照fcfs 原則,排成乙個佇列,每次排程時將cpu 分派給隊首程序,讓其執行乙個時間片,時間片的長度從幾個ms 到幾百ms。在乙個時間片結束時,發生時鐘中斷,排程程式據此暫停當前程序的執行,將其送到就緒佇列的末尾,並通過上下文切換執行當前的隊首程序,程序可以未使用完乙個時間片,就出讓cpu(如阻塞)。時間片輪轉排程演算法的特點是簡單易行、平均響應時間短,但不利於處理緊急作業。在時間片輪轉演算法中,時間片的大小對系統效能的影響很大,因此時間片的大小應選擇恰當。

分時系統的一種排程演算法。輪轉的基本思想是,

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

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

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

程序排程演算法

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

程序排程演算法

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