排程演算法小結

2021-08-25 08:36:34 字數 2291 閱讀 7893

作業系統全部的排程演算法主要包括:批處理作業排程演算法、程序排程、空閒分割槽分配演算法、虛擬頁式儲存管理中的頁面置換演算法、磁碟排程。

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

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

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

(3)hrf 最高響應比優先演算法

(4)hpf 優先順序排程演算法

(5)均衡排程演算法(多級佇列排程演算法)

2、程序排程

(1)fifo 先來先服務排程演算法(非剝奪)

顧名思義,按到達的先後順序來執行進行排程

缺點:短作業等待時間過長;不利於i/o程序,無法有效利用系統資源;

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

是fifo+優先順序佇列後的新的排程演算法,預期處理時間比較短的程序優先分配資源進行處理;

缺點:預期執行時間,這個很難**;

對長程序不公平;

非剝奪式的,不適合分時、實時系統

(3)rr 時間片輪轉演算法(剝奪式)

按程序到達的先後順序,放入待處理的佇列中,然後給首個程序分配cpu時間片,時間片用完後暫停該程序,轉入就緒佇列中,然後開始下乙個程序的排程。

缺點:受時間片大小的影響;

當時間片短時,程序切換較為頻繁,會增加額外的系統開銷,降低處理機的效率;時間片過長,無法滿足互動式使用者對響應時間的要求。

(4)hrf 最高響應比優先演算法

它是動態優先順序的排程演算法(執行期間優先順序動態改變)

優先順序改變策略:剩餘時間短的程序優先順序高、響應比高的程序優先順序高;

響應比計算公式:r=(w+s)/s=w/s+1

w:表示等待的時間;

s:表示預期執行的時間;

所以,等待時間越長、預期執行時間越短的程序優先順序比較高。

(5)多級反饋佇列排程演算法

優先順序+fcfs+時間片的融合排程演算法,所以它是目前比較好的排程演算法。

- 首先設定多個就緒佇列並為每個就緒佇列設定不同的優先順序,優先順序越高的佇列分配的時間片越短;

- 優先順序高的佇列先執行,佇列內的程序按照fcfs的順序執行,未完的程序放到下乙個佇列的尾部等待排程;

- 依次重複上述過程,直至全部執行完成。

3、空閒分割槽分配演算法

(1)首次適應演算法

空閒分割槽以位址遞增的方式鏈結,按照順序往下,找到分割槽大小滿足要求的第乙個空閒分割槽。

(2)下次適應演算法

在first fit基礎上,從上次搜尋結束為止開始搜尋。

(3)最佳適應演算法

空閒分割槽按照容量遞增形成分割槽鏈,找到第乙個能夠滿足要求的空閒分割槽,此時分配是的容量是最合適的,稱為最佳適應演算法。

(4)最壞適應演算法

與最佳適應演算法容量鏈結順序剛好相反,容量是從大到小進行的,找到第乙個能夠滿足要求的空閒分割槽,此時挑選的是最大容量的分割槽,利用率不夠高,稱為最壞適應演算法。

4、頁面置換演算法

(1)opt 理想頁式置換演算法(最佳置換演算法)

將未來最長時間不會被訪問的頁面置換出去。

(2)fifo 先進先出演算法

每次置換出去的都是最早調入的頁面。

缺點:沒有考慮頁面的使用頻率,會導致頻繁的進行頁面置換,帶來不必要的開銷。

(3)lru 最近最久未使用

首先頁面需要設定乙個訪問位(記錄頁面上一次被訪問到現在的時間),選擇出時間最大的頁面置換出去。

(4)lfu 最少使用演算法

同樣地,頁面設定乙個訪問位,記錄每個頁面訪問次數,每次將訪問次數最小的頁面置換出去。

(5)clock置換演算法(最近未使用演算法nru)

首先,頁面設定乙個訪問位,同時鏈結成乙個環路,當頁面被訪問時設定為1。進行頁面置換時,若當前指標指向的頁面訪問為0,則進行置換,否則將其置為0,直到遇到乙個訪問為0的頁面。

(6)改進型clock

訪問位+修改位。優先選擇訪問位和修改位為0 的頁面,其次是訪問位為0修改位為1的頁面。

訪問位(存在位):表明是否在記憶體中;

修改位:表明自進入到記憶體中是否被修改過;若修改過,需要儲存到外存中,未修改過,從記憶體中移除,新裝入的直接覆蓋,不必儲存到外存中。

5、磁碟排程

(1)fcfs 先來先服務演算法

(2)sstf 最短尋道時間優先

(3)scan 掃瞄演算法/電梯梯度演算法

(4)cscan 迴圈掃瞄演算法

磁碟排程演算法參考:

公式

排程演算法小結

處理機管理的工作是對cpu進行合理的分配使用,以提高處理機利用率,並使各使用者公平地得到處理機資源。cpu可分配的資源是在處理器上的執行時間,分配的途徑是排程。處理機排程的層次 高階排程 低階排程 中級排程 排程演算法就是一種資源分配演算法。有的演算法適用於作業排程,有的演算法適用於程序排程,有的兩...

LVS排程演算法(上) 靜態排程演算法

lvs的排程方法有十幾中,每種方法的排程標準和適用場景不同。大體有兩大類,分別為固定排程方法或稱為靜態排程方法,另一類是動態排程方法。常用的具體演算法有十種。1 輪詢排程 rr 將所有請求平均的分發到每個集群節點上,即輪流排程。2 加權輪詢排程 wrr 由於不同的伺服器效能不同,因此要考慮讓效能高的...

程序排程演算法(程序排程策略)

程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...