作業系統 常用排程演算法 總結

2021-09-02 01:14:19 字數 2295 閱讀 8332

1 常見的批處理作業排程演算法

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

就是按照各個作業進入系統的自然次序來排程作業。這種排程演算法的優點是實現簡單,公平。其缺點是沒有考慮到系統中各種資源的綜合使用情況,往往使短作業的使用者不滿意,因為短作業等待處理的時間可能比實際執行時間長得多。 

1.2 短作業優先排程演算法(spf):

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

1.3 最高響應比優先演算法(hrn):

每乙個作業規定乙個表示該作業優先順序別的整數,當需要將新的作業由輸入井調入記憶體處理時,優先選擇優先數最高的作業。 

1.5 均衡排程演算法:

2.1 先進先出演算法(fifo):

按照程序進入就緒佇列的先後次序來選擇。即每當進入程序排程,總是把就緒佇列的隊首程序投入執行。 

2.2 時間片輪轉演算法(rr):

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

2.3 最高優先順序演算法(hpf):

程序排程每次將處理機分配給具有最高優先順序的就緒程序。最高優先順序演算法可與不同的cpu方式結合形成可搶占式最高優先順序演算法和不可搶占式最高優先順序演算法。 

2.4 多級佇列反饋法:

幾種排程演算法的結合形式多級佇列方式。 

3 空閒分割槽分配演算法

3.1 首先適應演算法:

當接到記憶體申請時,查詢分割槽說明表,找到第乙個滿足申請長度的空閒區,將其分割並分配。此演算法簡單,可以快速做出分配決定。 

3.2 最佳適應演算法:

當接到記憶體申請時,查詢分割槽說明表,找到第乙個能滿足申請長度的最小空閒區,將其進行分割並分配。此演算法最節約空間,因為它盡量不分割到大的空閒區,其缺點是可能會形成很多很小的空閒分割槽,稱為「碎片」。 

3.3 最壞適應演算法:

當接到記憶體申請時,查詢分割槽說明表,找到能滿足申請要求的最大的空閒區。該演算法的優點是避免形成碎片,而缺點是分割了大的空閒區後,在遇到較大的程式申請記憶體時,無法滿足的可能性較大。 

4 虛擬頁式儲存管理中的頁面置換演算法

4.1 理想頁面置換演算法(opt):

這是一種理想的演算法,在實際中不可能實現。該演算法的思想是:發生缺頁時,選擇以後永不使用或在最長時間內不再被訪問的記憶體頁面予以淘汰。 

4.2 先進先出頁面置換演算法(fifo):

選擇最先進入記憶體的頁面予以淘汰。 

4.3 最近最久未使用演算法(lru):

選擇在最近一段時間內最久沒有使用過的頁,把它淘汰。 

4.4 少使用演算法(lfu):

選擇到當前時間為止被訪問次數最少的頁轉換。 

5 磁碟排程

5.1 先來先服務(fcfs):

是按請求訪問者的先後次序啟動磁碟驅動器,而不考慮它們要訪問的物理位置。 

5.2 最短尋道時間優先(sstf):

讓離當前磁軌最近的請求訪問者啟動磁碟驅動器,即是讓查詢時間最短的那個作業先執行,而不考慮請求訪問者到來的先後次序,這樣就克服了先來先服務排程演算法中磁臂移動過大的問題。 

5.3 掃瞄演算法(scan)或電梯排程演算法:

總是從磁臂當前位置開始,沿磁臂的移動方向去選擇離當前磁臂最近的那個柱面的訪問者。如果沿磁臂的方向無請求訪問時,就改變磁臂的移動方向。在這種排程方法下磁臂的移動類似於電梯的排程,所以它也稱為電梯排程演算法。 

5.4 迴圈掃瞄演算法(cscan):

迴圈掃瞄排程演算法是在掃瞄演算法的基礎上改進的。磁臂改為單項移動,由外向裡。當前位置開始沿磁臂的移動方向去選擇離當前磁臂最近的哪個柱面的訪問者。如果沿磁臂的方向無請求訪問時,再回到最外,訪問柱面號最小的作業請求。

作業系統常用排程演算法

在作業系統中存在多種排程演算法,其中有的排程演算法適用於作業排程,有的排程演算法適用於程序排程,有的排程演算法兩者都適用。下面介紹幾種常用的排程演算法。fcfs排程演算法是一種最簡單的排程演算法,該排程演算法既可以用於作業排程也可以用於程序排程。在作業排程中,演算法每次從後備作業佇列中選擇最先進入該...

作業系統排程演算法

include include include include using namespace std const int maxnum 101 typedef struct information node struct node1 此結構體用於優先順序演算法的搶占式 int priority i...

作業系統排程演算法

在作業系統中存在多種排程演算法,其中有的排程演算法適用於作業排程,有的排程演算法適用於程序排程,有的排程演算法兩者都適用。下面介紹幾種常用的排程演算法。fcfs排程演算法是一種最簡單的排程演算法,該排程演算法既可以用於作業排程也可以用於程序排程。在作業排程中,演算法每次從後備作業佇列中選擇最先進入該...