480 likes | 745 Views
單處理器排程 Uniprocessor Scheduling. 第 9 章. 排程的目的. 指定行程在處理器上的執行時間 回應時間 (Response time) 產出率 (Throughput) 處理器效率 (Processor efficiency). 長程排程 Long-Term Scheduling. 負責決定系統將處理哪些程式 控制多元程式處理的程度 (Degree of Multiprogramming) 行程越多,每個行程所能執行的時間百分比就越小. 中程排程 Middle-Term Scheduling. 置換功能的一部份
E N D
排程的目的 • 指定行程在處理器上的執行時間 • 回應時間(Response time) • 產出率 (Throughput) • 處理器效率(Processor efficiency)
長程排程Long-Term Scheduling • 負責決定系統將處理哪些程式 • 控制多元程式處理的程度(Degree of Multiprogramming) • 行程越多,每個行程所能執行的時間百分比就越小
中程排程Middle-Term Scheduling • 置換功能的一部份 • 根據多元程式處理程度的管理需求
短程排程Short-Term Scheduling • 也被稱為分派程式 (dispatcher) • 執行頻率最高 • 當事件發生時被呼叫 • 時脈中斷 • I/O中斷 • 作業系統呼叫 • 信號
短程排程的準則Short-Term Scheduling Criteria • 使用者導向(User-oriented) • 回應時間(Response Time) • 是指從發出需求到系統產生回應所經歷的時間 • 系統導向(System-oriented) • 處理器的效能和利用率
短程排程的準則 Short-Term Scheduling Criteria • 效能相關 • 可以量化(Quantitative) • 可以輕易測量,如產出率或回應時間
使用優先順序 Priority • 排程器將會優先選擇擁有較高優先順序的行程 • 使用多個佇列來代表不同層級的優先順序 • 較低優先順序的行程也許會面臨飢餓 • 解決方法是讓行程的優先順序可隨著它的年齡或執行情況而變化
抉擇模式Decision Mode • 非先佔式(Nonpreemptive) • 當行程處於執行狀態時,它會持續執行,直到它完成或因為I/O而懸置自己 • 先佔式(Preemptive) • 目前正在執行的行程也許會被作業系統所中斷,而轉移到備妥狀態 • 能夠提供較佳的服務,因為能夠避免某個行程佔用處理器很長的時間
先到先服務 (FCFS) • 每個行程都會加入備妥佇列 • 當目前正在執行的行程停止執行時,在備妥佇列中等待最久的行程會被選出來執行
先到先服務 (FCFS) • 短行程可能必須等待很長的時間才能輪到執行 • 比較適合處理CPU-bound行程 • I/O-bound行程必須等待 CPU行程完成
循環 (Round-Robin) • 根據時脈而使用搶先策略 • 必須審慎決定時間區段的長度,也就是每個行程使用處理器的時間長度
循環 (Round-Robin) • 每隔一段固定的時間就會產生時脈中斷 • 當中斷發生時,目前正在執行的行程會被放在備妥佇列中 • 選出下一個執行的工作 • 也稱時間片段法(time slicing)
最短行程優先 (Shortest Process Next, SPN) • 這是個非先佔式(Nonpreemptive)策略 • 選擇預期的處理時間最短的行程 • 較短的行程會超越較長的行程
最短行程優先 (SPN) • 降低較長行程的可預測性 • 如果行程的估計時間不正確,作業系統可能會將它中斷執行 • 較長的行程可能會面臨飢餓
最短行程優先 (SPN) Ti: processor execution time for ith instance of this process (total execution time for batch job; processor burst time for Interactive job) Si: predicted value for the ith instance S1: predicted value for the 1st instance, not calculated
最短行程優先 (SPN) Running Average Exponential Average
最短剩餘時間 (Shortest Remaining Time, SRT) • 是SPN的先佔式(Preemptive)版本 • 必須預估處理時間
最高回應率優先 (Highest Response Ratio Next, HRRN) • 選出比例值最大的下一個行程 R: response ratio w: time spent waiting for the processor s: expected service time
回饋(Feedback) • 對已經執行較久的工作加以限制 • 不知道行程所剩餘的執行時間
公平共享排程 (Fair-Share Scheduling, FSS) • 使用者的應用程式是一組行程 (或執行緒) 的集合 • 使用者所關心的是整個應用程式的效能 • 需要根據整個行程集合來進行排程
傳統Unix排程 • 使用多層次回饋(Multi-level Feedback),並在每一個優先順序佇列中使用循環策略(RR) • 如果正在執行的行程沒有在1秒內完成或被懸置,它將會被搶先 • 每秒系統會重新計算每個行程的優先順序 • 所有的行程會被劃分成不同的優先順序層級
優先順序層級 • 優先順序是依序遞減 • 置換程式 • 區塊I/O裝置控制 • 檔案處理 • 字元I/O裝置控制 • 使用者行程
練習 • Process(行程)的Waiting Time(等待時間)定義如下: • Waiting Time = Turnaround Time - Running Time其中Turnaround Time (回覆時間)為Process從開始執行到執行結束經過的時間長度,Running Time則是Process處於Running(執行)狀態的時間總長度。 • 今有5個行程依序進入系統,如下表:
練習 行程編號 到達時間 處理時間
練習 • 請分別以 FCFS、SPN、SRT、RR 等四種排程演算法,完成下列工作: • 以每一個CPU Cycle為單位,畫出Process的執行時序圖(Time Line)。 • 計算每一個Process的Turnaround Time和Waiting Time • 計算各種排程演算法的Average Waiting Time(平均等待時間)