計算機操作系統

方敏

《計算機操作系統(方敏)》是2014年西安電子科技大學出版社出版的圖書,作者是方敏。

內容簡介


本書從原理、技術、設計實現三個方面講述了計算機操作系統,即首先從操作系統設計原理出發,介紹操作系統的設計思想和實現技術,然後回到目前普及的現代操作系統上加以實例講解和深化,最後是實際應用。全書以UNIXWindows 2000/XP為實例輔助原理介紹,並給出相應的編程介面和實用操作。這種集原理、技術以及設計實現於一體的特點是本書的獨到之處。
本書適合作為計算機專業本科及其他相關專業的操作系統教程,對於從事計算機應用和開發的技術人員也具有很高的參考價值。

圖書目錄


第1章 操作系統概述 1
1.1 操作系統的地位 1
1.2 操作系統的定義 2
1.3 操作系統的特徵 3
1.4 操作系統的發展 4
1.4.1 操作系統的發展歷史 4
1.4.2 操作系統的分類 6
1.5 操作系統結構研究 17
1.5.1 資源管理的觀點 17
1.5.2 層次結構觀點 18
1.5.3 模塊介面法 19
1.5.4 虛擬機 19
1.5.5 客戶機/伺服器系統 20
1.5.6 用戶觀點 20
1.6 內核體系結構模型 21
1.6.1 微內核 21
1.6.2 單內核 22
1.7 UNIX操作系統 23
1.7.1 UNIX操作系統概述 23
1.7.2 UNIX系統的特點 23
1.7.3 UNIX操作系統的結構 24
1.8 Windows NT/2000/XP簡介 25
1.8.1 Windows NT 25
1.8.2 Windows 2000 25
1.8.3 Windows XP 26
習題 26
第2章 作業管理和用戶介面 28
2.1 作業的組織和管理 28
2.1.1 作業和作業處理過程 28
2.1.2 作業的輸入/輸出方式 30
2.1.3 作業控制塊 32
2.1.4 作業調度 32
2.2 作業控制方式 38
2.2.1 離線作業控制方式 38
2.2.2 聯機作業控制方式 39
2.3 系統功能調用 42
2.3.1 系統調用及實現 42
2.3.2 系統調用的實現過程 47
2.4 圖形用戶介面 49
2.4.1 概述 49
2.4.2 Xwindow系統 51
2.4.3 Windows系統 52
2.5 用戶管理 54
2.5.1 UNIX的用戶管理 54
2.5.2 Windows NT的用戶管理 55
習題 56
第3章 進程管理 57
3.1 進程的引入 57
3.1.1 順序程序 57
3.1.2 多道程序設計 58
3.1.3 程序併發執行的特性 59
3.1.4 與時間有關的錯誤 60
3.2 進程定義與控制 60
3.2.1 進程的概念 61
3.2.2 進程式控制制塊 63
3.2.3 進程的基本狀態及其轉換 64
3.2.4 進程式控制制 65
3.2.5 進程的特徵 68
3.3 進程調度 68
3.3.1 確定進程調度演演算法的原則 68
3.3.2 進程調度演演算法 69
3.4 進程間的相互作用 70
3.4.1 進程間的同步和互斥 71
3.4.2 進程的同步機制 73
3.4.3 IPC經典問題 78
3.4.4 進程的同步機制--管程 81
3.5 進程通信 83
3.5.1 概述 83
3.5.2 共享內存模式 83
3.5.3 消息傳遞方式 84
3.5.4 管道 86
3.6 線程 88
3.6.1 線程的引入 88
3.6.2 線程的實現機制 90
3.6.3 線程與進程的比較 91
3.7 UNIX進程模型 92
3.7.1 進程模型的基本結構和工作過程 92
3.7.2 進程狀態及轉換 95
3.7.3 進程調度演演算法 95
3.7.4 UNIX的進程式控制制與管理 96
3.8 Windows 2000/XP的進程和線程模型 105
3.8.1 Windows 2000/XP的進程和線程模型總述 106
3.8.2 Windows 2000/XP的進程實現 106
3.8.3 Windows 2000/XP的線程實現 109
3.8.4 Windows 2000/XP的線程調度 111
3.8.5 空閑線程 113
3.8.6 多線程編程 113
習題 116
第4章 死鎖 119
4.1 死鎖的基本概念 119
4.1.1 資源 120
4.1.2 產生死鎖的四個必要條件 120
4.2 產生死鎖的示例 120
4.3 解決死鎖的方案 122
4.3.1 死鎖的預防 122
4.3.2 死鎖的避免 125
4.3.3 死鎖的檢測和解除 128
4.4 其他相關問題 131
4.4.1 兩階段加鎖 131
4.4.2 飢餓 132
習題 132
第5章 存儲管理 135
5.1 概述 135
5.1.1 存儲體系 135
5.1.2 地址重定位 136
5.1.3 鏈接 138
5.1.4 存儲管理的目的 140
5.1.5 存儲管理的任務 141
5.1.6 各種存儲管理方案 141
5.2 分區存儲管理方案 142
5.2.1 單一連續分區存儲管理 142
5.2.2 固定分區 143
5.2.3 可變分區 144
5.2.4 可再定位式分區 150
5.2.5 多重分區 151
5.3 頁式存儲管理 151
5.3.1 基本原理 151
5.3.2 頁式存儲管理的地址變換 153
5.3.3 硬體支持 155
5.3.4 優缺點 156
5.4 段式存儲管理 157
5.4.1 基本思想 157
5.4.2 分段式管理的數據結構 159
5.4.3 分段式管理的地址變換 159
5.4.4 分段式管理的硬體支持 160
5.4.5 分段式管理的優缺點 160
5.4.6 分頁式管理和分段式管理的比較 160
5.5 段頁式存儲管理 161
5.5.1 基本思想 161
5.5.2 段頁式存儲管理的地址變換 162
5.5.3 硬體支持 162
5.6 交換技術與覆蓋技術 163
5.6.1 覆蓋技術 163
5.6.2 交換技術 164
5.7 虛擬存儲 164
5.7.1 虛擬存儲管理的引入 164
5.7.2 虛擬頁式存儲管理 166
5.7.3 性能問題 173
5.7.4 虛擬段式存儲管理 176
5.8 高速緩衝存儲器 177
5.8.1 高速緩存的組織 177
5.8.2 緩存的工作過程 178
5.9 內存管理實例分析 179
5.9.1 UNIX S5的內存管理 179
5.9.2 Windows 2000/XP的內存管理 186
習題 192
第6章 文件管理 195
6.1 概述 195
6.1.1 文件與文件系統 195
6.1.2 文件的分類 196
6.2 文件的結構及文件存取方式 197
6.2.1 文件的邏輯結構 197
6.2.2 存儲介質 198
6.2.3 文件的物理結構 202
6.2.4 文件結構、文件存取方式與文件存儲介質的關係 206
6.3 文件目錄 208
6.3.1 文件目錄的內容 208
6.3.2 目錄結構 209
6.4 文件系統的實現 215
6.4.1 文件空間的分配和管理 216
6.4.2 內存中所需的表目 218
6.4.3 外存空間管理 222
6.5 文件系統的使用 224
6.5.1 文件操作 224
6.5.2 文件的系統調用 226
6.5.3 文件共享 231
6.6 文件系統的可靠性與安全性 235
6.6.1 文件系統的可靠性 235
6.6.2 文件系統的安全性 238
6.6.3 文件的保護機制 240
6.7 文件系統的性能問題 241
6.7.1 塊高速緩存 242
6.7.2 磁碟調度 243
6.7.3 信息的優化分佈 246
6.8 Windows 2000/XP 文件系統實例分析 246
6.8.1 Windows 2000/XP 文件系統概述 246
6.8.2 Windows 2000/XP 文件系統模型和FSD體系結構 250
6.8.3 NTFS的文件驅動程序 253
6.8.4 NTFS的磁碟結構 255
6.8.5 NTFS的實現機制 257
6.8.6 NTFS的可恢復性支持 260
6.8.7 NTFS的安全性支持 261
習題 262
第7章 設備管理 266
7.1 概述 266
7.1.1 I/O系統的結構和控制方式 266
7.1.2 設備的分類 269
7.1.3 設備管理的目標和任務 270
7.2 I/O軟體的組成 271
7.2.1 I/O軟體的目標 271
7.2.2 中斷處理程序 271
7.2.3 設備驅動程序 274
7.2.4 與設備無關的系統軟體 275
7.2.5 用戶空間的I/O軟體 277
7.3 具有通道的設備管理 278
7.3.1 通道的類型 278
7.3.2 "瓶頸"問題 279
7.3.3 通道命令與通道程序 279
7.3.4 通道的工作原理 281
7.4 與設備管理有關的技術 283
7.4.1 DMA技術 283
7.4.2 緩衝技術 284
7.4.3 匯流排技術 288
7.4.4 即插即用技術 291
7.5 設備管理中的數據結構 293
7.5.1 設備管理中的數據結構 293
7.5.2 設備的分配與回收 294
7.5.3 設備的處理 294
7.6 UNIX設備管理實例分析 296
7.6.1 UNIX塊設備管理的主要數據結構 296
7.6.2 UNIX的緩衝區管理 299
7.6.3 塊設備管理 301
7.6.4 字元設備管理 304
7.7 Windows 2000/XP 設備管理機制實例分析 306
7.7.1 Windosw 2000/XP輸入/輸出系統的體系結構 306
7.7.2 核心態模塊 307
7.7.3 輸入/輸出系統的數據結構 308
7 .7.4 Windows 2000/XP的設備驅動程序 311
7.7.5 Windows 2000/XP 的I/O處理 312
習題 314
第8章 網路操作系統 315
8.1 網路操作系統的功能 315
8.1.1 網路操作系統簡介 315
8.1.2 網路操作系統的功能和特性 315
8.1.3 網路操作系統的功能結構 318
8.1.4 網路操作系統的邏輯構成 318
8.1.5 網路操作系統與OSI-RM 320
8.2 Windows NT/2000/XP 321
8.2.1 Windows NT/2000/XP網路基本概念 321
8.2.2 Windows NT/2000網路結構 327
8.3 UNIX網路文件系統 329
8.4 Linux操作系統 329
8.4.1 Linux的特點 330
8.4.2 Linux系統結構及文件組織 330
8.4.3 Linux系統啟動和初始化 332
8.4.4 Linux的常用軟體 333
8.5 對等式區域網 333
8.5.1 對等式區域網操作系統 333
8.5.2 Windows 98的網路技術 334
習題 334
第9章 分散式計算機系統 336
9.1 分散式計算機系統 336
9.1.1 概述 336
9.1.2 分散式系統的特徵 337
9.1.3 分散式系統的結構 337
9.1.4 分散式系統的設計方法 341
9.2 分散式系統的設計 341
9.3 分散式系統中的通信問題 344
9.3.1 發送策略 344
9.3.2 連接策略 344
9.3.3 爭奪處理 345
9.3.4 保密 346
9.4 消息傳遞 347
9.4.1 非同步型 347
9.4.2 同步型 347
9.4.3 組通信 348
9.5 遠程過程調用 349
9.5.1 概述 349
9.5.2 基本RPC操作 350
9.5.3 兩種通信方式的比較 352
9.6 進程遷移 353
9.6.1 數據和計算的遷移 353
9.6.2 引入進程遷移的原因 354
9.6.3 進程遷移機制 355
9.6.4 遷移的協商 356
9.7 分散式操作系統中的進程同步 357
9.8 分散式操作系統中的進程互斥 358
9.9 分散式系統的資源管理 361
9.10 死鎖處理 363
習題 365
第10章 應用開發篇 366
10.1 UNIX Shell 366
10.1.1 Shell基礎 366
10.1.2 正文全屏編輯程序 vi 367
10.2 Shell程序設計 373
10.2.1 Shell變數及其賦值 373
10.2.2 命令表與命令行 375
10.2.3 流程式控制制命令 376
10.2.4 命令替換與參數替換 380
10.2.5 Shell過程的運行 381
10.3 UNIX實用程序 381
10.3.1 目錄操作與文件操作命令 381
10.3.2 過濾器 389
10.4 UNIX程序設計 391
10.4.1 文件系統程序設計 391
10.4.2 高級進程間的通信 393
10.5 Windows應用程序設計 396
10.5.1 WIN32 API 396
10.5.2 Windows應用程序的設計模式 397
10.5.3 Windows應用程序的基本結構 403
習題 406
參考文獻 409