計算機操作系統原理與實踐——基於openEuler(在線實訓版)
何靜媛 陳鹹彰
- 出版商: 人民郵電
- 出版日期: 2026-04-01
- 定價: $419
- 售價: $418
- 語言: 簡體中文
- ISBN: 7115683530
- ISBN-13: 9787115683533
-
相關分類:
Operating-system
下單後立即進貨 (約4週~6週)
商品描述
本書理論與實踐結合,從操作系統內核的原理認知到復雜內核功能的設計搭建知識體系框架,全書共11章,主要內容包括第1章緒論、第2章操作系統的結構、第3章進程與線程、第4章進程同步、第5章死鎖、第6章處理器調度、第7章內存管理、第8章文件系統、第9章I/O系統、第10章大容量存儲器、第11章系統安全。
作者簡介
何靜媛,工學博士,教授,碩士生導師。重慶大學計算機學院教師,主要研究方向為機器視覺、物聯網應用技術。2022年入選教育部-華為智能基座優秀教師獎勵計劃;以《操作系統》課程參賽,榮獲第二屆全國高校教師教學創新大賽國家二等獎;開發的線上實驗平臺榮獲第四屆中國軟件開源創新大賽特等獎。作為課程負責人,主持重慶市課程思政專項教改項目,其經驗成果榮獲重慶市課程思政優秀論文一等獎,課程被評為2021年重慶市課程思政示範課程,入選2022年重慶市一流課程和示範案例。
目錄大綱
第 一篇 操作系統基本原理 1
第 1章 緒論 1
1.1 操作系統的定義 1
1.2 操作系統的功能 3
1.2.1 處理器管理 3
1.2.2 存儲器管理 4
1.2.3 設備管理 5
1.2.4 文件管理 6
1.2.5 用戶接口 7
1.3 操作系統的發展歷史 8
1.3.1 無操作系統階段 10
1.3.2 監督程序階段 11
1.3.3 多道程序系統 12
1.3.4快速發展階段 14
1.3.5 操作系統發展的推動力 17
1.4 openEuler操作系統簡介 18
1.4.1 openEuler操作系統 18
1.4.2 Linux發展歷史 20
1.4.3 openEuler/Linux內核構架 21
1.5實踐:基於LoongArch32的ucore系統實驗環境 23
【關聯知識】 24
小結 27
小故事 27
習題 29
第 2章 操作系統的結構 31
2.1 操作系統接口 31
2.1.1命令接口基本概念 32
2.1.2 Linux的命令接口 32
2.2系統調用 34
2.2.1系統調用的基本原理 34
2.2.2系統調用與API的關系 35
2.2.3系統調用的工作過程 36
2.3操作系統結構 37
2.3.1整體式結構 37
2.3.2宏內核結構 38
2.3.3微內核 39
2.3.4混合內核 41
2.4虛擬化技術 41
2.4.1虛擬化技術的概念 41
2.4.2虛擬機技術 42
2.4.3容器技術 43
2.5 openEuler的系統調用 45
2.5.1 openEuler系統調用的原理 45
2.5.2 openEuler上的系統調用實現過程 46
2.6 實踐:異常與中斷 47
【關聯知識】 47
【實踐任務】 49
小結 49
習題 50
第3章 內存管理 51
3.1 內存相關基本概念 51
3.1.1 什麼是內存 51
3.1.2 指令運行的原理 51
3.1.3 地址重定位 52
3.2 內存的覆蓋與交換 54
3.2.1 內存覆蓋 54
3.2.2 內存交換 55
3.3 內存空間連續分配方案 55
3.3.1 單一連續分配方式 55
3.3.2 固定分區分配方法 56
3.3.3 動態分區分配方法 57
3.4 分頁存儲管理 60
3.4.1 分頁存儲管理的基本思想 60
3.4.2 地址變換機構 61
3.4.3 兩級或多級頁表 64
3.4.4 頁的共享 65
3.5 段式存儲管理 65
3.5.1 段式存儲管理的基本思想 65
3.5.2 段式存儲管理的地址轉換 66
3.5.3 段的共享 67
3.6 段頁式存儲管理 68
3.7 存儲保護的實現 69
3.8 虛擬存儲技術 70
3.8.1 請求分頁儲存管理 71
3.8.2 頁面置換算法 73
3.8.3 頁面緩沖算法 77
3.8.4 頁幀分配算法與策略 77
3.9 openEuler系統內存管理 80
3.9.1 openEuler進程地址空間 80
3.9.2 物理內存管理 81
3.9.3 openEuler中的頁表與地址轉換 82
3.10 實踐:內存分配與地址重定位 84
【關聯知識】 84
【代碼講解】 85
【實踐任務】 89
小結 90
小故事 91
習題 93
第4章 進程與線程 94
4.1 進程基礎 94
4.1.1 程序的順序執行和並發執行 94
4.1.2 進程的定義與特征 95
4.1.3 進程的狀態及其轉換 96
4.2 進程控制 98
4.2.1 進程的執行模式 99
4.2.2 進程切換 99
4.2.3 進程的創建與終止 99
4.3 線程 104
4.3.1 線程的引入 104
4.3.2 線程與進程的比較 104
4.3.3 用戶級線程與內核級線程 105
4.3.4 線程庫 107
4.4 與進程或線程相關的其它技術 111
4.4.1 寫時拷貝 111
4.4.2 線程池 112
4.5 openEuler系統中的進程 112
4.6 實踐:用戶進程加載與子進程創建 115
【關聯知識】 115
【實踐任務】 124
小結 124
習題 125
第5章 進程同步 126
5.1 進程的互斥 126
5.1.1 臨界資源和臨界區 126
5.1.2 使用硬件實現互斥 128
5.1.3 信號量實現互斥 130
5.2 進程的同步 132
5.2.1 信號量與同步 132
5.2.2 生產者/消費者問題 134
5.2.3 讀者/寫者問題 135
5.2.4 信號量機制的其它應用 136
5.3 進程之間的通信 139
5.3.1 共享內存方式 139
5.3.2 管道通信 140
5.3.3 消息傳遞通信 142
5.4 管程 145
5.4.1 管程的概念 145
5.4.2 使用管程解決生產者/消費者問題 146
5.5 openEuler的內核同步機制 148
5.5.1 自旋鎖 148
5.5.2 MCS自旋鎖 148
5.5.3 隊列自旋鎖Qspinlock 149
5.5.4 NUMA-Aware Qspinlock 151
小結 152
小故事 153
習題 155
第6章 死鎖 157
6.1 死鎖的原理 157
6.1.1 資源分配圖 157
6.1.2 死鎖的條件 158
6.2 死鎖的處理方法 159
6.2.1 死鎖的預防 159
6.2.2 死鎖的避免 161
6.2.3 死鎖的檢測 165
6.3 死鎖的解除 166
6.4 經典死鎖問題--哲學家就餐問題 166
6.5 實踐: 使用管程解決哲學家進餐問題 169
【關聯知識】 169
1.實驗執行流程概述 169
2.同步互斥的底層支撐 170
3.信號量 172
4.管程 173
【實踐任務】 175
小結 175
習題 175
第7章 處理器調度 176
7.1 處理器調度算法的目標 176
7.2 分級調度 176
7.3 常用的調度算法 178
7.3.1 先來先服務調度 178
7.3.2 優先級調度算法 179
7.3.3 最短作業優先調度 180
7.3.4 最高響應比優先調度 182
7.3.5 輪轉調度 183
7.3.6 多級反饋輪轉調度 184
7.3.7 實時系統的調度 185
7.4 多核調度 188
7.4.1 多核調度應當註意的問題 188
7.4.2 多核調度的背景 189
7.4.3 協同調度 191
7.5 openEuler系統的進程調度 192
7.5.1 openEuler的調度器 192
7.5.2 進程調度的優先級表示 192
7.5.3 openEuler內核調度策略 193
7.6 實踐:實現Stride Scheduling調度算法 195
【關聯知識】 195
【實踐任務】 200
小結 200
小故事 201
習題 203
第8章 文件系統 204
8.1 文件和文件系統 204
8.1.1 文件 204
8.1.2 文件系統層次結構 205
8.2 文件的邏輯結構 207
8.2.1 堆結構文件 207
8.2.2 順序結構的文件 208
8.2.3 散列結構的文件 208
8.2.4 文件的讀寫方式 209
8.3 文件的物理結構與組織 210
8.3.1 磁盤的成組與分解 211
8.3.2 連續文件 211
8.3.3 鏈接文件 212
8.3.4 索引文件 214
8.4 目錄管理 215
8.4.1 文件控制塊 215
8.4.2 文件目錄 215
8.4.3 目錄結構 216
8.5 空閑空間的管理 218
8.5.1 位示圖 218
8.5.2 空閑塊列表 219
8.5.3 空閑鏈表法 219
8.6 文件的存取控制 221
8.6.1 文件共享 221
8.6.2 文件的保護 222
8.7 文件系統的其他功能 223
8.7.1 文件系統調用的實現 223
8.7.2 虛擬文件系統 225
8.8 openEuler的文件系統 226
8.8.1 openEuler文件系統概述 226
8.8.2 VFS中的數據結構 226
8.9 實踐:基於文件系統的程序執行機制 228
【關聯知識】 228
【實踐任務】 232
小結 232
小故事 233
習題 235
第9章 I/O系統 236
9.1 I/O系統概述 236
9.1.1 PC總線結構與外設 236
9.1.2 I/O系統層次視圖 236
9.2 I/O設備與控制器 238
9.2.1 I/O設備的分類 238
9.2.2 設備控制器的結構 239
9.2.3 設備控制器的I/O端口 240
9.3 設備數據傳輸控制方法 242
9.3.1 輪詢方式 242
9.3.2 中斷控制方式 243
9.3.3 DMA方式 244
9.3.4 通道方式 246
9.4 緩沖技術 246
9.4.1 緩沖區的引入 246
9.4.2 緩沖區的分類 247
9.4.3 緩沖技術 248
9.4.4 虛擬設備的實現 250
9.5 設備的分配 251
9.5.1 設備分配的原則 251
9.5.2 設備分配相關的技術 252
9.5.3 設備分配相關的數據結構 253
9.6 I/O相關軟件 255
9.6.1 I/O軟件的的基本概念 255
9.6.2 中斷處理程序 255
9.6.3 設備驅動程序 257
9.6.4 設備獨立性的軟件 258
9.6.5 用戶層I/O軟件 259
9.7 openEuler系統I/O相關技術 259
9.7.1 openEuler系統設備及驅動程序簡介 259
9.7.2 openEuler系統中斷處理機制 260
小結 260
習題 261
第 10章 大容量存儲器 262
10.1 大容量存儲器簡介 262
10.1.1 硬盤 262
10.1.2 光盤 264
10.1.3 磁帶 264
10.2 磁盤基礎知識 264
10.2.1 磁盤結構 264
10.2.2磁盤工作原理 266
10.2.3 硬盤讀寫過程 267
10.3 磁盤調度 268
10.3.1 FCFS調度算法 268
10.3.2 SSTF調度算法 269
10.3.3 SCAN調度算法 270
10.3.4 C-SCAN調度算法 271
10.3.5 LOOK調度算法 272
10.3.6 磁盤調度算法的選擇 272
10.4 網絡存儲技術 273
10.4.1 直連附加存儲DAS 273
10.4.2 網絡附加存儲NAS 274
10.4.3 存儲區域網絡SAN 275
10.4.4 新的網絡存儲技術IP—SAN 275
10.4.5 雲存儲 276
10.5 openEuler磁盤調度算法 277
10.5.1 NOOP調度算法 277
10.5.2 CFQ調度算法 278
10.5.3 DEADLINE調度算法 278
小結 278
習題 279
第 11章 系統安全 281
11.1系統安全的定義 281
11.1.1 安全需求 281
11.1.2 安全層次 282
11.1.3 安全問題 284
11.2系統威脅的分類 285
11.2.1 系統漏洞 285
11.2.2 惡意代碼 286
11.2.3 端口掃描威脅 290
11.3 系統安全防禦 290
11.3.1密碼術 290
11.3.2 用戶驗證 293
11.3.3 入侵檢測 294
11.3.4 病毒防護 295
11.3.5 防火墻 296
11.4 openEuler安全模塊 297
小結 297
習題 298

