Presentation is loading. Please wait.

Presentation is loading. Please wait.

第五章 CPU Scheduling 基本觀念 排程標準(Scheduling Criteria )

Similar presentations


Presentation on theme: "第五章 CPU Scheduling 基本觀念 排程標準(Scheduling Criteria )"— Presentation transcript:

1 第五章 CPU Scheduling 基本觀念 排程標準(Scheduling Criteria )
排程演算法(Scheduling Algorithms) 多處理器的排程(Multiple-Processor Scheduling) 即時排程(Real-Time Scheduling) 演算法評估(Algorithm Evaluation) Operating System Concepts

2 基本觀念 CPU排程是為了讓CPU的使用率(CPU utilization) 變高以獲致多程式(multiprogramming)化目標multiprogramming 多元程式規劃系統的主要目的,就是要隨時保有一個行程在執行,藉以提高CPU使用率。 行程的執行是由CPU執行時間及I/O等待時間所組成的週期 (cycle)。行程在這兩個狀態之間交替往返。 CPU burst(分割)的分佈(distribution) 行程執行由一個CPU分割 (CPU burst)開始。跟著是一個I/O分割 (1/O burst),然後再由另外一個CPU分割跟著,再來又是另一個I/O分割。 Operating System Concepts

3 CPU And I/O Bursts的變換程序
Operating System Concepts

4 CPU-burst 的發生時間頻率柱狀圖(histogram)
Operating System Concepts

5 CPU 排班器 從記憶體中的眾多正等待被執行的行程中挑選一個出來,配置CPU來執行. CPU排程要做選擇的時間點都發生在以下的狀況
行程由執行(running)切換到等待(wait)的狀態.—I/O 行程由執行(running)的狀態切換到就緒(ready)的狀態—中斷. 行程由等待(wait)的狀態切換到就緒(ready)的狀態Switches from waiting to ready. 結束(terminate). 上述的1,4排程是無優先權(non-preemptive,不可搶先). 2,3的排程是可以被搶先的(preemptive). Operating System Concepts

6 分派程式(Dispatcher) 分派程式是一個程式模組,它將CPU控制權交給由短程排班者所選出的行程,其中牽涉到
switching context 切換到使用者模式 能正確的到使用者程式中的正確位址開始執行程式 分派潛伏期(Dispatch latency) 從停止一個行程的執行到啟動另一個行程執行所花去的時間. 一個系統中若只有行程主動放棄執行權時才會進行重新排程的話,則這個系統的排程方法為不可搶先的,反之,稱為可搶先的。 Operating System Concepts

7 排程標準 CPU使用率: 我們要使CPU盡可能地忙碌。原則上它的使用率可以從 0個 百分比到 100個百分比。而在實際的系統異,它的使用率應該是 40%(負荷 較輕的系統)到 90%(負荷較重的系統)的擴化範圍。 產量 (throughput): 如果CPU是忙碌地執行行程,那麼工作就可以不斷地進 行。其中有一種衡量工作量的標準,就是用每單位時間所完成的行程數來計 算,稱為產量。對長的行程而言,可能一個鐘頭只完成一個,但是對短的行程 而言,則產量可能多到每秒鐘完成十個。 回復時間 (turnaround time): 對某一個特定行程而言,我們所開心的是這個行 程到底需要多少時間才能完成。從行程進入電腦,一直到該行程完成並且離開 電腦,這整段時間稱為回復時問。回復時間是進入等待主記憶體、在就緒佇 列等待,以及 CPU執行和執行輸出/入動作等時間的總和。 等候時間 (waiting time): CPU排班的法則,對於實際執行一個行程所需的 時間,而輸出入動作的次數並沒有任何的影響。它只會影響一個行程在就緒佇列等待的時間。等候時問是在就緒佇列中等待所花費週期的總和。 反應時間(response time):在交談式系統之中,行程的回復時間有時候並不是 主要的衡量標準。通常行程可能很快地產生一個輸出結果,並且不等輸出結束就繼續計算下一個結果。因此另一個衡量的標準就是以提出一個要求到第一個反應出現的時間間隔來計算,這就是所謂反應時問。 Operating System Concepts

8 最佳化標準 最大CPU使用率 最大產量(throughput) 最短回覆時間(turnaround time)
最短等待時間(waiting time) 最短反應時間(response time)之變異數 Operating System Concepts

9 排程方法 一個排程方法決定就緒佇列中那一個行程可以使用 CPU 資源。 常見的排程方法有: 先到先做排程 最短工作優先排程 優先權排程
循環分時排程 多層佇列排程 多層反饋佇列排程 Operating System Concepts

10 先到先做排程 先到先做(FCFS)為最簡單的不可搶先排程法。 根據行程要求使用 CPU 的順序,來取得 CPU 的使用權。
所產生的平均等待時間經常都很長。 使用先到先做排程法時,若系統中存在一個 CPU 分割時間很長的行程時,則會產生護送現象(convoy)。 Operating System Concepts

11 先來先做(FCFS)排程法 Process Burst Time P1 24 P2 3 P3 3
這樣排程的甘特圖(Gantt Charts): 各行程的等待時間是P1 = 0; P2 = 24; P3 = 27 平均等待時間是: ( )/3 = 17 P1 P2 P3 24 27 30 Operating System Concepts

12 先來先做(FCFS)排程法(Cont.) 如果行程的順序換成 P2 , P3 , P1 . 這樣排程的Gantt chart 是:
平均等待時間是( )/3 = 3 比前面的例子好很多 有護送效應(convoy effect), 必須讓前面的一個可能要花去很長CPU執行時間的行程先完成, 後面的短行程才可以有機會執行. P1 P3 P2 6 3 30 Operating System Concepts

13 最短工作優先 (SJF) 排程法 每一個行程都有附屬它下一次CPU burst長度的資訊. 排程會找出這些行程中的最短的CPU burst長度來讓它獲得CPU執行. 有兩種機制: 無搶先(nonpreemptive) 一旦CPU配置給一個行程後, 這個行程就不能被其他短行程插斷, 一直要到它CPU burst結束. 可搶先(preemptive) 一個新的行程的CPU burst長度比現在執行中的行程所剩下的CPU burst長度來得短, 執行中的行程可以被插斷讓新的行程執行執行(preempt). 這個機制就是所謂的最短剩餘時間優先排程法(Shortest-Remaining-Time-First, SRTF). SJF是最佳化的排程法 在一個被排程的行程集合中它擁有最短平均等待時間. Operating System Concepts

14 不可搶先執行的 SJF範例 Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4
SJF (non-preemptive) Average waiting time = ( )/4 =4 P1 P3 P2 7 3 16 P4 8 12 Operating System Concepts

15 可搶先執行的 SJF範例 Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4
SJF (preemptive) Average waiting time = ( )/4 =3 P1 P3 P2 4 2 11 P4 5 7 16 Operating System Concepts

16 下一個CPU burst長度的預估 Operating System Concepts

17 具有優先權的排程法 每個行程具有一個整數值的優先權號碼 CPU會配置給最高優先權的行程 (通常是最小號碼具有最高優先權).
Preemptive nonpreemptive SJF可以看成是一個以預測的下一個CPU burst長度為優先權的優先權排程法. 可能出現的問題是飢餓的現象(Starvation) 低優先權的行程可能永遠無法執行. 解決方案是老化(Aging) 當每一段時間過去後去增加該行程的的優先權. Operating System Concepts

18 優先權排程 (續) 使用不可搶先的優先權排程 優先權數值愈小代表優先權愈高 行程 CPU 分割時間(毫秒) 優先權 P1 6 2
5 9 15 18 25 平均等待時間:( )/ 5 = 9.4毫秒 Operating System Concepts

19 知更鳥式循環排序法(Round Robin,RR)
特別為了分時作業系統而設計的,這種排班方法和FCFS排班法相類似,但是加入可搶先的規則以便試行程互相交換使用CPU。我們定義一個小的時間單位,稱為一個時間量(time quantum或是時間片段time slice)。 假使有n個行程在ready queue而所分配到的時間量是 q,所以每個行程會以最多是一次q時間的區段分到1/n的CPU time.沒有行程會等到超過 (n-1)q時間. 效能 q值大時  FIFO q值小時  在考慮context switch的消耗時間下,q值必須夠大,不然context switch的時間會造成系統太大負擔. 使用 RR 排程法最重要的一點就是定義時間量的長短。一般的經驗法則是 80% 行程的 CPU 分割時間應該要比一個時間量要來得短。 Operating System Concepts

20 當時間量是20的知更鳥循環排程法的範例 Process Burst Time P1 53 P2 17 P3 68 P4 24
The Gantt chart is: 一般來說, 比SJF有較高的平均回覆時間(turnaround than SJF), 但它的反應時間比較好. P1 P2 P3 P4 20 37 57 77 97 117 121 134 154 162 Operating System Concepts

21 時間量及Context Switch 時間 Operating System Concepts

22 時間量的不同對於回覆時間(Turnaround Time)的影響
Operating System Concepts

23 多層佇列(multi-level feedback queue)排程
Ready queue被分成不同類別的queues: 前景, foreground (interactive) 背景,background (batch) 每一個queue有自己的排程演算法 foreground – RR background – FCFS 必須考慮queue之間的排程. 固定優先權排程(Fixed priority scheduling) 先服務前景行程, 然後是背景行程 有可會造成starvation. 時間切塊(time slice) 每一個queue會獲得固定大小的CPU時間, 這段時間每個queue可以排程自己所有的行程 例如80%CPU時間給前景queue以RR來排程, 20% 給背景queue以FCFS排程 Operating System Concepts

24 多層佇列排程 Operating System Concepts

25 多層回饋佇列(multi-level feedback queue)
aging 可以以這樣的方式製作. 能避免飢餓的現象發生。 多層回饋佇列排班器可以下列參數來定義: queues的個數 每個queue的排程演算法 決定要提升某個行程到另外一個queue的方法 決定要外放某個行程到另外一個queue的方法 當一個行程需要服務時, 決定它要放到哪一個queue的方法 Operating System Concepts

26 多層次迴授佇列排程範例 三個queue: 排程方法 Q0 – time quantum 8 milliseconds
Q2 – FCFS 排程方法 一個工作會以先來先做的方式進入Q0,當它獲得CPU執行時, 會有8 milliseconds執行時間.假使無法在 8 milliseconds完成,工作會移到Q1. 仍然以先來先做的方式進入Q1然後可獲得另外16 milliseconds的CPU執行時間.假使仍然無法在時間內完成,工作會被中斷然後移入Q2. Operating System Concepts

27 Multilevel Feedback Queues
Operating System Concepts

28 多處理器排程(Multiple-Processor Scheduling)
方法之一是擁有所有的排班決定、I/O處理和由一個單一處理器處理 (主機伺服器)。其它處理器只有執行使用者程式碼。非對稱多元處理 (asymmetric multiprocessing)比對稱式的多處理器簡單,因為只有一個虛理器存取系統資料,減少對資料共享的需要。 第二種方法使用對稱多元處理(symmetric multiprocessing,SMP),每個處理器自行排班。所有處理器可能在一個普通準備好的佇列中,或每一個處理器在準備好行程有它自己私人佇列。不管如何,排班開始時,由每一個處理器的排班程式來檢查準備好的佇列並且選擇一個行程來執行。 Operating System Concepts

29 執行緒排班 競爭範圍 在使用者層次和核心層次的執行緒間有一項差別,是在於它們如何被排班。在製作多對一和多對多模式的系統上,執行緒庫(thread library)排班使用者層次的執行緒在可取得的LWP上執行,這種技巧稱為行程競爭範圍(Process-contention scope, PCS),因為CPU的競爭發生在屬於相同行程的執行緒。 當我們說執行緒庫排班使用者執行緒到可用的LWP上時,並不是指執行緒正在某一個CPU上執行;這必須要作業系統排班核心執行緒在實體的CPU上執行。 Operating System Concepts

30 執行緒排班 Pthread的排班 在製作多對多模式的系統上,PTHREAD_SCOPE_PROCESS策略地排班使用者的執行緒在可用的LWPs。LWPs的數目是由執行緒庫維持,或許使用排班程式活化作用。 在多對多的系統上,PTHREAD_SCOPE_SYSTEM的排班策略將產生和連結一個LWP給每一個使用層次執行緒,使用一對一策略有效地對映執行緒。 Operating System Concepts

31 Solaris 排班 Operating System Concepts

32 Operating System Concepts

33 Linux Operating System Concepts

34 Windows 2000 的優先權 Operating System Concepts

35 排程演算法的評估 確認可行的模型(Deterministic modeling) 等候理論模型(Queueing models)
找一個特定但可確認可行的行程工作量(workload) 來決定在那個工作量下的每一個行程演算法的效能. 等候理論模型(Queueing models) 實做(Implementation) Operating System Concepts

36 經由模擬所獲得的CPU排程的評估結果 Operating System Concepts

37 期中考模擬考題 Operating System Concepts


Download ppt "第五章 CPU Scheduling 基本觀念 排程標準(Scheduling Criteria )"

Similar presentations


Ads by Google