1、先來先服務算法(FCFS)
把處理器分配給最先進入就緒隊列的進程,一個進程一旦分得處理器,便一直執行下去,直到該進程完成或阻塞時,才釋放處理器。
如果一個長作業先到達系統,則會使後面很多短作業等待很長時間。
有利於CPU繁忙型作業,不利於I/O繁忙型作業
2、短作業優先算法(SJF)
從就緒隊列中選出一個估計運行時間最短的進程,將處理器分配給它立即執行,直到該進程完成或阻塞時,才釋放處理器。
對長作業不利,並且完全沒有考慮作業的緊迫程度,
SJF算法的平均等待時間、平均週轉時間最少。
3、優先級調度算法
把處理器分配給就緒隊列中具有最高優先級的進程,根據新出現更高優先級進程能否搶佔正在執行的進程,又可分爲非剝奪式優先級調度算法
和剝奪式優先級調度算法。而根據進程創建後其優先級是否可以改變,可以將進程優先級分爲以下兩種:
(1)靜態優先級
優先級在創建進程時就已確定
(2)動態優先級
根據情況的變化調整優先級
4、高響應比優先調度算法(HRN)
HRN是對FCFS和SJF的一種綜合平衡,同事考慮內個作業的等待時間和估計需要的執行時間,從中選出響應比最高的作業執行。
響應比R=(等待時間+要求服務時間)/要求服務時間=1+等待時間/要求服務時間
5、時間片輪轉算法(RP)
RP主要用於分時系統,系統將所有就緒進程安到達時間的先後次序排成一個隊列,每次調度時,把處理器分配給隊首進程,並令其執行一個時間片,
當執行的時間片用完,發中斷請求, 讓出處理器,讓其他進程也執行一個時間片。
時間片的長短對計算機系統的影響很大,過大,退化成FCFS算法,過小,切換工作過於頻繁,使處理器的開銷增大
時間片的長短由以下元素決定:(1)系統的響應時間 ;(2)就緒隊列中的進程數目; (3)系統的處理能力
6、級反饋隊列調度算法
是輪轉算法和優先級算法的綜合和發展,通過動態調整進程優先級和時間片大小,
(1)設置多個就緒隊列,併爲各個隊列賦予不同的優先級,第1個最高,第2個次之,依次降低
(2)賦予各個隊列中繼承執行時間片的大小也各不相同,優先級越高,時間片大小越低。
(3)當一個新進程進入內存後,首先進入第1個隊列的隊尾,按FCFS進行排隊等待調度,當輪轉到該進程執行時,如果它能在該時間片完成,便可準備
撤離系統,否則,該進程進入到第2個隊列隊尾繼續等待調度。依次類推。
優點:
1)終端型作業用戶:短作業優先
2)短批處理作業用戶:週轉時間較短
3)長批處理作業用戶:經過前面幾個隊列得到部分執行,不會長期得不到處理。