第1章 操作系統引論 1
1.1 計算機的基本工作原理 1
1.1.1 自動計算 1
1.1.2 計算機基礎 1
1.2 操作系統的產生 5
1.2.1 早期計算機的使用 5
1.2.2 批處理系統 6
1.2.3 分時系統 8
1.2.4 實時系統 9
1.3 操作系統的概念 9
1.3.1 操作系統的定義 9
1.3.2 操作系統與計算機其他軟件及硬件的關系 10
1.3.3 操作系統的使用 11
1.4 操作系統的引導 11
1.5 操作系統特征 13
1.6 操作系統組成 14
1.6.1 處理機管理 14
1.6.2 內存管理 15
1.6.3 文件管理 16
1.6.4 設備管理 17
Chapter 1 Introduction to Computer 18
1.1 The Basic Principle of Computer 18
1.1.1 Computer Architecture 18
1.1.2 Computer System 19
1.2 Operating System Concepts 20
1.2.1 Operating System Definitions 20
1.2.2 Use of the Operating System 21
1.2.3 Operating System Several Related Concepts 22
1.3 System Components 23
1.3.1 Process Management 23
1.3.2 Memory Management 24
1.3.3 File-System Management 25
1.3.4 I/O Systems 26
習題 26
第2章 進程管理 29
2.1 計算機程序的執行 29
2.1.1 計算機程序執行 29
2.1.2 多道程序的執行 30
2.2 進程 30
2.2.1 進程概念的引入 30
2.2.2 進程的概念 31
2.2.3 進程與程序的關系 31
2.2.4 進程的特征 32
2.3 進程控制塊 32
2.3.1 進程控制塊概述 32
2.3.2 進程控制塊的內容 32
2.3.3 Linux的進程控制塊 33
2.3.4 進程控制塊的組織方式 34
2.4 進程的狀態 35
2.4.1 進程基本狀態 35
2.4.2 進程基本狀態的轉換 36
2.4.3 帶掛起的進程狀態 37
2.5 進程控制 38
2.5.1 進程的創建 38
2.5.2 進程的終止 40
2.6 處理機調度 41
2.6.1 處理機調度的層次 41
2.6.2 進程調度的功能及實現方式 43
2.7 調度算法 45
2.7.1 調度算法的性能評價準則 45
2.7.2 先來先服務調度算法 46
2.7.3 短作業優先調度算法 47
2.7.4 高優先權優先調度算法 49
2.7.5 基于時間片的輪轉調度算法 50
2.8 實時調度 52
2.8.1 實時調度的基本條件 53
2.8.2 實時調度算法 55
Chapter 2 Process Management 58
2.1 Process Concepts 58
2.1.1 Process Concepts 58
2.1.2 Process and Program 58
2.2 Process Control Block 59
2.2.1 Process Control Block 59
2.2.2 Process Control Block Contents 59
2.3 Process State 60
2.3.1 Basic States of a Process 60
2.3.2 Process State Change 61
2.3.3 Process State with the Pending 62
2.4 Operations on Processes 63
2.4.1 Process Creation 63
2.4.2 Termination of Process 64
2.5 CPU Scheduling 65
2.5.1 Queues and Schedulers 65
2.5.2 Schedule Criteria 68
2.5.3 First-Come, First-Served Scheduling 69
2.5.4 Shortest-Job-First Scheduling 70
2.5.5 Priority Scheduling 72
2.5.6 Round-Robin Scheduling 73
習題 74
第3章 進程同步 78
3.1 計算機程序的并發執行 78
3.1.1 程序的并發執行 78
3.1.2 前趨圖 80
3.2 進程同步 81
3.2.1 臨界資源與臨界區 81
3.2.2 信號量 82
3.2.3 進程同步 83
3.2.4 改進的信號量機制 84
3.3 經典同步問題 88
3.3.1 生產者-消費者問題 88
3.3.2 讀者-寫者問題 91
3.3.3 哲學家問題 93
3.4 死鎖 94
3.4.1 死鎖的產生 94
3.4.2 預防死鎖 96
3.4.3 死鎖的檢測與解除 101
3.5 管程 103
Chapter 3 Process Synchronization 106
3.1 Process Synchronization 106
3.1.1 Critical Section 106
3.1.2 Semaphore 106
3.2 Classic Problems of Synchronization 110
3.2.1 Producer-Consumer (Bounded-Buffer) Problem 110
3.2.2 The Readers-Writers Problem 111
3.3 Deadlocks 113
3.3.1 Causes of Deadlocks 113
3.3.2 Deadlock Avoidance 115
習題 119
第4章 進程通信與多線程 126
4.1 進程通信 126
4.1.1 共享存儲區通信 126
4.1.2 消息傳遞系統 127
4.1.3 管道通信 130
4.1.4 Socket通信 131
4.2 多核技術 134
4.2.1 并行計算機 135
4.2.2 多核處理器 136
4.2.3 操作系統對多核處理器的支持方法 137
4.3 線程與線程管理 139
4.3.1 線程 139
4.3.2 線程管理 141
4.4 多線程的實現 143
4.4.1 典型的實現方式 143
4.4.2 用戶級線程實現 145
4.4.3 核心級線程實現 146
Chapter 4 Interprocess Communicationand and Multi-Threading 148
4.1 Interprocess Communication 148
4.1.1 Shared-Memory Systems 148
4.1.2 Message-Passing Systems 148
4.1.3 pipe 150
4.1.4 Socket Communication 151
4.2 Multiprocessor Systems 151
4.3 Threads 152
4.3.1 Motivation 152
4.3.2 Multithreading Models 153
習題 154
第5章 內存管理 155
5.1 重定位 155
5.2 分區式管理 156
5.2.1 單一連續區分配 157
5.2.2 固定分區分配 157
5.2.3 可變式分區 159
5.3 分頁式管理 164
5.3.1 分頁的基本工作原理 164
5.3.2 動態地址變換 166
5.3.3 快表 168
5.3.4 兩級和多級頁表 169
5.4 分段式管理 171
5.4.1 分段的基本工作原理 171
5.4.2 地址變換 172
5.4.3 分段管理的信息共享 173
5.5 段頁式管理 174
5.5.1 段頁式的基本工作原理 174
5.5.2 地址變換 175
Chapter 5 Memory Management 177
5.1 Address Binding 177
5.2 Continuous Memory Allocation 179
5.3 Paging 181
5.3.1 Basic Method 181
5.3.2 Caching 183
5.3.4 Hierarchical Paging 185
5.4 Segmentation 185
習題 187
第6章 虛擬存儲器 192
6.1 虛擬存儲器概述 192
6.1.1 虛擬存儲器的引入 192
6.1.2 交換技術 193
6.2 請求頁式管理 195
6.2.1 程序的局部性原理 195
6.2.2 工作集 195
6.2.3 缺頁中斷 196
6.2.4 地址變換 197
6.2.5 物理塊的分配 199
6.2.6 調頁策略 201
6.3 頁面置換算法 202
6.3.1 *佳置換算法 202
6.3.2 先進先出頁面置換算法 203
6.3.3 *近*久未使用置換算法 203
6.3.4 Clock置換算法 205
6.3.5 其他置換算法 206
6.4 請求段式管理 207
6.4.1 段表機制 207
6.4.2 缺段中斷機制 207
6.4.3 地址變換機制 208
6.4.4 分段的共享與保護 208
Chapter 6 Virtual Memory 210
6.1 Virtual Memory Concept 210
6.1.1 Background 210
6.1.2 Shared Pages and Swapping 211
6.2 Demand Paging 213
6.2.1 Locality Model 213
6.2.2 Working-Set Model 213
6.2.3 Page Faults 214
6.2.4 Address Translation 215
6.2.5 Allocation of Frames 216
6.3 Page Replacement Algorithms 217
6.3.1 First In First Out Page Replacement 217
6.3.2 Optimal Page Replacement 218
6.3.3 Least-Recently Used Page Replacement 219
6.3.4 Clock (Second Chance) Algorithm 220
習題 221
第7章 文件管理 225
7.1 文件和文件系統 225
7.1.1 文件 225
7.1.2 文件系統 226
7.2 文件的邏輯組織和物理存儲 227
7.2.1 文件的邏輯結構 227
7.2.2 文件的物理存儲 229
7.3 存儲空間的管理 232
7.3.1 空閑表法 233
7.3.2 空閑塊鏈表法 233
7.3.3 位示圖法 233
7.3.4 成組鏈接法 234
7.4 文件目錄 236
7.4.1 文件控制塊 236
7.4.2 索引節點 236
7.4.3 目錄結構 237
7.5 文件的共享與保護 239
7.5.1 文件的共享 240
7.5.2 文件的保護 240
7.5.3 文件的保密 241
Chapter 7 File Management 243
7.1 File and File System 243
7.1.1 File Concept 243
7.1.2 File-System 245
7.2 File Structure and Storage 246
7.2.1 File Structure 246
7.2.2 Allocation Methods 248
7.3 Free-Space Management 251
7.3.1 Bit Vector 251
7.3.2 Linked List 252
7.3.3 Grouping 252
7.3.4 Counting 253
7.4 Directory 253
7.4.1 Inodes 253
7.4.2 Directory Structure 254
習題 254
第8章 設備管理 259
8.1 I/O系統的硬件 259
8.1.1 I/O設備 259
8.1.2 設備控制器 260
8.1.3 I/O通道 262
8.2 I/O控制方式 263
8.2.1 程序I/O方式 263
8.2.2 中斷控制方式 263
8.2.3 直接存取方式 264
8.2.4 I/O通道方式 264
8.3 I/O軟件 265
8.3.1 I/O軟件的設計目標和層次結構 265
8.3.2 用戶層的I/O軟件 266
8.3.3 設備獨立性軟件 266
8.3.4 設備驅動程序 267
8.3.5 中斷處理程序 268
8.4 緩沖管理 269
8.4.1 緩沖技術概述 269
8.4.2 單緩沖和雙緩沖 270
8.4.3 循環緩沖 271
8.4.4 緩沖池 273
8.5 設備分配 274
8.5.1 設備分配中的數據結構 274
8.5.2 設備分配應考慮的因素 275
8.5.3 獨占設備分配程序 277
8.5.4 SPOOLing技術 277
8.6 磁盤存儲器管理 279
8.6.1 磁盤存儲器簡述 279
8.6.2 磁盤調度算法 280
8.6.3 獨立磁盤冗余陣列 283
Chapter 8 I/O Systems 285
8.1 I/O Hardware 285
8.2 I/O Control 286
8.2.1 Polling 286
8.2.2 Interrupts 287
8.2.3 Direct Memory Access 288
8.3 Principles of I/O Software 288
8.3.1 Goals of I/O Software 289
8.3.2 Interrupt Handlers 289
8.3.3 Device Drivers 290
8.4 Buffering and Device Management 291
8.4.1 I/O Scheduling 291
8.4.2 Buffering 292
8.4.3 Streaming 293
8.4.4 Spooling and Device Reservation 294
習題 295
習題參考答案 298
參考文獻 317
新編計算機操作系統雙語教程