作業系統概論 operating system concepts 第二版 (2nd edition) 賈蓉生 胡大源 林金池...

452
作作作作作作 Operating System Concepts 作作作 (2nd Edition) 作作作 作作作 作作作 作作

Upload: brygid

Post on 11-Jan-2016

101 views

Category:

Documents


6 download

DESCRIPTION

作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生 胡大源 林金池 編著. 第一章 導讀 (Introduction). 1-1 簡介 1-2 本書主要內容 1-3 Java 系統程式 1-4 專有名詞索引 1-5 習作習題 1-6 光碟使用. 1-1 簡介. 作業系統 (Operating System) 是學習電腦的基礎課目,內容含及電腦系統之結構、執行管理、儲存管理、資料傳遞、網路應用、與保護安全等項目。在未來學習電腦的大道上,這些項目提供了一個輪廓,可令讀者胸有成竹地向前邁進。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

作業系統概論Operating System Concepts

第二版 (2nd Edition)

賈蓉生 胡大源 林金池 編著

Page 2: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第一章導讀 (Introduction)

• 1-1 簡介• 1-2 本書主要內容• 1-3 Java 系統程式• 1-4 專有名詞索引• 1-5 習作習題• 1-6 光碟使用

Page 3: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

1-1 簡介

• 作業系統 (Operating System) 是學習電腦的基礎課目,內容含及電腦系統之結構、執行管理、儲存管理、資料傳遞、網路應用、與保護安全等項目。在未來學習電腦的大道上,這些項目提供了一個輪廓,可令讀者胸有成竹地向前邁進。

Page 4: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

1-2 本書主要內容

• 本書內容概分七篇,內容包括概論、行程管理、儲存管理、輸入輸出、分散式系統、保護與安全、與應用系統。

Page 5: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

1-3 Java 系統程式

• 本書內容是人與機器間之介面 -- 作業系統(Operating System) ,其中有許多觀念的描述(Descriptions) 、執行方法的演算 (Algorithms) 等均需以一個眾所認同的語言型態來表示,本書採用具有物件導向意義 (Object-Oriented Approach) 之Java 語言。有關 Java 系統之架構,讀者可參閱本書第二十四章。

Page 6: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

1-4 專有名詞索引

• 為了幫助讀者整理專有名詞,本書編輯中文專有名詞索引約 1,000個 ( 如附錄 D) ,以筆劃查閱;英文專有名詞索引約 1,000個 ( 如附錄 E) ,以字母查閱。其中質量幾已涵蓋所有中英文專有名詞,足夠儲備讀者未來閱讀原文書籍或期刊的能力。

Page 7: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

1-5 習作習題

• 作業系統是學習電腦的基礎課目,也是各重點考試的必考科目,如升學考試、公職考試、甚或求職考試等。本書將各章節重點內容整理成各類考題,對準備考試有最全面性、深入性的幫助。有關習題答案,讀者可向碁峄圖資公司或作者以 E-Mail 直接索取。

Page 8: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

1-6 光碟使用

• 本書隨書附光碟一片,內容有 Java 安裝程式(System) 、範例應用程式 (Program) ;另於出版書局附教學光碟一片,內容有教學投影 (Ppt) 、習題解答 (Ex)、 Java 安裝程式 (System) 、範例應用程式 (Program) 。

Page 9: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第一篇導論 (Over View)

• 作業系統 (Operating) 是一組系統程式 (System Program) ,介於使用者 (User) 與電腦硬體(Hardware) 之間,幫助使用者方便使用,監督電腦有效執行。

• 作業系統內容複雜,範圍龐大,為了讓讀者在深入研讀之前,有一粗略全盤概念的認識,本篇就基礎觀念、電腦系統結構、與作業系統架構先作介紹。

Page 10: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第二章基礎概念 (Introduction)

• 2-1 簡介• 2-2 大型電腦系統 (Mainframe Systems)• 2-3 微型電腦系統 (Microcomputer Systems)• 2-4 多處理器系統 (Multiprocessor System)• 2-5 分散式系統 (Distributed System)• 2-6 習題 (Exercises)

Page 11: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

2-1 簡介

• 作業系統 (Operating System) 是一組系統程式,用於支配 (manage) 電腦本機硬體及週邊設備等資源之使用,並促進使用者方便使用 (conveniently) 、有效使用 (efficiently) 。

Page 12: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 2-1

Page 13: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

2-2 大型電腦系統 (Mainframe Systems)

• 通常大型電腦具有強大綜合性的功能 (如 IBM370),可同時執行單一工作 (Job) 、或多個工作,因不同之需求,作業系統可類分為批次系統 (Batch Systems) 、即時系統 (Real-Time Systems) 、多工系統 (Multi-programmed Systems) 、與分時系統(Time-Sharing Systems) 等。

Page 14: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

2-3 微型電腦系統(Microcomputer Systems)

• 微型電腦有:個人桌上型電腦系統 (PC 或稱Desktop) 、筆記型電腦系統 (Notebook 或稱Laptop) 、手持式電腦系統 (Handheld) 等。

• PC微型電腦快速發展於 1970s年代,與大型電腦(Mainframe) 比較,微型電腦硬體資源較少但便宜;使用者單純,通常是由一個使用者霸佔使用。因此其作業系統之設計自與大型電腦不同。

Page 15: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

2-4 多處理器系統(Multiprocessor System)

• 一台電腦一個 CPU處理器 (Central Processing Unit),既使是新型電腦亦多是如此配置,擁有一個主CPU處理器。一台電腦若擁有多個處理器,其作業系統將對應於多處理器系統 (Multiprocessor System) ,

• 多處理器系統可類分為對稱多處理器系統(Symmetric Multiprocessing) 與非對稱多處理器系統 (Asymmetric Multiprocessing) 。

Page 16: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 2-4-1

Page 17: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 2-4-2

Page 18: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

2-5 分散式系統(Distributed System)

• 個人電腦有其獨立的處理器與硬體裝置資源,應用網路連接,將散置各處的電腦藉由分散式作業系統合作執行指定的工作,如此安排是謂 “分散式系統 (Distributed System) 。

Page 19: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 2-5-1

Page 20: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 2-5-2

Page 21: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

2-6 習題 (Exercises)

• 1 、何謂作業系統?• 2 、一套完整之電腦系統可概分那四組區塊?• 3 、何謂批次系統 (Batch Systems)?• 4 、何謂即時系統 (Real-Time Systems)?• 5 、何謂多工系統 (Multiprogrammed Systems)?• 6 、何謂分時系統 (Time-Sharing Systems)?• 7 、微型電腦有那些?• 8 、多處理器的優點為何?• 9 、何謂分散式系統 (Distributed System) 。• 10 、網路應用範圍可分為幾類? • 11 、網路之連接技術可分為幾類? • 12 、分散式系統在功能分配上可類分為幾類?

Page 22: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第三章電腦系統結構(Computer SystemStructure)

• 3-1 簡介• 3-2 起始操作 (Start Running)• 3-3 中斷 (Interrupt)• 3-4 輸入輸出架構 (I/O Structure)• 3-5 儲存架構 (Storage Structure)• 3-6 硬體保護 (Hardware Protection)• 3-6-1 輸入輸出保護 (I/O Protection)• 3-6-2 記憶體保護 (Memory Protection)• 3-6-3 中央處理器保護 (CPU Protection)• 3-7 網路架構 (Network Structure)• 3-7-1 區域網域 (Local-Area Network)• 3-7-2 廣域網域 (Wide-Area Network)• 3-8 習題 (Exercises)• 3-9 範例系統程式 (Programming)• 3-9-1 中斷例外處理 (模擬 3-3節 )

Page 23: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-1 簡介

• 在我們深入探討電腦作業系統之前,有些關於電腦的基本系統結構須先有一概念性的了解,本章將粗略討論電腦系統結構,內容如起動 (StartUp)、輸入 / 輸出 (I/O) 、儲存 (Storage) 等,及計算機結構 (Computer Architecture) 與作業系統(Operating System) 間之互動架構。

Page 24: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-2 起始操作 (Start Running)

• 當開啟電腦的同時,即啟動 “初始程式 (Initial Program 或稱 Bootstrap Program” ) ,為求快捷,此程式特置於唯讀記憶體中 (ROM Ready-Only Memory) ,初始啟動 CPU 、裝置控制器 (Device Controllers) 、傳導器 (Adapters) 、與記憶體(Memory) 。初始程式將作業系統 (Operating System) 載入記憶體作核心運行 (Kernel) 。

Page 25: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 3-2

Page 26: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 3-3

Page 27: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-4 輸入輸出架構 (I/O Structure)

• 當某裝置要求執行資料輸入輸出 (I/O) 時, CPU載入該裝置控制器內之特殊功能暫存器,由作業系統導引中斷 (Interrupt) 執行資料的輸入輸出。

Page 28: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

I/O 中斷可類分為同步 I/O(Synchronous) 如圖 3-4-1 、與非同

步 I/O(Asynchronous) 如圖 3-4-2

圖 3-4-1 圖 3-4-2

Page 29: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 3-4-3

Page 30: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-5 儲存架構 (Storage Structure)

• CPU 是電腦的執行中樞,直接對主記憶體 (Main Memory) 隨機存取 (random access) 資料,典型的指令執行週期 (Instruction Execution Cycle) 如范紐曼 (Von Neumann) 所提出之執行架構 ( 如圖 3-5-1)

Page 31: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 3-5-1

Page 32: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 3-5-2

Page 33: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-6 硬體保護(Hardware Protection)

• 一台電腦硬體受傷害的原因來自電腦本身的機會不大,多是來自人為程式的錯誤,受傷害的硬體亦多是發生於 I/O 系統、記憶體、或 CPU 。因此所謂電腦硬體保護 Hardware Protection) 就是摒除人為程式的錯誤,而保護的對象為: (1) I/O 系統(I/O)、 (2) 記憶體 (Memory)、 (3) 中央處理器(CPU) 。

Page 34: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-6-1 輸入輸出保護 (I/O Protection)

• 使用者 (Users) 可利用輸入輸出的機會,傳遞非法指令 (illegal Instructions) 、或資料 (Data) ,非法進入系統程式 (Operating System) 領域執行破壞行為,為了避免如此傷害行為,所有的輸入輸出指令(I/O Instructions) 均定義納入系統模式 (System Mode) 。

Page 35: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 3-6-1

Page 36: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-6-2 記憶體保護 (Memory Protection)

• 當使用者之工作程序進入記憶體後,作業系統以兩個暫存器鎖定記憶體之使用範圍,基底暫存器(Base Register) 存置起始地址 (Address) ;限制暫存器 (Limit Register) 存置範圍距離,如圖 3-6-2

Page 37: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 3-6-2

Page 38: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-6-3 中央處理器保護 (CPU Protection)

• CPU 的保護機制是在設定 CPU 之使用時間,作業系統對每一進入 CPU 之程式作使用時間設定,超過該設定時間即判定為非法無限迴圈,從 CPU踢出該程式,執行 CPU 保護。

Page 39: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-7 網路架構 (Network Structure)

• 多台電腦以網路連通,相互支援程序執行與檔案存取,是謂 “網路架構 (Network Structure) 。常見的網路架構有:小範圍區域網域 (LAN Local-Area Network) 、與大範圍廣域網域 (WAN Wide-Area Network) 。

Page 40: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3-8 習題 (Exercises)

• 1 、何謂核心運行 (Kernel)?• 2 、何謂事件中斷 (Event Interrupt)?• 3 、中斷表 (Table of Interrupt) 與中斷程序之關係為何?• 4 、何謂同步 I/O 中斷?• 5 、何謂非同步 I/O 中斷?• 6 、記憶體直接存取方法 (DMA) 的使用條件為何?• 7 、主記憶體與 CPU 的關係為何?• 8 、主記憶體有那些無法克服的困難?• 9 、何謂快取記憶體 (Cache)?• 10 、硬體傷害常發生在那些裝置上?• 11 、何謂雙模操作法?• 12 、如何作 I/O 保護?• 13 、如何作記憶體保護?• 14 、如何作 CPU 保護?• 15 、何謂區域網域 (LAN)?• 16 、何謂廣域網域 (WAN)?

Page 41: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第四章 作業系統架構(Operating System Structure)

• 4-1 簡介• 4-2 系統組成要件 (System Components)• 4-2-1 行程管理 (Process Management)• 4-2-2主記憶體管理 (Main Memory Management)• 4-2-3檔案管理 (File Management)• 4-2-4 輸入輸出系統管理 (I/O System Management)• 4-2-5輔助記憶體管理 (Secondary Storage Management)• 4-2-6 網路連通管理 (Networking Management)• 4-2-7 保護系統管理 (Protection Management)• 4-2-8 介面指令管理 (Shell Command Interpreter Management)• 4-3 作業系統服務 (Operating System Services)• 4-4 系統呼叫 (System Calls)• 4-5 系統程式 (System Programs)• 4-6 應用程式 (Application Programs)• 4-7 系統架構 (System Structure)• 4-7-1 簡易架構 (Simple Structure)• 4-7-2 階層架構 (Layered Approach)• 4-7-3 微核心 (Microkernel)• 4-7-4 模組架構 (Modules)• 4-8 虛擬機器 (Virtual Machines)• 4-9 系統設計與編寫 (System Design and Implementation)• 4-10 檢選系統 (System Generation)• 4-11 開機系統 (System Boot)• 4-12 習題 (Exercises)

Page 42: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-1 簡介

• 作業系統是一個非常龐大且複雜的程式,如果沒有一系列井然有序的描述,將不易了解,本章就其組成要件、服務、程式架構、系統程式、應用程式、設計規範、開機系統等,作輪廓描述,讓讀者先有清晰概念,本書將於爾後各章節詳細敘述。

Page 43: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-2 系統組成要件 (System Components)

• 作業系統 (Operating System) 即龐大又複雜,本節就其功能性 ( 如圖 4-2-1) 將系統類分成程序管理 (Process Management) 、主記憶體管理 (Main Memory Management) 、檔案管理 (File Management) 、輸入輸出管理 (I/O Management) 、輔助記憶體 (Secondary Storage Management) 、網路連通管理 (Networking Management)、保護管理 (Protection Management) 、指令解釋管理(Command Interpreter Management) ,並作概念描述。

Page 44: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-2-1

Page 45: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-3 作業系統服務(Operating System Services)

• 電腦能有效執行,有賴於作業系統的有效運行,作業系統不僅要提供使用者最佳的服務 (Services) ,也要對作業系統自己提供最佳的可信度。

Page 46: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-4 系統呼叫 (System Calls)

• 當行程 (Process) 衝撞系統時,行程要求系統呼應執行是謂 “系統呼叫 (System Call)” 。除了低階語言 ( 如組合語言Assembly Language) 與少數高階語言之某些狀況外,為了保護系統安全,一般高階語言均不被允許直接 (Directly) 作系統呼叫。

Page 47: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-4-1

Page 48: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-4-2

Page 49: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-4-3

Page 50: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-5 系統程式 (System Programs)

• 回憶圖 2-1 ,最底層是電腦硬體 (Hardware) ,其次是作業系統 (Operating System) ,再其次即是系統程式 (System Programs) 與應用程式 (Application Programs) 。系統程式(System Programs) 提供使用者程式 (User’s Program) 一個良好的執行環境,亦即使用者與系統程式間的介面(Interface) ,可藉系統呼叫 (System Call) 或其他方式執行

Page 51: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-6 應用程式 (Application Programs)

• 如圖 2-1 ,與系統程式在相同地位的是 “應用程式(Application Program 或 System Utilities) ,用以支援解決一般之應用問題。這些程式包括網路瀏覽器 (Web Browsers) 、文字處理器 (Word Processors) 、試算表(Spreadsheets) 、資料庫 (Database Systems) 、繪圖(Plotters) 、統計分析 (Statistical Analysis) 、遊戲 (Games)

等。

Page 52: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-7 系統架構 (System Structure)

• 隨著電腦應用需求之增加,作業系統已變成龐大且複雜,其結構概念也由整體架構 (Monolithic System) 改向為小單位分割架構 (Partition of Small Components System) 。整體架構之缺點為反應遲緩,任何錯誤均將禍及整體系統甚至當機,優點為設計簡易、管理方便;小單位分割架構之缺點為設計複雜,優點為反應靈巧,區隔錯誤使其不影響其他部份。

Page 53: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-7-1

Page 54: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-7-2

Page 55: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-7-3

Page 56: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-7-4

Page 57: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-7-5

Page 58: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-8 虛擬機器 (Virtual Machines)

• 一般作業系統可類分為 3 個主要區塊 ( 如圖 4-8-1),包括行程 (Processes) 、核心 (Kernel) 、與硬體(Hardware) 三部份。

Page 59: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-8-1

Page 60: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-8-2

Page 61: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-8-3

Page 62: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-9 系統設計與編寫(System Design and Implementation)

• 規劃設計藍圖之前,須先考量為何種電腦硬體設計?設計何種系統?採用批次執行 (Batch)?分時執行 (Time Shared)?一個使用者 (Single User)?多個使用者(Multiusers)?即時系統 (Real Time)?分散式據點(Distributed)?產生方式 (Generation)?

• 關鍵機制 (Mechanisms) 用於處理如何作為 (How)?,執行計劃 (Policies) 用於處理做些什麼 (What)?系統通常以低階語言 -- 組合語言 (Assembly Language)-- 編寫,也有小部份以高階語言 --C、 C++ -- 編寫,新型作業系統以 Java編寫。

Page 63: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-10 檢選系統(System Generation)

• 一般系統程式之設計考量應是: (1) 適用於同型電腦(Class of Machine), (2) 適用於不同的場所 (Varity of Sits), (3) 適用於不同的周邊環境 (Varity of Peripheral Configurations) 。

• 同類型電腦因是相同機件,可作統一設計,但為了滿足不同的場所與周邊環境,則須先考量納入所有可能發生的狀況,於臨場實地使用時,再篩選有用的內容納入當時的作業系統,如是設計的作業系統稱為 “檢選系統 (SYSGEN System Generation)” 。

Page 64: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-11 開機系統 (System Boot)

• 當電腦開啟電源 (Power on) 或重新啟動 (Reset) 時,立即將指令暫存器 (IR Instruction Register) 載入,同時執行開機程式 (Bootstrap Program) 。開機程式儲存於 ROM 內,不須作任何初始動作(Initialization) ,開機就執行,亦不受任何病毒的入侵。

Page 65: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4-12 習題 (Exercises)

1 、作業系統 (Operating System) 有那些要件?2 、作業系統應有那些行程管理內容?3 、在安排記憶體上、作業系統應有那些行程管理內容?4 、作業系統應有那些檔案管理內容?5 、作業系統應有那些 I/O 管理內容?6 、作業系統應有那些輔助記憶體管理內容?7 、作業系統應有那些網路連通管理內容?8 、作業系統應有那些保護管理內容?9 、作業系統應有那些介面命令管理內容?10 、作業系統之服務要旨為何?11 、系統呼叫可藉參數 (Parameter) 傳遞訊息之方法有那些?

12 、系統呼叫可類分為那幾類?13 、系統程式可類分那幾類?14 、作業系統之架構可類分那機類?

Page 66: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第二篇

行程管理 (Process Management)

Page 67: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第五章 行程 (Processes)

• 5-1 簡介• 5-2 行程之觀念 (Process Concept)• 5-2-1 行程狀態 (Process State)• 5-2-2 行程控制區段 (Process Control Block)• 5-2-3 執行緒 (Threads)• 5-3 排程 (Process Scheduling)• 5-3-1 排程佇列 (Scheduling Queues)• 5-3-2 排程器 (Schedulers)• 5-3-3 內文切換 (Context Switch)• 5-4 行程操作 (Operations on Processes)• 5-4-1 行程產生 (Process Creation)• 5-4-2 行程結束 (Process Termination)• 5-5 合作行程 (Cooperating Processes)• 5-6 行程通訊 (Interprocess Communication)• 5-6-1 訊息傳遞 (Message Passing System)• 5-6-2 同步操作 (Synchronization)• 5-6-3 緩衝 (Buffering)• 5-7 網路連通 (Server/Client Network)• 5-8 習題 (Exercises)• 5-9 範例系統程式• 5-9-1 父行程與子行程之繼承關係 (模擬 5-4-1節 )• 5-9-2 合作行程 (模擬 5-5節 )• 5-9-3 網路連通 (模擬 5-7節 )

Page 68: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

5-1 簡介

• 程式 (Program) 是程式碼之檔案 (File) ,行程(Process) 是正在執行的程式 (Program in Execution)。早期電腦當執行程式時,整個系統資源均用於支援該一個程式;今日電腦系統可同時支援多個程式之執行。

• 行程是工作的單元 (Unit of Work) ,一個程式有數個行程。系統內有多個行程競爭進入 CPU 作執行, CPU切換 (Switch) 於各行程之間,盡求公平執行各行程。

Page 69: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

5-2 行程之觀念 (Process Concept)

• 如前述,行程 (Process) 是正在執行的程式(Program in Execution) ,一個程式可能有數個行程,有些書將行程 (Process) 亦稱為工作 (Job) ,本書為了爾後的清晰解述,一般應用名稱使用 “行程 (Process)” ;特定意義應用名稱使用 “工作(Job)” ,如工作排程 (Job Scheduling) 等。

Page 70: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 5-2-1

Page 71: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

5-3 排程 (Process Scheduling)

• CPU 是系統的執行中樞,有其自身的執行能力限制 (limitations) ,不會因外在的強求而改變,亦無法完全配合周遭瞬息萬變的條件環境(Environment) 。以行程 (Process) 為例,如有多個行程競爭進入 CPU ,因 CPU 一個時間只能執行一個工作,無法同時將這些行程同時執行,但可退而求其次,以其能力範圍內,輪流切換 (switch) 執行各個行程,切換 (switch) 的流程如圖 5-3-1 。

Page 72: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 5-3-1

Page 73: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 5-3-2

Page 74: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 5-3-3

Page 75: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 5-3-4

Page 76: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

5-4 行程操作 (Operations on Processes)

• 行程 (Processes) 不定期隨機 (dynamically) 產生,亦不定期隨機終結消失,為了可以處理如此不定期的多個行程,多數作業系統 (Operating System) 均設計為可操作行程作並行執行 (execute concurrently) 。

Page 77: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

5-5 合作行程 (Cooperating Processes)

• 一個行程如果不影響其他行程、不被其他行程影響、亦不與其他行程共享資料 (Data) 或資源(Resource) ,如是行程是謂 “獨立行程(Independent Process)” ;否則即謂 “合作行程(Cooperating Process) 。

Page 78: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

5-6 行程通訊 (Interprocess Communication)

• 兩個行程 (Processes) 互通訊息是謂 “行程通訊(IPC Interprocess Communication)” ,這兩個行程可能演譯自同一程式 (Program) ,亦可能演譯自不同的多個程式 (Programs) 。

Page 79: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 5-6-1

Page 80: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 5-6-2

Page 81: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

5-7 網路連通 (Server/Client Network)

• 今日電腦網路蓬勃發展,網路連通已是作業系統的基本功能之一,網路連通 ( 如圖 5-7) 之要件為網址 (IP) 、埠 (Port) 、與平台 (Socket) 。請參考本章 5-9 節,實作一個網路連通範例,以 Java 作為執行語言,設定 Server, Client兩個網路行程。

Page 82: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 5-7

Page 83: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

5-8 習題 (Exercises)

• 1 、何謂行程 (Process)?• 2 、行程有那 5 個狀態 (States)?• 3 、何謂 “行程控制區段 (PCB Process Control Block)” ?• 4 、行程控制區段 (PCB Process Control Block) 內有那些資

料?• 5 、何謂 “排程佇列 (Scheduling Queue)”?• 6 、何謂 “排程器 (Scheduler)”?• 7 、除了因完成任務而結束外,行程尚有那些原因被迫結束?

• 8 、行程合作的理由有那些?• 9 、直接通訊 (Direct Communication) 之優缺點為何?• 10 、間接通訊 (Indirect Communication) 之優缺點為何?• 11 、何謂同步操作 (Synchronization)?• 12 、何謂非同步操作 (Asynchronization)?• 13 、網路連通要件有那些?

Page 84: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第六章執行緒 (Threads)

• 6-1 簡介• 6-2 執行緒定義 (Overview)• 6-3 多執行緒模型 (Multithreading Models)• 6-4 執行緒操作 (Operations of Threads)• 6-4-1 執行緒之終止 (Cancellation)• 6-4-2 信號管理 (Signal Handling)• 6-4-3 執行緒池 (Thread Pools)• 6-5 執行緒與 CPU(Threads and CPU)• 6-6 習題 (Exercises)• 6-7 範例系統程式 (Programming)• 6-7-1 執行緒與 CPU(模擬 6-5節 )

Page 85: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

6-1 簡介

• 於前章我們針對行程 (Processes) 已作概念性的討論,本章我們將討論更為靈活的執行單元 “執行緒 (Threads)” 。行程 (Process) 是工作單元 (Unit of work) ,系統內有多個行程同時存在,但 CPU 一個時間只能處理一個行程,因此多數的行程都在等待狀態 (Waiting State) ,競爭進入 CPU被執行,如此形式的行程又稱為 “執行緒 (Thread)” 。早期系統一個行程即是一個執行緒,新型電腦一個行程可視其多元性之工作內容,允許依不同工作內容分割出多個執行緒,利用 CPU 分時執行方法 (Time Sharing) ,在一個時間中可執行多個任務 (Tasks) 。

Page 86: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

6-2 執行緒定義 (Overview)

• 執行緒 (Thread) 是 CPU 之基本執行單元 (Basic Unit) ,如前述,早期系統一個行程即是一個執行緒,新型電腦系統一個行程可視其多元性之工作內容,允許依不同工作內容分割出多個執行緒,利用 CPU 分時執行方法 (Time Sharing) ,在一個時間中執行多個任務 (Tasks) 。

• 如圖 6-2-1 ,每個執行緒 (Thread) 擁有各自的識別碼 (ID) 、指令計數器 (Program Counter) 、暫存器組 (Register Set) 、與一個堆疊 (Stack) 。如圖 6-2-2 ,同屬一個行程 (Process) 的各執行緒可共享程式碼 (Code) 、資料 (Data) 、檔案 (Files) 等系統資源。

Page 87: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 6-2-1

Page 88: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 6-2-2

Page 89: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

6-3 多執行緒模型 (Multithreading Models)

• 於前節已描述使用者執行緒 (User Threads) 與核心執行緒 (Kernel Threads) ,使用者執行緒由核心支援 (support) ,但由使用者管理 (managed) ;核心執行緒由核心支援,亦由核心管理。本節將就使用者執行緒、與核心執行緒兩者之對應關係(Mapping Relations) 作更進一步的探討。

Page 90: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 6-3-1

Page 91: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 6-3-2

Page 92: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 6-3-3

Page 93: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

6-4 執行緒操作 (Operations of Threads)

• 經過前數章節對執行緒的描述,讀者對執行緒已有基礎應用上的概念,本節將再就執行緒之其他執行事項作進一步的分析。

Page 94: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

6-5 執行緒與 CPU(Threads and CPU)

• Java 系統內建 Thread 類別,其功能是將 CPU 分割成多個工作時段,適當地提供給條件最優的工作片斷作執行。使用者可藉: (1) 以新類別繼承Thread 類別,再由該新繼承類別以 new產生執行物件, (2) 或以 “ new” 由類別 Thread 直接產生新執行物件,搶 CPU時段給予條件最優的工作片斷先作執行。

Page 95: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

6-6 習題 (Exercises)

1 、執行緒 (Thread) 擁有那些基本設定?2 、同屬一個行程 (Process) 的各執行緒可共享那些

資源?3 、一個多元性工作的行程 (Process) ,可依其不同工作內容分割出多個執行緒 (Threads) ,其優點有為何?

4 、使用者執行緒 (User Threads) 與核心執行緒(Kernel Threads) 有那些關係模型?

5 、當標的執行緒執行 “終止” 時,視系統的不同,有那兩種情況伴隨發生?

6 、設置執行緒池的理由為何?

Page 96: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第七章CPU 排程 (Scheduling)

• 7-1 簡介• 7-2 排程概念 (Scheduling Concepts)• 7-2-1 CPU與 I/O 週期 (CPU and I/O Cycle)• 7-2-2 CPU排程器 (Scheduler)• 7-2-3 搶先排程 (Concept of Preemptive Scheduling) 概念• 7-2-4 分配器 (Dispatcher)• 7-3 排程評量要件 (Scheduling Criteria)• 7-4 排程演算法 (Scheduling Algorithms)• 7-4-1 先到先執行 (FCFS First-Come-First-Served Scheduling)• 7-4-2 最短工作優先 (SJF Shortest-Job-First Scheduling)• 7-4-3 搶先排程 ( Preemptive Scheduling)• 7-4-4 優先權排程 ( Priority Scheduling)• 7-4-5循環分時 (RR Round-Robin) 排程• 7-4-6 多層佇列 (Multilevel Queues) 排程• 7-4-7 多層回授佇列 (Multilevel Feedback-Queue) 排程• 7-4-8 多處理器 (Multi-Processor) 排程• 7-5 排程評量 (Algorithm Evaluation)• 7-6 習題 (Exercises)• 7-7 範例系統程式 (Programming)• 7-7-1 優先權排程 (模擬 7-4-4節 )

Page 97: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-1 簡介

• CPU排程 (Scheduling) 是多工作業系統(Multiprogramming Operating System) 的基石之一,當多個行程 (Processes) 或執行緒 (Threads) 在就緒佇列 (Ready Queues) 中等待進入 CPU時,系統如何選擇適當的行程優先進入 CPU即謂 “ CPU排程”。

• 本章除了對 CPU排程作概念描述之外,另列出數種排程演算法 (Algorithms) 及應用分析。

Page 98: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-2 排程概念 (Scheduling Concepts)

• CPU 一個時間只能允許一個行程 ( 例如 P0) 進入執行,當行程 P0 執行完畢後,再輪由其他行程 Pi依序進入 CPU 執行。此其間 P0 可能去執行 I/O ,而 CPU 也因等待 P0而怠惰 (Idle) ,如此珍貴的CPU時間用於等待 (Waiting) 實為可惜。

Page 99: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-3 排程評量要件 (Scheduling Criteria)

• 如 7-2-2 節所述,至今已發展出許多排程演算法,至於要選用那一種則無一定的定見,要配合當時的電腦系統與執行環境、與程式本身之條件而定。本節介紹 5 類評量要件,以其計量的數據評量出最佳選擇。

Page 100: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-4 排程演算法 (Scheduling Algorithms)

• 當行程置入就緒佇列 (Ready Queue) 後,隨即等待系統依排程演算法選擇進入 CPU ,行程從進入CPU開始至離開 CPU 為止所需的時間是謂 “ CPU時間 (Burst Time)” ,不同的演算法有其不同的執行意義,本節將探討目前常用的各類排程演算法。

Page 101: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-4-1 先到先執行(FCFS First-Come-First-Served Scheduling)

• 將就緒佇列 (Ready Queue) 內等待的各行程,依先到先執行的法則排序進入 CPU 執行,如是法則是謂 “先到先執行排程 (FCFS)” 。

Page 102: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-1-1

Page 103: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-4-2 最短工作優先(SJF Shortest-Job-First Scheduling)

• 於前節,我們已觀察到,於就緒佇列 (Ready Queue) 內等待的各行程,將 CPU時間較小的行程先選入 CPU 執行,可節省大量的平均等待時間,如是法則是謂 “最短工作優先排程 (SJF )” 。

Page 104: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-2-1

Page 105: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-4-3 搶先排程 ( Preemptive Scheduling)

• 如 7-2-3 節所述,同時考量時間 (Time) 與權值(Weight) 的排程是謂 “搶先排程 (Preemptive Scheduling)” 。例如行程 P1 的權值高於 P2 的權值,理應先選 P1後選 P2 ,但於決選時刻, P1尚未抵達,只有 P2 出現,此時系統先選擇權值次高的P2 ,若 P1 隨後到達,系統再以當時的狀況重新考量最佳之選擇,其優點是不浪費等待的時間。

Page 106: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-3

Page 107: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-4-4 優先權排程 ( Priority Scheduling)

• 因為工作重要性的需要,可付予行程適當的優先權值 (Priority) ,優先等級較高的行程,優先被選擇進入 CPU 。

Page 108: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-4

Page 109: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-4-5 循環分時 (RR Round-Robin) 排程

• 設有行程 P1、 P2、 P3 依 FCFS排序,將 CPU時間切割成數個時間分量 (Time Quantum) q ,行程P1 進入 CPU 在時間分量 q 範圍內作執行,如果未完成執行,跳出 CPU ,讓 P2 進入 CPU。 P1 等待下一循環再進入 CPU繼續執行,直至各行程執行完畢為止。如是作為是謂 “循環分時排程 (RR)”。

Page 110: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-5

Page 111: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-4-6 多層佇列 (Multilevel Queues) 排程

• 在眾多行程中,為了管理方便,可將功能性相同的各行程納入同一群組 (Group) ,同一群組內,行程與行程間執行適當之排程 (Suitable Scheduling),群組與群組間亦執行適當之排程。如此雙線排程是謂 “多層佇列排程 (Multilevel Queues Scheduling)” 如圖 7-4-6 。

Page 112: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-6

Page 113: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-4-7 多層回授佇列排程 (Multilevel Feedback-Queue)

• 於前節,我們已認識多層佇列排程的缺點是:如果某群組的優先等級過低,則該群組的所有行程就可能失去進入 CPU 的機會。

• 為了改善上述缺點,我們設計多層回授佇列排程(Multilevel Feedback-Queue Scheduling) 如圖 7-4-7,如果某群組之 CPU時間超過規定之時間分量(Quantum Time) ,系統即強迫將 CPU 使用權交付予較低層之群組使用,如此每一層群組都有進入CPU 的機會。

Page 114: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-7

Page 115: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-4-8 多處理器 (Multi-Processor) 排程

• 到目前為止,我們探討的排程模型均為一個 CPU,如果系統擁有多個 CPU ,執行效率將大為提高且精彩,如此環境執行的排程是謂 “多處理器排程 (Multi-Processor Scheduling) 。

Page 116: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-8-1

Page 117: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-8-2

Page 118: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 7-4-8-4

Page 119: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-5 排程評量 (Algorithm Evaluation)

• 於前數節中,我們已探討過多種排程方法,每一種方法都有其獨特的優點與缺點,我們也很難評量出那一種方法為最佳法則。除了排程方法外,當時的執行環境亦是重要影響因素之一。事實上,觀察實際執行的現象才是較為可靠的評量。

Page 120: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

7-6 習題 (Exercises)

1 、何謂 CPU排程 (Scheduling)?2 、何謂 I/O 型行程 (I/O-Bound Process)?3 、何謂 CPU 型行程 (CPU-Bound Process)?4 、何謂搶先排程 (Preemptive Scheduling)?5 、系統需要考量排程的關鍵時機為何?6 、排程評量要件 (Scheduling Criteria) 有那些?7 、設有行程與其 CPU時間如下,試以 FCFS計算其平均等待時間?

8 、設有行程與其 CPU時間如下,試以 SJF計算其平均等待時間?

9 、設有行程與其 CPU時間如下,試以 Preemptive與 SJF計算其平均等待時間?

10 、設有行程與其 CPU時間如下,試以優先權排程計算其平均等待時間?

11 、著手執行評量,可類分那 3 個執行階層?

Page 121: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第八章行程與同步並行 (Process Synchronization)

• 8-1 簡介• 8-2 並行條件 (Concurrency Conditions)• 8-3 臨界區 (Critical Section)• 8-4 兩任務演算法 (Two-Tasks Algorithms)• 8-4-1 演算法 1(Algorithm1)• 8-4-2 演算法 2(Algorithm2)• 8-4-3 演算法 3(Algorithm3)• 8-5 硬體並行指令 (Synchronization Hardware)• 8-5-1 方法程序 getAndset( )• 8-5-2 方法程序 swap( )• 8-6 信號 (Semaphores)• 8-6-1 信號 (Semaphores) 與臨界區 (Critical Section)• 8-6-2 信號 (Semaphores) 與並行序列 (Synchronization)• 8-7 應用 (Application)• 8-8 習題 (Exercises)• 8-9 範例系統程式 (Programming)• 8-9-1 臨界區演算法 1(模擬 8-4-1節 )• 8-9-2 臨界區演算法 2(模擬 8-4-2節 )• 8-9-3 臨界區演算法 3(模擬 8-4-3節 )• 8-9-4 臨界區硬體指令 getAndset( ) (模擬 8-5-1節 )• 8-9-5 臨界區硬體指令 getAndset( ) (模擬 8-5-2節 )• 8-9-6 號碼機與 synchronized 類別 (模擬 8-7節 )

Page 122: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-1 簡介

• 我們曾於 5-5 節述及合作行程 (Cooperating Process) ,於執行時,行程之間可相互影響,分享記憶體 (Memory) ,分享資料 (Data) ,但往往因管理不周嚴,使得資料失去一致性 (Inconsistency) 。例如有一個銀行帳戶,哥哥到銀行臨櫃存錢,同一時間,弟弟以提款卡到提款機取錢,如此同步並行,如果管理不當,資料失去一致性,帳戶餘額將會混亂錯誤。

• 因此、在多個行程同步並行時,如何保持資料的一致性 (Consistency) ,是行程作業的一個重要環節,本章將深入探討之。

Page 123: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-2 並行條件 (Concurrency Conditions)

• 如前述,在多個行程同步並行時,如何保持資料的一致性(Consistency) ,是行程並行作業的重要一環,設有程式片斷:

• S1: a ← 5• S2: b ← a+1• S3: c ← a+2• S4: d ← b+c

圖 8-2-1

Page 124: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

• S1: a ← 5• S2: b ← a+1• S3: c ← a+2• S4: a ← b• S5: a ← c• S6: print a

圖 8-2-2

Page 125: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-3 臨界區 (Critical Section)

• 每一執行緒 (Thread) 之寫入 / 讀取 (W/R) 功能碼(Code) ,均可視為該執行緒之臨界區 (CS Critical Section) 。於臨界區,執行緒可對共享資源(Shared Resource) 存取 (Access) 資料,如共用記憶體或變數 (Common Variables) 、檔案 (Files) 等。

Page 126: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-4 兩任務演算法 (Two-Tasks Algorithms)

• 於系統中,有多個執行緒 (T1、 T2、…、 Tn) 等待執行,為了容易解說,將此 n 個執行緒類分為2種角色: (1) 使用者關心的執行緒 Ti; (2) 其他執行緒 Tj 。例如使用者關心 T3 ,則 Ti = {T3}、 Tj = { T1、 T2、 T4、…、 Tn} 。

Page 127: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 8-4

Page 128: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-4-1 演算法 1(Algorithm1)

圖 8-4-1

Page 129: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-4-2 演算法 2(Algorithm2)

圖 8-4-2-1

Page 130: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-4-3 演算法 3(Algorithm3)

圖 8-4-3

Page 131: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-5 硬體並行指令(Synchronization Hardware)

• 在形式上或非形式上,可直接控制記憶體的指令是謂 “硬體控制指令 (Hardware Instructions)” ,本節關心的是將記憶體鎖住的指令 (lock) ,如果能將記憶體鎖住,防止不必要的執行緒作資料存取, 8-4 節所談的各演算法均可輕易迎刃而解。

Page 132: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-5-1 方法程序 getAndset( )

圖 8-5-1

Page 133: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-5-2 方法程序 swap( )

圖 8-5-2

Page 134: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-6 信號 (Semaphores)

• 於執行緒同步並行設計中,信號方法(Semaphores) 是一很有意義的一環,其可達成兩個重要意義: (1) 解決臨界區的問題、 (2) 自動調配並行序列的連貫性。

Page 135: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-6-1 信號 (Semaphores) 與臨界區 (Critical Section)

圖 8-6-1

Page 136: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-6-2 信號 (Semaphores) 與並行序列 (Synchronization)

圖 8-6-2-1

Page 137: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 8-6-2-2

Page 138: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著
Page 139: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-7 應用 (Application)

• 當我們走進高鐡車站,先到售票機按鈕買票,進入月台再依車票座位號碼找車箱座位。本節就以售票機為設計範例,如果有多個旅客同時按鈕買票,亦即同時進入售票系統之臨界區,此時各旅客可能領到相同座位號碼的車票 ( 讀者是否還記得,高鐡通車時買票混亂之情形 ) 。請讀者參考本章 8-9 節範例系統程式,以了解其混亂的原因與改進之方法。

Page 140: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

8-8 習題 (Exercises)

1 、何謂 伯恩斯坦同步並行條件 (Bernstein Condition) ?

2 、何謂臨界區 (CS Critical Section) 。於臨界區?3 、同步並行須滿足那三個要件?4 、何謂 2任務演算法?5 、使用者關心的執行緒 Ti ,有那三種關鍵機制訊息?

6 、何謂硬體控制指令 (Hardware Instructions)?7 、信號 (Semaphore) 的概念為何?

Page 141: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第九章 死結 (Deadlocks)

• 9-1 簡介• 9-2 死結定義 (Deadlock Definition)• 9-3 死結特性 (Deadlock Characterization)• 9-3-1 必要條件 (Necessary Conditions)• 9-3-2 資源分配圖 (Resource – Allocation Graph)• 9-4 死結預防 (Deadlock Prevention)• 9-5 死結避免 (Deadlock Avoidance)• 9-5-1 銀行家概念 (Conception of Banker)• 9-5-2 安全演算法 (Safety Algorithm)• 9-5-3 資源要求演算法 (Resource Request Algorithm)• 9-5-4 單一裝置 (Single Instance)• 9-6 死結偵測 (Deadlock Detection)• 9-6-1 偵測演算法• 9-6-2 單一裝置 (Single Instance)• 9-6-3 啟動偵測時機 (Detection Algorithm Usage)• 9-7 死結消弭 (Recovery from Deadlock)• 9-7-1 行程終止法 (Process Termination)• 9-7-2 資源釋放法 (Resource Preemption)• 9-8 習題 (Exercises)• 9-9 範例系統程式 (Programming)• 9-9-1 循環等待之死結 (模擬 9-3-2節 )

Page 142: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-1 簡介

• 在多工環境 (Multiprogramming Environment) ,隨時都有多個行程 (Processes) 或執行緒 (Threads) 競爭有限數量的資源 (Resources) ,如果執行緒 Ti需要的資源 Ri當時不方便 (not Available), Ti即轉為等待狀態 (Waiting State) 。

• 如上述,執行緒 Ti 需要資源 Ri ,此時若 Ri被其他執行緒 Tj控制佔有,而 Tj 也處於等待狀態,且不釋放 Ri ,如此現象是謂 “死結 (Deadlock)” 。

Page 143: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-2 死結定義 (Deadlock Definition)

• 死結形成的基本原因是資源 (Resource) 的不敷使用,資源包括實體資源 (Physical Resource) 和程式中的邏輯資源 (Logical Resource) ,若一味因資源不足而增加資源,則將付出不菲的代價 (Payment),故行程 (Processes) 與資源 (Resource) 的優良管理是避免死結 (Prevent Deadlocks) 的最佳途徑。

Page 144: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-2

Page 145: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-3 死結特性 (Deadlock Characterization)

• 系統陷入死結 (Deadlock) 時,行程 (Process) 無法完成執行,資源 (Resource) 被工作綁住而無法脫身。

Page 146: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-3-1 必要條件 (Necessary Conditions)

• 要避免死結發生,須先了解死結發生的因素特性(Characters) ,死結發生的必要條件是當下列四個狀態同時產生時:

• 互斥 (Mutual Exclusion)• 佔有與等待 (Hold and Wait)• 無搶先機制 (No Preemption)• 循環等待 (Circular Wait)

Page 147: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-3-2 資源分配圖(Resource – Allocation Graph)

• 死結是由一系列行程與資源之阻通而造成,為了清楚解說,我們設計資源分配圖 (Resource Allocation Graph) 參與說明。

Page 148: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

要求 (Request) :

• 行程向系統提出某資源之使用要求,如圖 9-3-2-1 ,行程 P1 對資源 R1 提出要求。其表示式為:

• 行程集合 P = {P1} 。 • 資源集合 R = {R1} 。• 關係邊集合 E = {P1→R1} 。

Page 149: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-3-2-1

Page 150: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

2 、佔用 (Use) / 佔有 (Hold) :

• 如圖 9-3-2-2 ,行程 P2佔用或佔有資源 R1 的一件裝置 (Instance) 。其中佔用 (Use) 是 P2正在使用該項資源 R1 ;佔有 (Hold) 是 P2除了已抓取 R1之外,尚等待要求其他資源,亦可能是因此造成死結之原因。表示式為:

• 行程集合 P = {P2} 。 • 資源集合 R = {R1} 。• 關係邊集合 E = { R1→P2} 。

Page 151: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-3-2-2

Page 152: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

3 、佔有 (Hold) 與要求 (Request) :

• 如圖 9-3-2-3, P3除了已抓取 R1 之外,尚等待要求其他資源 R2 。表示式為:

• 行程集合 P = {P3} 。 • 資源集合 R = {R1, R2} 。• 關係邊集合 E = { R1→P3, P3→R1} 。

Page 153: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-3-2-3

Page 154: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

4 、循環等待 (Circular Wait) :

• 如圖 9-3-2-4, P1 已佔有 R1 ,且提出要求 R2 ,但 R2 已被 P2佔有; P2 已佔有 R2 ,且提出要求R1 ,但 R1 已被 P1佔有。如此永久等待無法解開的迴圈是謂 “循環等待 (Circular Wait)” ,亦是造成死結的元兇原因。表示式為:

• 行程集合 P = {P1, P2} 。 • 資源集合 R = {R1, R2} 。• 關係邊集合 E = { R1→P1→R2→P2→R1 } 。

Page 155: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-3-2-4

Page 156: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

5 、迴圈 (Cycle Graph) :

• 如圖 9-3-2-5 ,雖然與圖 9-3-2-4 有一樣的迴圈,但在死結的意義上却不相同。於圖 (a), R1 有兩件裝置 (Instance), P2不會永久等待,故不會產生死結。於圖 (b) ,當 P3正在佔用 R1 的一件資源時, P2 等待;一旦 P3釋放 R1, P2即不需再等待,故也不會產生死結。

Page 157: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-3-2-5

(a) (b)

Page 158: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-4 死結預防 (Deadlock Prevention)

• 為了預防死結發生,我們可從上述之死結必要條件著手,亦即想盡方法不讓上述四個條件發生。

• 1 、互斥 (Mutual Exclusion)• 2 、佔有與等待 (Hold and Wait)• 3 、無搶先機制 (No Preemption)• 4 、循環等待 (Circular Wait)

Page 159: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-5 死結避免 (Deadlock Avoidance)

• 本節提出避免死結 (Avoidance) 以取代預防死結(Prevention) 之觀念。如圖 9-5-1, (1) 安全區為絕無發生死結可能之區域,亦即無 9-4 節所述之死結必要條件。 (2) 非安全區為已觸及死結的必要條件,但尚未真正產生死結。 (3) 死結區為已發生死結。

Page 160: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-5-1

Page 161: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-5-1-1/圖 9-5-1-2

Page 162: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-5-2 安全演算法 (Safety Algorithm)

• 當行程 Pi 需求資源 Needi時,系統有足夠的可用資源提供使用,即 Needi ≦Available 。如果如此狀態能滿足每一個行程,系統已處於安全狀態,且安排出行程安全序列 <Pi, Pj, Pk, …> 。其演算法為:

• 1. 宣告 work ← Available;• finish[i] ← false; ( 其中 i = 0, 1, …, n-1)• string ← Ø;• 2. 依序測試 for (i=0; i<n; i++)• if (finish[i] ==false) and (Needi work) ≦ then• string ← string + “Pi”;• goto step3;• goto step 4;• 3. work ← work + Allocation;• finish[i] ← true;• goto step 2;• 4. 依序測試 for (i=0; i<n; i++)• if finish[i] == true 表示行程 Pi順利完成,如果每一行程均順利完成,

系統在安全狀態 ;• 5. print string;

Page 163: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-5-2-1/圖 9-5-2-2

Page 164: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-5-3 資源要求演算法(Resource Request Algorithm)

• 當行程 Pi 提出資源要求量 Requesti ,要求量不得多於需求量 (Need),即 Requesti Needi≦ ,否則有致發生死結的可能;同時要求量亦不得多於可用量 (Available) ,即 Requesti Available≦ ,否則須等待系統釋出足夠的資源。其演算法為:

• 1. 行程 Pi 提出資源要求 Requesti;• 2. if Requesti Needi ≦ then goto step 2; • else 有致生死結的可能 ;• 3. if Requesti Available ≦ then goto step 3; • 4. 系統依照安全規則運行: Available ← Available – Requesti;• Allocationi ← Allocationi + Requesti;• Needi ← Needi – Requesti;

Page 165: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-6 死結偵測 (Deadlock Detection)

• 如前述,如果將系統一直維持在安全區內,雖可預防死結之發生,但也傷害了系統的效率。我們可放任系統於非安全區遊走在死結之邊緣外圍,並於一定時間之間隔,執行一次死結偵測,當發現有死結發生,立即執行挽救措施,雖然很危險,但可將系統效率推升至最高點。我們設計一些演算法,密切監視系統運行狀況。

Page 166: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-6-1 偵測演算法

• 偵測演算法與 9-5-2 節之安全演算法是屬同一架構,當行程 Pi要求資源時 Requesti ,系統沒有足夠的可用資源提供使用,即 Requesti ≧Available 。如果如此狀態發生,系統已處於死結狀態。其演算法為:

• 1. 宣告 work ← Available;• finish[i] ← false; ( 其中 i = 0, 1, …, n-1)• 2. 依序測試 for (i=0; i<n; i++)• if (finish[i] ==false) and (Requesti work) ≦ then• goto step3;• goto step 4;• 3. work ← work + Allocation;• finish[i] ← true;• goto step 2;• 4. 依序測試 for (i=0; i<n; i++)• if finish[i] == false 表示行程 Pi 已處於死結狀態 ;

Page 167: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-6-1-1 /圖 9-6-1-2

Page 168: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-6-2 單一裝置 (Single Instance)

• 如前述,於資源分配圖,如果各資源類僅有一件裝置如圖 9-6-2 ,只要有迴圈,就表示死結已發生。

Page 169: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 9-6-2

Page 170: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-7 死結消弭 (Recovery from Deadlock)

• 當偵測到發生死結時,我們採取兩個對應步驟:通知系統管理員 (Operator) 採用適當死結消弭措施;或是以信號告知作業系統起動死結消弭措施。死結消弭措施可由兩個切入點著手: (1) 從行程切入, (2) 從資源切入。

Page 171: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

9-8 習題 (Exercises)

1 、何謂死結 (Deadlock)? 2 、當一個行程使用資源時,有那三個過程?3 、死結發生的必要條件為何?4 、如何預防死結發生?5 、如何避免死結發生?6 、如 9-5-2 節,自行設計系統資源狀況,執行安全演算法。7 、如 9-6-1 節,自行設計系統資源狀況,執行偵測演算法。8 、何時啟動偵測演算法?9 、消弭死結,有那兩種方法?

Page 172: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第三篇

儲存管理 (Storage Management)

Page 173: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十章記憶體管理 (Memory Management)

• 10-1 簡介• 10-2 記憶體之觀念 (Concept of Memory)• 10-2-1 地址方式 (Address Binding)• 10-2-2 邏輯地址 / 實體地址 (Logical / Physical Address)• 10-2-3 機動載入 / 連接 (Dynamic Loading / Linking)• 10-2-4 重疊 (Overlays)• 10-3 置換 (Swapping)• 10-3-1 回存裝置 (Backing Store)• 10-3-2 置換時間• 10-3-3 重疊置換 (Overlapped Swapping)• 10-4 連續記憶體配置 (Contiguous Memory Allocation)• 10-4-1 記憶體保護 (Memory Protection)• 10-4-2 記憶體分配 (Memory Allocation)• 10-4-3 碎片 (Fragmentation)• 10-5 分頁 (Paging)• 10-5-1 分頁方法 (Paging Methods)• 10-5-2 硬體支援 (Hardware Support)• 10-5-3 框頁保護 (Frames Protection)• 10-5-4 框頁分享 (Shared Pages)• 10-6 區段 (Segmentation)• 10-7 區段分頁 (Segmentation with Paging)• 10-8 習題 (Exercises)• 10-9 範例系統程式 (Programming)• 10-9-1區段應用 (模擬 10-6節 )

Page 174: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-1 簡介

• 於前數章節,我們談到多個行程 (Processes) 競爭CPU 的使用方法;於本章,我們將另談及多個行程 (Processes) 競爭記憶體 (Memory) 的應用。為了安排記憶體作最佳使用,過程中需要良好的管理,早期僅有單純的記憶體 (Bare Machine) 使用,近期發展出置換 (Swapping) 、分頁 (Paging) 、與區段 (Segmentation) 等方法,增加記憶體使用之效率。

Page 175: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-2 記憶體之觀念 (Concept of Memory)

• 一個行程或執行緒在進入 CPU 前,必須先置入主記憶體 (Main Memory), CPU 直接對主記憶體(Main Memory) 隨機存取 (random access) 資料,典型的指令執行週期 (Instruction Execution Cycle) 如范紐曼 (Von Neumann) 所提出之執行架構 ( 如圖 3-5-1) ,由控制單元 (CU Control Unit) 安排從主記憶體 (Main Memory) 抓取 (fetch) 指令碼(Instruction) 至邏輯運算單元 (Arithmetic Logic Unit) 內之暫存器 (Register) 作解碼 (decode) ,視指令碼之需要,再從主記憶體抓取執行所需的資料 (Data) 。執行完成後將結果 (Result) 傳回主記憶體。等待執行下一個執行週期。

Page 176: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-2

(b)

(a)

Page 177: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-2-1 地址方式 (Address Binding)

• 當一個程式 (Program) 從開始編輯 (Editing) 到執行完畢 (Execution) ,其間各程式碼也隨著不同的過程 (Stages / Time) ,有著不同的記憶體地址方式(Address Binding) 。

Page 178: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-2-1

Page 179: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-2-2 邏輯地址 / 實體地址(Logical / Physical Address)

• 經由 CPU處理過而產生的一批資料,可自成一組單元,有其自身之資料置放次序,此時各資料的次序位置是謂 “邏輯地址 (Logical Address)” 。如此儲存這些資料的空間是謂 “邏輯地址空間(Logical Address Space)” 。

Page 180: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-2-2

Page 181: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-2-3 機動載入 / 連接(Dynamic Loading / Linking)

• 一個完整的執行程式,除了有主程式 (Main Program) 外,另有多個等待被呼叫的函數 (Functions) 或副程式(Subroutine) ,如圖 10-2-3 ,這些程式碼均完整地儲存在實體記憶體 (Physical Memory) 中。當被執行時,需先將程式碼載入 (Load) 執行記憶體 (Execution Memory) 或稱邏輯空間記憶體 (Logical Address Space Memory) 。

• 執行記憶體的容量可能不足以容納全部程式碼,除了主程式必須載入外,其他函數或副程式則於需要時才被載入,亦即未獲呼叫 (call) 時不必載入,以節省有限的記憶體空間,如此之載入是謂 “機動載入 (Dynamic Loading)” 。

Page 182: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-2-3

Page 183: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-2-4 重疊 (Overlays)

• 當一個程式的程式碼無法同時容納於執行記憶體時,我們可以重疊方法 (Overlays) 支援執行,先將經常需要執行的指令 (Instructions) 與資料 (Data) 置入執行記憶體,其他指令與資料則於需要時再載入,執行完畢後置換出,將記憶體空間留給次一批指令與資料使用,如此作為是謂 “重疊(Overlays)” 。

Page 184: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-3 置換 (Swapping)

• 我們已了解,一個行程必須先置入執行記憶體(Main Memory) ,才可進入 CPU 執行。如圖 10-3,在主記憶體的行程 (Process) 可視需要暫時置換移出至回存裝置 (Backing Store) ,或在回存裝置的行程亦可視需要暫時置換移入至主記憶體,如此移出移入是謂 “置換 (Swapping)” 。其機制是 “置換器 (Swapper)” 。

Page 185: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-3

Page 186: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-3-1 回存裝置 (Backing Store)

• 回存裝置是一快速性能的記憶體裝置,一般來言為一磁碟或磁鼓,當行程從主記憶體被置換出(Swap out) 時,可在此暫時存駐,並等待時機再置換入 (Swap in) 主記憶體。

• 回存裝置的容量至少要大於主記憶體的容量,換言之,需要有足夠容量容納主記憶體上所有的行程,如此才可勝任回存之任務 (Task) 。

Page 187: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-3-2 置換時間

• 行程愈大,置換時間愈長,即置換時間與行程大小成正比。由圖 10-3-2 可知,行程在主記憶體的置換時間亦將影響 CPU 的工作效率:

• Ecpu = (T – (tin + tout)) / T

Page 188: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-3-2

Page 189: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-3-3 重疊置換 (Overlapped Swapping)

• 於前節,我們認識,當行程在置換時, CPU無法工作以致處於等待狀態。為了解決此問題,我們可於主記憶體設置兩個以上之緩衝區 (Buffers) ,如圖 10-3-3 ,當置換行程 2 之同時,可將已在緩衝區之行程 3調入執行區進入 CPU 執行。如此作為是謂 “重疊置換 (Overlapped Swapping)”, CPU將不再浪費在等待上。

Page 190: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-3-3

Page 191: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-4

Page 192: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-4-1 記憶體保護 (Memory Protection)

• 一旦某記憶體區域為某行程使用,此時該區域不再允許其他資料置入,如此作為是謂 “記憶體保護 (Memory Protection)” 。

• 記憶體保護之方法有: (1) 界限保護 (Bound Protection), (2) 基底保護 (Base Protection)

Page 193: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-4-1

(a) (b)

Page 194: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-4-2 記憶體分配 (Memory Allocation)

• 記憶體 (Main Memory) 隨時有行程 (Processes) 進出,有些空間被佔用,有些空間未被使用,如圖10-4-2 ,這些未被使用之空白區域是謂 “未使用坑 (Hole)” 。

Page 195: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-4-2

Page 196: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-4-3 碎片 (Fragmentation)

• 如圖 10-4-3-1 ,設有記憶體如圖 (a) ,置入行程 Pi後,剩餘未被佔用的空間是謂 “碎片(Fragmentation) ,如圖 (b) 。

Page 197: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-4-3-1

(a) (b)

Page 198: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-4-3-2

Page 199: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-5 分頁 (Paging)

• 於前節,為了 “行程 -記憶體” 作適當配對,我們飽受連續記憶體 (Contiguous Memory) 與碎片(Fragmentation) 之苦。本節探討分頁 (Paging) ,其構想來自於:

• 1 、指標運用 (Using Pointers)• 2 、框頁運用 (Using Frame)

Page 200: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-5-1

Page 201: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-5-2

Page 202: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-5-1 分頁方法 (Paging Methods)

• 範例如圖 10-5-1-1 ,將行程的程式碼,在邏輯空間 (Logical Space) 中分三頁置放,經過作業系統分頁表 (Page Table) 之配置,將行程的 Page0 配置於實體空間 (Physical Space) 的第 3頁;行程的Page1 配置於實體空間的第 6頁;行程的 Page2 配置於實體空間的第 1頁。

Page 203: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-5-1-1

Page 204: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-5-1-2

Page 205: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-5-2 硬體支援 (Hardware Support)

• 如圖 10-5-2-1, TLB 是以快速存取硬體材質製造,框頁數量不多,功能與分頁表 (Page Table) 相同,但在存取速度上, TLB較分頁表快速許多。當 “邏輯 -實體” 對應地址頁目配對時,除了必須記錄於分頁表外,另擇常用的頁目抄錄至 TLB。

Page 206: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-5-2-1

Page 207: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-5-3 框頁保護 (Frames Protection)

• 如圖 10-5-3-1 ,我們可於分頁表 (Page Table) 增設一個位元 (Bit) ,標註 “可用 (Valid)” 與 “禁用(Invalid)” 。

• 標註 “可用 (Valid)” 是指當時可對該框頁執行存取;標註 “禁用 (Invalid)” 是指當時禁止對該框頁執行存取,亦即對該框頁實施保護 (Protection) 。如圖 10-5-3-1 ,實體空間的第 5頁。

Page 208: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-5-3-1

Page 209: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-5-4 框頁分享 (Shared Pages)

• 如圖 10-5-4-1 ,行程 P1 之第 0頁 Data0 與行程 P2之第 0頁 Data0相同;行程 P1 之第 1頁 Data1 與行程 P2 之第 1頁 Data1相同,因此 P1與 P2 可分享實體記憶體 (Physical Memory) 之 Data0與Data1 。其優點為可節省框頁。

Page 210: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-5-4-1

Page 211: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-6 區段 (Segmentation)

• 如圖 10-6-1 ,為了管理方便,系統將相近功能的程式碼以邏輯地址叢聚在一個區段內,亦可如分頁方法以區段表 (Segment Table) 對映至實體記憶體。

Page 212: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-6-1

Page 213: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-6-2

Page 214: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-6-3

Page 215: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-7 區段分頁 (Segmentation with Paging)

如圖 10-7 ,我們將區段方法 (Segmentation) 與分頁方法(Paging) 合併使用,其間對映過程:

(1) 於區段表 (Segmentation Table) ,邏輯區段起始位址(Segmentation Number) 對映實體區段基底地址 (Physical Base Address) ;

(2) 區段表 (Segmentation Table) 中該區段之邏輯相對距離(Logical Offset) 對映至分頁表 (Page Table) 之邏輯分頁目(Logical Pages) ;

(3) 於分頁表 (Page Table) ,邏輯分頁目 (Logical Pages) 對映實體分頁目 (Physical Pages) ;

(4) 綜合項 (1) 之實體區段基底地址 (Physical Base Address) 與項 (3) 之實體分頁目 (Physical Pages) ,可將各區段以區段分頁方法 (Segmentation with Paging) 完整地對映至實體記憶體。

Page 216: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 10-7

Page 217: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

10-8 習題 (Exercises)

1 、記憶體之地址 (Address) 有那兩種表示方式?2 、絕對地址與相對地址之關係為何?3 、何謂邏輯地址 (Logical Address)?4 、何謂機動載入 (Dynamic Loading)?5 、何謂重疊 (Overlays)?6 、何謂置換 (Swapping)?7 、置換時間與 CPU 的工作效率有合關係?8 、記憶體保護之方法有那些?9 、行程 - 未使用坑之配對法則有那些?10 、何謂內部碎片 (Internal Fragmentation)?11 、何謂外部碎片 (External Fragmentation)?12 、何謂快取分頁緩衝器 (TLB Translation Look-aside Buffer)?

Page 218: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十一章虛擬記憶體 (Virtual Memory)

• 11-1 簡介• 11-2 虛擬記憶體之觀念 (Concept of Virtual Memory)• 11-3 分頁要求 (Demand Paging)• 11-4 框頁替換 (Page Replacement)• 11-5 頁框分配 (Allocation of Frames)• 11-6 輾轉混亂現象 (Thrashing)• 11-7 其他考量 (Other Considerations)• 11-8 習題 (Exercises)• 11-9 範例系統程式 (Programming)• 11-9-1 分頁設計 (模擬 11-3-2節 )

Page 219: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-1 簡介

• 於前章,我們很努力地探討記憶體與其管理,目的無非是要如何配合多工程式 (Multiprogramming) 之執行,即記憶體如何同時 (simultaneously) 容納多個行程 (Processes) 。於本章,我們更關切,無論行程有多大,在執行前,我們如何將該行程之全部程式碼先搬置於主記憶體內。

• 事實上,一定有某些行程 (Processes) 大於主記憶體之實體容量,亦即在執行前,我們無法將該行程之全部程式碼先搬置於主記憶體內。此時我們可藉本章提出之虛擬記憶體方法尋求解決。

Page 220: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-2 虛擬記憶體之觀念(Concept of Virtual Memory)

• 我們已非常了解,任何要進入 CPU 執行的行程(Process) 均需先置入主記憶體,如果行程大於主記憶體的容量,我們無法將該行程的程式碼同時完整地置入主記憶體,亦即無法達到執行條件的要求 (Execution Requirements) 。

Page 221: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-2

Page 222: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-3 分頁要求 (Demand Paging)

• 於一般作業系統,虛擬記憶體 (Virtual Memory) 之形成,均是因執行 “分頁要求 (Demand Paging)” 而產生的。同理、“區段要求 (Segment Paging)” 亦可產生虛擬記憶體。

Page 223: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-3

Page 224: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-3-1 分頁要求觀念(Concept of Demand Paging)

• 分頁要求器 (Pager) 僅將需要執行的框頁置換入主記憶體,如此可節省記憶體之實體容量,及節省不必要框頁的置換時間。

Page 225: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-3-1-1

Page 226: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-3-1-2

Page 227: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-3-2 分頁要求之執行意義(Performance of Demand Paging)

• 於前節我們已了解,當系統檢視分頁表 (Page Table) 之檢視位元 (Valid / Invalid) 時,如果是 v則表示該框頁已置入實體空間,可進入 CPU 執行;如果是 i則表示該框頁尚未置換入實體空間,此時若被選中,則視為 “選頁錯誤 (Page Fault)”,系統將執行 “選頁錯誤中斷 (Page Fault Interrupt Trap)” 。

Page 228: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-4 框頁替換 (Page Replacement)

• 以圖 11-4 為例,當執行行程 (Process) P0時,有 3個框頁要求,檢視分頁表知該 3頁已置入實體記憶體之 0~2頁,可立即執行 P0 。

Page 229: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-4

Page 230: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-4-1 框頁替換之觀念(Concept of Page Replacement)

• 繼續上述範例,如圖 11-4-1 ,行程 P1有 4 個框頁要求,檢視分頁表,有 2頁已置入實體記憶體之3~4頁,另外 2頁 P1_Pg2、 P1_Pg3却無空間可置入 (實體記憶體之 5~6頁為 Invalid不得置入資料 )

Page 231: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-4-1

Page 232: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-4-2 先入先出框頁替換(FIFO Page Replacement)

• 範例如圖 11-4-2-1, Position Labels 為時間位置, Demand Page Reference String 為框頁要求序列,長方形為框頁 ( 本例有 3頁 ) ,星號 (*) 為撃中 (Hit) 。

Page 233: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-4-2-1

Page 234: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

畢勒得異常 (Belady’s Anomaly)圖 11-4-2-2

(a)

(b)

Page 235: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-4-3 最佳框頁替換(Optimal Page Replacement)

• 依框頁要求序列,依序將每頁資料置入頁框,當頁框數量不足時,實施框頁替換,系統檢視未來各資料之使用機會,將機會最低的資料置出。如圖 11-4-3

Page 236: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-4-3

Page 237: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-4-4 最近最少使用框頁替換(Least Recently Used Page Replacement)

• 前節所述的最佳框頁替換,是預估未來的機會,要付出極高的代價,甚或不可行。本節之最近最少使用框頁替換 (LRU Least Recently Used Page Replacement) 是從相反的方向來檢視,預估未來很困難,檢視過去的歷史記錄則很容易。其著眼點是如果此時使用過某資料,可能有機會再提出使用要求。如圖 11-4-4

Page 238: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-4-4

Page 239: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-5 頁框分配 (Allocation of Frames)

• 於作業系統,分頁要求是影響工作效率的重要因素之一,相對的,頁框數量的多寡却是影響此項因素的重要資源 (Resource) 。框頁分配 (Allocation of Frames) 得到愈多,選頁錯誤 (Page Fault) 愈少,撃中率 (Hit Rate) 愈高,以致整體系統的工作效率 (Efficiency) 也隨之提高。

Page 240: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-6 輾轉混亂現象 (Thrashing)

• 當一個行程 (Process) 分配得到的頁框數量少於其最低需求數量時,系統應立即終止該行程,並將其已佔有的頁框分配給予其他行程使用。

• 當任何行程的頁框不足時,如 11-3-1 節所述,很快即發生 “選頁錯誤 (Page Fault)” ,該行程必須立刻執行框頁替換,但因頁框不足,所有的框頁均在使用中,沒有空間可供替換,選頁錯誤 (Page Fault) 立即又再發生,前一個替換尚未解決,次一個替換又接踵而來,如此惡性分頁替換是謂 “輾轉混亂現象 (Thrashing)” 。

Page 241: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-6-1

Page 242: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-6-2

Page 243: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-6-3

Page 244: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-6-4 選頁錯誤頻率(Page Fault Frequency)

• 我們已了解,當頁框數量不足時,擊中率降低,選頁錯誤率增加。如圖 11-6-3 ,系統可設一選頁錯誤頻率上限,當到達上限時,表示頁框數量開始不足,系統應增遣頁框以供使用。如果選頁錯誤頻率仍不下降,表示已發生輾轉混亂現象(Thrashing) ,系統應終止部份行程,減少競爭頁框的對手,同時釋出頁框。當到達下限時,表示頁框數量充裕,系統可減少頁框之數量,節省系統資源。

Page 245: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-6-4

Page 246: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-7 其他考量 (Other Considerations)

• 由前述各節,我們認識到 “分頁作業 (Page Operation)” 的重點考慮是在: (1) 分頁替換,與 (2) 頁框分配,其意義均是為了增加系統效率。除了前述各節述及的考量外,本節再探討一些其他考量。

• 1 、預先分頁 (Prepaging)• 2 、分頁大小 (Page Size)• 3 、快取分頁緩衝器 (TLB Translation Look-aside

Buffer)• 4 、程式結構 (Program Structure)• 5、 I/O 鎖定

Page 247: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-7-1

Page 248: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 11-7-2

Page 249: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

11-8 習題 (Exercises)

1 、為了節省使用空間,系統總是先檢視那些不會立刻使用的程式碼?2 、使用虛擬記憶體方法,可以虛擬記憶體 (Virtual Memory) 補助實體記憶體 (Physical Memory) 之不足,其利益優勢為何?

3 、何謂 “懶惰置換 (Lazy Swapping)”?4 、何謂 “選頁錯誤 (Page Fault)”?5 、先進先出框頁替換法 (FIFO Page Replacement) 之優缺點為何?6 、最佳框頁替換 (Optimal Page Replacement) 的優缺點為何?7 、頁框數量的多寡如何影響系統的工作效率?8 、理論上,一個行程至少應分配得到那些頁框?9 、何謂全域替換 (Global Replacement)?10 、何謂局部替換 (Local Replacement)?11 、何謂 “輾轉混亂現象 (Thrashing)” ?12 、挽救輾轉混亂現象 (Thrashing) 的方法為何?

Page 250: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十二章檔案系統介面 (File System Interface)

• 12-1 簡介• 12-2 檔案概念 (File Concept)• 12-2-1 檔案屬性特徵 (File Attributes)• 12-2-2 檔案操作 (File Operations)• 12-2-3 開啟 / 關閉檔案 (Open / Close File)• 12-2-4 鎖住 / 釋出檔案 (Lock / Release File)• 12-2-5 檔案類型 (File Types)• 12-3 檔案存取方法 (Access Methods)• 12-4 目錄結構 (Directory Structure)• 12-4-1 單層目錄 (Single Level Directory)• 12-4-2 雙層目錄 (Two Level Directory)• 12-4-3 樹狀目錄 (Tree Structured Directories)• 12-4-4 非迴路圖形目錄 (Acyclic Graph Directories)• 12-4-5 綜合圖形目錄 (General Graph Directories)• 12-5 檔案系統掛載 (File System Mounting)• 12-6 檔案分享 (File Sharing)• 12-7 檔案保護 (File Protection)• 12-8 習題 (Exercises)• 12-9 範例系統程式 (Programming)• 12-9-1 讀取檔案屬性 (模擬 12-2-1節 )• 12-9-2檔案之寫入 / 讀取 (模擬 12-2-2節 )

Page 251: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-1 簡介

• 對使用者來言,檔案 (File) 是能見度相當高的作業系統應用,無論是作業系統的程式 (Program) 與資料 (Data) 、或是使用者的程式與資料,檔案都提供了線上 (On Line)記憶體之存取機制 (Access Mechanism) 。

• 檔案系統可概分為兩類: (1) 檔案系統、與 (2) 目錄系統。檔案系統處理檔案本身的資料存取問題,目錄系統處理各檔案的歸類問題。也有少數大型電腦設置叢目錄系統 (Partition) ,處理各目錄的歸類問題。

Page 252: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-2 檔案概念 (File Concept)

• 電腦的實體儲存裝置有光碟、磁碟、與磁帶,檔案儲存於這些裝置,均不會因停電、關機、與重新啟動而丟失資料。

• 檔案 (File) 是以一個名稱 (Name) 集合有關係資料(Related Information) 的組合,亦即一個名稱及一串位元 (Bits) 、位元組 (Bytes) 、列 (Lines) 、與資料錄 (Records) ,從邏輯空間 (Logical Space) 由作業系統對映至實體空間 (Physical Space) 。

Page 253: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-2-1 檔案屬性特徵 (File Attributes)

• 隨著電腦系統的不同,檔案突顯的屬性特徵 (Attributes) 項目亦隨之不同,一般來言,檔案屬性特徵項目有:

• 1 、檔案名稱 (Name)• 2 、檔案識別碼 (Identifier)• 3 、檔案類型 (Type)• 4 、檔案位置 (Location)• 5 、檔案大小 (Size)• 6 、檔案保護 (Protection)• 7 、時間 (Time)

Page 254: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-2-2 檔案操作 (File Operations)

• 檔案操作 (File Operations) 是指系統可直接處理檔案的模式,經常執行的操作有: (1) 建立檔案(Creating a File)、 (2) 寫入檔案 (Writing a File)、(3) 讀取檔案 (Reading a File)、 (4) 刪除檔案(Deleting a File)、 (5) 重新命名檔案 (Renaming a File)、 (6) 合併檔案 (Appending New Information)、 (7) 截斷檔案 (Truncating a File) 等

Page 255: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-2-3 開啟 / 關閉檔案 (Open / Close File)

• 當寫入檔案或讀出檔案之前,需先藉由系統呼叫open( ) 、或 read( ) / write( ) 將檔案開啟 (Open) ;以 close( ) 關閉檔案、或當執行完畢後系統自動將檔案關閉。

• 如圖 12-2-3-1 ,系統設置 “開啟檔案表 (Open File Table)” ,將當時正被開啟的各檔案納入其中,使用者 (Users) 與系統 (System) 可於該表查詢已開啟的檔案,減免在記憶體搜尋所付出的代價。當檔案被關閉後,亦將於表中刪除該檔案。

Page 256: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-2-3-1

Page 257: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-2-3-2

Page 258: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-2-3-3

Page 259: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-2-4 鎖住 / 釋出檔案 (Lock / Release File)

• 鎖住檔案 (Lock File) 的意義是:除了某些特定行程 (Specific Processes) 之外,其他行程 (Other Processes) 均不得進出該檔案。

• 讀取鎖住 (Readers Locks)• 分享鎖住 (Shared Lock)• 委託鎖住 (Mandatory Lock)

Page 260: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-2-5 檔案類型 (File Types)

• 通常於檔案名稱上註明檔案類型,將檔案名稱分為兩部份:主檔名 (File Name) 與副檔名 (File Extension Name) ,之間以句點 (Period Character) 分隔。主檔名為檔案名稱,也即檔案的起始位置;副檔名為該檔案的類型 (Type) ,如 testFile.java。

• 隨著不同的系統,檔案名稱也會受到一些限制,例如 Dos 系統:主檔名不得大於 8 個字元,副檔名不得大於 3 個字元。我們常見到的檔案類型如圖 12-2-5 。

Page 261: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-2-5

Page 262: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-3 檔案存取方法 (Access Methods)

• 使用檔案資料 (Information) ,即是將檔案資料讀取 (Read File) 至電腦系統記憶體、或是將電腦系統之資料寫入至檔案 (Write File) ,可統稱謂 “檔案存取 (Access File)” 。常用的存取方法有 (1) 循序存取 (Sequential Access), (2) 直接存取 (Direct Access), (3) 索引存取 (Index Access) 。

• 1 、循序存取 (Sequential Access)• 2 、直接存取 (Direct Access)• 3 、索引存取 (Index Access)

Page 263: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-3-1

Page 264: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-3-2

Page 265: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-3-3

Page 266: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-4 目錄結構 (Directory Structure)

• 一般電腦系統均擁有數千個檔案 (Files) ,良好的管理是非常有必要的,檔案儲存在記憶體中,故檔案管理亦即是記憶體管理的延伸,例如於輔助記憶體 ( 如磁碟 ) ,我們可分為兩階段處理:

• 1 、磁碟分割 (Partitions)• 2 、建立目錄 (Directory)

Page 267: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-4

(a) (b)

Page 268: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-4-1 單層目錄 (Single Level Directory)

• 單層目錄 (Single Level Directory) 是最簡單的目錄應用,如圖 12-4-1 ,所有的檔案都包含在同一目錄中。

Page 269: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-4-1

Page 270: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-4-2 雙層目錄 (Two Level Directory)

• 當某使用者註冊後,如圖 12-4-2 ,系統立即將該使用者名稱建立於主檔目錄 (MFD) 內,並允許該使用者建立自己的使用者目錄 (UFD) ,指向使用者檔案的入口 (Entries) 。

Page 271: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-4-2

Page 272: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-4-3 樹狀目錄(Tree Structured Directories)

• 如圖 12-4-3 ,樹狀目錄的特徵有:• (1) 連通性 (Connectivity)• (2) 無循環迴圈 (Acyclic Connection)

Page 273: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-4-3

Page 274: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-4-4 非迴路圖形目錄(Acyclic Graph Directories)

• 首先我們須辨別何謂迴圈 (Cyclic Connection)?何謂迴路 (Cyclic Graph)?由圖 12-4-4 與圖 12-4-5 ,可作非常清楚地說明,於圖 12-4-4之 rbcda 是迴圈,但不是迴路;於圖 12-4-5之 abc 是迴圈,亦是迴路。

Page 275: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-4-4

Page 276: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-4-5

Page 277: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-5 檔案系統掛載 (File System Mounting)

• 為了更靈活應用檔案系統,有些系統允許將一串次目錄系統 ( 如圖 12-5-1-(b)) 或檔案 (File) ,移動穿梭於主目錄系統,如此作為是謂 “檔案系統掛載 (File System Mounting) 。

Page 278: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-5-1

Page 279: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 12-5-2

Page 280: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-6 檔案分享 (File Sharing)

• 一個檔案的價值,與其被分享的程度是成正比的,因此作業系統對檔案分享的管理,亦是影響工作效率的一環。

• 依區域範圍,檔案分享可概分為本機範圍分享(Local File Sharing) 與網路範圍分享 (Remote File Sharing) ,前者是由本機系統的多個使用者,依被允許的權限分享檔案;後者是由網路上的多個使用者,依被允許的權限分享檔案,有關網路方面的問題,本書將爾後詳細討論。

• 無論是何種範圍,檔案分享能提昇檔案的價值,但也是非常危險的作為,系統須非常謹慎地作安全措施管理。

Page 281: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-7 檔案保護 (File Protection)

• 對於儲存於電腦系統中之資料 (Information) ,我們應確保其無實體損壞 (Physical Damage) 、與確保其適當存取(Proper Access) 。

• 無實體損壞是指確保可信度 (Reliability) ,目前最完整的方法是定期複製檔案備存 (Back up) ;適當存取是指檔案保護(Protection) ,如果是單人單工系統,將無存取保護的問題,如果是多人多工系統即需考量檔案保護如下:

• 1 、存取類型 (Type of Access) :• 2 、存取控制 (Access Control) :• 3 、其他保護 (Other Protection) :

Page 282: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

12-8 習題 (Exercises)

• 1 、檔案屬性特徵項目有那些?• 2 、經常執行的操作操作有那些?• 3 、當行程關閉檔案時,系統應執行那些步驟?• 4 、何謂委託鎖住 (Mandatory Lock)? • 5 、何謂建議鎖住 (Advisory Lock)?• 6 、檔案存取方法有那些? • 7 、樹狀目錄的特徵有那些?• 8 、綜合圖形目錄 (General Graph Directories) 之缺點為何?

• 9 、造成綜合圖形目錄的原因為何?• 10 、何謂 “掛載點 (Mount Point)”?• 11 、掛載可類分為那三種型態?• 12 、檔案存取類型 (Type of Access) 有那些?

Page 283: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十三章檔案系統運作(File System Implementation)

• 13-1 簡介• 13-2 檔案系統結構 (File System Structure)• 13-3 檔案系統運作 (File System Implementation)• 13-3-1 檔案系統概念 (Concept of File System)• 13-3-2 分割區與掛載 (Partitions and Mounting)• 13-3-3 虛擬檔案系統 (Virtual File System)• 13-4 目錄運作 (Directory Implementation)• 13-5 空間分配方法 (Allocation Methods)• 13-5-1連續空間分配 (Contiguous Allocation)• 13-5-2鏈接空間分配 (Linked Allocation)• 13-5-3 索引空間分配 (Indexed Allocation)• 13-5-4運作性能 (Performance)• 13-6 空白空間之管理 (Free Space Management)• 13-7 網路檔案系統 (NFS Network File System)• 13-8 習題 (Exercises)

Page 284: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

13-1 簡介

• 於前章我們已了解,檔案系統提供了線上 (On Line Storage) 儲存裝置 (Storage) 與檔案存取 (Access Files) 機制。

• 本章將探討磁碟儲存裝置 (Disk) 、與在磁碟上如何執行檔案存取 (File Access) ,內容含及檔案系統結構 (File System Structure) 、磁碟空間分配(Allocate Disk Space) 、標定資料位置 (Track Data Location) 、及提供儲存裝置與作業系統之執行介面 (Interface) 。

Page 285: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

13-2 檔案系統結構 (File System Structure)

• 在輔助記憶體 (Secondary Storage) 種類中,磁碟 (Disk) 是很重要的儲存裝置 (Device) ,且已為今日大多數電腦系統所採用,其原因是磁碟具有: (1) 重寫性 (Rewritable):寫入磁碟的資料,刪除後,相同的位置可再寫入其他資料。 (2) 區塊性 (Blocking):可作區塊性資料之存取,以致可輕易執行檔案之直接存取 (如 12-3 節所述 ) 。

• 檔案系統 (File System) 最重要的兩項工作為: (1) 如何定義 (Define) 一個檔案及其屬性特徵 (Attributes)? (2) 如何將邏輯檔案系統 (Logical File System) 對映至實體檔案系統(Physical File System)?檔案系統是為多層設計 (Layer Design) ,如圖 13-2 ,上端為邏輯空間 (Logical Space) ,下端為實體空間 (Physical Space) 。

Page 286: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 13-2

Page 287: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

13-3 檔案系統運作(File System Implementation)

• 於前章 12-2-2 節,我們曾探討單純的檔案操作(File Operations) ,於本節,我們將探討整體性的檔案運作 (File System Implementation) 。

• 檔案系統概念 (Concept of File System)• 分割區與掛載 (Partitions and Mounting)

Page 288: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 13-3-3

Page 289: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

13-4 目錄運作 (Directory Implementation)

• 選擇適當的目錄管理演算法 (Directory Management Algorithms) 與空間分配 (Directory Allocation) ,對檔案的執行效率 (Efficiency) 有其一定程度的影響。使用者 (Users) 於目錄(Directory) 搜尋檔案的方法有:

• 1 、線性串列 (Linear List)• 2 、雜湊表 (Hash Table)

Page 290: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

13-5 空間分配方法(Allocation Methods)

• 無可避免地,總是有多個檔案儲存在一個磁碟內,此時如何將磁碟的空間適當地分配給予各檔案,將影響磁碟空間之有效使用 (Space Utilizing Efficiency) 、與檔案存取 (Access Files) 的速率。磁碟空間之主要分配方法有:連續空間分配(Contiguous Allocation) 、鏈接空間分配 (Linked Allocation) 、索引空間分配 (Indexed Allocation) 。

Page 291: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 13-5-1

Page 292: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 13-5-2-1

Page 293: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 13-5-2-2

Page 294: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 13-5-3

Page 295: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

13-6 空白空間之管理(Free Space Management)

• 磁碟的空間是有限的 (Limited) ,當新檔案建立時,系統要搜尋空白空間 (Free Space) 來安置該新檔案;當檔案被刪除 (Delete) 時,系統要管理這些被釋出 (Released) 的空間。今日電腦系統,對空白空間的管理方法有:

• 1 、位元記錄 (Bit Vector)• 2 、連接串列 (Linked List)• 3 、群組串列 (Group List)

Page 296: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

13-7 網路檔案系統(NFS Network File System)

• 於前述 13-3-3 節,我們曾述及,虛擬檔案系統之組成架構有三層,本節所述的虛擬網路檔案系統亦是如此,如圖 13-7:

Page 297: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 13-7

Page 298: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

13-8 習題 (Exercises)

1 、今日大多數電腦系統採用磁碟的原因為何?2 、檔案系統 (File System) 最重要的兩項工作為何?3 、檔案系統是為多層設計 (Layer Design) ,可分為那幾習?4 、虛擬檔案系統有那三層 (Layers)?5 、使用者 (Users) 於目錄 (Directory) 搜尋檔案的方法有那

些?6 、磁碟空間之主要分配方法有那些?7 、連續空間分配之優缺點為何?8 、鏈接空間分配的缺點為何? 9 、空白空間的管理方法那些?

Page 299: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第四篇

輸入輸出 (Input and Output)

Page 300: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十四章輸入輸出系統 (I/O Systems)

• 14-1 簡介• 14-2 概念 (Overview)• 14-3 I/O 硬體 (I/O Hardware)• 14-3-1 匯流排 (Bus)• 14-3-2 連接埠 (Port)• 14-3-4 中斷 (Interrupts)• 14-3-5 直接記憶體存取 (Direct Memory Access)• 14-4 I/O 介面應用 (Application I/O Interface)• 14-5 核心 I/O次系統 (Kernel I/O Subsystem)• 14-6 硬體 I/O 操作 (Transforming I/O to Hardware Operation)• 14-7串流 (Streams)• 14-8 執行效率 (Performance)• 14-9 習題 (Exercises)• 14-10 範例系統程式 (Programming)• 14-10-1 資料串流 FileInputStream與 FileOutStream(模擬 14-7節 )• 14-10-2 資料串流 DataInputStream與 DataOutStream(模擬 14-7節 )

Page 301: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-1 簡介

• 電腦的兩大主要工作 (Jobs) ,一是前數章所探討的工作處理 (Job Processing) ,另一個即是 I/O 。因 I/O 的執行速率較慢,比較上系統似用較多的時間在處理 I/O事宜。

• 作業系統用於 I/O 的部份,是在管理 (Manage) 與控制 (Control) 周邊裝置與 I/O運作,本章將探討: (1) I/O 硬體操作 (Hardware)、 (2) I/O服務(Service)、 (3) I/O 介面 (Interface)、 (4) I/O運作(Implement) 、與 (5) 設計改善 (Design) 等內容。

Page 302: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-2 概念 (Overview)

• 作業系統的主要設計考量,是在如何導引控制(Control) 與電腦連通的各個裝置。各 I/O 裝置無論是在功能上,或是在速度上都是各不相同,因此電腦系統也應以廣泛的能力來面對。為了慎重處理,作業系統於其核心 (Kernel) 另設 I/O次系統 (Subsystem) 。

• 在力求改善 I/O技術的今日,時而出現兩個相互矛盾的方向: (1) 我們竭盡努力將 I/O 裝置標準化,期使 I/O控制能統一且簡化; (2) 另一方面,我們又竭盡努力地開發與眾不同的 I/O 方法,以因應新的裝置與技術。

Page 303: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-3 I/O 硬體 (I/O Hardware)

• 我們常用的周邊裝置 (Devices) 有: (1) 儲存裝置(Storage Devices) 如磁碟 (Disks) 、磁帶 (Tapes) 等; (2) 傳輸裝置 (Transmission Devices) 如網路(Network) 、數據機 (Modems) 、讀卡機 (Cards) 等; (3) 人機介面 (Human Interface) 如螢幕 (Screen)、鍵盤 (Keyboard) 、滑鼠 (Mouse) 、搖桿(Joystick) 等。

• 無論電腦周邊設備有多廣,在概念上我們努力解決 (1) 如何將這些裝置與電腦掛載連接 (Attached)? (2) 如何以軟體程式 (Software) 來控制這些硬體裝置 (Hardware)?

Page 304: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-3-1 匯流排 (Bus)

• 周邊裝置以匯流排 (Bus) 與電腦系統互通訊息(Signals) 和資料 (Data) ,裝置連線與匯流排之接點稱為連接埠 (Connection Ports) ,匯流排 (Bus) 架構有三類:

Page 305: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-3-1-1

Page 306: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-3-1-2

Page 307: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-3-1-3

Page 308: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-3-1-4

Page 309: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-3-2 連接埠 (Port)

• 裝置與連線的接點之間設置 “連接埠 (Port)” ,通常是由 4 個暫存器所組成,狀態暫存器 (Status) 、控制暫存器 (Control) 、資料輸入暫存器 (Data In)、資料輸出暫存器 (Data Out) 。內容如下:

• 狀態暫存器 (Status)• 控制暫存器 (Control)• 資料輸入暫存器 (Data In)• 資料輸出暫存器 (Data Out)

Page 310: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-3-3 握手與協定 (Handshaking and Protocol)

• 為了容易解說,我們以前述 14-3-1 節之輪詢型(Pulling) 為例,本機系統 (Host) 與裝置控制器 D1之間,如何互通訊息?如圖 14-3-3-1:

Page 311: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-3-3-1

Page 312: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-3-4 中斷 (Interrupts)

• 如圖 14-3-4-1 ,在硬體機制上, CPU 與各裝置控制器之間,設有一中斷需求線 (Interrupt Request Line) 。系統執行中斷之步驟如下:

Page 313: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-3-4-1

Page 314: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 4-3-4-2

Page 315: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-3-5 直接記憶體存取(Direct Memory Access)

• 為了資料傳遞的靈活性與方便性,如果當時: (1) CPU非常忙碌; (2) 傳送大量資料; (3) 確定無傷害系統的資料,資料可不經過 CPU 之帶領,直接從儲存裝置 ( 如磁碟 ) 傳遞至主記憶體 (Main Memory) 之指定位置,如是之資料傳遞是謂 “直接記憶體存取 (DMA Direct Memory Access)” 。依圖 14-3-5-1 ,直接記憶體之執行步驟如下:

Page 316: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-3-5-1

Page 317: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-4 I/O 介面應用(Application I/O Interface)

• I/O 裝置種類繁多,如果要每種均兼顧,系統必將龐大且不易管理;如果不每種兼顧,則又將無法有效執行。為了解決如是問題,我們將作業系統之 I/O部份,如圖 14-4-1 作分層設計 (Multi−Level Design) 。

Page 318: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-4-1

Page 319: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-4-2

Page 320: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-5 核心 I/O次系統(Kernel I/O Subsystem)

• I/O工作範圍廣泛,作業系統於其核心 (Kernel) 另設置核心 I/O次系統 (Kernel I/O Subsystem) ,以方便管理排程 (Scheduling) 、緩衝 (Buffering) 、快取(Caching) 、串置執行 (Spooling) 等 I/O事項。

Page 321: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-6 硬體 I/O 操作(Transforming I/O to Hardware Operation)

• 從應用程式 (Application) 提出 I/O 需求 (I/O Request) ,到從磁碟 (Disk) 讀取檔案,其間過程如前述圖 14-4-1 ,穿過 I/O次系統層 (I/O Subsystem Level) 、裝置驅動程式層 (Device Driver Level) 、裝置控制器層 (Device Controller Level) 、到硬體裝置。如圖 14-6 ,我們可觀查一個 I/O 需求 (I/O Request) 的執行週期 (Life Cycle):

Page 322: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-6

Page 323: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-7串流 (Streams)

• 當使用者行程 (User’s Process) 與裝置 ( 如磁碟 ) 作資料傳遞時,系統將資料安排成串流形態,如圖 14-7 ,由三部份組成:

• (1) 串流頂前端 (Stream Head)• (2) 驅動尾後端 (Driver End)• (3) 串流模型 (Stream Modules)

Page 324: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-7

Page 325: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-8 執行效率 (Performance)

• 系統之執行效率,對 I/O 有其深重的影響, CPU擔負著執行裝置驅動程式碼 (Device Driver Codes) 、與 I/O排程 (Schedule) ;今日新型的電腦雖然在一秒內可同時執行上千個中斷常式 (Interrupt Routines) ,中斷仍然是電腦系統的一項重大負擔;網路資料之傳遞是 I/O 項目之一,其是否傳遞流暢亦影響執行效率。為了改善 I/O 執行效率,系統應:

• 1 、如 5-3-3 節,減少內文切換次數 (Context Switches) 。• 2 、減少在記憶體中複製資料的次數。• 3 、降低中斷執行頻率 (Frequency) ,盡量執行大量資料傳遞 (Large

Transfer) 、靈巧控制器 (Controller) 、聰明輪詢 (Polling) 。• 4 、使用 DMA ,增加同步傳遞資料的機會。• 5 、盡可能將行程關鍵資訊 (Processing Primitives) 推向硬體,使裝置控制器 (Device Controller) 更能配合 CPU 與匯流排 (Bus) 之操作。

• 6 、平衡 CPU 、記憶體、匯流排、 I/O 之執行,如果其中有一項特別熱烈,均將導致其他項目的怠惰 (Idleness) ,亦即降低系統效率。

Page 326: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 14-8

Page 327: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

14-9 習題 (Exercises)

1 、在力求改善 I/O技術的今日,出現那兩個相互矛盾的方向?2 、何謂匯流排 (Bus) 之雛菊鏈型 (Daisy Chaining) 架構?其優缺點為何? 3 、何謂匯流排 (Bus) 之輪詢型 (Pulling) 架構?其優缺點為何?4 、何謂匯流排 (Bus) 之獨立型 (Independent) 架構?其優缺點為何?5 、連接埠 (Port) 是由那 4 個暫存器所組成?6 、何謂不可遮罩中斷 (Nonmaskable Interrupt) /遮罩中斷 (Maskable

Interrupt)? 7 、使用直接記憶體存取 (DMA) 的時機為何?8 、何謂 I/O快取 (Caching)?9 、試請列出 I/O 需求 (I/O Request) 的執行週期 (Life Cycle) 。10 、系統如何改善 I/O 執行效率?

Page 328: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十五章 大量儲存結構 (Mass Storage Structure)

• 15-1 簡介• 15-2 磁碟結構 (Disk Structure)• 15-3 磁碟排程 (Disk Scheduling)• 15-4 磁碟管理 (Disk Management)• 15-5 置換空間管理 (Swap Space Management)• 15-6 磁碟矩陣結構• 15-7 磁碟掛載應用 (Disk Attachment)• 15-8 穩定儲存應用 (Stable Storage Implementation)• 15-9 習題 (Exercises)

Page 329: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-1 簡介

• 就檔案系統 (File System) 來言,我們曾於第十二章探討過使用者與檔案系統間之關係,於十三章探討過作業系統與檔案間之運作關係,於本章,我們將討論檔案與儲存裝置的問題,特別是磁碟(Disk) 之管理。

Page 330: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-2 磁碟結構 (Disk Structure)

• 新型磁碟機猶如是一個大型的一維資料矩陣 (One Dimensional Array) ,矩陣元素由邏輯區塊 (Logical Block) 組成,亦即最小的傳輸單位 (Unit of Transfer) 。一個邏輯區塊通常有 512 個位元組(Bytes) ,少數電腦系統採用 1,024 個位元組。

• 在實體 (Physical) 上,如圖 15-2 ,磁碟以磁區(Sector) 、磁軌 (Track) 、磁柱 (Cylinder) 為儲存位置單元。磁區 0 在最外圈磁軌之起點,多個磁片之相對磁軌組成磁柱。

Page 331: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-2

(a) (b)

Page 332: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-3 磁碟排程 (Disk Scheduling)

• 作業系統如何安排存取磁碟之資料,將影響系統之執行效率。如圖 15-3 ,通常存取磁碟資料可分4 個時間步驟:

• (1) 磁軌搜尋時間 (Seek Time)• (2) 旋轉延遲時間 (Rotational Latency)• (3) 資料傳輸時間 (Transfer Time)• (4) 綜合執行時間 (Bandwidth Scheduling)

Page 333: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-3

Page 334: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-3-1 先到先執行 (FCFS Scheduling)

• 設有一範例,磁頭當時位置在 50 ,磁碟等待佇列(Waiting Queue) 內之資料磁柱 (Cylinder) 次序(Order) 為 ( 或稱資料點次序 ):

• 95, 155, 30, 120, 10, 125, 65, 70• 若以先到先執行排程 (FCFS First−Come−First−Serve

Scheduling) 執行,磁頭 (Disk Head) 掃過磁碟資料點的過程將如圖 15-3-1:

Page 335: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-3-1

Page 336: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-3-2 最短搜尋時間先執行(SSTF Scheduling)

• 每當磁頭存取一個磁柱資料點之後,立刻評估下一個資料點,選擇最近距離之資料點執行之,此為 “最短搜尋時間先執行排程 (SSTF Shortest−Seek−Time−First Scheduling)” 。圖 15-3-2為 SSTF 之執行範例:

Page 337: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-3-2

Page 338: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-3-3 掃瞄排程 (Scan Scheduling)

• 將磁頭從當時位置向磁碟的一端掃瞄,再向另一端掃瞄,當經過各資料點時,執行資料存取,此為 “掃瞄排程 (Scan Scheduling)” 。圖 15-3-3為Scan 之執行範例:

Page 339: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-3-3

Page 340: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-3-4 C−掃瞄排程 (C−Scan Scheduling)

• 將磁頭從當時位置向磁碟的一端掃瞄,再從另一端開始掃瞄,避開重複資料區,當經過各資料點時,執行資料存取,此為 “ C−掃瞄排程 (C−Scan Scheduling)” 。圖 15-3-4為 C−Scan 之執行範例:

Page 341: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-3-4

Page 342: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-3-5 掃瞄判斷排程 (Look Scheduling) 與 C−掃瞄判斷排程 (C−Look Scheduling)

• 為了避免無謂的端點掃瞄,我們將 Scan Scheduling改善為 Look Scheduling ,將 C−Scan Scheduling改善為 C−Look Scheduling( 如圖 15-3-5):

Page 343: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-3-5

Page 344: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-3-6 磁碟排程分析(Disk Scheduling Selection)

• 任何事均不可能完美無缺,電腦系統的各項措施也是一樣,一定有其優點與缺點,我們可選擇適當的時機,盡可能利用其優點屏棄其缺點。

• 當磁碟資料點之密度與存取頻率均高 (Heavy Load) 時,我們採用 FCFS ,以避免有餓死 (Starvation) 情況產生。

• 如果存取頻率很低,許久才有一個資料點出現,此時不論有多少排程方法,其作為均如 FCFS排程。

• 檔案空間分配 (File Allocation) 也是影響執行效率之一項因素 (如 13-5節 ) ,如果是連續空間分配 (Contiguous Allocation) ,即多是鄰近資料點,將節省磁頭掃除的時間;如果是鏈接空間分配 (Linked Allocation) 或是索引空間分配 (Index Allocation) ,資料點分散各個角落,將增加磁頭掃瞄的時間。

Page 345: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-4 磁碟管理 (Disk Management)

• 於前數章節,我們已探討許多關於磁碟的問題,本節將再繼續討論磁碟的管理事項,如磁碟格式化 (Disk Formatting) 、起動區塊 (Boot Block) 、與損壞區塊 (Bad Blocks) 等之管理。

Page 346: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-4-1磁碟格式化 (Disk Formatting)

• 一個全新的磁碟,除了佈滿磁性物質 (Magnetic Material) 外,尚無法作為儲存記憶體 (Memory),必須要劃分出儲存單元磁區 (Sectors) ,才可配合磁碟控制器 (Disk Controller) 讀寫資料,如此劃分之作為是謂 “低階格式化 (Low Level Formatting)” 或稱 “實體格式化 (Physical Formatting)” 。

Page 347: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-4-2 起動區塊 (Boot Blocks)

• 當開啟電源 (Power Up) 啟動電腦、或重新啟動(Reboot) 電腦時,開機程式 (Bootstrap Program) 亦隨之起動,由開機程式初始 (Initializing) 作業系統,包括 CPU 的各暫存器 (Registers) 、裝置控制器 (Device Controllers) 、與主記憶體 (Main Memory) 等。

Page 348: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-4-3損壞區塊 (Bad Blocks)

• 一個磁碟會因雜質或刮傷而損壞,遭受損壞的區塊稱為 “損壞區塊 (Bad Block)” 。如果損壞過於嚴重,整個磁碟應棄換不用;如果是非常輕微的損壞,則可跳過損壞區塊,繼續使用其他良好區塊。

Page 349: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-5 置換空間管理(Swap Space Management)

• 置換空間可設置於磁碟的檔案系統內 (File System)、或設置於磁碟的獨立分割內 (Partition)。 (1) 若設置於檔案系統內,可將置換資料以檔案形態處理,其優點是簡單且易執行;缺點是要依檔案方式處理 ( 如目錄、空間分配等 ) ,將降低執行速率。 (2) 若設置於獨立分割內,其優點是因無檔案系統牽拌,執行迅速;缺點是內部碎片 (Internal Fragmentation) 將漸漸擴大,影響執行效率。

Page 350: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-6 磁碟矩陣結構

• 今日磁碟之開發,體積愈來愈精巧,價格愈來愈便宜,電腦系統使用多個磁碟並不會付出特別的代價。將多個磁碟組織成 “磁碟矩陣 (RAID Redundant Arrays of Inexpensive Disks)” ,一則可增加儲存資料的安全可信度 (Reliability) ,一則可以並行方式 (Parallelism) 增加執行速率。

Page 351: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-6-1 安全可信度 (Reliability)

• 我們可以多個磁碟執行鏡影 (Mirroring) 操作,同時將資料寫入兩個磁碟,亦即一個邏輯磁碟(Logical Disk) 由兩個實體磁碟 (Physical Disk) 組成。當一個磁碟受損,另一個磁碟可將資料重新補救。

Page 352: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-6-2 並行方式 (Parallelism)

• 既然電腦系統已經使用多個磁碟,我們可將其安排成並行處理 (Parallelizing) ,以節省執行時間,理論上,假設 1 個資料 1 個磁碟的存取時間為 t ;則 1 個資料 n 個磁碟的並行存取時間將為 t / n 。

• 如果資料是以位元組 (Byte) 為單位,每一個位元組有 8 個位元 (Bits) ,我們可以八個磁碟對應分置這些資料,第 1 個位元分置於第 1 個磁碟,第 2 個位元分置於第 2 個磁碟,以此類推。當八個磁碟同時並行存取資料時,其速度將較一個磁碟快 8倍。以位元 (Bit) 為分置單位者是謂 “位元階層分置 (Bit Level Striping)” ,以區塊 (Block) 為分置單位者是謂 “區塊階層分置 (Block Level Striping)” 。

Page 353: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-6-3磁碟矩陣階層 (RAID Level)

• 於 15-6-1 節,我們談到鏡影 (Mirroring) 操作,將資料同時寫入兩個磁碟,雖然有極佳的安全可信度,但也付出了相當的代價。除此之外,還可使用其他我們熟悉的偵錯方式,如檢查碼 (Parity Check Codes) 、漢明碼 (Hamming Codes) 等,將這些方式應用在磁碟矩陣 (RAID) ,可類分成數個如下之使用階層:

Page 354: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-6-3-0

圖 15-6-3-1

圖 15-6-3-2

Page 355: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-6-3-4

圖 15-6-3-5

圖 15-6-3-6

Page 356: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-6-4磁碟矩陣階層分析 (Selecting a RAID Level)

• RAID 0 將所有的磁碟都用於儲存資料,優點是使用效率最高,又因是分置(Striping) 儲存,可執行同步存取,增加執行速率;缺點是一旦有磁碟損壞,即無補救之途徑。

• RAID 1 將資料鏡影 (Mirroring) 兩個磁碟,優點是當有磁碟損壞時,可立刻以另一個磁碟的資料修補之,安全可靠性最高;缺點是以兩倍數量的磁碟儲存資料,使用效率最低,又因未安排分置儲存,無法執行同步存取。

• RAID 0+1 將資料先分置於一組磁碟,再鏡影複製於另一組磁碟,優點是因是分置 (Striping) 儲存,可執行同步存取,且當有磁碟損壞時,可立刻以另一個磁碟的資料修補之,安全可靠性最高;缺點是以兩倍數量的磁碟儲存資料,使用效率最低。

• RAID 1+0 將資料鏡影寫入兩組磁碟,再將第一組資料分置 (Striping) ,優點是以第一組磁碟執行同步存取,以第二組磁碟作原始資料修補;缺點是以兩倍數量的磁碟儲存資料,使用效率最低。理論上 RAID 1+0 較 RAID 0+1更安全可靠。

• RAID 2 使用漢明碼概念,優點是可在能力範圍內自動修補錯誤,安全可靠性與 RAID 1相等,且使用數量較少的磁碟執行修補任務。

• RAID 3 使用單一檢查碼概念,優點是僅以一個磁碟執行偵錯任務,節省資源;缺點是僅能偵錯,無法修補錯誤。

• RAID 4與 RAID 3 的意義相同,不同者是以區塊 (Block) 為分置單位,可用於大量資料的傳遞。

• RAID 5與 RAID 4 的意義相同,不同者是將資料與檢查碼依序分置 (Striping) 於各磁碟,以免一個磁碟損壞,所有檢查碼均遺失。

• RAID 6 採用 Reed−Solomon Codes 方法,目前已少有電腦系統採用。

Page 357: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-7 磁碟掛載應用 (Disk Attachment)

• 電腦系統與磁碟間之掛載用可類分為: (1) 本機掛載儲存裝置 (Host Attached Storage)、 (2) 網路掛載儲存裝置 (Net Work Attacked Storage)、 (3) 儲區網路 (Storage Area Network) 。

Page 358: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-7-1 本機掛載儲存裝置(Host Attached Storage)

• 系統經過 I/O ,對掛載於本機的裝置執行資料存取,依 RAID 概念,今日微電腦系列常使用的磁碟組織有 IDE與 SCSI ,其結構如圖 15-7-1 。

Page 359: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-7-1

Page 360: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-7-2 網路掛載儲存裝置(Network Attacked Storage)

• 電腦系統可經過網路,對儲存裝置存取資料,如此作為是謂 “網路掛載儲存裝置 (NAS Network Attached Storage)” ,如圖 15-7-2, Servers對 NAS存取資料, Clients對 NAS 存取資料。

Page 361: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-7-2

Page 362: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-7-3 儲區網路(Storage Area Network)

• 網域是否暢通,是影響網路操作效率的重要因素,網域資源非常珍貴,盡可能要屏除不必要的浪費,如前節所述之 NAS ,在使用上將與Server−Client競爭網域頻寬,影響網路傳輸效率。

Page 363: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 15-7-3

Page 364: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-8 穩定儲存應用(Stable Storage Implementation)

• 一個良好的電腦系統應具有穩定的儲存裝置,亦即有一個不會產生錯誤的儲存系統。當一個磁碟有錯誤發生時,系統立即安排:

• (1) 將另一個儲存相同資料的鏡影磁碟取代該受損磁碟;

• (2) 使用除錯碼技術 ( 如漢明碼等 ) 將錯誤修補之。

• 前述 15-6-3 節所描述之 RAID即是維護穩定儲存的良好儲存裝置。

Page 365: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

15-9 習題 (Exercises)1 、於磁碟運用,何謂等角速率 (CAV Constant Angle Velocity)?

2 、於磁碟運用,何謂等線性速率 (CLV Constant Linear Velocity?

3 、通常存取磁碟資料有那 4 個時間步驟?4 、一個 I/O 需求 (I/O Request) 內容應包含那些資訊?5、 FCFS 的優缺點為何?6、 FCFS 的優缺點為何?7、 Scan 的優缺點為何?8、 C−Scan 的優缺點為何?9 、掃瞄判斷排程 (Look Scheduling) 與 C−掃瞄判斷排程

(C−Look Scheduling) 的優缺點為何?10 、置換空間設置於磁碟的檔案系統內 (File System) 、或設置於磁碟的獨立分割內 (Partition) 。兩者有何差別?

11 、試請分析 RAID 各階層。12 、何謂 IDE?13 、何謂 SCSI?

Page 366: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第五篇

分散式系統 (Distributed System)

Page 367: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十六章分散式系統結構 (Distributed System Structures)

• 16-1 簡介• 16-2 概念 (Background)• 16-2-1 分散式系統之優點 (Advantages of Distributed Systems)• 16-2-2 分散式作業系統之類型 (Types of Distributed Operating System)• 16-3 節點連接 (Topology)• 16-4 網路通訊 (Communication)• 16-4-1 名稱解析 (Naming Resolution)• 16-4-2 路由策略 (Routing Strategies)• 16-4-3 連接策略 (Connection Strategies)• 16-4-4 衝突避免 (Contention)• 16-5 網路通訊協定 (Communication Protocols)• 16-6 網路故障處理 (Robustness)• 16-7 習題 (Exercises)• 16-8 範例系統程式 (Programming)• 16-8-1 網路節點連接 (模擬 16-3節 )• 16-8-2 網路節點連接 (模擬 16-4-1節 )• 16-8-3 網路線路 / 資料交換 (模擬 16-4-3節 )

Page 368: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-1 簡介

• 分散式系統 (Distributed System) 是多個處理器(Processors) 的組合,各處理器散置於各不同地區,彼此間互不共享記憶體,各有其自己的記憶體(Memory) ,以地區網路 (LAN Local Area Network) 或廣域網路 (WAN Wide Area Network) 互通訊息。本章將探討分散式系統之結構、及使用之網路。

Page 369: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-2 概念 (Background)

• 分散式系統 (Distributed System) 是多個處理器(Processors) 的組合,從小型的手持微電腦、個人電腦、到大型的工作站,散置於各不同地區(Sites) ,由網路互相連通。

Page 370: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-2-1 分散式系統之優點(Advantages of Distributed Systems)

• 建置分散式系統至少有四個理由:資源分享(Resource Sharing) 、計算迅速 (Computation Speedup) 、可靠性佳 (Reliability) 、與便利通訊(Communication) 。

• 1 、資源分享 (Resource Sharing)• 2 、計算迅速 (Computation Speedup)• 3 、可靠性佳 (Reliability)• 4 、便利通訊 (Communication)

Page 371: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-2-2 分散式作業系統之類型(Types of Distributed Operating System)

• 本節將介紹兩類網路導向作業系統 (Network Oriented Operation System): (1) 網路作業系統(Network Operating System) 與 (2) 分散式作業系統 (Distributed Operation System) 。在網路運用上,前者較後者容易操作;在存取儲存裝置上,後者較前者容易操作。

• 1 、網路作業系統 (Network Operating System)• 2 、分散式作業系統 (Distributed Operation

System)

Page 372: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-3 節點連接 (Topology)

• 分散式系統是將散置於各處的處理器 (Processors) 以網路連接,互通訊息。其中有許多連接方式,各有其優缺點,我們考量的重點有:

• (1) 實體安裝代價 (Installation Cost)• (2) 通訊時間代價 (Communication Cost)• (3) 執行方便考量 (Availability)

Page 373: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 16-3-1

Page 374: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 16-3-2

Page 375: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 16-3-3

Page 376: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 16-3-4

Page 377: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 16-3-5

Page 378: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-4 網路通訊 (Communication)

• 當探討網路通訊,我們須考量: (1) 名稱解析(Naming Resolution) ,兩個行程 (Processes) 如何在廣大的網域中互相定址對方? (2) 路由策略(Routing Strategies) ,如何在網域中選擇傳遞資料之途徑? (3) 連接策略 (Connection Strategies) ,網路中如何安排多個行程同時傳遞資料? (4) 衝突避免 (Contention) ,當發生網路上爭議的問題時,如何解決?

Page 379: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-4-1 名稱解析 (Naming Resolution)

• 網路上兩個行程 (Processes) 若要互通訊息,首先須定址對方,知道對方的位置之後,才能將資料傳遞給對方,或從對方下載資料。網路上電腦節點之名稱即是該節點的地址,通常有兩種表示方式:識別地址碼 (Host Identifier) 、與識別名稱(Host Name) 。

Page 380: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-4-2 路由策略 (Routing Strategies)

• 當網路中兩節點相互通訊,其間安排資料傳遞的途徑是謂 “路由策略 (Routing Strategies)” 。每一個網路地區均設有路由表 (Routing Table) ,詳載資料可傳送的各種途徑 (Alternative Paths) 、及傳遞之時間代價 (Cost) 等資訊 (Information) ,表中內容隨周遭環境之變化而自動更新。資料傳遞方式可概分為: (1) 固定路徑 (Fixing Routing)、 (2) 虛擬路徑 (Virtual Routing)、 (3) 機動路徑 (Dynamic Routing) 。

Page 381: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 16-4-2

Page 382: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-4-3 連接策略 (Connection Strategies)

• 當網路上兩個行程 (Processes) 相互通訊時,兩行程間建立起通訊管道 (Communications Sessions) ,在此時段期間,該兩行程佔用連通線 (Connection Lines) 以交換資料(Switching Data) ,資料交換完畢後,再釋出連通線供其他行程使用。交換資料的方式可類分為:線路交換 (Circuit Switching) 、資料交換 (Message Switching) ,與封包交換(Packet Switching) 。

• 1 、線路交換 (Circuit Switching)• 2 、資料交換 (Message Switching)• 3 、封包交換 (Packet Switching)

Page 383: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-4-4 衝突避免 (Contention)

• 網路上電腦節點眾多,每條連線總有多個節點同時使用,因此傳遞的資料時有衝突混亂,如果不設立防範機制,將無法順利傳遞資料。目前網路上常用的防範機制有:載體偵測法 (CSMA Carrier Sense with Multiple Access) 、衝突警告法 (CD Collision Detection) 、與輪序傳遞法 (Token Passing) 。

• 1 、衝突偵測法 (CSMA)• 2 、衝突警告法 (CD Collision Detection)• 3 、令牌傳遞法 (Token Passing)

Page 384: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-5 網路通訊協定(Communication Protocols)

• 網路上電腦節點眾多且資料格式不盡相同,強迫互相傳遞資料,將無法順利執行。我們必須設定一個各節點都可接受的協定 (Protocol) ,讓所有節點都依協定的要求遂行資料傳遞,如此才可順利執行。

• 網路通訊協定 (Communication Protocols) 是以多階層 (Multiple Layers) 方式設計,網域網路採用國際標準組織 (ISO International Standards Organization) 所提出的協定 (Protocol) ,其模型如圖 16-5-1:

Page 385: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 16-5-1

Page 386: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 16-5-2

Page 387: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 16-5-3

Page 388: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-6 網路故障處理 (Robustness)

• 網路節點眾多,發生故障的機會更是稀鬆平常,如連線故障 (Failure of Link) 、電腦節點故障 (Failure of Site) 、資料遺失 (Loss of Message) 等。

• 為了維護網路隨時保持良好狀態,網路應有能力執行:偵測故障 (Detect Failure) 、重組系統 (Reconfiguration) 、與修補故障 (Recovery from Failure) 。

• 1 、偵測故障 (Detect Failure)• 2 、重組系統 (Reconfiguration)• 3 、修複故障 (Recovery from Failure)

Page 389: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

16-7 習題 (Exercises)

1 、分散式系統有那些優點?2 、試請比較網路作業系統 (Network Operating System) 與分散式作業系統 (Distributed Operation System) 之優缺點?

3 、常用的連線形式有那些?4 、當某地區電腦節點 A要定址另一節點 B時,其作業系統要求網址解析的執行步驟為何?

5 、於區域網路內,各節點與閘道節點 (Gateway) 之間以何種方式連接?

6 、何謂線路交換 (Circuit Switching) ?7 、何謂資料交換 (Message Switching) ?8 、何謂封包交換 (Packet Switching) ?9 、試請敘述國際標準組織 (ISO International Standards Organization) 所

提出的網路協定 (Protocol) 各層之內容。10、 UDP與 TCP 有何差異?11 、當網路某裝置發生故障時,我們如何偵測故障?

Page 390: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十七章 分散式檔案系統(Distributed File System)

• 17-1 簡介• 17-2 概念 (Background)• 17-3 名稱與通透性 (Naming and Transparency)• 17-3-1 名稱結構 (Naming Structure)• 17-3-2 名稱方案 (Naming Schemes)• 17-4 遠端檔案存取 (Remote File Access)• 17-4-1 快取方案 (Caching Scheme)• 17-4-2 快取位置 (Cache Location) • 17-4-3 更新快取資料 (Cache Update) • 17-4-4 一致性 (Consistency) • 17-4-5 快取與遠端服務之比較 (• 17-5 檔案複製 (File Replication)• 17-6 習題 (Exercises)• 17-7 範例系統程式• 17-7-1遠端檔案儲存 (模擬 17-4節 )• 17-7-2遠端檔案複製 (模擬 17-5節 )

Page 391: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

17-1 簡介

• 於前一章我們曾討論網路結構 (Distributed System Structure) 與通訊協定 (Communication Protocols),於 13 章我們曾討論檔案系統運作 (File System Implement) ,本章我們將結合此兩章之內容,探討檔案系統如何在網路上運作,亦即如何執行分散式檔案系統 (DFS Distributed File Systems)?

Page 392: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

17-2 概念 (Background)

• 網路上蘊藏著許多服務項目 (Services) ,電腦節點亦各有其不同之工作地位,伺服端電腦節點(Server) 提供軟體服務機制 (Software Service) ;客戶端電腦節點 (Clients) 連通服務機制,以網路作業系統作為服務介面 (Interface) ,執行有關之服務項目。

Page 393: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

17-3 名稱與通透性 (Naming and Transparency)

• 使用者 (Users) 存取邏輯資料 (Logical Data) 的切入點是檔案名稱 (File Name) ,在單機應用上,檔案名稱即是儲存檔案資料的起始地址,如 12-2-1 節曾述,使用者 (Users) 使用檔案名稱(File Name) ,例如 testFile.java ;電腦系統使用檔案識別碼(File Identifier) ,例如 1234 。在網路應用上,檔案儲存於網路某個電腦節點,故檔案名稱應包括電腦節點名稱、與檔案本身名稱,如 16-4-1 節曾述,使用者 (Users) 使用檔案名稱 (File Name) ,例如 chia.tf.edu.tw / testFile.java ;電腦系統使用檔案識別碼 (File Identifier) ,例如 163.15.40.243 / testFile.java 。

• 讀者有經驗,在單機應用上,當編輯完成一個檔案後,我們設定檔案名稱再將其存檔,此時我們知道的是一個已建立的檔案,我們不知道檔案的儲存地址,也沒必要知道,只要有名稱我們即可對該檔案執行資料存取。以此類推網路檔案系統,我們不必知道檔案儲存在那一個節點,只要知道檔案名稱,即可對該檔案執行存取資料,如此作為是謂 DFS 之 “透通性 (Transparency)” 。

Page 394: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

17-4 遠端檔案存取 (Remote File Access)

• 假設 DFS 以前節所述之名稱方案 (Naming Scheme) 定名,使用者透過遠端服務機制 (Remote Service Mechanism) 存取遠端檔案,提出之存取需求(Request) 在 DFS 之導引下抵達伺服端(Server), DFS 將需求結果從伺服端傳回至客戶端之使用者,如此作為是謂 “遠端檔案存取(Remote File Access)” 。其中使用的遠端程序呼叫(RPC Remote Procedure Call) 與 4-4 節存取磁碟資料 (Access Disk) 之系統呼叫 (System Call) 類似,不同者前者須經過網域節點之定位。

Page 395: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 17-4

Page 396: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

17-5 檔案複製 (File Replication)

• 檔案複製 (File Replication) 是將網路某節點之檔案資料複製至其他網路節點,以備該節點損毀時,仍能保存資料。

• 為了方便使用者 (User) 使用,如 17-3-1 節曾述及之名稱透通性 (Naming Transparency) ,作業系統安排檔案複製透通性 (Replication Transparency) ,使用者只關心檔案名稱,不必知道複製檔案的位置 (Location) ;複製檔案的位置由系統導引安排。

• 檔案複製的優點是增加可靠性 (Reliability) ,不會因硬體損壞而遺失資料;其缺點是一旦更新 (Update) 資料時,需連絡所有的複製檔案同步更新,系統將付出可觀之代價。

Page 397: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

17-6 習題 (Exercises)

1 、檔案系統之軟體本質服務項目有那些?2 、何謂檔案名稱之透通性 (Transparency)?3 、何謂位置透通性 (Location Transparency) ?4 、何謂位置獨立性 (Location Independency) ?5、 DFS 設定檔案名稱有那三種定名方案?6 、快取資料的儲存位置可從那四個觀點來考量?7 、客戶端將更新資料傳送給伺服端的時機有那三種?

8 、試述檔案複製的缺點。

Page 398: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十八章 分散式系統之整合(Distributed Coordination)

• 18-1 簡介• 18-2 事件序列 (Event Ordering)• 18-3 互斥 (Mutual Exclusion)• 18-4緊密聚合 (Atomicity)• 18-5 死結處理 (Deadlock Handling)• 18-6 習題 (Exercises)• 18-7 範例程式• 18-7-1 網路集中 /協調 (模擬 18-3-1節 )

Page 399: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

18-1 簡介

• 於第八章我們曾討論在單機系統環境 (Computer System Environment) 下,一個行程 (Process) 之執行流程,也討論多個行程之並行流程,其中如並行條件 (Concurrency Conditions) 、臨界區 (Critical Section) 、信號 (Semaphores) 等問題,本章將以同樣的問題觀點,在分散式系統環境(Distributed System Environment)下,討論多個行程之並行流程。

• 於第九章我們曾討論在單機系統環境 (Computer System Environment) 下,死結定義 (Deadlock Definition) 、死結預防 (Deadlock Prevention) 、死結避免 (Deadlock Avoidance)、死結偵測 (Deadlock Detection) 、死結消弭 (Recovery from Deadlock) 等問題,本章亦將以同樣的問題觀點,在分散式系統環境 (Distributed System Environment)下,討論死結的問題。

Page 400: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

18-2 事件序列 (Event Ordering)

• 於 4-2-1 節曾述及,我們在編輯器上寫的程式碼是謂 “程式 (Program)” ;當程式上的指令被 CPU 讀取執行時是謂 “行程 (Process)” ;行程流程中執行的事項是謂 “事件 (Event)” 。如圖 18-2 ,行程P依序執行 p1、 p2、…、 pn 等事件 (Events) 。

Page 401: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-2

Page 402: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

18-2-1 先後關係式 (Happened−Before Relation)

• 一個執行於集合 (Sets) S 之關式元 (Relation) R 被稱為 “偏序 (Partial Order)” ,如果該 R滿足:

• • (1) 反身律 (Reflexive):即 aRa ,其中 a是 S 之任

一元素 (Element) ;• (2) 反對稱律 (Anti-Symmetric):即 當有 aRb 且

bRa 時,則有 a = b ;• (3) 遞移律 (Transitive):即 當有 aRb 且 bRc 時

,則有 aRc 。

Page 403: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-2-1-1

Page 404: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-2-1-2

Page 405: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

18-2-2 應用 (Implementation)

• 在電腦系統操作中,有許多執行項目需要事件之序列資料,如資料更新與複製、資源佔用與釋放、資料輸出與接收等。於單機系統可以輕易地辨識先後次序,但於網路多機系統却不易辨識。

• 於前節我們己粗略探討事件序列,本節將作更進一步的實用探討。我們記錄每一事件的發生時間,如圖 18-2-2-(a), p1為 100、 q1為 100、 q2為 200 ,此為 “時間戳記 (TS Timestamp) 。

Page 406: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-2-2

Page 407: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

18-3 互斥 (Mutual Exclusion)

• 我們曾於第八章探討單機之互斥操作,本節將探討在分散式系統環境 (Distributed System Environment) 下,多個行程之互斥操作。

• 在分散式系統環境 (Distributed System Environment) 下,互斥 (Mutual Exclusion) 之定義(Definition) 是不允許有兩個行程 (Processes) 同時在臨界區 (Critical Section) 操作。在執行上,可類分為集中式執行 (Centralized Approach) 、與分散式執行 (Distributed Approach) 。

Page 408: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-3-1

Page 409: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-3-2

Page 410: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-4

Page 411: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

18-4緊密聚合 (Atomicity)

• 有些工作必須緊密聚合 (Atomicity) 連續地執行,在單機系統 (Computer System) 上並不困難,例如執行批次工作 (Batch) 。但在分散式系統(Distributed System) 上,却不易整合執行。假設有一個工作 (Transaction) T ,具有兩個特性: (1) 龐大複雜,必須由多個電腦分擔處理; (2) 因內容需要,必須緊密聚合連續地執行。此時我們必須安排分散式之緊密聚合執行 (Distributed Atomicity) 。

Page 412: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-4-1

Page 413: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

18-5 死結處理 (Deadlock Handling)

• 我們曾於第九章詳細探討單機系統 (Computer System) 之死結處理,其中之死結預防 (Deadlock Prevention) 、死結避免 (Deadlock Avoidance) 、死結偵測 (Deadlock Detection) 、死結消弭 (Recovery from Deadlock) 等之觀點仍可用於分散式系統(Distributed System) 。

Page 414: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-5-2-1

Page 415: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-5-2-2

Page 416: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-5-2-3

Page 417: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-5-2-1-1

Page 418: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-5-2-1-2

Page 419: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-5-2-2-1

Page 420: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 18-5-2-2-2

Page 421: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

18-6 習題 (Exercises)

1 、何謂偏序 (Partial Order) 關係?2 、試述 “先後關係式” 之特性。3 、在分散式臨界區互斥之操作流程中,其執行困擾處為何?

4 、在執行互斥流程中,何謂令牌傳遞執行 (Token Passing Approach)?

5 、令牌傳遞法 (Token Passing Approach) 須注意那些事項?6 、何謂兩階段協定 (2PC Two−Phase Commit Protocol)?7、 2PC故障處理之方式為何?8 、於時間戳記優先演算法 (Timestamp Priority Algorithm) 中

,何謂消極方式 (Wait−die Scheme)?9 、死結處理之時間戳記優先演算法中,何謂積極方式

(Wound Wait Scheme)?10 、死結處理之集中式執行 (Centralized Approach) 有那三種檢視時間點?

Page 422: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第六篇

保護與安全 (Protection and Security)

Page 423: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第十九章保護 (Protection)

• 19-1 簡介• 19-2 保護的目的 (Goal of Protection)• 19-3 保護之定義域 (Protection Domain)• 19-3-1 定義域結構 (Domain Structure)• 19-3-2 定義域代表 (Domain Representations)• 19-4 矩陣執行 (Access Matrix)• 19-4-1 複製功能 (Copy)• 19-4-2擁有者功能 (Owner)• 19-4-3控制功能 (Control)• 19-5 矩陣應用 (Implementation Matrix)• 19-5-1 全域表格 (Global Table)• 19-5-2 物件權限串列 (Access Lists for Objects)• 19-5-3 定義域能力串列 (Capability Lists for Objects)• 19-6 習題 (Exercises)• 19-7 範例系統程式 (Programming)• 19-7-1矩陣應用 (模擬 19-5節 )

Page 424: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

19-1 簡介

• 系統中、通常都有多個行程 (Processes) 正在執行,為了讓這些行程得以在不受干擾的環境下執行工作,系統應有一些保護措施 (Protections) 。只有系統允許 (Proper Authorization) 的行程,才能使用特定的檔案 (File) 、記憶體 (Memory)、 CPU、或系統資源 (Resource) 。

• 系統保護機制控制 (Controlling) 程式 (Programs)、行程 (Processes) 、或使用者 (Users) 等對資源的使用,其中可類分為保護 (Protection) 與安全(Security) 。保護是維護行程不受干擾地使用特定資源;安全是維護資料或資源不被外力侵入而改變原有之意義。

Page 425: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

19-2 保護的目的 (Goal of Protection)

• 隨著電腦的精進發展,系統保護的需求也隨之更為重要,如同前數章曾述及之多程式作業系統 (Multiprogramming Operating System) ,其中最重要的管理是: “只有系統認可的權限使用者 (Users) ,才可依該權限使用特定的系統資源 (Resources) ” 。

• 電腦系統之保護策略 (Protection Policy) 是提供保護機制(Protection Mechanism) 以管理 (Governing) 系統各項資源(Resources) 之使用。此項保護策略有三個時機建立保護機制: (1) 硬體固定保護機制,系統出廠時已建立, (2) 作業系統因應執行環境,建立管理機制, (3) 使用者因應執行要求,建立管理機制。

Page 426: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

19-3 保護之定義域 (Protection Domain)

• 電腦系統 (Computer System) 是行程 (Processes) 與物件 (Objects) 的組合,物件包括硬體物件(Hardware Objects) 與軟體物件 (Software Objects),前者如 CPU 、記憶體、磁碟、印表機等,後者如檔案、程式等。

• 不同的物件對應不同型態 (Types) 的操作(Operation) ,記憶體引導存取操作; CPU 引導執行操作;檔案引導存取、建立、刪除等操作。

Page 427: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 19-3-1-1

Page 428: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 19-3-1-2

Page 429: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 19-3-1-3

Page 430: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

19-4 矩陣執行 (Access Matrix)

• 為了方便設計程式 (Programming) ,我們可將前述之集合 (Sets) 型式改以矩陣 (Matrix) 表示,如圖19-3-1-3 ,當行程 (Process) P代表定義域 (Domain) D2時, P 有讀取 (Read) 物件 (Object) O2 的權限,以 “ read = access(D2, O2)” 表示。

Page 431: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 19-4-1

Page 432: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 19-4-2

Page 433: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 19-4-1-1

Page 434: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 19-4-2-1

Page 435: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 19-4-3-1

Page 436: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

19-5 矩陣應用 (Implementation Matrix)

• 如圖 19-5 ,我們發現圖中有許多空白入口(Entries) ,如果將矩陣圖儲存於記憶體,這些空白入口所佔有的空間 (Space) 將是一種嚴重的記憶體浪費,我們可以表格 (Table) 或串列 (Lists) 作適當的取代。

Page 437: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 19-5

Page 438: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

19-6 習題 (Exercises)

1 、保護 (Protection) 與安全 (Security) 有何區別?2 、保護策略有那三個時機建立保護機制?3 、於離散數學中曾定義 (Define) 之序對關係 (Ordered Pair)

為何?4 、如何表示 “保護定義域 (Protection Domain)”?5 、定義域 (Domain) 之具體代表為何?6 、複製 (Copy) 有那幾種?7 、全域表格 (Global Table) 之優缺點為何?8 、物件權限串列 (Access Lists for Objects) 之優缺點為何? 9 、定義域能力串列 (Capability Lists for Objects) 之優缺點為何?

Page 439: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

第二十章安全 (Security)

• 20-1 簡介• 20-2 安全問題 (Security Problem)• 20-3 使用者確認 (User Authentication)• 20-4 程式安全之威脅 (Program Threats)• 20-5 系統安全之威脅 (System Threats)• 20-6 加解密 (Cryptography)• 20-6-1 傳統加密法• 20-6-2近代公開金匙加密法• 20-6-2-1 公開金匙原理• 20-6-2-2 金匙設計方法• 20-6-2-3金匙設計執行法則• 20-6-2-4 金匙設計實例 (Java 範例程式設計 )• 20-7 習題 (Exercises)• 20-8 範例系統程式 (Programming)• 20-8-1 傳統加解密法 (模擬 20-6-1節 )• 20-8-2近代加解密法 (模擬 20-6-2節 )

Page 440: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-1 簡介

• 於前章我們述及系統之保護 (Protection) ,本章將再進一步探討系統之安全 (Security) 。保護是維護行程不受干擾地使用特定資源;安全是維護資料或資源不被外力侵入而改變原有之意義。

• 具體來言,保護是處理系統內部環境 (Internal Environment) 之問題,如檔案權限 (File Authority) 等;安全是處理系統外部環境 (External Environment) 之侵入問題,如病毒、資料攔截等。

Page 441: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-2 安全問題 (Security Problem)

• 軟體資料 (Data) 或硬體資源 (Resource) 遭到不當之使用是謂 “安全問題 (Security Problem)” 。所謂 “不當使用 (Violations或Misuse)” 是指意外(Accidental) 不當使用、或蓄意 (Intentional或Malicious) 不當使用兩種。

• 電腦之安全問題可由四個觀點來處理:實體觀點(Physical) 、使用者觀點 (Users) 、網路觀點(Network) 、作業系統觀點 (Operating System) 。

Page 442: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-3 使用者確認 (User Authentication)

• 當使用者 (User) 要存取某檔案資料、或使用某資源裝置之前,必須先經過使用者確認 (User Authentication) ,確認的項目通常有三類:

• (1) 使用者物件 (User Possession) ,如使用者之卡片 (Card) 、使用者之鎖匙 (key) 等;

• (2) 使用者資料 (User Knowledge) ,如使用者帳號(ID) 、使用者名稱 (Name) 、使用者密碼(Password) 等;

• (3) 使用者特性 (User Attributes) ,如指紋(Fingerprint) 、視網膜 (Retina) 、簽名 (Signature) 等。

Page 443: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-4 程式安全之威脅 (Program Threats)

• 當使用者 (User) 設計完成一個程式 (Program) ,除了設計者外,也提供其他使用者使用,程式安全之威脅因而由此產生,如木馬程式 (Trojan Horses) 、陷阱口 (Trap Doors) 等。

Page 444: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-5 系統安全之威脅 (System Threats)

• 作業系統 (Operating System) 提供行程可產生另一行程的機制,當一個行程有瑕疵時,即可能產生有瑕疵的其他行程,而將瑕疵擴散出去。如分裂程式 (Worms) 與病毒 (Viruses) 等。

Page 445: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-6 加解密 (Cryptography)

• 當兩個工作站台傳遞資料時,資料也隨即暴露在人人可攔截的空曠網路上,資料的安全性面對極大的挑戰。我們無法避免資料不被攔截,但我們可將資料加密,使被攔截的資料無意義。本節將探討: (1) 傳統加密法 與 (2) 近代公開金匙加密法。

Page 446: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-6-1傳統加密法

• 所謂 “傳統加解密” 即是發射端 (Client端 ) 與接收端 (Server端 ) 均有相同對應之密碼匙,發射端依密碼匙將資料加密,接收端再依對應的密碼匙將資料解密,如此方法行之自古至今,其優點是簡易方便;缺點是不週嚴,有極大洩密之缺口,問題在發射端與接收端於交換對應密碼匙時,無法百分之百保密。

Page 447: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-6-2 近代公開金匙加密法

• 傳統密碼加密法,有其一定的不可靠風險,接收工作程序於設定加解密金匙後,自己保留解密金匙,還必須將加密金匙,通知發射工作程序。在通知的過程中,即已有了不可避免的洩密風險。近代密碼加密法,針對此項洩密風險,加以改進。接收工作程序於設定加解密金匙後,自己保留解密金匙,另將加密金匙公告大眾。

Page 448: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-6-2-1公開金匙原理

• 接收工作程序於設定加解密金匙後,自己保留解密金匙,另將加密金匙不僅不須隱密通知對方,甚至將加密金匙公告大眾,其中神妙之處令人驚嘆。

• 1 、暗門單向函數• 2 、單向函數常例• 3 、餘數同餘觀念• 4 、縮剩餘系 (Reduced Set of Residues)• 5 、尤拉商數 (Euler’s Totient Function)• 6 、尤拉定理 (Euler’s Theorem)• 7 、費瑪定理 (Fermat’s Theorem)

Page 449: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-6-2-2 金匙設計方法

• 在初步了解上述觀念與理論後,即可著手設計RSA 之公開加密金匙及私密解密金匙如下:

• 1 、首先考量金匙之可逆性• 2 、由尤拉—費瑪 定理可得• 3 、若設定公開加密金匙 (ex, N) 、如何求得私密解密金匙 dx?

Page 450: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-6-2-3 金匙設計執行法則

• 我們己清礎了解近代加密法 RSA ,如何設定其公開加密金匙、及又如何求取私密解密金匙。現在,我們將其執行過程整理詳述如下:

• (1) 受文者 ( 接收端工作程序 ) 為乙方,任意選取兩個大質數 p與 q,其積 N=pq 。

• (2) 乙方任意選擇一整數 ex ,且 ex與 N互質。將 (ex, N) 設定為公開加密金匙,並公佈之。

• (3) 乙方以 20-6-2-2之 3 -(3) dx = (kT + 1) / ex , 求得其中之整數 dx 。 T 如 20-6-2-2之 2, T = Φ(N) = (p-1)(q-1) ; k 如 20-6-2-2之 3 -(2) k為常數 (0, 1, 2, …) 。以 dx 為乙方之私密解密金匙,妥善保管,不得洩漏。

• (4) 發文者 (發射工作程序 ) 為甲方、要秘密傳送明文 m給乙方。甲方首先由公開檔案找到乙方公佈的公開加密金匙 (ex, N) 。然後以該公開金匙將明文 m加密成密文 n 。 如 33-2-(一 )(1): mex = n mod N

• (5) 受文者 ( 接收工作程序 ) 乙方收到密文 n後,以其私密解密金匙dx 解密。將密文 n還原成 m 。 如 20-6-2-2之 3 -(1): ndx = m mod N

Page 451: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

圖 20-6-2-4

Page 452: 作業系統概論 Operating System Concepts 第二版 (2nd Edition) 賈蓉生  胡大源  林金池  編著

20-7 習題 (Exercises)

1 、電腦之安全問題可由那四個觀點來處理?2 、使用者確認 (User Authentication) 通常有那三類?3 、何謂木馬程式 (Trojan Horses)?4 、何論陷阱口 (Trap Doors)?5 、何謂病毒 (Viruses)?6 、何謂謂 “傳統加解密”?7 、“傳統加解密” 之優缺點為何?8 、“近代公開金匙加密法” 與 “傳統密碼加密法” 有何不同?

9 、試設計一組 “傳統密碼加密法” 網路程式實例。10 、試設計一組 “近代公開金匙加密法” 網路程式實例。