cpu排程是多道程式設計的基礎。本文是對作業系統概念(第七版)第五章——cpu排程的學習總結,不足之處歡迎各位博友提出,共同進步。
1、介紹cpu排程常見概念。
2、介紹cpu排程演算法以及特點。
(1)cpu排程決策發生的情況:
a、當乙個程序從執行態到等待狀態。(i/o請求)
b、執行狀態到就緒態(中斷)
c、等待狀態到執行態
d、乙個程序終止
其中a,d是非搶占的,b,c是搶占的。
(2)排程準則
a、cpu使用率
b、吞吐量(單位時間內可以完成的程序數量)
c、周轉時間(程序提交到完成所需要的總時間)
d、等待時間(程序在就緒佇列中等待所花費的總時間)
e、響應時間(提交請求到第一響應的時間(開始響應))
(3)排程演算法
a、先到先服務排程(fcfs)
缺點:平均等待時間通常比較長。
特點:非搶占的。
b、最短作業優先排程(sjf)
解決:近似sjf排程:t(n+1)=ax(n)+t(n),x(n)為第n個區間cpu的長度。
c、優先順序排程
特點:可搶占,可非搶占。
問題:無窮阻塞/飢餓,即優先順序低的可能一直得不到cpu
解決:老化技術,隨著時間優先順序提高。
d、輪轉法排程(rr)
特點:分配時間片,是可搶占的(執行時間超過時間片,則被搶占)
缺點:平均等待時間較長。
e、多級佇列排程
特點:多個佇列,每個佇列的優先順序不同,並且在不同的佇列可以採用不同的排程演算法。
缺點:程序無法在不同的佇列中進行移動。
f、多級反饋佇列排程
特點:程序無法在不同的佇列中進行移動,這是最通用的排程演算法,但也最複雜。
(4)多處理器排程
a、非對稱多處理,(由乙個處理器處理所有的排程等)
b、對此多處理(smp),每個處理器自我排程。
(5)處理器親和性
本質就是努力是乙個程序在乙個處理器中執行,而不在處理器之間進行移動。
原因:移動之後得重新建立快取,時間開銷大。
(6)負載平衡
目標:是cpu能夠平衡利用,不會導致某個cpu負載過重,而另外的空閒。
兩種方法:push migration和pull migration.
負載平衡和處理器親和性是衝突的。
(7)對稱多執行緒(超執行緒)
思路:將乙個物理處理器分成多個邏輯處理器,超執行緒是基於硬體而不是軟體的,每個邏輯處理器有自己的架構狀態。
作業系統 CPU排程
控制 協調多個程序對cpu的競爭 即按一定的排程演算法從就緒佇列中選擇乙個程序,把cpu的使用權交給被選中的程序 n個程序就緒,等待上m m 1 個cpu執行,需要決策哪個程序分配給哪個cpu執行 排程時機 核心對中斷 異常 系統呼叫處理後返回使用者態時 就緒佇列的改變引發重新排程 如程序正常終止 ...
作業系統 CPU排程(一)
cpu排程室多道程式作業系統的基礎。通過在程序之間切換cpu,作業系統可以提高計算機的生產效率。接下來會展示多個不同cpu的排程演算法。還要闡述為特定系統選擇演算法的問題。多道程式設計的 目標是在任何時候都有乙個程序在執行,以使cpu使用了最大化。在單處理器系統中,每次允許乙個程序執行 任何其他程序...
作業系統 (八 CPU排程
目錄 1.背景,cpu排程 在程序 執行緒生命週期的什麼時候進行排程?核心執行排程程式的條件 滿足其一即可 cpu排程方式,是否搶占 核心態 使用者態 2 排程原則 2.1 排程策略 2.2 程式執行模型 2.3 比較排程演算法的準則 2.4 吞吐量 vs 延遲 2.5 公平的目標 3 排程演算法 ...