Process Scheduling (行程排班)

Slides:



Advertisements
Similar presentations
MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
Advertisements

LED CUBE 預期規劃.
Introduction to C Programming
Chapter 10 效能測量與分析.
Foundations of Computer Science
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
第五章 处理机管理 5.1 引言 5.2 调度算法 5.3 调度算法性能分析 5.4 实时调度 5.5 多处理机调度 5.6 调度算法举例
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度
第二章 排班程式 2-1 排班程式之類型 2-2 排班程式.
第10章 多处理器和实时调度 主要内容: 多处理器调度 实时调度 操作系统调度例 分类与粒度 设计问题 进程调度 实时进程的要求与特点
輔助記憶體.
Operating System CPU Scheduing - 2 Monday, August 11, 2008.
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
Hadoop 單機設定與啟動 step 1. 設定登入免密碼 step 2. 安裝java step 3. 下載安裝Hadoop
主題五 CPU Learning Lab.
Chapter 5 迴圈.
行程管理簡介 日期 : 2018/9/21.
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
基本程式範例.
Chapter 5 行程排班 (Process Scheduling)
作業系統簡介.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
C H A P T E R 11 体系结构对操作系统的支持.
排程 – 行程的執行順序安排問題 日期 : 2018/11/14.
作業系統 第五章 排程.
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
第七章 MSP430時脈計時器A模組.
JDK 安裝教學 (for Win7) Soochow University
第8章作業系統.
專題製作實務歷程分享 三信家商-觀光事業科 喻天福、吳秋慧.
Operating System Concepts 作業系統原理 Chapter 5 行程排班
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
作 業 系 統 第三組 楊育翰 顏瑞霖.
第三章 处理机调度与死锁 3.1 处理机调度的层次和调度算法的目标 3.2 作业与作业调度 3.3 进程调度 3.4 实时调度
第4章 排程(Scheduling).
Chapter 3 行程觀念 (Process Concept)
在NS-2上模擬多個FTP連線,觀察頻寬的變化
嵌入式系統進階 日期 : 2018/12/4.
中国科学技术大学计算机系 陈香兰 Fall 2013 第四讲 CPU调度(part II) 中国科学技术大学计算机系 陈香兰 Fall 2013.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
5-8 光遮斷器控制實習.
Visual Basic 物件導向程式設計簡介.
Linux CPU的排程 邱姸婕.
Chap3 Linked List 鏈結串列.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
Topic Introduction—RMI
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
Operation System(OS).
Chap2 Stack & Queue.
作業系統 期末專案程式製作 進修部資科三甲 981 德明科大 資訊科技系.
產品設計與流程選擇-服務業 等候線補充資料 20 Oct 2005 作業管理 第六章(等候線補充資料)
黃影雯副教授講授 E_Mail Address:
Dreamweaver 進階網頁製作 B 許天彰.
課程時間:星期二下午2:20-5:20 -> 1:20-4:10 ? 授課教師 逄愛君, 辦公室: 資訊系館 417室 先修課程
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
資料表示方法 資料儲存單位.
MultiThread Introduction
李元金 计算机与信息工程学院 第7讲 处理机调度与死锁(1) 李元金 计算机与信息工程学院 1/
进程调度算法和作业调度算法。 (1) 先来先服务(FCFS)调度算法
Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青
作業系統實習課(二) -Scheduler-Related System Calls-
LED Pili LED 中州技術學院 電子系 副教授 余文俊.
單元三:敘述統計 內容: * 統計量的計算 * 直方圖的繪製.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Nachos Project Assignment 2
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
Chapter 4 Multi-Threads (多執行緒).
第三章 比與比例式 3-1 比例式 3-2 連比例 3-3 正比與反比.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

Process Scheduling (行程排班) Chapter 5 Process Scheduling (行程排班)

Topic Overview 5.1 基本觀念 (Basic Concepts) 5.2 排班準則 (Scheduling Criteria) 5.3 排班演算法 (Scheduling Algorithms) 5.4 演算法的評估 (Algorithm Evaluation) W.-S. Hsu 2011

5.1 基本觀念 (Basic Concept) 多元程式規劃作業系統 (multiprogrammed OS) 主要目的: 概念: 隨時保有一個 process 在CPU內執行,藉以提高 CPU 使用率。 概念: 一個行程一直執行到它必須等待某一事件 (通常是I/O要求)結束後,在此等待的時候,CPU是閒置的,而多元程式規劃系統 下,此時可以讓其他 process 使用 CPU time,以充份應用CPU。 CPU 排班 (short-term scheduler) 是多元程式規劃作業系統的基礎。 W.-S. Hsu 2011

排班的種類 CPU scheduler 本章的主題 5.1 基本觀念 (Cont.) job queue ready queue  short-term scheduler  long-term scheduler swap space  medium-term scheduler swap-in/swap-out W.-S. Hsu 2011

5.1 基本觀念 (Cont.) 排班的種類 (Cont.) 長程排班 選擇載入 main memory 的 process,藉以控制記憶體中的行程數目(多元程式規劃系統的程度)。 中程排班 Swapping In/Out 的選擇。 短程排班 選擇從 memory 內的 process 在處理機上執行(CPU Scheduler)。 I/O排班 選擇哪一個 process的I/O請求將被I/O裝置處理。 三種排班種類發生的頻率:短程 > 中程 > 長程 W.-S. Hsu 2011

Process排班與process狀態轉換 5.1 基本觀念 (Cont.) Process排班與process狀態轉換 Process排班的Queue圖 結束 新建  CPU排班 長程排班 就緒 執行 swap space 等待  中程排班 job queue ready queue CPU waiting queues W.-S. Hsu 2011

5.1.1 CPU - I/O分割週期 (burst cycle) CPU burst 行程執行一連串CPU動作 I/O burst 行程等待I/O動作 行程的運作 行程的執行是由CPU執行時間及I/O等待時間所組成的週期 (cycle)。行程在這兩個狀態之間交替往返。 行程執行由一個CPU分割 (CPU burst) 開始。跟著是一個I/O分割 (1/O burst),然後再由另外一個CPU分割跟著,再來又是另一個I/O分割。 W.-S. Hsu 2011

5.1.1 CPU - I/O分割週期 (burst cycle) CPU-I/O bound CPU bound 行程有一些非常長的CPU burst I/O bound 行程有很多很短的CPU burst CPU排班 CPU-I/O bound行程的分佈,對於選擇CPU排班演算法是項非常重要的資料 W.-S. Hsu 2011

5.1.2 CPU排班程式 (CPU scheduler) 使用時機 在多processes的環境下,當CPU閒置時,OS必須從ready queue中選擇一個process進入CPU內執行其工作。此即OS中CPU scheduler (短程排班程式) 的工作 Ready queue 內含所有processes皆排隊以等待機會來執行(使用) CPU 將processes的PCBs,串接在一起 Ready queue的類型: FIFO queue 優先次序queue 樹狀結構queue 無順序關係的linked-list queue W.-S. Hsu 2011

5.1.3 可剝奪式排班 (Preemptive Scheduling) 意義 當一個行程正在CPU內執行時,可以被中斷,以讓其他process使用CPU時間的排班方法 不可剝奪式CPU排班: 一旦CPU被配置一個process時,此process一直保有CPU,直到它以終止或轉換到等待狀態的方式釋放出CPU為止 何時會使用到CPU排班之決策 ?     W.-S. Hsu 2011

分派程式 意義 功能 Dispatch latency (分派延遲) 5.1.4 分派程式 (Dispatcher) 分派程式 意義 將CPU控制權交予CPU Scheduler所選出的行程所使用的模組程式 功能 Context switch (內容轉換) 將系統轉換成使用者模式 (user mode) 跳越至使用者程式的適當位置以重新執行程式 Dispatch latency (分派延遲) Dispatcher 用來停止一個行程,並開始另一行程所花費的時間 W.-S. Hsu 2011

5.2 排班原則 (Scheduling Criteria) CPU排班法則的評估準則: CPU使用率 (utilization):CPU忙碌所占時間的百分比(40% ~ 90%)。 產能 (throughput):單位時間內所完成的process數。 回復時間 (turnaround time):從一個process進入電腦,一直到該process完成離開所花費的時間。 等待時間 (waiting time):一個process在ready queue中所等待的時間 反應時間 (response time):在交談式系統中,強調的是『一個process提出要求至第一個反應出現的間隔時間』。 W.-S. Hsu 2011

5.3 排班演算法 (Scheduling Algorithms) 先來先做 (First-Come_First-Served, FCFS) 將CPU分配給第一個要求CPU的行程 使用 FIFO 佇列來執行此工作 範例 Gantt Chart (甘特圖) 行程 到達ready queue時間 需要CPU時間-Burst Time P1 3 P2 2 6 P3 4 P4 5 P5 8 Time 3 P1 W.-S. Hsu 2011

先來先做 (Cont.) Gantt Chart (甘特圖) P1 P2 P3 P4 P5 5.3.1 FCFS 先來先做 (Cont.) Gantt Chart (甘特圖) 行程 到達ready queue時間 需要CPU時間-Burst Time P1 3 P2 2 6 P3 4 P4 5 P5 8 Time 6 8 4 2 P1 3 9 P2 13 P3 18 P4 20 P5 P1 P2 P3 P4 平均等待時間 = (0+1+5+7+10) /5 = 4.6 P5 W.-S. Hsu 2011

先來先做 (Cont.) 練習1 練習2 5.3.1 FCFS (Cont.) 行程 到達ready queue時間 需要CPU時間-Burst Time P1 24 P2 2 3 P3 4 行程 到達ready queue時間 需要CPU時間-Burst Time P1 4 24 P2 3 P3 2 W.-S. Hsu 2011

先來先做 (Cont.) FCFS 結論 平均等待時間並非最小 可能隨 CPU burst-time 之極大變化而差異甚大 5.3.1 FCFS (Cont.) 先來先做 (Cont.) FCFS 結論 平均等待時間並非最小 可能隨 CPU burst-time 之極大變化而差異甚大 可能產生 convoy effect (護送現象,當所有的 processes 都在等待某一個CPU bound的行程之結束時,形成CPU與I/O裝置使用率的降低) 不可剝奪演算法 不適用分時系統 W.-S. Hsu 2011

最短的工作先做 (Shortest-Job-First, SJF) 最短的工作先做。若有兩個行程具有相同的長度,則採用FCFS的方法 最短的下一個 CPU Burst 先做。藉著檢查每個 process 的下一個CPU burst 來作決策 範例 Gantt Chart (甘特圖) 行程 到達ready queue時間 需要CPU時間-Burst Time P1 3 P2 2 6 P3 4 P4 5 P5 8 W.-S. Hsu 2011

最短的工作先做 (Cont.) Gantt Chart (甘特圖) P1 P2 P5 P3 P4 5.3.2 SJF (Cont.) 最短的工作先做 (Cont.) Gantt Chart (甘特圖) 行程 到達ready queue時間 需要CPU時間-Burst Time P1 3 P2 2 6 P3 4 P4 5 P5 8 Time 6 8 4 2 P1 3 9 P2 11 P5 15 P3 20 P4 P1 P2 P3 P4 平均等待時間 = (0+1+7+9+1) /5 = 3.6 P5 W.-S. Hsu 2011

最短的工作先做 (Cont.) 練習1 SJF 結論 可得到最小平均等待時間 困難之處:如何得知下一個CPU要求的時間。 5.3.2 SJF (Cont.) 最短的工作先做 (Cont.) 練習1 SJF 結論 可得到最小平均等待時間 困難之處:如何得知下一個CPU要求的時間。 SJF 經常用在長程排班問題上;但不能用在解決短程(CPU) 排班的問題問題 (無法預知下一個 CPU burst 的長度) 預估下一個 CPU burst 的長度: 利用前幾次 CPU bursts 所測得的值的指數平均數 n+1= tn + (1) n 不可剝奪演算法 長CPU-burst 的 process 可能餓死 (starvation) 行程 到達ready queue時間 需要CPU時間-Burst Time P1 6 P2 9 P3 W.-S. Hsu 2011

最短剩餘時間的工作先做 (Shortest-Remaining-Time First) 5.3.2.1 SRTF 最短剩餘時間的工作先做 (Shortest-Remaining-Time First) 選擇預計最短還需執行CPU時間的行程 當新加一個process進入ready queue時,它可能比正在執行的process所需的時間還短,因此,任何一個process加入到ready queue中,scheduler就會進行剝奪的操作 範例 Gantt Chart (甘特圖) 行程 到達ready queue時間 需要CPU時間-Burst Time P1 3 P2 2 6 P3 4 P4 5 P5 8 W.-S. Hsu 2011

最短剩餘時間的工作先做 (Cont.) Gantt Chart (甘特圖) P5 P2 P4 P1 P3 P3 平均等待時間 = 5.3.2.1 SRTF (Cont.) 最短剩餘時間的工作先做 (Cont.) Gantt Chart (甘特圖) 行程 到達ready queue時間 需要CPU時間-Burst Time P1 3 P2 2 6 P3 4 P4 5 P5 8 Time 4 8 6 2 3 P1 10 P5 P2 15 20 P4 Remainder time P1 3  1  0 P2 6  5  0 P3 4  2  0 P4 5  0 P5 2  0 P1 P2 P3 P3 P1 P2 P3 P4 平均等待時間 = [(0)+((3-2)+(10-4))+(0)+(15-6)+0] /5 = 3 P5 W.-S. Hsu 2011

最短剩餘時間的工作先做 (Cont.) SRTF 結論 可剝奪演算法 長CPU-burst的process可能餓死 (starvation) 5.3.2.1 SRTF (Cont.) 最短剩餘時間的工作先做 (Cont.) SRTF 結論 可剝奪演算法 長CPU-burst的process可能餓死 (starvation) 已經服務的時間必須記錄下來 (額外的開銷) SRTF 比 SJF 提供較好的 response time 性能 W.-S. Hsu 2011

優先權 (Priority) SJF是一般優先權排班演算法的一個特例 每個 process 給予一個優先順序權 (固定範圍的數字),CPU scheduler 在ready queue中選擇一個priority最高的process來執行;而相等priority的processes則採用FCFS來排班 範例: 假設各 processes 到達 ready queue 時間為0且依序到達,且低數值的優先次序高 行程 需要CPU時間-Burst Time 優先順序值 P1 10 3 P2 1 P3 2 P4 4 P5 5 W.-S. Hsu 2011

優先權 (Cont.) Gantt Chart (甘特圖) 平均等待時間 = (6+0+16+18+1) /5 = 8.2 P2 P5 P1 行程 需要CPU時間-Burst Time 優先順序值 P1 10 3 P2 1 P3 2 P4 4 P5 5 Time 1 P2 6 P5 16 P1 P3 18 19 P4 平均等待時間 = (6+0+16+18+1) /5 = 8.2 W.-S. Hsu 2011

優先權 (Cont.) Priority 結論: 可/不可剝奪演算法 優先權可由外部或內部定義 內部得出優先權:使用一些可以測得的量值來定義一個process 的 priority。如時間限制、記憶體需求、平均 I/O burst 與 CPU burst 的比率來計算優先權 外部得出優先權:由 OS 外部的標準所決定。如 process 的重要性 最大問題:indefinite blocking 或 starvation 預防 低priority 行程被無限期擱置的方法─ 老化 (aging) (將停留在系統中一段時間的 process 予以提高其優先權) W.-S. Hsu 2011

5.3.4 循環 (Round-Robin, RR) 循環 (Round-Robin, RR) CPU在一個單位時間 (time slice) 後,即在ready queue (環狀queue、FIFO佇列) 轉換給下一個process。此法設定一個 timer 以中斷CPU的執行並轉換process 主要針對 Time-Sharing 的系統所設計 Time-slice 的選擇可能對於系統的效益有著深遠的影響 範例:假設 time-slice = 4 行程 到達ready queue時間 需要CPU時間-Burst Time P1 3 P2 2 6 P3 4 P4 5 P5 8 W.-S. Hsu 2011

循環 (Cont.) Gantt Chart (甘特圖)  time-slice = 4 P1 P2 P3 P4 P5 P2 5.3.4 RR (Cont.) 循環 (Cont.) Gantt Chart (甘特圖)  time-slice = 4 行程 到達ready queue時間 需要CPU時間-Burst Time P1 3 P2 2 6 P3 4 P4 5 P5 8 Time 4 8 6 2 P1 3 P2 7 P3 11 P4 15 P5 17 P2 19 P4 20 Remainder time P1 3  0 P2 6  2  P3 4  0 P4 5  1 P5 2  P1 P2 P3 P4 平均等待時間 = [(0)+((3-2)+(17-7))+(7-4)+((11-6)+(19-15))+(15-8)] /5 = 6 P5 W.-S. Hsu 2011

5.3.4 RR (Cont.) 循環 (Cont.) RR 結論 可剝奪演算法。 Round-Robin 的效能完全取決於時間量的長短。當 time-slice 無限大時,此法與 FCFS 排班演算法則一樣。而當 slice 極小時 (1微秒),此法則稱為「處理機共用 (processor sharing,n行程各自擁有1/n個processor的專用處理機)」法則。 Time slice 的大小需考慮 context switch 的時間 (time-slice > context switch)。Time slice 愈短,則 context switch 的負擔越重。 Time slice 的大小也需考慮 turnaround time 的時間 (80%的程式CPU執行時段應小於 time-slice 的大小) W.-S. Hsu 2011

5.3.4 RR (Cont.) 循環 (Cont.) RR 結論 (Cont.) W.-S. Hsu 2011

5.3.5 多層佇列 (Multilevel Queue) 依據 processes 的性質將其分成幾個不同的群組。 Foreground-交談式processes;Background-整批作業processes 前景行程的優先次序應高於背景行程。 將 ready queue 區分成多個 priority 不同的獨立 queues。行程依其特定性質被固定指到某個queue中。 每個獨立佇列可依本身需求或性質,而可採用不同的排班法則。 而這些獨立 queues 間,仍需要一個排班法則。 採用固定的 queue priority 順序的方法。 分配每個 queue 一個固定的CPU時間。 W.-S. Hsu 2011

5.3.5 多層佇列 (Cont.) 多層佇列 (Cont.) W.-S. Hsu 2011

5.3.6 多層回饋佇列 (Multilevel Feedback Queue) 允許 process 在各獨立 queues 間移動 W.-S. Hsu 2011

5.4 演算法的評估 (Algorithm Evaluation) 如何為系統選擇一個 CPU Scheduler ? 標準:CPU 使用率、turnaround time、throughput等 使用各種的評估法: 定量模式 (Deterministic modeling) 佇列模式 (Queuing models) 模擬 (Simulations) 實作 (Implementation) W.-S. Hsu 2011

5.4.1 定量模式 (Deterministic modeling) 使用排班演算法和系統工作量來產生一個公式或數字 (如:平均等待時間) 以評估在那個工作量下該演算法的性能 例子: 假設底下五個 processes 都在時間0時到達,其順序如下,而 CPU burst time 以毫秒為單位 考慮 FCFS、SJF、RR (time slice=10毫秒) 等排班演算法用在這組行程上,試問哪一個演算法的平均等待時間最小 ? 行程 需要的CPU時間 (ms) P1 10 P2 29 P3 3 P4 7 P5 12 FCFS: 28 ms SJF: 13 ms RR: 23 ms W.-S. Hsu 2011

佇列模式 (Queuing models) 描述某個 CPU burst 之機率的數學公式 估算 CPU分割 和 I/O分割 的分佈情形 李特公式 (Little’s formula): =     = 平均佇列長度  = 佇列中新行程到平均到達比率  = 佇列中的平均等待時間 W.-S. Hsu 2011

5.4.3-4 模擬 (Simulations) & 實作 (Implementation) 設計一套電腦系統模型 Random 產生 processes 的到達時間、離開時間、CPU burst time 和 I/O burst time,並評估各演算法的性能 實作 (Implementation) 將演算法實際撰寫程式並放入 OS 中,並觀察其效能 圖 5.8 W.-S. Hsu 2011

End of Chapter 5 W.-S. Hsu 2011

問題與討論 1.用FCFS、SJF及RR(time-slice=2) 求等待時間及回復時間 W.-S. Hsu 2011