編輯推薦
本書可作為普通高等院校計算機專業的本、專科教材或教學參考書,也可作為非計算機專業的作業系統課程教材。
內容簡介
全書共有9個章節和一個附錄。第1章為作業系統引論,介紹了作業系統的基本概念和功能;第2章和第3章介紹了處理機資源的管理,其中包括進程管理、進程同步與通信、作業調度、死鎖處理等經典理論;第4章和第5章介紹了記憶體資源的管理;第6章介紹了檔案系統的管理;第7章介紹了設備資源的管理,其中包括設備管理的框架、設備分配、設備處理等方面的內容;第8章介紹了作業系統接口、系統調用的知識;第9章回顧了作業系統的發展歷程,介紹了各類作業系統的特點;附錄部分給出了一個小型嵌入式實時作業系統的實現過程,作為課程設計實踐教學環節的參考。
作品目錄
第1章 作業系統引論 1
1.1 作業系統的基本概念 1
1.2 作業系統的發展與類型 5
1.2.1 無作業系統的手工操作階段 5
1.2.2 單道批處理系統 6
1.2.3 多道批處理作業系統 7
1.2.4 分時作業系統 9
1.2.5 實時作業系統 10
1.3 作業系統的特徵與功能 11
1.3.1 作業系統的特徵 11
1.3.2 作業系統的功能 13
1.4 作業系統的結構設計 17
1.4.1 傳統作業系統的結構 17
1.4.2 微核心結構作業系統 19
本章小結 22
思考與練習 22
第2章 進程管理 24
2.1 進程的基本概念 24
2.1.1 程式的順序執行及其特性 24
2.1.2 程式的順序執行及其特性 25
2.1.3 進程的定義和特徵 25
2.1.4 進程控制塊及其組織 26
2.2 進程狀態及轉換 28
2.2.1 進程基本狀態及轉換 28
2.2.2 進程的創建狀態和終止狀態 29
2.2.3 進程掛起的狀態 29
2.3 進程控制 30
2.3.1 進程創建與終止 30
2.3.2 進程阻塞與喚醒 31
2.3.3 進程掛起與激活 31
2.4 進程同步 31
2.4.1 進程互斥與同步的基本概念 32
2.4.2 信號量機制 33
2.4.3 經典進程同步問題 37
2.4.4 管程 41
2.5 進程通信 44
2.5.1 進程通信的機制 44
2.5.2 直接訊息傳遞系統 45
2.5.3 信箱通信 47
2.6 執行緒的基本概念 48
2.6.1 執行緒概念 48
2.6.2 執行緒的實現 50
2.6.3 執行緒模型 51
2.6.4 執行緒實例:Solaris 2 52
2.7 進程管理實例 53
2.7.1 Windows 的進程管理 53
2.7.2 Linux 的進程管理 55
本章小結 61
思考與練習 62
第3章 處理機調度與死鎖 63
3.1 處理機調度概述 63
3.1.1 調度的層次 63
3.1.2 調度佇列模型 64
3.1.3 調度基礎 66
3.2 調度算法 69
3.2.1 先來現服務調度算法 69
3.2.2 最短作業(進程)優先調度算法 70
3.2.3 時間片輪轉調度算法 71
3.2.4 基於優先權的調度算法 71
3.2.5 多級反饋佇列調度算法 71
3.3 死鎖 73
3.3.1 死鎖的概念和處理策略 73
3.3.2 死鎖預防 74
3.3.3 死鎖避免 75
3.3.4 死鎖檢測和解除 78
3.4 進程調度實例 80
3.4.1 Windows 的執行緒調度 80
3.4.2 Linux 的進程調度 82
本章小結 84
思考與練習 85
第4章 存儲器管理 86
4.1 概述 86
4.1.1 從源碼到運行 88
4.1.2 存儲管理的目的及分類 91
4.2 連續存儲管理 92
4.2.1 單一連續記憶體分配 92
4.2.2 固定分區記憶體分配 92
4.2.3 動態分區記憶體分配 93
4.2.4 可重定位分區分配 96
4.3 離散分配 97
4.3.1 分頁存儲管理 98
4.3.2 分段存儲管理 104
4.3.3 段頁式存儲管理 107
本章小結 109
思考與練習 110
第5章 虛擬記憶體管理 111
5.1 概述 112
5.1.1 虛擬存儲器的原理 112
5.1.2 虛擬存儲器的實現方法 113
5.2 分頁虛擬存儲管理 115
5.2.1 硬體支持 116
5.2.2 記憶體分配及頁面調入策略 118
5.2.3 頁面置換算法 121
5.2.4 抖動及其處理 126
5.3 分段及段頁式虛擬存儲管理 128
5.3.1 請求分段虛擬存儲管理 128
5.3.2 請求段頁式記憶體管理 130
5.4 存儲管理實例 132
5.4.1 Windows 的記憶體管理 132
5.4.2 Linux 的記憶體管理 135
本章小結 138
思考與練習 139
第6章 檔案管理 140
6.1 概述 140
6.1.1 檔案及分類 141
6.1.2 檔案系統及層次結構 143
6.1.3 檔案操作 144
6.1.4 檔案的存儲介質 144
6.2 檔案的結構 145
6.2.1 檔案的邏輯結構 145
6.2.2 檔案的物理結構 147
6.2.3 存儲空間的管理 153
6.3 目錄管理 156
6.3.1 檔案控制塊 156
6.3.2 索引節點 157
6.3.3 目錄結構 158
6.3.4 目錄操作 161
6.4 檔案系統的安全與保護 162
6.4.1 檔案的共享 162
6.4.2 影響安全性的因素 164
6.4.3 檔案系統保護機制 164
6.5 磁碟空間管理 170
6.5.2 磁碟調度算法 171
6.5.3 提供磁碟訪問速度的方法 173
6.6 檔案系統實例 175
6.6.1 Windows 的檔案系統 175
6.6.2 Linux 的檔案系統 182
本章小結 192
思考與練習 193
第7章 設備管理 195
7.1 概述 195
7.1.1 設備及分類 195
7.1.2 設備管理的功能 196
7.2 I/O 系統結構 197
7.2.1 硬體結構及管理 198
7.2.2 I/O 系統的軟體層次結構 199
7.3 設備分配 201
7.3.1 I/O 系統的數據結構 201
7.3.2 邏輯設備與物理設備 202
7.3.3 設備分配的獨立性 203
7.3.4 虛擬設備的實現 204
7.4 設備處理 206
7.4.1 I/O 控制的方式 206
7.4.2 中斷服務處理 211
7.4.3 設備驅動程式 213
7.4.4 緩衝技術 214
7.5 設備管理實例 217
7.5.1 Windows 的設備管理 218
7.5.2 Linux 的設備管理 225
本章小結 230
思考與練習 231
第8章 作業系統接口 232
8.1 作業系統的接口類型 232
8.1.1 用戶接口 232
8.1.2 程式接口 234
8.2 在線上用戶接口 234
8.2.1 在線上命令接口的實現 234
8.2.2 Windows 的 GUI 236
8.3 系統調用 236
8.3.1 基本概念 236
8.3.2 系統調用的實現 239
8.4 Windows 和 Linux 系統調用 240
8.4.1 Windows 系統調用 240
8.4.2 Linux 系統調用 242
本章小結 248
思考與練習 249
第9章 常見的作業系統 250
9.1 作業系統縱覽 251
9.1.1 早期的作業系統 251
9.1.2 UNIX 家族史 254
9.1.3 微軟帝國 258
9.1.4 Mac OS 264
9.1.5 自由軟體聯盟 267
9.2 嵌入式作業系統 271
9.2.1 嵌入式作業系統概述 271
9.2.2 手機作業系統 272
9.2.3 其他嵌入式作業系統 279
9.2.4 嵌入式系統的套用及發展趨勢 281
9.3 分散式作業系統 282
9.3.1 分散式系統的引入 282
9.3.2 分散式系統的定義 282
9.3.3 分散式作業系統的特點 282
9.3.4 分散式系統的優點 283
9.4 網路作業系統 284
9.4.1 網路作業系統的定義 284
9.4.2 網路作業系統的特點 284
9.4.3 網路作業系統的功能 285
9.5 多處理機作業系統 285
9.5.1 多處理機作業系統的定義 285
9.5.2 多處理機作業系統的分類 285
9.5.3 多處理機作業系統的優點 287
本章小結 287
附錄 小型嵌入式實時作業系統開發實例 288
需求規格說明 290
概要設計說明 291
參考文獻 306
作者簡介
劉剛,1999年畢業於北京航空航天大學飛行器設計與套用力學系,獲“飛行力學”學士學位。2002年畢業於北京航空航天大學航空科學與工程學院,獲“交通運輸規劃與管理”碩士學位。2007年畢業於北京航空航天大學自動化科學與電氣工程學院,獲“導航、制導與控制”博士學位。現為航空科學與技術國家實驗室(籌建)講師,業務管理部部長。