OS中常用的調度算法總結

轉載鏈接:OS中常用的調度算法總結

一、常見的批處理作業調度算法

  1. 先來先服務調度算法(FCFS):就是按照各個作業進入系統的自然次序來調度作業。這種調度算法的優點是實現簡單,公平。其缺點是沒有考慮到系統中各種資源的綜合使用情況,往往使短作業的用戶不滿意,因爲短作業等待處理的時間可能比實際運行時間長得多。

  2. 短作業優先調度算法(SPF): 就是優先調度並處理短作業,所謂短是指作業的運行時間短。而在作業未投入運行時,並不能知道它實際的運行時間的長短,因此需要用戶在提交作業時同時提交作業運行時間的估計值。

  3. 最高響應比優先算法(HRN):FCFS可能造成短作業用戶不滿,SPF可能使得長作業用戶不滿,於是提出HRN,選擇響應比最高的作業運行。響應比=1+作業等待時間/作業處理時間。

  4. 基於優先數調度算法(HPF):每一個作業規定一個表示該作業優先級別的整數,當需要將新的作業由輸入井調入內存處理時,優先選擇優先數最高的作業。

  5. 均衡調度算法:即多級隊列調度算法。

    基本概念:

    作業週轉時間(Ti)=完成時間(Tei)-提交時間(Tsi)

    作業平均週轉時間(T)=週轉時間/作業個數

    作業帶權週轉時間(Wi)=週轉時間/運行時間

    響應比=(等待時間+運行時間)/運行時間

二、進程調度算法

  1. 先進先出算法(FIFO):按照進程進入就緒隊列的先後次序來選擇。即每當進入進程調度,總是把就緒隊列的隊首進程投入運行。

  2. 時間片輪轉算法(RR):分時系統的一種調度算法。輪轉的基本思想是,將CPU的處理時間劃分成一個個的時間片,就緒隊列中的進程輪流運行一個時間片。當時間片結束時,就強迫進程讓出CPU,該進程進入就緒隊列,等待下一次調度,同時,進程調度又去選擇就緒隊列中的一個進程,分配給它一個時間片,以投入運行。

  3. 最高優先級算法(HPF):進程調度每次將處理機分配給具有最高優先級的就緒進程。最高優先級算法可與不同的CPU方式結合形成可搶佔式最高優先級算法和不可搶佔式最高優先級算法。

  4. 多級隊列反饋法:幾種調度算法的結合形式多級隊列方式。

三、空閒分區分配算法

  1. 首先適應算法:當接到內存申請時,查找分區說明表,找到第一個滿足申請長度的空閒區,將其分割並分配。此算法簡單,可以快速做出分配決定。

  2. 最佳適應算法:當接到內存申請時,查找分區說明表,找到第一個能滿足申請長度的最小空閒區,將其進行分割並分配。此算法最節約空間,因爲它儘量不分割到大的空閒區,其缺點是可能會形成很多很小的空閒分區,稱爲“碎片”。

  3. 最壞適應算法:當接到內存申請時,查找分區說明表,找到能滿足申請要求的最大的空閒區。該算法的優點是避免形成碎片,而缺點是分割了大的空閒區後,在遇到較大的程序申請內存時,無法滿足的可能性較大。

四、虛擬頁式存儲管理中的頁面置換算法

  1. 理想頁面置換算法(OPT):這是一種理想的算法,在實際中不可能實現。該算法的思想是:發生缺頁時,選擇以後永不使用或在最長時間內不再被訪問的內存頁面予以淘汰。

  2. 先進先出頁面置換算法(FIFO):選擇最先進入內存的頁面予以淘汰。

  3. 最近最久未使用算法(LRU):選擇在最近一段時間內最久沒有使用過的頁,把它淘汰。

  4. 最少使用算法(LFU):選擇到當前時間爲止被訪問次數最少的頁轉換。

五、磁盤調度

  1. 先來先服務(FCFS):是按請求訪問者的先後次序啓動磁盤驅動器,而不考慮它們要訪問的物理位置

  2. 最短尋道時間優先(SSTF):讓離當前磁道最近的請求訪問者啓動磁盤驅動器,即是讓查找時間最短的那個作業先執行,而不考慮請求訪問者到來的先後次序,這樣就克服了先來先服務調度算法中磁臂移動過大的問題

  3. 掃描算法(SCAN)或電梯調度算法:總是從磁臂當前位置開始,沿磁臂的移動方向去選擇離當前磁臂最近的那個柱面的訪問者。如果沿磁臂的方向無請求訪問時,就改變磁臂的移動方向。在這種調度方法下磁臂的移動類似於電梯的調度,所以它也稱爲電梯調度算法。

  4. 循環掃描算法(CSCAN):循環掃描調度算法是在掃描算法的基礎上改進的。磁臂改爲單項移動,由外向裏。當前位置開始沿磁臂的移動方向去選擇離當前磁臂最近的哪個柱面的訪問者。如果沿磁臂的方向無請求訪問時,再回到最外,訪問柱面號最小的作業請求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章