第一部分 基 本 篇
第1章 操作系統(tǒng)引論 2
1.1 計算機系統(tǒng) 2
1.1.1 計算機的出現 2
1.1.2 計算機的發(fā)展 4
1.2 操作系統(tǒng)的形成和發(fā)展 5
1.2.1 操作系統(tǒng)的形成和發(fā)展 5
1.2.2 從操作系統(tǒng)的形成和發(fā)展中得到的啟示 10
1.2.3 計算機的結構與操作系統(tǒng)的關系 11
1.3 操作系統(tǒng)的特征 12
1.3.1 并發(fā)性 12
1.3.2 共享性 12
1.3.3 虛擬性 13
1.3.4 不確定性 13
1.4 操作系統(tǒng)的功能 13
1.4.1 處理機管理 13
1.4.2 存儲管理 14
1.4.3 設備管理 15
1.4.4 信息資源管理 16
1.5 操作系統(tǒng)的基本類型 17
1.5.1 批處理操作系統(tǒng) 17
1.5.2 分時操作系統(tǒng) 20
1.5.3 實時操作系統(tǒng) 22
1.6 發(fā)展中的操作系統(tǒng) 24
1.6.1 微機操作系統(tǒng) 24
1.6.2 多處理機操作系統(tǒng) 37
1.6.3 網絡操作系統(tǒng) 38
1.6.4 分布式操作系統(tǒng) 40
1.7 研究操作系統(tǒng)的幾種觀點 42
1.7.1 資源管理的觀點 42
1.7.2 用戶的觀點(擴展機器的觀點) 42
1.8 Windows 2000的結構和特點 43
1.8.1 Windows 2000的特點 44
1.8.2 Windows 2000的結構 45
1.9 要點及小結 47
第2章 進程管理 50
2.1 程序的執(zhí)行 50
2.1.1 程序的順序執(zhí)行 50
2.1.2 程序的并發(fā)執(zhí)行 51
2.1.3 Bernstein條件 52
2.2 進程的描述和進程的狀態(tài) 53
2.2.1 進程的定義與描述 53
2.2.2 進程的狀態(tài)及轉換 54
2.2.3 進程控制塊(Process Control Block, PCB) 58
2.3 進程控制 61
2.3.1 內核和原語的概念 61
2.3.2 進程的創(chuàng)建與撤消 62
2.3.3 進程的阻塞與喚醒 64
2.3.4 進程的掛起與激活 65
2.4 線程的概念 66
2.4.1 線程的引入 66
2.4.2 線程與進程的比較 67
2.4.3 線程的實現 69
2.4.4 Windows 2000的進程和線程 74
2.5 進程的互斥與同步 78
2.5.1 并發(fā)的原理 78
2.5.2 臨界資源與臨界區(qū) 80
2.5.3 進程互斥的軟件方法 81
2.5.4 信號量與PV操作 85
2.5.5 經典進程同步問題 90
2.5.6 管程 96
2.5.7 Windows 2000的互斥與同步 99
2.6 進程通信 100
2.6.1 進程通信的類型 101
2.6.2 消息傳遞系統(tǒng)的實現 103
2.6.3 Windows 2000的進程通信 105
2.7 死鎖 107
2.7.1 死鎖原理 107
2.7.2 死鎖的條件 111
2.7.3 死鎖的預防 112
2.7.4 死鎖的避免 113
2.7.5 死鎖的檢測 116
2.7.6 死鎖的解除 118
2.8 處理機調度 119
2.8.1 調度的層次 119
2.8.2 調度的性能準則 120
2.8.3 調度算法 122
2.8.4 Windows 2000的線程調度 128
2.9 要點及小結 133
第3章 存儲管理 137
3.1 程序的裝入和鏈接 137
3.1.1 重定位 137
3.1.2 鏈接 139
3.2 連續(xù)分配存儲管理方式 140
3.2.1 單一連續(xù)分區(qū) 140
3.2.2 固定分區(qū) 141
3.2.3 可變分區(qū) 142
3.2.4 動態(tài)重定位分區(qū) 144
3.3 頁式存儲管理 145
3.3.1 頁式存儲管理的基本原理 145
3.3.2 頁式存儲管理的地址變換機構 147
3.3.3 快表 148
3.3.4 多級頁表和反置頁表 148
3.3.5 典型頁式操作系統(tǒng)舉例 150
3.4 請求頁式存儲管理 153
3.4.1 局部性原理和虛擬存儲器 153
3.4.2 請求頁式存儲管理的實現 154
3.4.3 請求頁式存儲管理駐留集管理 157
3.4.4 請求頁式存儲管理的調入策略 158
3.4.5 請求頁式存儲管理的頁面置換算法 159
3.4.6 請求頁式存儲管理系統(tǒng)的性能 161
3.5 段式存儲管理 163
3.5.1 段式存儲管理的基本原理 163
3.5.2 請求段式存儲管理系統(tǒng)的硬件支持 165
3.5.3 段的共享 166
3.6 段頁式存儲管理 168
3.6.1 段頁式存儲管理的基本原理 169
3.6.2 段頁式存儲管理的地址變換 169
3.6.3 段頁式存儲管理系統(tǒng)舉例 170
3.7 Windows 2000的內存管理 174
3.7.1 地址空間的布局 174
3.7.2 地址變換機制 176
3.7.3 內存分配 179
3.7.4 頁面共享 182
3.7.5 駐留集 182
3.7.6 物理內存管理 184
3.8 要點及小結 187
第4章 設備管理 191
4.1 I/O硬件組成 191
4.1.1 I/O系統(tǒng)結構 191
4.1.2 I/O設備 192
4.1.3 設備控制器 193
4.1.4 設備通道 195
4.2 I/O數據控制方式 197
4.2.1 程序直接控制方式 197
4.2.2 中斷控制方式 199
4.2.3 DMA方式 200
4.2.4 通道方式 202
4.3 I/O設備分配 203
4.3.1 設備分配數據結構 203
4.3.2 設備獨立性 205
4.3.3 設備分配 205
4.3.4 SPOOLing技術 208
4.4 I/O控制 209
4.4.1 I/O控制程序 210
4.4.2 設備驅動程序 211
4.4.3 中斷處理程序 212
4.5 Windows 2000的I/O系統(tǒng) 215
4.5.1 Windows 2000的I/O系統(tǒng)結構 215
4.5.2 Windows 2000的I/O系統(tǒng)的數據結構 216
4.5.3 Windows 2000的I/O系統(tǒng)的設備驅動程序 219
4.5.4 Windows 2000的I/O處理 220
4.6 磁盤 220
4.6.1 磁盤性能 221
4.6.2 磁盤調度算法 223
4.6.3 磁盤容錯技術RAID 225
4.6.4 Windows 2000的磁盤管理 229
4.7 緩沖管理 231
4.7.1 緩沖 232
4.7.2 磁盤高速緩存 236
4.7.3 提高磁盤I/O速度的其他方法 237
4.8 Windows 2000的高速緩存管理 238
4.8.1 Windows 2000高速緩存的結構特點 239
4.8.2 Windows 2000高速緩存的結構與大小 239
4.8.3 Windows 2000高速緩存支持的操作 240
4.9 要點及小結 242
第5章 文件管理 244
5.1 文件及文件系統(tǒng) 244
5.1.1 文件的概念 244
5.1.2 文件類型 245
5.1.3 文件的屬性 246
5.1.4 文件的操作 246
5.1.5 文件系統(tǒng) 247
5.2 文件組織與存儲 249
5.2.1 文件的邏輯結構 249
5.2.2 文件的物理結構 252
5.2.3 文件空閑存儲空間的管理 256
5.3 目錄 259
5.3.1 文件控制塊和索引節(jié)點 260
5.3.2 單級目錄 261
5.3.3 兩級目錄 262
5.3.4 樹形目錄 263
5.3.5 目錄的查詢 266
5.3.6 文件的共享 267
5.4 文件系統(tǒng)的可靠性 270
5.4.1 壞塊管理 270
5.4.2 備份 270
5.4.3 文件系統(tǒng)一致性問題 271
5.4.4 數據一致性控制 273
5.5 保護機制 274
5.5.1 保護域 274
5.5.2 保護矩陣的實現 275
5.5.3 分級安全管理 277
5.6 Windows 2000的文件系統(tǒng) 279
5.6.1 Windows 2000文件系統(tǒng)概述 279
5.6.2 NTFS卷及其結構 282
5.6.3 NTFS可恢復性. 可靠性和安全性 286
5.7 要點及小結 288
第二部分 提 高 篇
第6章 Linux操作系統(tǒng)源代碼分析 292
6.1 Linux內核 292
6.1.1 內核設計目標 292
6.1.2 微內核與單內核 293
6.1.3 Linux內核類型 294
6.2 系統(tǒng)初始化 294
6.2.1 初始化系統(tǒng) 295
6.2.2 操作系統(tǒng)的初始化 295
6.2.3 init進程 296
6.3 進程 297
6.3.1 Linux中的進程 297
6.3.2 進程的創(chuàng)建與撤消 299
6.3.3 進程調度 300
6.4 進程通信 301
6.4.1 管道 301
6.4.2 信號 303
6.4.3 消息隊列 304
6.4.4 信號量 307
6.4.5 共享內存 309
6.5 內存管理 310
6.5.1 虛擬內存管理 310
6.5.2 進程的內存組織 311
6.5.3 分頁 312
6.5.4 交換設備 313
6.5.5 緩存和刷新機制 313
6.6 設備驅動 315
6.6.1 Linux的設備管理 315
6.6.2 中斷 316
6.6.3 字符設備驅動程序 317
6.6.4 塊設備驅動程序 318
6.6.5 網絡設備驅動程序 319
6.7 虛擬文件系統(tǒng) 320
6.7.1 VFS主要數據結構 321
6.7.2 VFS操作數據結構 323
6.7.3 文件系統(tǒng)的安裝與卸載 325
6.7.4 文件系統(tǒng)的系統(tǒng)調用 327
6.7.5 EXT2邏輯文件系統(tǒng) 328
6.8 要點及小結 330
第7章 分布式操作系統(tǒng) 331
7.1 分布式系統(tǒng)引論 331
7.1.1 分布式系統(tǒng)與集中式系統(tǒng) 331
7.1.2 分布式系統(tǒng)與獨立微機 332
7.1.3 分布式系統(tǒng)與網絡操作系統(tǒng) 333
7.1.4 設計分布式系統(tǒng)的若干問題 334
7.1.5 分布式系統(tǒng)的缺點 338
7.2 分布式系統(tǒng)的互斥 338
7.2.1 集中式算法 339
7.2.2 分布式事件排序算法 340
7.2.3 令牌環(huán)算法 342
7.2.4 三種互斥算法比較 343
7.3 分布式系統(tǒng)的死鎖 343
7.3.1 資源分配中的死鎖 344
7.3.2 消息通信中的死鎖 347
7.4 分布式系統(tǒng)的負載分配 349
7.4.1 負載分配的概念 349
7.4.2 調度算法 352
7.4.3 協調者選舉 355
7.4.4 孤兒進程 355
7.5 分布式文件系統(tǒng) 356
7.5.1 分布式文件服務 356
7.5.2 分布式目錄服務 358
7.5.3 分布式命名服務 360
7.5.4 分布式文件共享問題 361
7.5.5 分布式文件緩沖區(qū)管理 362
7.5.6 分布式文件復制 364
7.6 要點及小結 365
第8章 操作系統(tǒng)安全 366
8.1 操作系統(tǒng)安全概述 366
8.1.1 操作系統(tǒng)的脆弱性 366
8.1.2 安全操作系統(tǒng)的重要性 368
8.2 操作系統(tǒng)的安全機制 368
8.2.1 硬件安全機制 369
8.2.2 軟件安全機制 372
8.3 操作系統(tǒng)安全評測 377
8.3.1 操作系統(tǒng)安全評測方法 377
8.3.2 國內外計算機系統(tǒng)安全評測準則 378
8.3.3 美國國防部可信計算機系統(tǒng)評測準則 379
8.3.4 中國計算機信息系統(tǒng)安全保護等級劃分準則 381
8.4 分布式操作系統(tǒng)安全 382
8.4.1 加密和數據簽名 382
8.4.2 身份認證 384
8.4.3 防火墻 386
8.5 Linux操作系統(tǒng)安全性 387
8.5.1 標識與鑒別 387
8.5.2 存取控制 388
8.5.3 審計與加密 388
8.5.4 網絡安全 389
8.5.5 備份和恢復 390
8.6 Windows 2000/XP操作系統(tǒng)安全 391
8.6.1 Windows 2000/XP安全模型 391
8.6.2 Windows 2000/XP的注冊表. 文件系統(tǒng)及系統(tǒng)的激活和授權機制 395
8.7 要點及小結 397
上機實習 398
一. 線程的創(chuàng)建和撤消 398
二. 線程同步 400
三. 管道的使用 406
四. 用戶態(tài)線程庫的建立 409
五. Windows 2000與Linux進程通信工具的比較 410
參考文獻 411