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