操作系統(第4版)

孟慶昌,張志華,牛欣源 等

  • 出版商: 電子工業
  • 出版日期: 2022-08-01
  • 定價: $384
  • 售價: 8.5$326
  • 語言: 簡體中文
  • 頁數: 372
  • ISBN: 7121435829
  • ISBN-13: 9787121435829
  • 相關分類: Operating-system
  • 下單後立即進貨 (約4週~6週)

商品描述

本書是普通高等教育"十一五”國家級規劃教材、北京高等教育精品教材,全面系統地介紹現代操作系統的基本理論和最新技術。全書共12章:第1章概述操作系統的定義、功能、特徵、發展歷程和結構;第2章至第8章分別講述進程和線程管理、調度、存儲管理、文件系統、輸入/輸出管理、用戶接口服務和死鎖;第9章介紹嵌入式系統;第10章講述分佈式系統和雲計算;第11章講述安全和保護機制;第12章為實驗操作。附錄分別給出了Linux常用系統調用和庫函數,以及各章習題的解答視頻。本書為任課教師提供電子教案。 本書可作為大學本科及專科電腦專業教材或考研參考書,也可作為電腦工作者的自學用書。

作者簡介

北京信息科技大學教授,長期從事UNIX系統和C語言等方面的研究、教學和編著工作,是國內最早從事該領域研究和普及的專家之一。先後主持或參加了多項科研任務,其中包括電科院項目《UNIX系統分析與改造》,機電部項目《計算機環境的可移植操作系統界面(POSIX.1)》(被批准為國家標準GB/T14246),八五國防科技預研項目《軍用軟件認證和測試技術》,八六三項目《對像管理原型系統》,國家八五重點攻關項目《面向對象軟件工程開發規範的研究與製訂》等。

目錄大綱

第1章操作系統引論 1
1.1 計算機硬件結構 2
1.1.1 處理器 2
1.1.2 存儲器 3
1.1.3 I/O設備 4
1.1.4 總線 4
1.2 什麼是操作系統 5
1.2.1 操作系統的概念 5
1.2.2 操作系統主要功能 7
1.2.3 操作系統的地位 10
1.3 操作系統的發展歷程 11
1.3.1 操作系統的形成 11
1.3.2 操作系統的發展 14
1.3.3 推動操作系統發展的動力 14
1.4 操作系統類型 15
1.4.1 批處理系統 15
1.4.2 分時系統 17
1.4.3 實時系統 18
1.4.4 網絡操作系統 20
1.4.5 分佈式操作系統 21
1.4.6 其他操作系統 22
1.5 操作系統的特徵 24
1.6 操作系統結構 24
1.6.1 單體系統 25
1.6.2 層次式系統 26
1.6.3 虛擬機 26
1.6.4 微內核 28
1.6.5 客戶—服務器系統 29
1.7 系統初啟過程 29
1.8 國產操作系統的發展狀況和趨勢 30
本章小結 31
習題1 32

第2章進程和線程 34
2.1 進程 35
2.1.1 多道程序設計 35
2.1.2 進程的概念 37
2.2 進程的狀態和組成 39
2.2.1 進程的狀態及其轉換 39
2.2.2 進程描述 42
2.2.3 進程隊列 44
2.3 進程管理 46
2.3.1 進程圖 46
2.3.2 進程創建 47
2.3.3 進程終止 49
2.3.4 進程阻塞 50
2.3.5 進程喚醒 50
2.4 線程 51
2.4.1 線程概念 51
2.4.2 線程的實現 54
2.5 進程的同步和互斥 55
2.5.1 競爭條件 56
2.5.2 臨界資源和臨界區 57
2.5.3 進程互斥和進程同步 58
2.5.4 互斥方式 59
2.5.5 信號量 61
2.5.6 信號量的一般應用 64
2.6 經典進程同步問題 65
2.7 管程 71
2.8 進程通信 72
2.8.1 共享內存 72
2.8.2 消息傳遞 72
2.8.3 管道文件 75
2.9 信號機制 76
2.9.1 信號機制概念 76
2.9.2 信號的分類、產生和傳送 77
2.9.3 信號的處理方式 78
2.9.4 信號的檢測和處理 79
2.10 客戶—服務器系統中的通信 79
本章小結 81
習題2 82

第3章調度 85
3.1 調度類型 86
3.2 作業調度 87
3.2.1 作業狀態 87
3.2.2 作業控制塊和作業調度的功能 88
3.3 進程調度 89
3.4 調度準則 91
3.4.1 影響調度算法選擇的主要因素 91
3.4.2 調度性能評價準則 92
3.5 調度算法 93
3.5.1 先來先服務法 93
3.5.2 短作業優先法 94
3.5.3 最短剩餘時間優先法 95
3.5.4 優先級法 96
3.5.5 輪轉法 97
3.5.6 多級隊列法 98
3.5.7 多級反饋隊列法 99
3.5.8 高響應比優先法 100
3.5.9 公平共享法 101
3.5.10 常用調度算法的比較 101
3.6 實時調度 102
3.6.1 實時任務類型 102
3.6.2 實時調度算法 102
3.7 線程調度 103
3.8 多處理器調度 104
3.8.1 多處理器系統的類型 104
3.8.2 多處理器調度方法 105
3.9 UNIX/Linux進程調度 106
3.9.1 UNIX進程調度 106
3.9.2 Linux進程調度 107
本章小結 108
習題3 109

第4章存儲管理 111
4.1 引言 112
4.1.1 用戶程序的地址空間 112
4.1.2 重定位 114
4.1.3 覆蓋技術 116
4.1.4 對換技術 117
4.2 分區法 118
4.2.1 固定分區法 118
4.2.2 動態分區法 119
4.2.3 可重定位分區分配 122
4.3 分頁技術 124
4.3.1 分頁存儲管理的基本概念 124
4.3.2 分頁系統中的地址映射 125
4.3.3 頁尺寸 126
4.3.4 硬件支持 127
4.3.5 保護方式 128
4.3.6 頁表的構造 129
4.3.7 頁共享 132
4.4 分段技術 133
4.4.1 分段存儲管理的基本概念 134
4.4.2 段地址轉換 135
4.4.3 段的共享和保護 136
4.5 段頁式技術 137
4.5.1 段頁式存儲管理的基本原理 137
4.5.2 地址轉換過程 138
4.6 虛擬存儲器 139
4.6.1 虛擬存儲器的概念 139
4.6.2 虛擬存儲器的特徵 140
4.7 請求分頁技術 140
4.7.1 請求分頁存儲管理的基本思想 140
4.7.2 硬件支持及缺頁處理 141
4.8 頁置換算法 144
4.8.1 頁置換 144
4.8.2 先進先出法 145
4.8.3 最佳置換法 146
4.8.4 最近最久未使用置換法 147
4.8.5 第二次機會置換法 148
4.8.6 時鐘置換法 148
4.8.7 最近未使用法 149
4.8.8 最不經常使用法 149
4.8.9 頁緩衝法 150
4.9 內存塊的分配和抖動問題 150
4.9.1 內存塊的分配 151
4.9.2 抖動問題 153
4.10 請求分段技術 155
4.11 Linux系統的存儲管理 156
4.11.1 Linux的多級頁表結構 156
4.11.2 內存頁的分配與釋放 157
4.11.3 內存交換 159
本章小結 159
習題4 161

第5章文件系統 164
5.1 文件概述 165
5.1.1 文件及其分類 165
5.1.2 文件命名 166
5.1.3 文件屬性 168
5.1.4 文件存取方法 168
5.1.5 文件結構 170
5.2 文件系統的功能和結構 172
5.2.1 文件系統的功能 172
5.2.2 文件系統的結構 172
5.3 目錄結構和目錄查詢 173
5.3.1 文件控制塊和目錄 173
5.3.2 單級目錄結構 175
5.3.3 二級目錄結構 176
5.3.4 樹形目錄結構 177
5.3.5 非循環圖目錄結構 179
5.3.6 目錄查詢方法 179
5.4 文件操作和目錄操作 180
5.4.1 文件操作 180
5.4.2 目錄操作 183
5.4.3 UNIX系統的文件操作示例 184
5.5 文件系統的實現 186
5.5.1 文件系統的格式 186
5.5.2 文件存儲分配 188
5.5.3 空閒存儲空間的管理 193
5.6 文件系統的可靠性 196
5.6.1 磁盤壞塊管理 197
5.6.2 備份 197
5.6.3 文件系統和一致性 198
本章小結 200
習題5 201

第6章輸入和輸出 203
6.1 I/O管理概述 204
6.1.1 外部設備分類和標識 204
6.1.2 I/O結構 206
6.1.3 設備控制器 206
6.1.4 I/O系統的控制方式 208
6.1.5 I/O管理的功能 212
6.2 中斷處理 214
6.2.1 中斷概述 214
6.2.2 中斷的處理過程 215
6.2.3 中斷優先級和多重中斷 219
6.3 設備分配 221
6.3.1 與設備分配相關的因素 221
6.3.2 設備分配技術 222
6.3.3 設備分配算法 223
6.3.4 SPOOLing技術 223
6.4 I/O軟件的層次 224
6.4.1 中斷處理程序 225
6.4.2 設備驅動程序 225
6.4.3 與設備無關的操作系統I/O軟件 229
6.4.4 用戶級I/O軟件 232
6.5 磁盤調度和管理 232
6.5.1 磁盤調度 232
6.5.2 磁盤管理 236
本章小結 239
習題6 240

第7章用戶接口 241
7.1 用戶接口的發展 242
7.2 系統調用 242
7.2.1 系統調用和庫函數 243
7.2.2 系統調用使用方式 244
7.2.3 系統調用的處理方式 247
7.3 命令行接口 249
7.3.1 命令的一般使用方式 250
7.3.2 命令解釋程序 251
7.3.3 shell程序設計 252
7.4 圖形用戶界面 254
本章小結 258
習題7 258

第8章死鎖 260
8.1 資源 261
8.1.1 資源使用模式 261
8.1.2 可搶占資源與不可搶占資源 261
8.2 死鎖概念 262
8.2.1 什麼是死鎖 262
8.2.2 死鎖的必要條件 264
8.2.3 資源分配圖 265
8.2.4 處理死鎖的方法 266
8.3 死鎖的預防 267
8.3.1 破壞互斥條件 267
8.3.2 破壞佔有且等待條件 267
8.3.3 破壞非搶占條件 268
8.3.4 破壞循環等待條件 268
8.4 死鎖的避免 269
8.4.1 安全狀態 269
8.4.2 資源分配圖算法 271
8.4.3 銀行家算法 271
8.5 死鎖的檢測和恢復 274
8.5.1 對單體資源類的死鎖檢測 274
8.5.2 對多體資源類的死鎖檢測 274
8.5.3 從死鎖中恢復 276
8.6 處理死鎖的綜合方式 277
8.7 飢餓和活鎖 279
本章小結 280
習題8 281

第9章嵌入式操作系統 283
9.1 嵌入式系統概述 284
9.1.1 嵌入式系統的組成 284
9.1.2 嵌入式系統的特點 285
9.2 實時內核及其實現 288
9.2.1 任務管理與調度 288
9.2.2 中斷和時間管理 289
9.2.3 任務的同步和通信 290
9.2.4 內存管理 293
9.2.5 I/O管理 295
9.3 鴻蒙操作系統 295
9.3.1 鴻蒙操作系統的類別 296
9.3.2 鴻蒙不是安卓的仿製品 296
9.3.3 鴻蒙2.0架構 297
9.3.4 鴻蒙操作系統的影響 298
本章小結 299
習題9 299

第10章分佈式系統和雲計算系統 300
10.1 分佈式系統概述 301
10.1.1 分佈式系統的特性 301
10.1.2 分佈式系統的優點和不足 301
10.1.3 分佈式系統的設計目標 302
10.2 分佈式系統的實現模型 304
10.2.1 進程管理 305
10.2.2 通信問題 307
10.2.3 死鎖問題 308
10.2.4 文件系統 309
10.3 中間件模型 310
10.3.1 中間件的概念 311
10.3.2 中間件的結構 311
10.4 各多機系統的比較 312
10.5 雲計算系統 314
10.5.1 雲計算概述 314
10.5.2 雲操作系統簡述 316
本章小結 317
習題10 318

第11章系統安全和保護機制 319
11.1 安全問題 320
11.1.1 信息安全概述 320
11.1.2 環境安全 320
11.2 攻擊點、網絡威脅和病毒 322
11.2.1 常見的攻擊點 322
11.2.2 網絡威脅 322
11.2.3 計算機病毒 323
11.3 安全防護 326
11.3.1 安全措施 326
11.3.2 安全體系參考模型 326
11.4 保護機制 328
11.4.1 保護域 328
11.4.2 存取控製表 330
11.4.3 權能表 331
11.4.4 可信系統 332
11.4.5 安全性能評測標準 335
本章小結 335
習題11 336

第12章實驗操作 337
12.1 實驗一:進程同步和互斥 338
12.2 實驗二:進程及其資源管理 340
12.3 實驗三:存儲管理 344
12.4 實驗四:頁面置換算法 346
12.5 實驗五:進程調度 347
12.6 實驗六:銀行家算法 347
12.7 實驗七:磁盤調度算法 349
12.8 實驗八:設備處理程序設計 349
12.9 實驗九:文件系統 350
附錄A Linux常用系統調用和庫函數 353
A.1 有關文件操作的系統調用 354
A.2 有關進程控制的系統調用 355
A.3 有關進程通信的函數 356
A.4 有關內存管理的函數 357
附錄B 習題答疑 358
參考文獻 359