當在做業調度中採用該算法時,每次調度都是從後備做業隊列中選擇一個或多個最早進入該隊 列的做業,將它們調入內存,爲它們分配資源、建立進程,而後放入就緒隊列。在進程調度中採 用 FCFS 算法時,則每次調度是從就緒隊列中選擇一個最早進入該隊列的進程,爲之分配處理機, 使之投入運行。該進程一直運行到完成或發生某事件而阻塞後才放棄處理機,特色是:算法比較 簡單,能夠實現基本上的公平。算法
短做業優先(SJF)的調度算法是從後備隊列中選擇一個或若干個估計運行時間最短的做業,將它們 調入內存運行。而短進程優先(SPF)調度算法則是從就緒隊列中選出一個估計運行時間最短的進程, 將處理機分配給它,使它當即執行並一直執行到完成,或發生某事件而被阻塞放棄處理機時再重 新調度。該算法未照顧緊迫型做業。性能
爲了照顧緊迫型做業,使之在進入系統後便得到優先處理,引入了最高優先權優先(FPF)調度 算法。當把該算法用於做業調度時,系統將從後備隊列中選擇若干個優先權最高的做業裝入內存。 當用於進程調度時,該算法是把處理機分配給就緒隊列中優先權最高的進程。cdn
在這種方式下,系統一旦把處理機分配給就緒隊列中優先權最高的進程後,該進程便一直執行下 去,直至完成;或因發生某事件使該進程放棄處理機時。這種調度算法主要用於批處理系統中; 也可用於某些對實時性要求不嚴的實時系統中。blog
在這種方式下,系統一樣是把處理機分配給優先權最高的進程,使之執行。但在其執行期間,只 要又出現了另外一個其優先權更高的進程,進程調度程序就當即中止當前進程(原優先權最高的進程) 的執行,從新將處理機分配給新到的優先權最高的進程。顯然,這種搶佔式的優先權調度算法能 更好地知足緊迫做業的要求,故而經常使用於要求比較嚴格的實時系統中,以及對性能要求較高的批 處理和分時系統中。隊列
在批處理系統中,短做業優先算法是一種比較好的算法,其主要的不足之處是長做業的運行 得不到保證。若是咱們能爲每一個做業引入前面所述的動態優先權,並使做業的優先級隨着等待時 間的增長而以速率 a 提升,則長做業在等待必定的時間後,必然有機會分配處處理機。該優先權的 變化規律可描述爲:進程
在早期的時間片輪轉法中,系統將全部的就緒進程按先來先服務的原則排成一個隊列,每次調度 時,把 CPU 分配給隊首進程,並令其執行一個時間片。時間片的大小從幾 ms 到幾百 ms。當執行 的時間片用完時,由一個計時器發出時鐘中斷請求,調度程序便據此信號來中止該進程的執行, 並將它送往就緒隊列的末尾;而後,再把處理機分配給就緒隊列中新的隊首進程,同時也讓它執 行一個時間片。這樣就能夠保證就緒隊列中的全部進程在一給定的時間內均能得到一時間片的處 理機執行時間。事件