操作系統原理與Linux實踐教程(第2版)
申豐山
- 出版商: 電子工業
- 出版日期: 2025-08-01
- 售價: $419
- 語言: 簡體中文
- 頁數: 324
- ISBN: 7121508001
- ISBN-13: 9787121508004
-
相關分類:
Operating-system
下單後立即進貨 (約4週~6週)
相關主題
商品描述
操作系統課程是計算機、軟件及相關專業的核心課程和必修課程,是計算機文化基礎知識的重要組成部分。本書理論與實踐案例並重,全面、系統地闡述了操作系統的重要概念和原理,深入、細致地剖析了操作系統的組成結構和運行機制,給出了相關概念、原理在Linux操作系統中的實現方法,提供了大量鮮活的應用實例,詳細說明了Linux實驗環境搭建方法,給出了完整可用的Linux C源程序及編譯和運行方法,方便讀者無障礙實驗學習和再創造,為培養具有紮實的專業理論知識和較強實踐能力的高級工程技術人才提供可理解、可實踐的內容和素材。對Linux內核進行了深入分析,給出了其系統模型。全書共分8章,內容包括:操作系統概論,處理器管理,並發進程的同步、互斥與死鎖,存儲管理,設備管理,文件管理,操作系統安全,多處理機與多計算機操作系統,涵蓋了操作系統的經典、核心內容及擴展內容。 本書結構完整,邏輯清晰,言簡意賅,理論和實踐、Linux內核分析相呼應,理解和應用交替穿插,有效克服了學習的單調性,有助於活躍學生思維,激發學生的學習興趣。 本書可作為計算機及軟件類本科、專科專業課程教材或參考書,也可作為對工程實踐能力有著更高要求的面向卓越工程師培養的同樣專業的課程教材或參考書,也可供計算機及軟件行業工程技術人員、內核分析與開發人員及研究生閱讀和參考。
目錄大綱
第1章 操作系統概論 1
1.1 操作系統的資源管理功能和目標 1
1.1.1 操作系統的定義 1
1.1.2 操作系統在計算機系統中的位置 2
1.1.3 操作系統的資源管理技術 2
1.1.4 操作系統運行程序的服務 4
實驗1 Linux操作系統實驗環境搭建 5
1.1.5 操作系統的目標 10
1.2 操作系統的功能 10
1.3 操作系統的主要特性 11
1.3.1 並發性 11
1.3.2 共享性 12
1.3.3 異步性 13
1.3.4 虛擬性 13
1.4 操作系統的發展和分類 13
1.4.1 操作系統的發展 13
1.4.2 操作系統的分類 15
1.5 操作系統的用戶接口 18
1.5.1 程序接口 18
實驗2 Linux程序接口實驗 20
1.5.2 操作接口 21
實驗3 Linux操作接口實驗 23
1.6 操作系統的結構設計 26
1.6.1 操作系統的主要構件 26
1.6.2 操作系統的結構 27
1.6.3 操作系統運行模型 29
習題1 30
第2章 處理器管理 32
2.1 處理器 32
2.1.1 寄存器 32
2.1.2 指令系統、特權指令與非特權指令 33
2.1.3 處理器工作模式(狀態)及切換 33
2.1.4 程序狀態字寄存器 34
2.2 中斷 35
2.2.1 中斷概念 35
2.2.2 中斷源分類 35
2.2.3 中斷處理 37
2.2.4 中斷與操作系統的關系 38
2.3 進程及其實現 39
2.3.1 引入進程概念的必要性 39
2.3.2 進程定義和屬性 39
2.3.3 進程狀態與切換 40
2.3.4 進程描述 42
2.3.5 進程切換 47
2.3.6 模式切換 49
2.3.7 進程控制與管理 50
實驗4 Linux進程控制實驗 52
2.4 線程及其實現 53
2.4.1 多線程的引入 53
2.4.2 多線程環境中的進程與線程 54
2.4.3 多線程的實現方法 56
實驗5 結果不唯一的多線程並發運行實例 58
實驗6 多線程共享資源並發訪問控制 59
2.5 處理器調度系統 62
2.6 處理器調度算法 67
2.6.1 低級調度的功能和類型 67
2.6.2 作業調度和低級調度算法 68
2.7 Intel x86中斷機構 75
2.7.1 中斷向量及中斷分類 75
2.7.2 中斷 75
2.7.3 異常 75
2.7.4 硬件中斷機構 76
2.7.5 中斷描述符表 76
2.7.6 中斷和異常響應過程 76
2.7.7 中斷/異常返回過程 77
2.7.8 中斷嵌套 77
2.7.9 硬件級的進程上下文切換機制 78
2.8 Linux中斷管理 78
2.8.1 Linux中的中斷向量及用途分配 78
2.8.2 Linux中斷描述符表的初始化 78
2.8.3 註冊中斷 79
2.8.4 Linux中斷向量的數據結構 79
2.8.5 Linux內核棧的設置 80
2.8.6 Linux中斷處理程序執行過程 80
2.8.7 Linux中斷/異常處理返回 81
2.8.8 異常處理 81
2.8.9 I/O中斷與時鐘中斷處理 81
2.9 Linux進程管理 82
2.9.1 Linux進程結構 82
2.9.2 Linux進程組織 84
2.9.3 Linux進程控制 85
2.9.4 Linux進程調度 88
2.9.5 搶占內核與非搶占內核 90
2.9.6 內核同步 91
2.9.7 Linux線程管理 91
習題2 91
第3章 並發進程的同步、互斥與死鎖 95
3.1 並發進程 95
3.1.1 程序執行的順序性 95
3.1.2 程序執行的並發性 96
3.1.3 與並發執行時間有關的錯誤 99
3.1.4 進程間的關系 100
3.2 臨界區管理 102
3.2.1 臨界區調度原則 102
3.2.2 實現臨界區管理的幾種錯誤算法 103
3.2.3 實現臨界區管理的Peterson算法 104
3.2.4 實現臨界區管理的硬件設施 105
3.3 同步 107
3.3.1 同步與同步機制 107
3.3.2 信號量與PV操作 108
3.3.3 利用信號量實現互斥 110
3.3.4 利用信號量實現進程同步 111
3.3.5 Linux系統中的同步互斥功能 120
實驗7 使用信號量解決生產者?消費者
?問題 120
3.4 管程 123
3.4.1 管程的概念 123
3.4.2 管程的實現 126
3.4.3 管程的應用 129
3.5 進程通信 132
3.5.1 管道通信機制 133
實驗8 Linux管道通信 133
3.5.2 共享內存通信機制 137
實驗9 Linux共享內存通信 137
3.5.3 消息傳遞通信機制 141
實驗10 Linux消息傳遞通信 144
3.5.4 套接字通信機制 146
實驗11 Linux套接字通信 146
3.5.5 信號通信機制 148
3.6 死鎖 151
3.6.1 死鎖的概念和產生的必要條件 151
3.6.2 死鎖防止 152
3.6.3 死鎖避免 154
3.6.4 死鎖檢測與解除 159
3.7 Linux內核中的同步和互斥機制 162
3.8 Linux通信機制 163
3.8.1 Linux管道 164
3.8.2 Linux共享內存 166
3.8.3 Linux消息隊列 166
3.8.4 Linux信號量 168
3.8.5 Linux套接字 168
習題3 169
第4章 存儲管理 172
4.1 存儲器層次 172
4.2 地址重定位、存儲保護和存儲共享 173
4.3 連續存儲管理 175
4.3.1 固定分區存儲管理 175
4.3.2 可變分區存儲管理 176
4.3.3 夥伴系統 178
4.3.4 內存不足的輔助存儲管理技術 179
4.4 分頁存儲管理 180
4.4.1 分頁存儲管理方案 180
4.4.2 快表 181
4.4.3 分頁存儲空間的分配和釋放 182
4.4.4 分頁存儲空間頁面共享與保護 183
4.4.5 多級頁表 184
4.4.6 反置頁表 185
4.5 分段存儲管理 185
4.6 虛擬存儲管理 187
4.6.1 虛擬存儲器原理 187
4.6.2 請求分頁式虛擬存儲管理 188
4.7 Intel x86存儲機構 197
4.7.1 Intel x86段機制 198
4.7.2 Intel x86分頁機制 201
4.7.3 Intel x86快表機制 203
4.8 Linux存儲管理 203
4.8.1 虛擬地址空間布局(虛擬地址空間
的劃分) 203
4.8.2 進程映像的邏輯結構 204
4.8.3 進程虛擬地址空間的組織結構 205
4.8.4 Linux分頁機制 208
4.8.5 存儲空間管理單元與組織 208
4.8.6 Linux內核空間布局及其映射機制 209
習題4 211
第5章 設備管理 213
5.1 I/O硬件系統 213
5.1.1 I/O設備 213
5.1.2 I/O控制方式 215
5.2 I/O軟件系統 219
5.2.1 I/O軟件設計目標 219
5.2.2 設備中斷處理程序 219
5.2.3 設備驅動程序 220
5.2.4 設備無關I/O軟件 223
5.2.5 用戶空間的I/O軟件 226
5.3 磁盤管理 227
5.3.1 磁盤結構 227
5.3.2 磁盤調度算法 229
5.4 虛擬設備 231
5.4.1 虛擬設備原理 231
5.4.2 SPOOLing系統結構 235
5.5 Linux設備管理 236
5.5.1 設備硬件管理接口 236
5.5.2 Linux設備分類與I/O軟件層次 236
5.5.3 字符設備驅動的內核數據和服務
接口 238
5.5.4 字符設備驅動程序的開發、安裝
和使用 240
5.5.5 塊設備驅動相關的軟件層次架構 242
5.5.6 塊設備驅動的內核數據和服務
接口 242
5.5.7 塊設備驅動程序的開發、安裝
和使用 245
5.5.8 Linux設備緩沖管理 246
習題5 249
第6章 文件管理 251
6.1 文件 251
6.1.1 文件的概念 251
6.1.2 文件的類型和屬性 252
6.1.3 文件存取方法 253
6.1.4 文件操作 255
實驗12 Linux文件操作 256
6.2 目錄 258
6.2.1 目錄項信息和結構 258
6.2.2 目錄層次 260
6.2.3 目錄操作 261
6.3 文件結構 261
6.3.1 文件的邏輯結構 261
6.3.2 文件的物理結構 261
6.4 文件系統功能及實現 262
6.4.1 磁盤信息分區 262
6.4.2 文件操作系統調用功能實現 263
6.4.3 文件共享 266
6.5 文件空間管理 269
6.5.1 文件空間分配方法 269
6.5.2 文件外存空間管理 273
6.6 內存映射文件 276
實驗13 Linux內存映射文件 278
6.7 虛擬文件系統 280
6.8 Linux虛擬文件系統(VFS) 283
6.8.1 VFS框架結構 283
6.8.2 文件系統操作及數據結構 283
6.8.3 文件、目錄操作及數據結構 287
6.9 Linux Ext2文件系統 293
6.9.1 Ext2文件系統結構 294
6.9.2 文件系統操作 297
6.9.3 文件及目錄操作 298
習題6 301
第7章 操作系統安全 303
7.1 操作系統安全的概念 303
7.1.1 信息安全及威脅 303
7.1.2 信息保護 304
7.2 信息安全保護機制 306
習題7 309
第8章 多處理機與多計算機操作系統 310
8.1 多處理機操作系統 310
8.2 多計算機操作系統 311
習題8 313