1 / 27

Operation System Chapter 5

Operation System Chapter 5. 中央處理器的排班. 排程. 為何要排程 (Scheduling)? 避免 CPU 浪費時間等待 許多 processes 同時存放在記憶體中,當某個 process 在等待的狀態時, OS 就把 CPU 的資源交給其他 process 使用。. CPU 排程. 一旦 CPU 閒置,作業系統必須從就緒佇列之中選出其中一個行程來執行。選取行程是由短程排班程式 (short-term scheduler) (或 CPU 排班程式)來執行。 排班程式自記憶體之中準備要執行的數個行程選出一個,並將 CPU 配置給它。

emmett
Download Presentation

Operation System Chapter 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operation SystemChapter 5 中央處理器的排班

  2. 排程 • 為何要排程(Scheduling)? • 避免CPU浪費時間等待 • 許多processes同時存放在記憶體中,當某個process在等待的狀態時,OS就把CPU的資源交給其他process使用。

  3. CPU排程 • 一旦CPU閒置,作業系統必須從就緒佇列之中選出其中一個行程來執行。選取行程是由短程排班程式(short-term scheduler)(或CPU排班程式)來執行。 • 排班程式自記憶體之中準備要執行的數個行程選出一個,並將CPU配置給它。 • 多元程式規劃系統的主要目的,就是要隨時保有一個行程在執行,藉以提高CPU使用率。

  4. CPU-I/O 分割週期 • 行程的執行是由CPU執行時間及I/O等待時間所組成的週期(cycle)。行程在這兩者之間交替往返 CPU分割 I/O分割 CPU分割 I/O分割 CPU分割 I/O分割

  5. CPU分割時間的統計圖 出現次數 時間長度(毫秒)

  6. CPU 排班程式 • CPU 排班的決策發生在下面四種情況: 1.當一行程從執行狀態轉變成等待狀態時. 2.當一行程從執行狀態轉變成就緒狀態時. 3.當一行程從等待狀態轉變成就緒狀態時. 4.當一行程終止時. • 排班只發生在情況1和4時,稱這種排班方法為不可搶先(nonpreemtive). • 否則就稱為可搶先(preemtive).

  7. 不可搶先vs.可搶先 • 在不可搶先排班之下,一旦CPU配置給一個行程,此行程就一直保有CPU資源,直到終止或等待狀態方可釋放出CPU。MS. Windows環境就是使用此種。 • 可搶先排班比上者好,但是需要特殊的OS核心設計,避免數個資料共享的行程因排程而造成混亂;UNIX或Linux皆是此種。

  8. 分派程式 • OS中CPU排班功能所包含的另外一個元件就是分派程式(dispatcher),分派程式就是將CPU控制權交給其他行程時所採用的模組,這個功能包括: • 轉換內容 • 轉換成使用者模式 • 跳越到使用者程式的適當位置以便重新開啟程式

  9. 排程原則 • CPU使用率:要使CPU盡可能地忙碌 • 產量(throughput):衡量產量的標準以每單位時間所完成的行程數 • 回復時間(turnaround time):從行程進入電腦,一植到它完成並離開的這段時間 • 等候時間(waiting time):總計影響一個行程在就緒佇列等候時間 • 反應時間(response time):從提出一個要求到第一個反應出現的時間

  10. 最佳排程的原則 • 1.Max CPU utilization • 2.Max throughput • 3.Min turnaround time • 4.Min waiting time • 5.Min response time

  11. 排程法 • 先來先做(First-Come, First-Served, FCFS) • 最短的工作先做(Shortest-Job-First, SJF ) • 優先權(Priority) • 依序循環(Round-robin, RR) • 多層佇列(multilevel) • 多層回饋佇列(multilevel feedback)

  12. P1 P2 P3 0 24 27 30 先來先做之排班方法 (FCFS) • 例子: 行程P1P2P3 分割時間24 3 3 如果行程到達的順序是: P1 , P2 , P3, 並且以FCFS順序來服務,,待到的結果用以下的圖示 • 等待時間: P1 = 0; P2 = 24; P3 = 27 • 平均等待時間: (0 + 24 + 27)/3 = 17

  13. 先來先做排班 (Cont.) 如果行程到達的次序是 P2 , P3 , P1 . • 那麼以下的行程圖就表現出另一種結果: • 等待時間是 P1 = 6;P2 = 0; P3 = 3 • 平均等待間: (6 + 0 + 3)/3 = 3 • 當所有其他的行程都在等待一個大行程(如P1 )離開CPU時候.就產生所謂的護送現象(convoy effect),如果比較短的行程可以先做,裝置將可以獲得更高的使用率. P2 P3 P1 0 3 6 30

  14. 最短的工作先做之排班方法 (SJR) • SJF ---可以證明是證明是最理想的,採用這種方式我們將可以得到一組行程的最小平均等待間.

  15. 不可搶先最短的工作先做之排班 行程到達時間分割時間P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • SJF (不可搶先) • 平均等待時間 = (0 + 6 + 3 + 7)/4 = 4 P3 P2 P4 P1 0 3 7 8 12 16

  16. 可搶先的最短的工作先做之排班 行 程到達時間分割時間 P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • SJF (可搶先) • 平均等待時間 = (9 + 1 + 0 +2)/4 = 3 P1 P2 P3 P2 P4 P1 11 16 0 2 4 5 7

  17. 優先權排班 • 它會先考慮行程的優先先順序 • 以五個行程佇列為例 • 平均等待時間為8.2毫秒

  18. 依序循環排班 (RR) • 所謂依序指的是FCFS,循環意味著每個行程只給固定時間輪流執行;以下圖為例,我們以4毫秒為一個週期,則平均等待時間為 • (4+7+(10-4))/3=5.66毫秒

  19. P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 Example: RR with Time Quantum = 20 行程分割時間 P1 53 P2 17 P3 68 P4 24 • 請畫畫看行程圖的結果為何? 0 20 37 57 77 97 117 121 134 154 162

  20. 參考文獻 • Silberschatz, A., Baer, G., Gagne, G. (2002), Operating system concepts, 6th ed., John Wiley & Sons.

  21. CPU排班演算法練習

  22. 先來先做(FCFS) P1 P2 P3 P4 0 8 12 21 26 平均回復時間:P1  8 – 0 = 8 P2  12 – 1 = 11 P3  21 – 2 = 19 P4  26 – 3 = 23 (8+11+19+23) / 4 = 15.25 資料轉換次數:3次

  23. 最短的工作先做(SJF)不可搶先 P1 P2 P4 P3 0 8 12 17 26 平均回復時間:P1  8 – 0 = 8 P2  12 – 1 = 11 P3  26 – 2 = 24 P4  17 – 3 = 14 (8+11+24+14) / 4 = 14.25 資料轉換次數:3次

  24. 最短的工作先做(SJF)可搶先 P1 P2 P4 P1 P3 0 1 5 10 17 26 平均回復時間:P1  17 – 0 = 17 P2  5 – 1 = 4 P3  26 – 2 = 24 P4  10 – 3 = 7 (17+4+24+7) / 4 = 13 資料轉換次數:4次

  25. 優先權排班(Priority)不可搶先 P1 P2 P4 P3 0 8 12 17 26 平均回復時間:P1  8 – 0 = 8 P2  12 – 1 = 11 P3  26 – 2 = 24 P4  17 – 3 = 14 (8+11+24+14) / 4 = 14.25 資料轉換次數:3次

  26. 優先權排班(Priority)可搶先 P1 P2 P4 P1 P3 0 1 5 10 17 26 平均回復時間:P1  17 – 0 = 17 P2  5 – 1 = 4 P3  26 – 2 = 24 P4  10 – 3 = 7 (17+4+24+7) / 4 = 13 資料轉換次數:4次

  27. 依序循環(Round-Robin)time slice=2 P1 P2 P3 P4 P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 2 4 6 8 10 12 14 16 18 20 21 23 25 26 平均回復時間:P1  23 – 0 = 23 P2  12 – 1 = 11 P3  26 – 2 = 24 P4  21 – 3 = 18 (23+11+24+18) / 4 = 19 資料轉換次數:12次

More Related