资工系网媒所NEWS试验室特殊用途排程-RSWiki.PPT
文本预览下载声明
/44 作業系統 第五章 排程 第五章 排程 排程概念 行程行為 CPU 排程器 排程時機 分派器 排程準則 排程方法 特殊用途排程 排程評估 摘要 排程概念 一個行程在執行期間會有很多時間在等待(如:等待 I/O 完成)。 在單一行程或批次的系統中,當行程在等待時 CPU 是閒置的。 在多行程的系統中,若是某一行程變成等待的狀態,該行程會被作業系統從就緒佇列中移除,然後由排程器在就緒佇列中選出一個最適當的行程,並將 CPU 的使用權交給這個行程。 排程就是將系統資源作更有效的利用。 行程行為 行程的執行會在兩個狀態間不停的切換 CPU 暴衝 I/O 暴衝 行程一開始都是 CPU 暴衝,接著是 I/O 暴衝,然後再回到 CPU 暴衝和 I/O 暴衝。在正常的狀況下,行程就在這兩個狀態間一直循環,最後以 CPU 暴衝作為結束。 CPU 暴衝與 I/O 暴衝 CPU 暴衝時間統計示意圖 CPU 排程器 短程排程器(或是 CPU 排程器),由就緒佇列中選出下一個可以執行的行程。 實作一個就緒佇列可根據不同的需求使用 先進先出(FIFO)佇列 優先權佇列 樹 鏈結 例如:在分時作業系統中,使用鏈結就很適合。 什麼狀況用樹適合? 排程時機 有 4 種行程狀態的變化,需要進行排程。 由執行狀態切換到等待狀態 由執行狀態切換到結束狀態 由執行狀態切換到就緒狀態 由等待狀態切換到就緒狀態 前兩種狀態為行程主動放棄執行權,而後 2 種狀態為被動的。 一個系統中若只有行程主動放棄執行權時才會進行重新排程的話,則這個系統的排程方法為不可搶先的,反之,稱為可搶先的。 分派器 當排程器選出下一個行程後,就把工作交給分派器。 一個分派器會做下面幾件事: 內文切換 切換回使用者模式(排程是在管理者或核心模式進行) 重新回到使用者的程式,並且從適當位址重新開始執行 由分派器停止一個行程到開始執行另一個行程的這段時間稱為分派延遲。 排程準則 在選擇一個排程器時有下列幾項準則: CPU 使用率 產量 回覆時間 等待時間 反應時間 根據不同的系統需求,可以使用不同的準則來選擇不同的排程器。 舉例來說,為了保證使用者能得到最好的服務,我們會盡量減小(最大/平均)反應時間。 第五章 排程 排程概念 排程方法 先到先做排程 最短工作優先排程 優先權排程 循環分時排程 多層佇列排程 多層反饋佇列排程 特殊用途排程 排程評估 摘要 排程方法 一個排程方法決定就緒佇列中那一個行程可以使用 CPU 資源。 常見的排程方法有: 先到先做排程 最短工作優先排程 優先權排程 循環分時排程 多層佇列排程 多層反饋佇列排程 先到先做排程 (1/2) 先到先做(FCFS)為最簡單的不可搶先排程法。 根據行程要求使用 CPU 的順序,來取得 CPU 的使用權。 所產生的平均等待時間經常都很長。 使用先到先做排程法時,若系統中存在一個 CPU 暴衝時間很長的行程時,則會產生護航現象。 先到先做排程 (2/2) 最短工作優先排程 (1/4) 下一次 CPU 暴衝最短的行程可優先取得 CPU 的使用權。 對於平均等待時間而言最短工作優先排程(SJF)為最佳的不可搶先排程法。 若兩個行程下一次的 CPU 暴衝時間等長的話,則可以使用 FCFS 排程方式來排程。 最短工作優先排程 (2/4) 最短工作優先排程 (3/4) SJF 在實作上有困難,因為很難知道行程下一個 CPU 暴衝時間的確實長度。 使用預估的方法來求得近似的值。行程下一個 CPU 暴衝時間的預估值可以設為前幾次 CPU 暴衝時間的幾何平均值。 tn 為第 n 次 CPU暴衝時間的長度 Tn+1 表示再下一次 CPU 暴衝時間的預估值 下一次 CPU 暴衝時間的預測 最短工作優先排程 (4/4) SJF 也可以是可搶先的。 可搶先的 SJF 排程又稱為最短剩餘時間優先的排程法。 優先權排程 (1/2) 排程器依行程的優先權高低來分配 CPU 的使用順序,優先權愈高的行程可優先使用 CPU。 SJF 也可以視為是一種優先權排程法。 優先權的定義可以分成兩種類型: 內部 - 使用行程內可以測量的項目,如行程使用的記憶體大小。 外部 - 使用如使用者繳費的多寡等外部資訊。 優先權排程可以是不可搶先的或可搶先的。 有可能發生飢餓(starvation)的現象 可使用老化(aging)來解決 優先權排程 (2/2) 循環分時排程 (1/2)Round-Robin 將時間等切成一小片一小片的時間切片,每一個時間切片則為每個行程每次得到 CPU 使用權後可執行的時間。 特別為分時系統所設計,為可搶先的。 循環分時排程 (2/2) RR 排程法的效能與時間切片的長短關係非常密切 太長 - 如同FCFS 排程法 太短 - 產生處理器頻繁
显示全部