part 1 建立入門觀念 - gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2...

11
0-5 目錄 PART 1 建立入門觀念 Chapter 01 認識電腦系統 1.1 學習作業系統的準備 ........................................................................................................................................ 1-2 1.2 電腦發展的歷史.................................................................................................................................................... 1-3 1.2.1 電腦系統的硬體組成............................................................................................................... 1-4 1.2.2 電腦系統的軟體組成............................................................................................................... 1-5 1.2.3 電腦系統處理的資料(data) ................................................................................................. 1-7 1.2.4 主宰電腦的人類......................................................................................................................... 1-7 1.3 認識電腦結構 ......................................................................................................................................................... 1-8 1.3.1 處理的功能 ................................................................................................................................ 1-10 1.3.2 儲存的功能 ................................................................................................................................ 1-10 1.3.3 輸入與輸出的功能.................................................................................................................. 1-11 1.4 電腦的種類............................................................................................................................................................ 1-12 1.4.1 電腦的分類 ................................................................................................................................ 1-12 1.4.2 認識各種類型的電腦............................................................................................................ 1-13 1.5 系統程式的迷思................................................................................................................................................. 1-15 1.5.1 組譯程式(Assemblers) ....................................................................................................... 1-15 1.5.2 程式的連結(Link)與載入(Load) ..................................................................................... 1-16 1.5.3 編譯程式(compiler) .............................................................................................................. 1-17 1.5.4 作業系統(operating system) .......................................................................................... 1-20 1.5.5 其他的系統程式...................................................................................................................... 1-20 Chapter 02 作業系統面面觀 2.1 作業系統簡介 ......................................................................................................................................................... 2-2 2.1.1 作業系統發展的歷史............................................................................................................... 2-3 2.1.1.1 1(first generation, 1945-1955) 2-4 2.1.1.2 2(second generation, 1955-1965) 2-4 2.1.1.3 3(third generation, 1965-1980) 2-5 2.1.1.4 4(fourth generation, 1980以後) 2-7 2.1.2 作業系統的設計......................................................................................................................... 2-8 2.1.3 作業系統功能上的組織.......................................................................................................... 2-9 2.1.4 作業系統的實作...................................................................................................................... 2-10 2.2 作業系統的分類................................................................................................................................................. 2-11 2.2.1 批次系統(batch system) .................................................................................................... 2-11 2.2.2 分時(timesharing)系統....................................................................................................... 2-12 2.2.3 個人電腦作業系統................................................................................................................. 2-12 2.2.4 即時系統 ..................................................................................................................................... 2-13 2.2.5 嵌入式作業系統(Embedded operating systems) .............................................. 2-14 2.2.5.1 嵌入式系統的基本觀念 2-15 2.2.5.2 嵌入式系統的處理器(processors) 2-15

Upload: others

Post on 05-Aug-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統作業系統

0-5

目錄

PART 1 建立入門觀念

Chapter 01 認識電腦系統

1.1 學習作業系統的準備 ........................................................................................................................................1-2

1.2 電腦發展的歷史 ....................................................................................................................................................1-3

1.2.1 電腦系統的硬體組成 ............................................................................................................... 1-41.2.2 電腦系統的軟體組成 ............................................................................................................... 1-51.2.3 電腦系統處理的資料(data) ................................................................................................. 1-71.2.4 主宰電腦的人類 ......................................................................................................................... 1-7

1.3 認識電腦結構 .........................................................................................................................................................1-8

1.3.1 處理的功能 ................................................................................................................................ 1-101.3.2 儲存的功能 ................................................................................................................................ 1-101.3.3 輸入與輸出的功能 ..................................................................................................................1-11

1.4 電腦的種類 ............................................................................................................................................................1-12

1.4.1 電腦的分類 ................................................................................................................................ 1-121.4.2 認識各種類型的電腦 ............................................................................................................ 1-13

1.5 系統程式的迷思 .................................................................................................................................................1-15

1.5.1 組譯程式(Assemblers)....................................................................................................... 1-151.5.2 程式的連結(Link)與載入(Load) ..................................................................................... 1-161.5.3 編譯程式(compiler) .............................................................................................................. 1-171.5.4 作業系統(operating system) .......................................................................................... 1-201.5.5 其他的系統程式 ...................................................................................................................... 1-20

Chapter 02 作業系統面面觀

2.1 作業系統簡介 .........................................................................................................................................................2-2

2.1.1 作業系統發展的歷史 ............................................................................................................... 2-32.1.1.1 第1代(first generation, 1945-1955) 2-4

2.1.1.2 第2代(second generation, 1955-1965) 2-4

2.1.1.3 第3代(third generation, 1965-1980) 2-5

2.1.1.4 第4代(fourth generation, 1980以後) 2-7

2.1.2 作業系統的設計 .........................................................................................................................2-82.1.3 作業系統功能上的組織 .......................................................................................................... 2-92.1.4 作業系統的實作 ...................................................................................................................... 2-10

2.2 作業系統的分類 .................................................................................................................................................2-11

2.2.1 批次系統(batch system) ....................................................................................................2-112.2.2 分時(timesharing)系統 ....................................................................................................... 2-122.2.3 個人電腦作業系統 ................................................................................................................. 2-122.2.4 即時系統 ..................................................................................................................................... 2-132.2.5 嵌入式作業系統(Embedded operating systems) .............................................. 2-14

2.2.5.1 嵌入式系統的基本觀念 2-15

2.2.5.2 嵌入式系統的處理器(processors) 2-15

Page 2: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統

0-6

作業系統

2.2.5.3 嵌入式系統的設計與應用 2-16

2.2.6 其他種類的作業系統 ............................................................................................................ 2-19

2.3 虛擬機器(virtual machines) ....................................................................................................................2-20

PART 2 處理元的管理

Chapter 03 認識處理元

3.1 處理元(process)的基本概念 ......................................................................................................................3-2

3.2 從作業系統的啟動程序觀察處理元的衍生過程 ...........................................................................3-6

3.2.1 UNIX的啟動程序 ....................................................................................................................... 3-73.2.2 系統呼叫(system call) ........................................................................................................... 3-7

3.3 作業系統的內部對處理元的分類 ............................................................................................................3-8

3.4 系統的細節 ...............................................................................................................................................................3-9

3.5 系統呼叫(system call)的實例 ................................................................................................................3-10

3.6 處理元與執行緒 : 觀念的釐清 ............................................................................................................3-14

3.6.1 多執行緒的觀念(multithreading) .................................................................................. 3-143.6.2 執行緒的功能 ........................................................................................................................... 3-163.6.3 執行緒的種類 ........................................................................................................................... 3-173.6.4 Windows 2000對於執行緒與處理元的管理 ........................................................... 3-183.6.5 Linux對於執行緒與處理元的管理 ................................................................................ 3-19

Chapter 04 排程(Scheduling)4.1 排程(Scheduling) ...............................................................................................................................................4-2

4.1.1 排程的由來 ................................................................................................................................... 4-24.1.2 排程機制與策略 .........................................................................................................................4-34.1.3 不可間斷的(nonpreemptive) 排程策略 ........................................................................ 4-6

4.1.3.1 先來先做(FCFS, First-Come-First-Served)的排程法 4-6

4.1.3.2 最短工作優先(SJN, Shortest Job Next) 的排程法 4-7

4.1.3.3 指定優先權的排程法 4-8

4.1.3.4 截止時間的排程法 4-9

4.1.4 可間斷的(preemptive) 排程策略 .................................................................................. 4-104.1.4.1 輪替式的排程法 (Round Robin scheduling) 4-11

4.1.4.2 多層佇列(multiple-level queues)的排程法 4-13

4.2 多處理器的排程(multiple-processor scheduling) ................................................................4-13

4.3 作業系統排程的實例 .....................................................................................................................................4-13

4.3.1 單一處理器的排程(uniprocessor scheduling) ..................................................... 4-144.3.2 回應時間(response time) ................................................................................................. 4-164.3.3 佇列系統(queuing system) ............................................................................................. 4-16

Page 3: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統作業系統

0-7

目錄

Chapter 05 同步(Synchronization)5.1 基本的作業系統同步(Synchronization)問題 ................................................................................5-2

5.1.1 認識並行(concurrency)的觀念 ......................................................................................... 5-45.1.2 臨界區域(critical section).................................................................................................... 5-55.1.3 實際案例 ........................................................................................................................................5-55.1.4 解決的方法 ...................................................................................................................................5-75.1.5 同步問題解決方法的整理 ..................................................................................................... 5-9

5.1.5.1 典型的互斥機制 5-9

5.1.5.2 透過軟體方法來達到互斥(mutual exclusion) 5-9

5.1.5.3 Dekker’s演算法 5-12

5.1.5.4 Peterson的演算法 5-14

5.2 處理元之間的協調 ...........................................................................................................................................5-15

5.3 號誌(semaphore) ............................................................................................................................................5-16

5.3.1 常見的同步問題 ...................................................................................................................... 5-175.3.1.1 基本的臨界區域問題 5-17

5.3.1.2 基本的同步問題 5-17

5.3.1.3 生產者-消費者問題(producer-consumer problem) 5-18

5.3.1.4 讀取與寫入的問題(readers-writers problem) 5-19

5.3.2 實作上的考量 ........................................................................................................................... 5-21

Chapter 06 死結(Deadlock)6.1 認識死結(Deadlock) .........................................................................................................................................6-2

6.1.1 死結的基本觀念 .........................................................................................................................6-36.1.2 死結的模型 ...................................................................................................................................6-46.1.3 處理死結的方法 .........................................................................................................................6-5

6.2 死結的預防(prevention)策略 .....................................................................................................................6-7

6.3 死結的避免(avoidance)策略......................................................................................................................6-8

6.3.1 資源分配圖型演算法(Resource-Allocation-Graph algorithm) ...................... 6-86.3.2 班克演算法(Banker’s algorithm) .................................................................................... 6-9

6.4 死結的偵測(detection) ................................................................................................................................6-11

6.4.1 資源類型只有單一案例的情況 .........................................................................................6-116.4.2 資源類型只有多個案例的情況 ........................................................................................ 6-12

6.5 死結的復原(recovery) ..................................................................................................................................6-12

6.5.1 處理元的終止(process termination) .......................................................................... 6-126.5.2 資源的中斷(resource preemption) ............................................................................. 6-13

Chapter 07 進階的同步觀念與實務

7.1 深入探討作業系統的同步(Synchronization)問題 .....................................................................7-2

7.1.1 共用變數(shared variable)的解決辦法 ........................................................................ 7-27.1.2 引導出號誌(semaphore)的觀念 ....................................................................................... 7-57.1.3 實作(implementation)上的考量 ....................................................................................... 7-7

Page 4: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統

0-8

作業系統

7.2 多處理器(multiprocessors)的情況 .......................................................................................................7-9

7.3 更高層次的同步控制方法 .............................................................................................................................7-9

7.3.1 合併同步(AND synchronization) .................................................................................... 7-97.3.2 監督器(monitor) ......................................................................................................................7-117.3.3 處理元間的溝通 (IPC) .........................................................................................................7-117.3.4 事件排序(Event ordering)與同步問題 ...................................................................... 7-12

7.4 執行緒(threads)的實作 ...............................................................................................................................7-12

7.4.1 程式語言中執行緒(Thread)的用途 ............................................................................ 7-147.4.1.1 Java執行緒狀態的變化 7-15

7.4.1.2 在Java中建立執行緒 7-15

7.4.1.3 Java執行緒中常用的方法 7-18

7.4.2 共用程式碼與同時性控制 ................................................................................................ 7-197.4.3 執行緒之間的溝通 ............................................................................................................... 7-21

PART 3 記憶體的管理(memory management)

Chapter 08 記憶體管理的概念

8.1 使用者程式的處理 ..............................................................................................................................................8-2

8.2 認識電腦系統的主記憶體 .............................................................................................................................8-3

8.2.1 主記憶體的種類 ......................................................................................................................... 8-48.2.2 記憶體的定址(memory addressing) ............................................................................. 8-68.2.3 快取記憶體(Cache Memory) ............................................................................................. 8-68.2.4 記憶體與儲存媒體的概念 ..................................................................................................... 8-78.2.5 記憶體的技術規格 ....................................................................................................................8-8

8.3 電腦系統中記憶體的管理 .............................................................................................................................8-9

8.3.1 基本觀念的建立 .......................................................................................................................8-118.3.1.1 處理元位址空間與主記憶體之間的對應 8-13

8.3.1.2 編譯時期 (compile time) 8-15

8.3.1.3 連結時期 (link time) 8-16

8.3.1.4 載入時期 (load time) 8-16

8.3.1.5 動態記憶體的觀念 8-17

8.3.2 記憶體的配置 ........................................................................................................................... 8-188.3.3 動態位址重定位(dynamic address relocation) ................................................... 8-208.3.4 交換作業(swapping) ............................................................................................................ 8-21

Chapter 09 虛擬記憶體 (virtual memory)9.1 虛擬記憶體(Virtual memory)簡介 .........................................................................................................9-3

9.1.1 實體記憶體的抽象化 ............................................................................................................... 9-59.1.2 虛擬記憶體技術 .........................................................................................................................9-5

9.2 分段式的虛擬記憶體機制(segmentation) .......................................................................................9-6

9.2.1 分段法的原理 .............................................................................................................................. 9-7

Page 5: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統作業系統

0-9

目錄

9.2.2 分段法的實作 ..............................................................................................................................9-8

9.3 分頁的虛擬記憶體機制(paging) ..............................................................................................................9-9

9.3.1 靜態分頁配置演算法(static paging algorithm) .................................................... 9-109.3.1.1 取用政策(fetch policy) 9-11

9.3.1.2 需求分頁法(demand paging) 9-11

9.3.1.3 堆疊演算法(stack algorithms) 9-13

9.3.2 動態分頁配置演算法(dynamic paging algorithm) ............................................. 9-14

9.4 分段分頁的記憶體配置(segmented/demand paged memory allocation) .......9-17

PART 4 儲存裝置的管理(storage management)

Chapter 10 檔案系統(file system)10.1 檔案的用途 ............................................................................................................................................................10-2

10.1.1 檔案的類型(file types) ..................................................................................................... 10-310.1.2 檔案的分享(file sharing) ................................................................................................ 10-4

10.2 檔案的觀念 ............................................................................................................................................................10-5

10.2.1 檔案的屬性 ............................................................................................................................. 10-510.2.2 檔案的操作 ............................................................................................................................. 10-610.2.3 檔案與目錄形成的架構 .................................................................................................... 10-6

10.3 檔案的結構與存取方法(access methods) ..................................................................................10-8

10.3.1 結構化檔案 ............................................................................................................................. 10-810.3.2 結構化序列檔案 ................................................................................................................... 10-910.3.3 索引循序檔案 ..................................................................................................................... 10-1010.3.4 倒轉檔案 (inverted file) ............................................................................................... 10-10

10.4 檔案系統(file system) ............................................................................................................................... 10-11

10.4.1 檔案系統的作業方式 .......................................................................................................10-1110.4.2 各種應用系統使用的檔案系統 .................................................................................. 10-12

10.5 體驗檔案系統的實作 ..................................................................................................................................10-13

10.5.1 資料方塊的管理 (block management) ............................................................... 10-14

10.6 檔案系統的保護機制 ..................................................................................................................................10-15

10.6.1 存取的類型 .......................................................................................................................... 10-1510.6.2 存取控制(access control) .......................................................................................... 10-15

10.7 檔案系統的掛載(mount) ..........................................................................................................................10-16

10.7.1 掛載的程序 .......................................................................................................................... 10-1610.7.2 掛載的實例 .......................................................................................................................... 10-17

Chapter 11 儲存裝置與其管理

11.1 儲存裝置 .................................................................................................................................................................11-2

11.1.1 磁碟簡介 ....................................................................................................................................11-211.1.2 磁碟機的由來 .........................................................................................................................11-4

Page 6: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統

0-10

作業系統

11.1.3 硬碟的組織...............................................................................................................................11-411.1.4 硬碟的檔案系統(hard disk file system) ..................................................................11-611.1.5 磁碟裝置的連接與運作 .....................................................................................................11-7

11.2 磁碟排程的原理與方法 ................................................................................................................................11-8

11.2.1 SSTF排程法............................................................................................................................11-811.2.2 FCFS排程法 ...........................................................................................................................11-911.2.3 SCAN排程法 ..........................................................................................................................11-911.2.4 LOOK排程法 .......................................................................................................................11-1011.2.5 排程方法的選擇 .................................................................................................................11-10

11.3 磁碟儲存空間的管理 .................................................................................................................................. 11-10

11.3.1 磁碟的格式化 ......................................................................................................................11-1111.3.2 開機(boot)磁區 ................................................................................................................... 11-11

11.4 切換空間(swap space)的管理 ........................................................................................................... 11-12

11.5 磁碟穩定性的管理 ........................................................................................................................................ 11-12

11.6 儲存媒體的分級 .............................................................................................................................................. 11-15

11.7 作業系統對於可抽換式儲存媒體的處理 ...................................................................................... 11-17

Chapter 12 輸出入系統

12.1 電腦輸出入系統簡介 .....................................................................................................................................12-2

12.1.1 認識I/O作業 ........................................................................................................................... 12-212.1.2 傳輸的模式 ............................................................................................................................. 12-3

12.2 從硬體和軟體層面來看輸出入作業 ....................................................................................................12-4

12.2.1 硬體層面的作業 .................................................................................................................. 12-512.2.1.1 輪詢(Polling) 12-6

12.2.1.2.中斷(Interrupts) 12-7

12.2.1.3 直接記憶存取(DMA) 12-14

12.2.2 軟體層面的作業 ................................................................................................................ 12-16

12.3 作業系統層次的輸出入作業 ..................................................................................................................12-18

12.3.1 I/O的排程(Scheduling) ................................................................................................ 12-1912.3.2 緩衝處理(buffering) ....................................................................................................... 12-1912.3.3 快取記憶體(cache)的運用 .......................................................................................... 12-2012.3.4 儲位(Spool)的運用 ......................................................................................................... 12-2012.3.5 溝通的訊息與系統資料的處理 .................................................................................. 12-20

12.4 I/O請求與硬體作業之間的轉換 ..........................................................................................................12-21

12.5 串流(streams)的概念 ................................................................................................................................12-21

12.5.1 串流(stream)的基本觀念 ............................................................................................. 12-2212.5.2 認識串流類別之間的關係 ............................................................................................ 12-2212.5.3 java.io.InputStream的使用 ....................................................................................... 12-2312.5.4 java.io.OutputStream的使用 ................................................................................... 12-2512.5.5 與檔案相關的串流處理 ................................................................................................. 12-2612.5.6 Java對於串流(stream)的其他支援 ........................................................................ 12-27

Page 7: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統作業系統

0-11

目錄

12.5.6.1 篩選串流(filtered streams) 12-27

12.5.6.2 字元串流(character streams) 12-31

PART 5 分散式系統

Chapter 13 分散式作業系統

13.1 分散式作業系統(distributed operating system)入門 .........................................................13-2

13.1.1 分散式系統(distributed system) ................................................................................ 13-313.1.2 分散式系統的優缺點 ......................................................................................................... 13-313.1.3 分散式系統的硬體觀念 .................................................................................................... 13-413.1.4 分散式作業系統的類型 .................................................................................................... 13-513.1.5 分散式系統中通訊的方式 ............................................................................................... 13-613.1.6 分散式系統中的程式與處理器 ..................................................................................... 13-8

13.2 區域網路作業系統 ...........................................................................................................................................13-9

13.2.1 Novell Netware簡介 .......................................................................................................13-1113.2.2 從Windows NT/2000到Windows 2008 Server ............................................. 13-1313.2.3 以UNIX為基礎的網路作業環境 ................................................................................ 13-14

13.3 分散式架構下的資訊傳遞 .......................................................................................................................13-15

13.3.1 傳輸層服務的基本作業 ................................................................................................. 13-1613.3.2 通訊槽(socket)的基本觀念......................................................................................... 13-18

13.3.2.1 TCP/IP中的主從模型 13-18

13.3.2.2 通訊軟體的設計與架構 13-20

13.3.2.3 協定的應用程式介面 13-20

13.3.3 遠端程序呼叫(RPC,Remote Procedure Calls) ......................................... 13-21

13.4 Java的遠端方法呼叫..................................................................................................................................13-22

13.4.1 Client與Server程式設計.............................................................................................. 13-2213.4.2 Java RMI架構的編譯與執行過程 ........................................................................... 13-28

13.5 Java RMI範例練習 ......................................................................................................................................13-30

13.6 從應用的觀點來了解訊息服務(messaging service) ........................................................13-33

Chapter 14 分散式檔案系統

14.1 分散式檔案系統 .................................................................................................................................................14-2

14.1.1 命名的問題(naming) ......................................................................................................... 14-214.1.2 遠端檔案的存取(remote file access)...................................................................... 14-314.1.3 遠端檔案服務(remote file service) .......................................................................... 14-4

14.2 廣域網路檔案系統 ...........................................................................................................................................14-5

14.2.1 廣域透明化 ............................................................................................................................. 14-614.2.1.1 通訊的模式 14-7

14.2.1.2 廣域應用的發展 14-7

14.2.2 分散式檔案系統的實例 .................................................................................................... 14-714.2.2.1 NFS簡介 14-8

Page 8: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統

0-12

作業系統

14.2.2.2 AFS簡介 14-9

14.2.2.3 DCE簡介 14-11

Chapter 15 分散式系統的理論與實務

15.1 分散式運算系統的基本概念 .....................................................................................................................15-2

15.1.1 分散式運算的涵義 .............................................................................................................. 15-415.1.2 訊息傳遞的方法(Message passing) ....................................................................... 15-515.1.3 分散式的記憶體管理 ......................................................................................................... 15-6

15.2 事件的排序問題 .................................................................................................................................................15-7

15.2.1 之前發生的關係(happened-before relation) ..................................................... 15-715.2.2 決定事件發生先後的方法 ............................................................................................... 15-8

15.3 互斥(mutual exclusion) ..............................................................................................................................15-8

15.3.1 集中式的演算法 ................................................................................................................... 15-815.3.2 完全分散式的演算法 ......................................................................................................... 15-915.3.3 註記傳遞(token-passing) 的演算法 ...................................................................... 15-10

15.4 分散式的單元性(atomicity) ...................................................................................................................15-10

15.5 分散式的並行控制(concurrency control) .................................................................................. 15-11

15.5.1 時鐘的同步(Clock synchronization) .....................................................................15-1115.5.2 互斥(Mutual exclusion) ............................................................................................... 15-1215.5.3 交易異動模型(Transaction model) ....................................................................... 15-12

15.6 分散式的死結處理(deadlock handling) ......................................................................................15-13

15.7 分散式演算法的常見問題 ........................................................................................................................15-13

15.8 以CORBA為例來認識分散式系統 ...................................................................................................15-14

15.8.1 CORBA的基本觀念 ........................................................................................................ 15-1415.8.1.1 CORBA的基本組成 15-15

15.8.1.2 CORBA中物件的處理 15-16

15.8.2 簡單的CORBA實作 ........................................................................................................ 15-1715.8.2.1 定義IDL介面 15-17

15.8.2.2 CORBA物件啟動的過程 15-21

15.8.3 認識IDL(interface definition language) ............................................................ 15-2315.8.3.1 IDL的資料型式(data types) 15-23

15.8.3.2 模組(modules)與介面(interfaces) 15-24

15.8.4 從IIOP(Internet Inter-ORB Protocol)看分散式應用的開發 .................... 15-2415.8.4.1 認識RMI-IIOP 15-25

15.8.4.2 CORBA與RMI-IIOP 15-30

PART 6 系統的保護與安全管理

Chapter 16 系統的保護

16.1 系統保護(Protection)的基本觀念 .......................................................................................................16-2

Page 9: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統作業系統

0-13

目錄

16.1.1 保護的目的 ............................................................................................................................. 16-216.1.2 保護的原則 ............................................................................................................................. 16-3

16.2 系統保護的機制 .................................................................................................................................................16-3

16.2.1 保護政策的觀念 ................................................................................................................... 16-416.2.2 保護領域(protection domain)的觀念 ...................................................................... 16-416.2.3 與系統保護相關的實例 .................................................................................................... 16-6

16.3 存取控制(access control) .........................................................................................................................16-7

16.3.1 資料存取控制簡介 .............................................................................................................. 16-716.3.2 身份識別(identification)與驗證(authentication) .............................................. 16-9

16.3.2.1 身份識別與鑑別的方法與技術 16-10

16.3.2.2 存取授權(authorization) 16-13

16.3.3 存取控制的模型 ................................................................................................................ 16-1516.3.3.1 自決式的(discretionary)模型 16-16

16.3.3.2 強制式的(mandatory)模型 16-16

16.3.3.3 非自決式的(nondiscretionary)模型 16-16

16.3.4 存取控制的技術 ................................................................................................................ 16-1716.3.4.1 以規則為主的存取控制(rule-based access control) 16-17

16.3.4.2 有限制的使用者介面(constrained user interface) 16-17

16.3.4.3 存取控制矩陣(access control matrix) 16-17

16.3.4.4 與內容相關的存取控制(content-dependent access control) 16-18

16.3.4.5 與環境因素相關的存取控制(context-dependent access control) 16-18

16.3.5 存取控制的實施 ................................................................................................................ 16-1816.3.5.1 存取控制的管理 16-18

16.3.5.2 存取控制的方法 16-19

16.3.5.3 存取控制的類型 16-21

16.3.5.4 責任機制(Accountability) 16-22

16.3.5.5 存取控制的作業實務 16-23

16.4 用陣列來描述保護的模型 .......................................................................................................................16-25

16.4.1 以存取權矩陣(access matrix)為例 ........................................................................ 16-2516.4.2 存取權矩陣的實作 ........................................................................................................... 16-25

16.5 存取控制可能遭遇的威脅 .......................................................................................................................16-27

16.5.1 字典攻擊(dictionary attack) ...................................................................................... 16-2716.5.2 蠻力攻擊(brute force attack) ................................................................................... 16-2716.5.3 假造的登入畫面(spoofing at logon) ..................................................................... 16-28

Chapter 17 系統的安全管理

17.1 電腦與網路安全 .................................................................................................................................................17-2

17.1.1 認識安全問題 ........................................................................................................................ 17-217.1.2 網路安全(Network Security) ....................................................................................... 17-317.1.3 網路使用的安全模型(Network Access Security Model) ............................. 17-417.1.4 安全原則 .................................................................................................................................. 17-5

17.2 惡意軟體(malware) ........................................................................................................................................17-6

17.2.1 惡意軟體的分類 ................................................................................................................... 17-7

Page 10: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統

0-14

作業系統

17.2.2 惡意軟體的實例 ................................................................................................................... 17-8

17.3 安全問題的解決辦法 .................................................................................................................................. 17-11

17.3.1 系統的監督(monitoring) ...............................................................................................17-1117.3.2 入侵偵測(intrusion detection) ................................................................................. 17-1217.3.3 入侵預防系統(intrusion prevention systems) ................................................ 17-12

17.4 從密碼學(cryptography)來看保護安全的方法 .......................................................................17-13

17.4.1 來自網路上的攻擊 ........................................................................................................... 17-1317.4.2 解開資訊大門的金鑰 ...................................................................................................... 17-1417.4.3 保持資料的完整性與身份識別(Authentication) ............................................. 17-1517.4.4 告訴我你是誰 ? ................................................................................................................. 17-1617.4.5 RSA加密法(RSA encryption) .................................................................................. 17-16

17.5 防火牆(firewall) ..............................................................................................................................................17-18

PART 7 特定系統介紹與案例探討

Chapter 18 特定系統的介紹

18.1 作業系統的元件與架構 ................................................................................................................................18-2

18.1.1 單一組合的結構(monolithic) ........................................................................................ 18-518.1.2 模組化的設計(modular design) ................................................................................. 18-618.1.3 擴充式核心(extensible nucleus)的設計 ................................................................ 18-618.1.4 層次化的架構 ........................................................................................................................ 18-8

18.2 硬體分散產生的影響 .....................................................................................................................................18-9

18.2.1 網路作業系統(NOS, Network Operating System) ......................................... 18-918.2.2 分散式的作業系統(DOS, Distributed Operating System)...................... 18-10

18.3 作業系統的設計 ..............................................................................................................................................18-10

18.3.1 作業系統的介面 .................................................................................................................18-1118.3.2 作業系統的製作 ................................................................................................................ 18-1218.3.3 作業系統發展的趨勢 ...................................................................................................... 18-13

18.3.3.1 大位址空間的作業系統(large address space operating systems) 18-13

18.3.3.2 網路化 18-13

18.3.3.3 平行與分散式系統 18-14

18.3.3.4 多媒體的需求 18-14

18.3.3.5 低功率電腦與嵌入式系統(embedded systems) 18-14

18.4 特定系統 ..............................................................................................................................................................18-15

18.4.1 即時系統(real-time systems) ................................................................................... 18-1518.4.2 多媒體系統(multimedia systems) ......................................................................... 18-16

Chapter 19 作業系統的實例與研究方向

19.1 Windows NT簡介 ............................................................................................................................................19-2

19.1.1 NT的歷史 ................................................................................................................................ 19-219.1.2 NT設計的原則 ...................................................................................................................... 19-3

Page 11: PART 1 建立入門觀念 - Gotop 碁峰資訊 · 1.3.3 輸入與輸出 ... 7.4.1.2 在Java中建立執行緒 7-15 7.4.1.3 Java執行緒中常用的方法 7-18 ... 10.6 檔案系統的保護機制.....10-15

作業系統作業系統

0-15

目錄

19.1.3 NT的系統組成 ...................................................................................................................... 19-419.1.3.1 硬體抽象層(HAL, Hardware abstraction layer) 19-4

19.1.3.2 NT的核心(kernel) 19-5

19.1.3.3 NT Executive 19-6

19.1.3.4 環境子系統(Environment subsystem) 19-8

19.1.4 NT的檔案系統(file system) .......................................................................................... 19-919.1.5 NT網路的觀念 ...................................................................................................................... 19-919.1.6 NT的程式設計介面 ......................................................................................................... 19-10

19.2 UNIX類型的作業系統 ................................................................................................................................ 19-11

19.2.1 傳統的UNIX系統 ...............................................................................................................19-1119.2.2 Linux作業系統 ................................................................................................................... 19-12

19.3 研發導向的作業系統 ..................................................................................................................................19-12

19.3.1 Choices物件導向作業系統 ........................................................................................ 19-1219.3.2 Mach作業系統 ................................................................................................................... 19-1419.3.3 CHORUS作業系統 ......................................................................................................... 19-16

Appendixe A VMWare的使用實務

A-1 虛擬機器(virtual machines)的概念 .....................................................................................................A-3

A-2 認識VMWare .........................................................................................................................................................A-4

A-3 VMWare的Server程式 ..................................................................................................................................A-9

A-4 VMWare的設定 ...................................................................................................................................................A-9

A-5 VMWare的應用 ................................................................................................................................................ A-10

Appendixe B 參考文獻

Appendixe C 索引