調度算法

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)長批處理作業用戶:經過前面幾個隊列得到部分執行,不會長期得不到處理。

      

 

 

發佈了49 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章