單處理器排程

2021-06-14 14:35:34 字數 1920 閱讀 6399

面向使用者:

周轉時間——指乙個程序從提交到完成之間的時間間隔。

響應時間——對於乙個互動程序來說,這是指從提交乙個請求到開始接受響應之間的時間間隔。通常程序處理該請求的同時,就開始給使用者一些輸出。因此從使用者的角度看,相對於周轉時間這是一種更好的度量。

面向處理器:

吞吐量——排程策略應該試圖使得每乙個時間單位完成的程序數目達到最大。(注意這裡的吞吐量與cpu吞吐量的含義不同)

處理器利用率——這是處理器忙的時間百分比。對於昂貴的系統來說這是乙個重要的準則。在單使用者系統和其他的一些系統中,該準則與其他準則相比顯得不太重要。

還用一些不是面向效能的排程準則是:可**性、公平性、強制優先順序、平衡資源。

在選擇排程策略的時候先要選擇決策模式分為不可搶占和搶占策略,與不可搶占策略相比,搶占策略可能會導致較大的開銷,但是可能會對所有程序提供較好的服務。

另外最為基本的策略就是優先順序策略!!

2.1先來先服務(fcfs)

2.2輪轉(搶占)

為了減少在fcfs策略下短作業的不利情況,一種簡單的方法是採用基於時鐘的搶占策略,在這類方法中,最簡單的就是輪轉演算法。

對於輪轉演算法,最主要的設計問題是使用的時間片的長度。如果這個長度設計得比較短,則短作業會相對比較快地通過系統。另一方面,處理時鐘中斷、執行排程和分派函式都需要處理器開銷。因此應避免使用過短的時間片。乙個有用的思想是時間片最好略大於一次典型的互動需要的時間。如果小於這個時間,那麼大多數程序都需要至少兩個時間片。另外,當乙個時間片比執行時間最長的程序還要長時,輪轉演算法退化成fcfs。

輪轉演算法的缺點是,對i/o密集型程序不利,由於同等對待i/o密集型程序和處理器密集型程序,處理器密集型程序會占用大部分處理器時間,從而導致i/o密集型程序效能降低、使用i/o裝置低效、響應時間的變化大。

有一種改進的輪轉演算法,該演算法使得就緒佇列分為兩個,乙個是普通的就緒佇列,乙個是輔助就緒佇列,在輔助就緒佇列中存在的程序都是事件發生後解除阻塞的程序,在輔助佇列中的程序優先於一般就緒佇列中的程序執行。

2.3最短程序優先(spn)(非搶占)

減少fcfs固有的對長程序的偏向的另一種方法是最短程序優先。這個是乙個非搶占的策略,其原則是下一次選擇預計處理時間最短的程序。spn有利於提高吞吐量。

spn的風險在於只要持續不斷地提供更短的程序,長程序可能飢餓。另外一方面,儘管spn減少了對長作業的偏向,但是由於缺少搶占機制,它對分時系統或事務處理環境仍然不理想。

2.4最短剩餘時間(srt)(搶占)

最短剩餘時間是針對spn增加了搶占機制的版本。不過srt依然存在長程序可能飢餓的情況。

2.5最高響應比優先(hrrn)(非搶占)

歸一化周轉時間也可以作為效能度量,考慮下面的表示式r=(w+s)/s,其中r為響應比w為等待處理器的時間,s為預計的服務時間。該策略為選擇最大的r值的程序執行,r的最小值為1,即第乙個進入的程序。這樣在偏向短程序的同時,隨著長程序等待的時間變長,r值增大,也可以獲得處理的機會。

和spn、srt一樣,使用最高響應比(highest response ratio next)策略需要估計服務時間。

2.6反饋(搶占)

如果沒有關於各個程序相對長度的任何資訊則spn、srt和hrrn都不能使用。另一種導致偏向短作業的方法是處罰執行時間較長的作業,換句話說,如果不能獲得剩餘的時間那就關注已經執行了的時間。

方法如下:排程基於搶占原則(按時間片)並且使用動態優先機制,首先有各個級別的就緒佇列,如果程序執行一段時間之後被搶占,那麼放入下一級別的就緒佇列,高階別的就緒佇列中的程序優先於低階別的就緒佇列中的程序執行。這樣的話乙個短程序不會降級太多次就能夠執行完畢。

這個方案可能存在的乙個問題是長程序的周轉時間可能驚人地增加。事實上如果頻繁地有新程序進入系統,可能導致飢餓。為了補償這點,可以按照對列設定不同的搶占時間片,優先順序低的佇列時間片的長度長。

處理器排程

1 cpu排程的相關概念 a.cpu排程 其任務是控制 協調程序對cpu的競爭 即按一定的排程演算法從就緒佇列中選擇乙個程序,把cpu的使用權交給被選中的程序 如果沒有就緒程序,系統會安排乙個系統空閒程序或idle程序 b.cpu要解決的三個問題 cpu排程的時機 就緒佇列的改變引發了重新排程 事件...

處理器排程

處理器排程演算法設計從以下幾個方面著手 資源利用率 吞吐率 公平性 響應時間 周轉時間 截止時間的保證 優先權原則等等。cpu利用率 cpu有效工作時間 cpu總的執行時間 cpu總執行時間 cpu有效工作時間 cpu空閒等待時間 吞吐率 單位時間內cpu處理的作業數 公平性 確保程序不會出現餓死現...

處理器排程

處理器排程的目標是以滿足系統目標 如響應時間 吞吐率 處理器效率 的方法,把程序分配到乙個或多個處理器中執行。處理器排程有三個層次 長程排程 又稱高階排程,作業排程,其決定是否能加入待執行的程序池中 中程排程 又稱中級排程,平衡負載排程,其決定加入部分或全部在記憶體中的程序集合中 短程排程 又稱低階...