圖書內容
本書是普通高等教育"十一五”國家級規劃教材,北京高等教育精品教材,全面系統地介紹現代作業系統的基本理論和最新技術。
全書共分11章:第1章概述作業系統的定義、功能、特徵、發展歷程和結構;第2章至第8章分別講述進程和執行緒管理、死鎖、調度、存儲管理、檔案系統、輸入/輸出管理和用戶接口服務;第9章介紹嵌入式作業系統;第10章講述分散式作業系統;第11章講述系統的安全性與保護機制。二個附錄分別給出實驗指導和部分習題參考答案,並為教師免費提供電子教案。
目錄
第1章 作業系統引論 1
1.1 計算機硬體結構 1
1.1.1 處理器 2
1.1.2 存儲器 2
1.1.3 I/O設備 3
1.1.4 匯流排 3
1.2 什麼是作業系統 4
1.2.1 作業系統概念 4
1.2.2 作業系統的主要功能 5
1.2.3 作業系統的地位 8
1.3 作業系統的發展歷程 9
1.3.1 作業系統的形成 9
1.3.2 作業系統的發展 12
1.3.3 推動作業系統發展的動力 12
1.4 作業系統的類型 12
1.4.1 批處理系統 13
1.4.2 分時系統 14
1.4.3 實時系統 15
1.4.4 網路作業系統 16
1.4.5 分散式作業系統 18
1.4.6 其他作業系統 18
1.5 作業系統的特徵 20
1.6 作業系統結構設計 20
1.6.1 整體結構 21
1.6.2 層次結構 21
1.6.3 虛擬機結構 23
1.6.4 客戶-伺服器結構 24
1.7 作業系統初啟過程 25
1.8 本章小結 26
習題1 26
第2章 進程和執行緒 28
2.1 進程概念 28
2.1.1 多道程式設計 28
2.1.2 進程概念 29
2.2 進程的狀態和組成 31
2.2.1 進程的狀態及其轉換 31
2.2.2 進程描述 34
2.2.3 進程佇列 36
2.3 進程管理 37
2.3.1 進程圖 37
2.3.2 進程創建 38
2.3.3 進程終止 40
2.3.4 進程阻塞 40
2.3.5 進程喚醒 41
2.4 執行緒 41
2.4.1 執行緒概念 41
2.4.2 執行緒的實現 44
2.5 進程的同步和互斥 45
2.5.1 進程同步與互斥的概念 45
2.5.2 臨界資源和臨界區 47
2.5.3 互斥實現方式 48
2.5.4 信號量 50
2.5.5 信號量的一般套用 53
2.6 經典進程同步問題 54
2.7 管程 59
2.8 進程通信 61
2.8.1 訊息傳遞系統 62
2.8.2 客戶-伺服器系統中的通信 64
2.9 本章小結 65
習題2 66
第3章 死鎖 69
3.1 資源 69
3.1.1 資源使用模式 69
3.1.2 可搶占資源與不可搶占資源 70
3.2 死鎖概念 70
3.2.1 什麼是死鎖 71
3.2.2 死鎖的條件 73
3.2.3 資源分配圖 73
3.2.4 處理死鎖的方法 75
3.3 死鎖的預防 75
3.3.1 破壞互斥條件 75
3.3.2 破壞占有且等待條件 75
3.3.3 破壞非搶占條件 76
3.3.4 破壞循環等待條件 76
3.4 死鎖的避免 77
3.4.1 安全狀態 77
3.4.2 資源分配圖算法 79
3.4.3 銀行家算法 79
3.5 死鎖的檢測和恢復 81
3.5.1 對單體資源類的死鎖檢測 82
3.5.2 對多體資源類的死鎖檢測 82
3.5.3 從死鎖中恢復 83
3.5.4 “飢餓”和活鎖的概念 85
3.6 處理死鎖的綜合方式 86
3.7 本章小結 87
習題3 88
第4章 調度 90
4.1 調度類型 90
4.2 作業調度 92
4.2.1 作業狀態 92
4.2.2 作業控制塊和作業調度的
功能 92
4.3 進程調度 94
4.3.1 進程調度的功能 94
4.3.2 進程調度的時機 94
4.3.3 進程調度的基本方式 94
4.3.4 互動式系統中常用的調度
算法 95
4.3.5 兩級調度模型 95
4.4 調度準則 96
4.4.1 影響調度算法選擇的主要
因素 96
4.4.2 調度性能評價準則 96
4.5 調度算法 97
4.5.1 先來先服務法 97
4.5.2 短作業優先法 98
4.5.3 最短剩餘時間優先法 99
4.5.4 優先權法 100
4.5.5 輪轉法 101
4.5.6 多級佇列法 103
4.5.7 多級反饋佇列法 103
4.5.8 高回響比優先法 104
4.5.9 公平共享法 105
4.5.10 幾種常用調度算法的比較 105
4.6 執行緒調度 106
4.7 多處理器調度 107
4.7.1 多處理器系統的類型 107
4.7.2 多處理器調度方法 107
4.8 實時調度 108
4.8.1 實時任務類型 108
4.8.2 實時調度算法 108
4.9 UNIX/Linux進程調度 109
4.9.1 UNIX進程調度 109
4.9.2 Linux進程調度 110
4.10 中斷處理 112
4.10.1 中斷概述 112
4.10.2 中斷的處理過程 113
4.10.3 中斷優先權和多重中斷 116
4.11 信號機制 119
4.11.1 信號機制概念 119
4.11.2 信號的分類、產生和傳送 120
4.11.3 信號的處理方式 121
4.11.4 信號的檢測和處理 121
4.12 本章小結 122
習題4 123
第5章 存儲管理 125
5.1 引言 125
5.1.1 用戶程式的地址空間 125
5.1.2 重定位 126
5.1.3 對換技術 128
5.2 分區法 130
5.2.1 固定分區法 130
5.2.2 動態分區法 131
5.2.3 可重定位分區分配 134
5.3 分頁技術 135
5.3.1 分頁存儲管理的基本概念 135
5.3.2 分頁系統中的地址映射 137
5.3.3 頁面尺寸 138
5.3.4 硬體支持 138
5.3.5 保護方式 140
5.3.6 頁表的構造 140
5.3.7 頁面共享 143
5.4 分段技術 144
5.4.1 分段存儲管理的基本概念 145
5.4.2 地址轉換 146
5.4.3 段的共享和保護 147
5.5 段頁式技術 148
5.5.1 段頁式存儲管理的基本
原理 148
5.5.2 地址轉換過程 149
5.6 虛擬存儲器 150
5.6.1 虛擬存儲器的概念 150
5.6.2 虛擬存儲器的特徵 151
5.7 請求分頁技術 151
5.7.1 請求分頁存儲管理的基本
思想 151
5.7.2 硬體支持及缺頁處理 152
5.7.3 請求分頁技術的性能 153
5.8 頁面置換算法 155
5.8.1 頁面置換 155
5.8.2 先進先出法 156
5.8.3 最佳置換法 157
5.8.4 最近最久未使用置換法 157
5.8.5 最近未使用置換法 158
5.8.6 第二次機會置換法 159
5.8.7 時鐘置換法 160
5.8.8 最少使用置換法 160
5.8.9 頁面緩衝算法 160
5.9 記憶體塊的分配和抖動問題 161
5.9.1 記憶體塊的分配 161
5.9.2 抖動問題 163
5.10 請求分段技術 166
5.11 Linux系統的存儲管理 167
5.11.1 Linux的多級頁表結構 167
5.11.2 記憶體頁的分配與釋放 168
5.11.3 記憶體交換 169
5.12 本章小結 169
習題5 171
第6章 檔案系統 173
6.1 概述 173
6.1.1 檔案及其分類 173
6.1.2 檔案命名 175
6.1.3 檔案屬性 176
6.1.4 檔案存取方法 177
6.1.5 檔案結構 178
6.2 檔案系統的功能和結構 180
6.2.1 檔案系統的功能 180
6.2.2 檔案系統的結構 180
6.3 目錄結構和目錄查詢 181
6.3.1 檔案控制塊和檔案目錄 181
6.3.2 單級目錄結構 183
6.3.3 二級目錄結構 184
6.3.4 樹形目錄結構 185
6.3.5 非循環圖目錄結構 186
6.3.6 目錄查詢方法 187
6.4 檔案和目錄操作 188
6.4.1 檔案操作 188
6.4.2 目錄操作 190
6.4.3 UNIX系統中檔案操作示例 191
6.5 檔案系統的實現 193
6.5.1 檔案系統的格式 193
6.5.2 檔案存儲分配 195
6.5.3 空閒存儲空間的管理 200
6.6 管道檔案 203
6.7 檔案系統的可靠性 204
6.7.1 磁碟壞塊管理 204
6.7.2 後備 205
6.7.3 檔案系統和一致性 206
6.8 本章小結 207
習題6 208
第7章 輸入/輸出管理 210
7.1 I/O管理概述 210
7.1.1 I/O設備分類和標識 210
7.1.2 I/O系統結構 211
7.1.3 設備控制器 212
7.1.4 I/O系統的控制方式 213
7.1.5 I/O管理的功能 217
7.2 設備分配 218
7.2.1 與設備分配相關的因素 218
7.2.2 設備分配技術 219
7.2.3 設備分配算法 220
7.2.4 SPOOLing系統 220
7.3 I/O軟體層次 221
7.3.1 中斷處理程式 222
7.3.2 設備驅動程式 222
7.3.3 與設備無關的作業系統I/O
軟體 225
7.3.4 用戶級I/O軟體 228
7.4 磁碟調度和管理 228
7.4.1 磁碟調度 229
7.4.2 磁碟管理 232
7.5 本章小結 234
習題7 235
第8章 用戶接口服務 237
8.1 用戶接口的發展 237
8.2 系統調用 238
8.2.1 系統調用和庫函式 238
8.2.2 系統調用使用方式 239
8.2.3 系統調用的處理方式 241
8.3 命令行接口 244
8.3.1 命令的一般使用方式 244
8.3.2 命令解釋程式 245
8.3.3 shell程式設計 246
8.4 圖形用戶界面 247
8.4.1 圖形界面簡介 247
8.4.2 X Window系統 249
8.5 本章小結 252
習題8 253
第9章 嵌入式作業系統 254
9.1 嵌入式系統概述 254
9.2 嵌入式作業系統概述 255
9.2.1 嵌入式軟體系統的體系
結構 255
9.2.2 嵌入式作業系統 256
9.3 實時核心及其實現 257
9.3.1 任務管理與調度 257
9.3.2 中斷和時間管理 259
9.3.3 任務的同步和通信 259
9.3.4 記憶體管理 262
9.3.5 I/O管理 264
9.4 實例簡介——?CLinux 264
9.5 本章小結 267
習題9 267
第10章 分散式作業系統 268
10.1 分散式系統概述 268
10.1.1 分散式系統特徵 268
10.1.2 分散式系統的優點 269
10.2 分散式作業系統概述 269
10.2.1 分散式作業系統簡介 269
10.2.2 分散式系統的設計目標 270
10.3 分散式系統的實現 272
10.3.1 通信問題 272
10.3.2 進程管理 272
10.3.3 死鎖問題 275
10.3.4 檔案系統 275
10.3.5 中間件 277
10.4 4種多機系統的比較 278
10.5 雲計算系統 279
10.5.1 雲計算簡述 279
10.5.2 雲作業系統簡述 282
10.6 本章小結 282
習題10 283
第11章 安全性與保護機制 284
11.1 安全性概述 284
11.1.1 信息安全問題 284
11.1.2 安全環境 284
11.2 常見的安全性攻擊 286
11.2.1 常見的攻擊點 286
11.2.2 網路威脅 286
11.2.3 計算機病毒 287
11.3 一般性安全機制 290
11.3.1 安全措施 290
11.3.2 一般性安全機制 290
11.4 保護機制 291
11.4.1 保護域 292
11.4.2 存取控制表 294
11.4.3 權力 295
11.4.4 可信系統 296
11.4.5 安全性能評測標準 298
11.5 本章小結 298
習題11 299
附錄A 實驗指導 300
實驗一 進程同步和互斥 300
實驗二 進程及其資源管理 302
實驗三 存儲管理 306
實驗四 頁面置換算法 308
實驗五 進程調度 308
實驗六 銀行家算法 309
實驗七 磁碟調度算法 310
實驗八 設備處理程式設計 311
實驗九 檔案系統 312
參考文獻 314