1 / 39

作業系統

作業系統. 第五章 CPU 排班. 教學目標. 概觀 排班準則 排班演算法 多處理器的排班 排班演算法的評估. 排班程式. 行程執行模式. CPU 排班啟動的時機. 準備就緒 執行結束 等待某個事件 等待的事件發生 CPU 時間分量結束. 分派程式. 本文切換 由核心模式切回使用者模式 跳到該行程接下來要執行的程式碼,讓行程重新啟動. 準備就緒. 執行結束. 觸發. 選好的下個 執行行程. CPU 排班程式. 分派程式. 等待某個事件. 本文切換. 等待的事件發生. 就緒佇列. 行程開始執行. CPU 時間分量結束.

Download Presentation

作業系統

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. 作業系統 第五章 CPU排班

  2. 教學目標 • 概觀 • 排班準則 • 排班演算法 • 多處理器的排班 • 排班演算法的評估

  3. 排班程式

  4. 行程執行模式

  5. CPU排班啟動的時機 • 準備就緒 • 執行結束 • 等待某個事件 • 等待的事件發生 • CPU時間分量結束

  6. 分派程式 • 本文切換 • 由核心模式切回使用者模式 • 跳到該行程接下來要執行的程式碼,讓行程重新啟動

  7. 準備就緒 執行結束 觸發 選好的下個 執行行程 CPU排班程式 分派程式 等待某個事件 本文切換 等待的事件發生 就緒佇列 行程開始執行 CPU時間分量結束 概觀

  8. 排班的準則 • CPU使用率 • 整體成效 • 行程所需時間 • 等待時間 • 回應時間

  9. 應用範例 • 科學計算 • CPU使用率高的演算法 • 交談式系統 • 回應時間短的演算法 • 一般狀況 • 平均

  10. 排班演算法 • 先來先做 • 最短工作優先 • 優先權 • 循環式 • 多層佇列 • 多層回饋佇列

  11. 先來先做 行程A先到 行程C先到

  12. 最短工作優先 不可搶先 可搶先

  13. 優先權 • 為每個行程指定它的優先權 • 選取下一個要被執行的行程時,是以當時具有最高優先權的行程為第一優先 • 可搶先 v.s.不可搶先 • 潛在問題 • 飢餓 • 可被用來模擬其他種類的排班演算法 • 例如:先來先做、後來先執行、最短工作優先

  14. 時間分量1 時間分量2 ●●● 時間分量n ●●● 行程1 行程2 行程n 遞減 執行 計時器 CPU 循環式

  15. 循環式(2nd) 時間分量為3

  16. 循環式的問題

  17. 多層佇列

  18. 多層回饋佇列

  19. 多處理器系統之排班 • 目的 • 理論上,多一個處理器就可以同時多執行一項工作,使系統的執行效能可以得到加倍的提昇 • 分類 • 異質 • 同質

  20. 對稱式與非對稱式 • 非對稱式多重處理 • 主從式的模式 • 對稱式多重處理(SMP) • 每個處理器的地位相當,都有自己所屬的CPU排班程式

  21. 就緒佇列 就緒佇列 就緒佇列 同步控制 排班程式 排班程式 排班程式 排班程式 CPU[0] ●●● CPU[0] ●●● CPU[n] CPU[n] 使用共用佇列的SMP 使用專屬佇列的SMP 共用佇列與專屬佇列

  22. 負載平衡 • 目的 • 提高系統最大的效能,讓每個處理器都能維持忙碌的狀態,避免某些處理器一直很忙碌並且還有一堆行程等待處理,而某些處理器卻閒置著 • 做法 • 拉遷移 • 推遷移

  23. 處理器偏好 • 原因 • 將某行程移到另一個處理器執行的時候,必須把已經放在原處理器的記憶體和各層快取中的所有資料作廢,另外再搬移到新處理器的記憶體和各層的快取裡 • 很耗系統時間 • 分類 • 軟性偏好 • 硬性偏好

  24. 排班演算法的評估 • 定量評估 • 模擬 • 實作

  25. 小結 • 行程在系統中,從要開始執行到執行結束所需碰到的排班程式,包括長期、中期和短期排班程式 • 討論的CPU排班演算法,包括先來先做、最短工作優先、優先權、循環式、多層佇列以及多層回饋佇列 • 多處理器系統的排班考量,包括對稱式多重處理和非對稱式多重處理、共用佇列與專用佇列、處理器偏好以及負載平衡等 • 評估各種排班演算法效率的方法,通常包括定量評估、模擬與實作

  26. 排班演算法 :CPU該輪到哪一個行程執行了 • 先來先做 :先到的行程先做,做完再輪下一個. • 最短工作優先:最短的行程先做. • 優先權:優先權最高的行程先做. • 循環式:行程每次最多執行一個固定量,做完再一直輪換. • 不可搶 :CPU不會被非執行中的行程搶走. • 可搶:CPU可以被短工作的行程或優先權高的行程的來到而被搶走 • 多層佇列(不會考) • 多層回饋佇列(不會考)

  27. 5.5 範例

  28. A B C D 0 18 25 37 42 FCFS • A的等待時間: 0-0=0 ………...a • B的等待時間: 18-2=16………b • C的等待時間: 25-6=19………c • D的等待時間: 37-8=29………d • 平均等待時間: (a+b+c+d)/4=16

  29. A B C D 0 18 25 37 42 FCFS • A的turnaround時間: 18-0=18 ……..a • B的turnaround時間: 25-2=23………b • C的turnaround時間: 37-6=31………c • D的turnaround時間: 42-8=34………d • 平均turnaround時間: (a+b+c+d)/4

  30. A D B C 0 18 23 30 42 SJF : 不可搶(non-preemptive) • A的等待時間: 0-0=0 ………...a • B的等待時間: 23-2=21………b • C的等待時間: 30-6=24………c • D的等待時間: 18-8=10………d • 平均等待時間: (a+b+c+d)/4=13.75 DBC BC C

  31. A D B C 0 18 23 30 42 SJF : 不可搶(non-preemptive) • A的turnaround時間: 18-0=18 ……..a • B的turnaround時間: 30-2=21………b • C的turnaround時間: 42-6=24………c • D的turnaround時間: 23-8=10………d • 平均turnaround時間: (a+b+c+d)/4 DBC BC C

  32. A B D C A 0 2 9 14 26 42 AB ACD AC A SJF : 可搶(preemptive) • A的等待時間: 0-0 + (26-2)=24 ………...a • B的等待時間: 2-2=0………b • C的等待時間: 14-6=8………c • D的等待時間: 9-8=1………d • 平均等待時間: (a+b+c+d)/4=8.25 T=6 毫秒時A 還需 : 18-2B 還需: 7-(6-2)C 還需: 12 T=8 毫秒時A 還需 : 18-2B 還需: 7-(8-2)C 還需: 12D 還需:5

  33. A B D C A 0 2 9 14 26 42 AB ACD AC A SJF : 可搶(preemptive) • A的turnaround時間:42-0=42 ………...a • B的turnaround時間: 9-2=7……………b • C的turnaround時間: 26-6=20…………c • D的turnaround時間: 14-8=6…………..d • 平均turnaround時間: (a+b+c+d)/4= T=6 毫秒時A 還需 : 18-2B 還需: 7-(6-2)C 還需: 12 T=8 毫秒時A 還需 : 18-2B 還需: 7-(8-2)C 還需: 12D 還需:5

  34. A A B C D A B C C A 5 10 15 20 25 27 32 37 39 42 循環法(RR :round-robin) • A的等待時間: 0-0 + (20-15)+(32-25)+(39-37)= 24….a • B的等待時間: (5-2)+(25-10)=18…………….....b • C的等待時間: (10-6)+(27-15)+(37-32)=21……c • D的等待時間: (15-8)=7………………………….d • 平均等待時間: (a+b+c+d)/4=17.5

  35. A A B C D A B C C A 5 10 15 20 25 27 32 37 39 42 循環法(RR :round-robin) • A的turnaround時間: 42-0=42………………a • B的turnaround時間: 27-2=25…………….....b • C的turnaround時間: 39-6=33………………..c • D的turnaround時間: 20-8=12……………….d • 平均turnaround時間: (a+b+c+d)/4

  36. A D B C 42 0 18 23 30 優先權 : 不可搶(non-preemptive) • A的等待時間: 0-0=0………...a • B的等待時間: 23-2=21………b • C的等待時間: 30-6=24………c • D的等待時間: 18-8=10………d • 平均等待時間: (a+b+c+d)/4

  37. A D B C 42 0 18 23 30 優先權 : 不可搶(non-preemptive) • A的turnaround時間: 18-0=18 ……..a • B的turnaround時間: 30-2=21………b • C的turnaround時間: 42-6=24………c • D的turnaround時間: 23-8=10………d • 平均turnaround時間: (a+b+c+d)/4

  38. A C A B 8 23 0 13 30 42 ABCDE ABC BC C 優先權 : 可搶(preemptive) • A的等待時間: 0-0 + (13-8)=5 ………...a • B的等待時間: 23-2=21………b • C的等待時間: 30-6=24………c • D的等待時間: 8-8=0………d • 平均等待時間: (a+b+c+d)/4=12.5

  39. A C A B 8 23 0 13 30 42 ABCDE ABC BC C 優先權 : 可搶(preemptive) • A的turnaround時間:23-0=23 ………...a • B的turnaround時間: 30-2=28……………b • C的turnaround時間: 42-6=36…………c • D的turnaround時間: 13-8=5…………..d • 平均turnaround時間: (a+b+c+d)/4=

More Related