《現代作業系統 中文第三版》讀書筆記之 排程演算法

2021-06-27 11:58:11 字數 2050 閱讀 7254

在單cup計算機系統處理多道程式時,通常就會有多個程序或執行緒同時競爭cpu。只要有兩個或者更多的程序處於就緒狀態,這種競爭就會發生。此時必須選擇下乙個要執行的程序占領cpu。在作業系統中,完成選擇工作的這一部分稱為排程程式(scheduler),該程式使用的演算法稱為排程演算法。

2.4.2排程演算法分類

不同的環境需要不同的排程演算法,這裡劃分三種環境:

1)批處理。

2)互動式。

3)實時。

1.非搶占式演算法:挑選乙個程序,然後讓該程序執行直至被阻塞,或者讓該程序自動釋放cpu。即使該程序執行了很長一段時間,也不會被強制掛起。在批處理系統中該演算法廣為適用,減少了程序的切換,改善了效能。

2.強佔式演算法:挑選乙個程序,並且讓該程序執行某個固定時段的最大值;如果在該時段結束時該程序仍在執行,它就被掛起,由排程程式挑選另乙個程序執行。互動式系統中普遍適用。

如果早就緒的程序排在就緒佇列的前面,遲就緒的程序排在就緒佇列的後面,那麼先來先服務(fcfs: first come first service)總是把當前處於就緒佇列之首的那個程序排程到執行狀態。

也就說,它只考慮程序進入就緒佇列的先後,而不考慮它的下乙個cpu週期的長短及其他因素。fcfs演算法簡單易行,但效能卻不大好。比較有利於長作業,而不利於短作業。有利於cpu繁忙的作業,而不利於i/o繁忙的作業。

又稱為「短程序優先」spn(shortest process next);這是對fcfs演算法的改進,其目標是減少平均周轉時間。對預計執行時間短的作業(程序)優先分派處理機。通常後來的短作業不搶先正在執行的作業。

(1) 優點:

比fcfs改善平均周轉時間和平均帶權周轉時間,縮短作業的等待時間;提高系統的吞吐量;

(2) 缺點:

對長作業非常不利,可能長時間得不到執行;未能依據作業的緊迫程度來劃分執行的優先順序;難以準確估計作業(程序)的執行時間,從而影響排程效能。

最短剩餘時間優先srt(shortest remaining time)

允許比當前程序剩餘時間更短的程序來搶占,屬於搶占式演算法。

最高響應比優先hrrn(highest response ratio next)

響應比r = (等待時間 + 要求執行時間) / 要求執行時間,是fcfs和sjf的折衷

將系統中所有的就緒程序按照fcfs原則,排成乙個佇列。每次排程時將cpu分派給隊首程序,讓其執行乙個時間片。時間片的長度從幾個ms到幾百ms。在乙個時間片結束時,發生中斷。排程程式據此暫停當前程序的執行,將其送到就緒佇列的末尾,並通過上下文切換執行當前的隊首程序。程序可以未使用完乙個時間片,就出讓cpu(如阻塞)。就緒程序的數目:數目越多,時間片越小

系統的處理能力:應當使使用者輸入通常在乙個時間片內能處理完,否則使響應時間,平均周轉時間和平均帶權周轉時間延長。

設定多個就緒佇列,分別賦予不同的優先順序,如逐級降低,佇列1的優先順序最高。每個佇列執行時間片的長度也不同,規定優先順序越低則時間片越長,如逐級加倍。新程序進入記憶體後,先投入佇列1的末尾,按fcfs演算法排程;若按佇列1乙個時間片未能執行完,則降低投入到佇列2的末尾,同樣按fcfs演算法排程;

如此下去,降低到最後的佇列,則按「時間片輪轉」演算法排程直到完成。僅當較高優先順序的隊列為空,才排程較低優先順序的佇列中的程序執行。如果程序執行時有新程序進入較高優先順序的佇列,則搶先執行新程序,並把被搶先的程序投入原佇列的末尾。

優點:為提高系統吞吐量和縮短平均周轉時間而照顧短程序。為獲得較好的i/o裝置利用率和縮短響應時間而照顧i/o型程序。不必估計程序的執行時間,動態調節

說明:i/o型程序:讓其進入最高優先順序佇列,以及時響應i/o互動。通常執行乙個小時間片,要求可處理完一次i/o請求的資料,然後轉入到阻塞佇列。

計算型程序:每次都執行完時間片,進入更低階佇列。最終採用最大時間片來執行,減少排程次數。

i/o次數不多,而主要是cpu處理的程序。

在i/o完成後,放回優先i/o請求時離開的佇列,以免每次都回到最高優先順序佇列後再逐次下降。

為適應乙個程序在不同時間段的執行特點,i/o完成時,提高優先順序;時間片用完時,降低優先順序。

優先順序演算法(priority scheduling)是多級佇列演算法的改進,平衡各程序對響應時間的要求。適用於作業排程和程序排程,可分成搶先式和非搶先式。

C Primer 第三版 讀書筆記

前言 c primer 第三版這本書還是去年做window mobile 6開發時看完的,看完後做了一些筆記到本子後就沒管了。今天偶爾翻出來趕緊寫一篇文章備份一下,據說每次重讀這本書都有新的收穫,正所謂溫故而知新,可見這本書之經典。宣告 農民伯伯 正文 1.如果乙個變數是在全域性定義的,系統會保證給...

C Primer 第三版 讀書筆記

前言 c primer 第三版這本書還是去年做window mobile 6開發時看完的,看完後做了一些筆記到本子後就沒管了。今天偶爾翻出來趕緊寫一篇文章備份一下,據說每次重讀這本書都有新的收穫,正所謂溫故而知新,可見這本書之經典。宣告 農民伯伯 正文 1.如果乙個變數是在全域性定義的,系統會保證給...

C Primer 第三版 讀書筆記

前言 c primer 第三版這本書還是去年做window mobile 6開發時看完的,看完後做了一些筆記到本子後就沒管了。今天偶爾翻出來趕緊寫一篇文章備份一下,據說每次重讀這本書都有新的收穫,正所謂溫故而知新,可見這本書之經典。宣告 農民伯伯 正文 1.如果乙個變數是在全域性定義的,系統會保證給...