Operating System Concepts 作業系統原理 Chapter 5 行程排班

Slides:



Advertisements
Similar presentations
LinkIt ONE開發板的簡介.
Advertisements

MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
Foundations of Computer Science
4-1 作業系統簡介 4-2 各類作業系統 4-3 CPU排班 4-4 記憶體管理 4-5 檔案系統 4-6 熱門作業系統介紹
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.
題目:十六對一多工器 姓名:李國豪 學號:B
Chapter 5 迴圈.
行程管理簡介 日期 : 2018/9/21.
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
Chapter 5 行程排班 (Process Scheduling)
Process Scheduling (行程排班)
排程 – 行程的執行順序安排問題 日期 : 2018/11/14.
作業系統 第五章 排程.
Chapter 1 Introduction.
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
第1章 認識Arduino.
第8章作業系統.
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
作 業 系 統 第三組 楊育翰 顏瑞霖.
2-3 基本數位邏輯處理※.
第4章 排程(Scheduling).
音樂之旅 第一冊 單元十 曲式──二段體、三段體.
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
嵌入式系統進階 日期 : 2018/12/4.
(Circular Linked Lists)
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
連結資料庫管理系統.
Linux CPU的排程 邱姸婕.
Unit 04 虛擬機器建構實驗 M. S. Jian Department of Computer Science and Information Engineering National Formosa University Yunlin, Taiwan, ROC.
雲端運算的基石(2) 虛擬化技術實作(XP篇─上)
管理資訊系統導論 資訊系統的定義與概念.
FTP檔案上傳下載 實務與運用.
Chap3 Linked List 鏈結串列.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
虛擬機器 下載QEMU Windows版 (0.9.1) 下載Kqemu Windows版 安裝QEMU 安裝Kqumu
Topic Introduction—RMI
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
Ch20. 計算器 (Mac 版本).
Operation System(OS).
CH05. 選擇敘述.
作業系統 期末專案程式製作 進修部資科三甲 981 德明科大 資訊科技系.
GridView操作 (II).
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
4-1 作業系統簡介 4-2 CPU排班 4-3 記憶體管理 4-4 檔案系統 4-5 熱門作業系統介紹
產品設計與流程選擇-服務業 等候線補充資料 20 Oct 2005 作業管理 第六章(等候線補充資料)
電子期刊使用統計 CONCERT 2002 meeting November 13-14, 2002 羅宙康 Springer-Verlag
MicroSim pspice.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
MiRanda Java Interface v1.0的使用方法
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab11 1.
Commando War ★★☆☆☆ 題組:Problem Set Archive with Online Judge
一、簡介 電腦硬體設計:純硬體電路(hardware)及韌體電 路(firmware)兩種方式。
Cloud Operating System - Unit 03: 雲端平台建構實驗
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
1757: Secret Chamber at Mount Rushmore
資料表示方法 資料儲存單位.
进程调度算法和作业调度算法。 (1) 先来先服务(FCFS)调度算法
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Chapter 4 Multi-Threads (多執行緒).
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

Operating System Concepts 作業系統原理 Chapter 5 行程排班

Chapter 5 行程排班 5.1 基本觀念 5.2 排班評定的標準 5.3 排班演算法 5.4 執行緒排班 5.5 多處理器的排班問題 5.1 基本觀念 5.2 排班評定的標準 5.3 排班演算法 5.4 執行緒排班 5.5 多處理器的排班問題 5.6 作業系統範例 5.7 演算法的評估

5.1 基本觀念 在單一處理器系統裡,不可以同時有多個程式在執行,如果有多個行程,其它的都必須在旁邊等待CPU有空,才能接者重新排班。 5.1 基本觀念 在單一處理器系統裡,不可以同時有多個程式在執行,如果有多個行程,其它的都必須在旁邊等待CPU有空,才能接者重新排班。 多元程式規劃系統的主要目的,就是要隨時保有一個行程在執行,藉以提高CPU使用率。

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

5.1.2 CPU排班程式 5.1.3 可搶先排班 CPU 排班的決策發生在下面四種情況︰ 一旦CPU閒置,作業系統必須從就緒佇列之中選出其中一個行程來執行。選取行程是由短程排班程式(short-term scheduler)(或CPU排班程式)來執行。排班程式自記憶體之中準備要執行的數個行程選出一個,並將CPU配置給它。 5.1.3 可搶先排班 CPU 排班的決策發生在下面四種情況︰ 當一行程從執行狀態轉變成等待狀態時(例如,I/O要求,祈求等待其中一個子行程的結束) 。 當一行程從執行狀態轉變成就緒狀態時(例如,當有中斷發生時) 。 當一行程從等待狀態轉變成就緒狀態時(例如,I/O的結束) 。 當一行程終止時。

5.1.4 分派程式 作業系統中CPU排班程式功能所包含的另外一個元件就是分派程式(dispatcher) 轉換內容 5.1.4 分派程式 作業系統中CPU排班程式功能所包含的另外一個元件就是分派程式(dispatcher) 轉換內容 轉換成使用者模式 (user mode) 跳越到使用者程式的適當位置以便重新開啟程式

5.2 排班評定的標準 CPU使用率: 使CPU盡可能地忙碌。原則上它的使用率可以從 0個 百分比到 100個百分比。而在實際的系統裡,它的使用率應該是 40%(負荷 較輕的系統)到 90%(負荷較重的系統)的範圍。 產量 (throughput): 如果CPU是忙碌地執行行程,工作就可以不斷地進 行。其中有一種衡量工作量的標準,就是用每單位時間所完成的行程數來計 算,稱為產量。對長的行程而言,可能一個鐘頭只完成一個,但是對短的行程 而言,則產量可能多到每秒鐘完成十個。 回復時間 (turnaround time): 對某一個特定行程而言,是這個行程到底需要多少時間才能完成。從行程進入電腦,一直到該行程完成並且離開 電腦,這整段時間稱為回復時問。回復時間是進入等待主記憶體、在就緒佇 列等待,以及 CPU執行和執行輸出/入動作等時間的總和。 等候時間 (waiting time): CPU排班的法則,對於實際執行一個行程所需的 時間,而輸出入動作的次數並沒有任何的影響。它只會影響一個行程在就緒佇列等待的時間。等候時問是在就緒佇列中等待所花費週期的總和。 反應時間(response time):在交談式系統之中,一個衡量的標準就是以提出一個要求到第一個反應出現的時間間隔來計算,這就是所謂反應時問。

5.3 排班演算法 5.3.1 先來先做之排班方法(FCFS) 5.3 排班演算法 5.3.1 先來先做之排班方法(FCFS) 把CPU分配給第一個要求CPU的行程。FCFS策略的製作很容易用FlFO佇列管理。當一個行程進入就緒佇列之後,它的行程控制區段就鏈接到串列的尾端。

5.3.2 最短的工作先做之排班方式(SJF) 演算法將每一個行程的下一個 CPU分割長度和該行程相結合。當CPU有空時,就指定給下一個CPU分割最短的行程。如果兩個行程具有相同長度的下一個CPU分割,那麼就採用先來先做 (FCFS)的方法。

5.3.3 優先權排班方式 每一個行程都有它的優先順序。CPU 將分配給具有最高優先權的行程,具有相同優先順序的行程則按照 FCFS 來排班。優先權一般是一些固定範圍的數字,譬如 0 到 7 或 0 至 4095。

5.3.4 依序循環之排班方式 依序循環排班演算法(round-robin, RR, scheduling algorithm)是特別為了分時作業系統而設計的,這種排班方法和FCFS排班法相類似,但是加入可搶先的規則以便試行程互相交換使用CPU。我們定義一個小的時間單位,稱為一個時間量(time quantum或是時間片段time slice)。

5.3.5 多層佇列之排班方式 根據行程的性質將它們分成幾個不同的小組。例如,最典型的分類方法是區分為前景 (foreground)和背景 (background),分別代表交談式和整批作業的行程。

5.3.6 多層回饋佇列之排班方式 多層回饋佇列的排班法則 (multilevel feedback-queue scheduling algorithm)允許行程在佇列之間移動。它是利用不同CPU分割時段的特性,界分不同等級的佇列。 一個行程需要太長的CPU時間,就會排到低優先的佇列。高優先佇列通常排的都是I/O和交談式行程等。同樣地,在低優先佇列等候太久的行程,隨著時間的增長,也會漸漸地移往高優先佇列。

5.4 執行緒排班 5.4.1 競爭範圍 在使用者層次和核心層次的執行緒間有一項差別,是在於它們如何被排班。在製作多對一和多對多模式的系統上,執行緒庫(thread library)排班使用者層次的執行緒在可取得的LWP上執行,這種技巧稱為行程競爭範圍(Process-contention scope, PCS),因為CPU的競爭發生在屬於相同行程的執行緒。 當執行緒庫排班使用者執行緒到可用的LWP上時,並不是指執行緒正在某一個CPU上執行;這必須要作業系統排班核心執行緒在實體的CPU上執行。

5.5.2 Pthread的排班 在製作多對多模式的系統上,PTHREAD_SCOPE_PROCESS的排班策略,使用者的執行緒在可用的LWPs。LWPs的數目是由執行緒庫維持,或許使用排班程式活化作用。 在多對多的系統上,PTHREAD_SCOPE_SYSTEM的排班策略將產生和連結一個LWP給每一個使用層次執行緒,使用一對一策略有效地對映執行緒。

5.5 多處理器的排班問題 5.5.1 多處理器排班方法 方法之一是擁有所有的排班決定、I/O處理和由一個單一處理器處理 (主機伺服器)。其它處理器只有執行使用者程式碼。非對稱多元處理 (asymmetric multiprocessing)比對稱式的多處理器簡單,因為只有一個虛理器存取系統資料,減少對資料共享的需要。 第二種方法使用對稱多元處理(symmetric multiprocessing,SMP),每個處理器自行排班。所有處理器可能在一個準備好的佇列中,或每一個處理器在準備好行程有它自己私人佇列。不管如何,排班開始時,由每一個處理器的排班程式來檢查準備好的佇列並且選擇一個行程來執行。

5.5.2 處理器親和性 大部份SMP系統試著避免行程由一個處理器轉移到另一個處理器,然後嘗試在同一處理器上保持一個行程,這就是處理器親和性 (Processor affinity),表示行程對並行執行的處理器有親和性。 處理器親和性有幾種型式。當作業系統企圖保持一個行程在相同處理器上執行的策略,這種情況稱為軟性親和性(soft affinity),它可能讓行程在處理器間轉移。有些系統 (如LINUX)提供支援硬住親和性 (hard affinity)的系統呼叫,因此允許指定行程不能轉移到其它處理器。

5.5.3 負載平衡 在 SMP系統中,負載平衡 (load balancing)企圖保持工作下載均勻的分散在所有處理器。值得注意的是,通常負載平衡必須在每個處理器有自已的合格行程的私人佇列之系統來執行。 一個普通執行佇列的系統,通常需要負載平衡,因為一旦處理器變成閒置,它立刻由普通執行佇列抽取成可執行行程。然而,值得注意的是,大部份現代作業系統支援 SMP,每個行程有合格行程的私人佇列。 5.5.4 多核心處理器 傳統的SMP系統藉由提供多台實體處理器來允許若干執行緒同時執行。然而,在電腦硬體方面有個最新的趨勢,那就是把多個處理器核心放在相同的實體晶片上,於是產生了多核心處理器。 多核心處理器可能使排班問題複雜化。研究指出當一個處理器存取記憶體時,它花費在等待資料成為可用的時間非常顯著。

5.5.5 虛擬及排班 虛擬的系統,甚至是單CPU的系統,其行為經常像是多處理器系統。虛擬軟體可提供一個或多個虛擬CPU給每個虛擬機器,使之在系統上執行,然後把使用實體CPU排班在虛擬機器之中。

5.6 作業系統範例 5.6.1 Solaris 排班

5.6.2 Windows XP

5.6.3 Linux 排班

5.7 演算法的評估 5.7.1 定量模式 分析性的評估是定量模式 (deterministic modeling) 取一個特殊預定的工作量,並且規定針對該工作量做每種演算的效能。

5.7.2 佇列模式 在許多系統執行的行程每天都不一樣,因此沒有固定的一組行程 (和時間)可以用來做定量模式。然而,可以定出的是CPU和I/O分割的分佈情形。

5.7.3 模擬 為了得到更正確的排班演算法之評估,一般都採用模擬(simulation)方式。