《操作系統(tǒng)原理與實踐教程(第四版)》全面講述計算機操作系統(tǒng)的基本原理和相關(guān)技術(shù)。全書共分為10章,深入介紹操作系統(tǒng)的發(fā)展歷程、通用操作系統(tǒng)的啟動過程、處理器管理、進程管理、存儲器管理、文件管理、設(shè)備管理、系統(tǒng)安全、嵌入式操作系統(tǒng)等內(nèi)容。 《操作系統(tǒng)原理與實踐教程(第四版)》內(nèi)容豐富、結(jié)構(gòu)合理、知識體系完備,主要面向計算機及相關(guān)專業(yè)學(xué)生。《操作系統(tǒng)原理與實踐教程(第四版)》適合作為普通高等院校操作系統(tǒng)原理課程的教材,也可作為各類培訓(xùn)班教材或自學(xué)者的參考用書,對操作系統(tǒng)及其上層應(yīng)用程序的開發(fā)人員也具有較好的參考價值。 《操作系統(tǒng)原理與實踐教程(第四版)》的電子課件和習(xí)題答案可以到http://www.tupwk.com.cn/downpage網(wǎng)站下載,也可以掃描前言中的二維碼獲取。
基礎(chǔ)構(gòu)建:內(nèi)容全面,重點突出,助您深入理解計算機系統(tǒng)架構(gòu),構(gòu)建操作系統(tǒng)設(shè)
計與開發(fā)的基本能力體系。
知識擴展:在講解操作系統(tǒng)通用概念的同時,通過介紹操作系統(tǒng)的發(fā)展趨勢,為
您下一步進行相關(guān)外延探索打好基礎(chǔ)。
操作系統(tǒng)是計算機系統(tǒng)中重要的系統(tǒng)軟件,它管理整個計算機系統(tǒng)的軟件和硬件資源;是其他軟件和程序的運行基礎(chǔ);是溝通用戶與計算機硬件的橋梁。操作系統(tǒng)因其在計算機系統(tǒng)中所處的地位決定了其重要性,它是計算機科學(xué)與技術(shù)專業(yè)的一門專業(yè)基礎(chǔ)課,是計算機相關(guān)專業(yè)學(xué)生的必修課程。操作系統(tǒng)是計算機領(lǐng)域較活躍的學(xué)科之一,其發(fā)展極為迅速。
操作系統(tǒng)具有如下特點。
(1) 內(nèi)容龐雜,涉及面廣。操作系統(tǒng)是一個龐大的系統(tǒng)軟件,它管理系統(tǒng)中所有的軟件、硬件資源,控制計算機的工作流程,提供用戶與計算機之間的接口。因此,操作系統(tǒng)課程的內(nèi)容非常龐大且復(fù)雜。
(2) 內(nèi)容抽象。操作系統(tǒng)在計算機系統(tǒng)中處于裸機與應(yīng)用層之間,對下與硬件接口,對上提供簡單便捷的用戶界面。但是,關(guān)于操作系統(tǒng)的內(nèi)容,如操作系統(tǒng)的概念、操作系統(tǒng)的功能以及這些功能如何實現(xiàn)等對于用戶或?qū)W習(xí)者而言仍是比較抽象和費解的。
(3) 發(fā)展變化快。操作系統(tǒng)是計算機領(lǐng)域較活躍的學(xué)科之一,其發(fā)展極為迅速,隨著計算機的發(fā)展而不斷更新,是計算機軟件中更新較快的軟件,因而更加重了學(xué)習(xí)難度。
正是由于操作系統(tǒng)的上述特點,使得操作系統(tǒng)課程的學(xué)習(xí)具有相當(dāng)?shù)碾y度。為了解決這些問題,提高操作系統(tǒng)課程的教學(xué)質(zhì)量,在廣泛汲取國內(nèi)外優(yōu)秀教材和研究成果的基礎(chǔ)上,筆者編寫了本教材。在編寫過程中,力求覆蓋面廣、內(nèi)容新穎、重點突出!恫僮飨到y(tǒng)原理與實踐教程(第四版)》共分為10章,參考學(xué)時為60~80學(xué)時。各章內(nèi)容簡述如下。
第1章介紹操作系統(tǒng)的概念、功能、特征、發(fā)展歷史和結(jié)構(gòu),并從操作系統(tǒng)的發(fā)展入手分析操作系統(tǒng)的發(fā)展方向,引入不同結(jié)構(gòu)的操作系統(tǒng)的性能比較和分析,對流行的操作系統(tǒng)Windows系列和UNIX/Linux系統(tǒng)進行簡要的介紹。
第2章介紹操作系統(tǒng)用戶的環(huán)境、系統(tǒng)的生成與引導(dǎo),以及操作系統(tǒng)提供的服務(wù)和接口。
第3章首先介紹進程與線程的基本概念,重點介紹進程的定義、狀態(tài)等知識,并說明進程控制過程和方法;然后對處理器調(diào)度的實現(xiàn)和調(diào)度算法進行闡述,介紹在現(xiàn)代網(wǎng)絡(luò)環(huán)境和實時系統(tǒng)中使用的多處理器調(diào)度和實時調(diào)度的一些基本原理;后介紹Linux的進程管理。
第4章首先介紹進程同步和互斥的基本概念;然后闡述如何通過信號量機制和管程來實現(xiàn)進程的同步和互斥;后介紹進程死鎖的基本概念,并闡述如何預(yù)防和避免進程死鎖的發(fā)生,以及死鎖檢測和接觸的方法。
第5章首先介紹存儲管理的基本概念和常見的存儲管理方法,然后分別介紹各種內(nèi)存管理技術(shù)的基本原理和地址映射、共享與保護等內(nèi)容,后介紹Linux的存儲管理。
第6章介紹虛擬存儲器的引入、概念和特征,對請求分頁存儲管理、請求分段存儲管理的方法以及置換算法等內(nèi)容進行了闡述,后介紹抖動的概念和工作集理論。
第7章介紹文件系統(tǒng)中有關(guān)文件管理的基本概念、文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)、文件存儲空間的管理、文件的共享和保護、Linux的文件系統(tǒng)等內(nèi)容。
第8章介紹設(shè)備管理的基本概念、I/O控制方式、中斷技術(shù)、緩沖技術(shù)、設(shè)備分配和I/O軟件管理、磁盤調(diào)度和管理、Linux的設(shè)備管理等內(nèi)容。
第9章首先介紹信息系統(tǒng)安全的概念;然后介紹計算機病毒的基本概念、常見的計算機病毒類型,以及如何預(yù)防和檢測計算機病毒;接著闡述操作系統(tǒng)的安全機制,包括加密機制、認(rèn)證機制、授權(quán)機制和審計機制,以及訪問控制機制;后介紹Linux的安全機制。
第10章介紹嵌入式系統(tǒng)的概念和硬件體系,說明了嵌入式操作系統(tǒng)的特征及其與個人計算機的區(qū)別,后介紹常用的嵌入式操作系統(tǒng)。
《操作系統(tǒng)原理與實踐教程(第四版)》可作為普通高校計算機類及其相關(guān)專業(yè)本科操作系統(tǒng)原理課程的教材,也可作為自學(xué)參考書和考研參考書。《操作系統(tǒng)原理與實踐教程(第四版)》免費提供電子課件和習(xí)題答案,需要者請到http://www.tupwk.com.cn/ downpage網(wǎng)站下載,也可以通過掃描下方的二維碼獲取。
《操作系統(tǒng)原理與實踐教程(第四版)》由鄭州大學(xué)的史葦杭、衛(wèi)琳編寫而成,其中第1~4、10章由史葦杭編寫,第5~9章由衛(wèi)琳編寫。
感謝石磊教授在《操作系統(tǒng)原理與實踐教程(第四版)》的編寫和出版過程中提出的寶貴意見,讓我們從中獲益匪淺。參加《操作系統(tǒng)原理與實踐教程(第四版)》編寫的人員還有李翠霞、林楠、韓穎、王瑞娟、陳永霞、曹仰杰等,在此一并向他們表示誠摯的感謝。同時,對清華大學(xué)出版社有關(guān)同志深表謝意,謝謝他們在《操作系統(tǒng)原理與實踐教程(第四版)》出版過程中付出的辛勤勞動。
《操作系統(tǒng)原理與實踐教程(第四版)》的編寫參閱了多種書籍和資料,主要的參考文獻列于書后,在這里對這些文獻的編著者表示誠摯的謝意。由于編者水平有限,書中難免有不當(dāng)之處,懇請讀者批評指正。我們的信箱是992116@qq.com,電話是010-62796045。
編者
2022年1月
第1章 操作系統(tǒng)概論 1
1.1 操作系統(tǒng)的概念 1
1.1.1 操作系統(tǒng)的定義 1
1.1.2 操作系統(tǒng)的特征 3
1.1.3 操作系統(tǒng)的功能 4
1.1.4 操作系統(tǒng)的設(shè)計目標(biāo) 8
1.1.5 操作系統(tǒng)的性能指標(biāo) 8
1.2 操作系統(tǒng)的形成和發(fā)展 9
1.2.1 人工操作階段 9
1.2.2 單道批處理 9
1.2.3 多道批處理 10
1.2.4 分時操作系統(tǒng) 11
1.2.5 個人計算機操作系統(tǒng) 12
1.2.6 實時操作系統(tǒng) 13
1.2.7 網(wǎng)絡(luò)操作系統(tǒng) 14
1.2.8 分布式操作系統(tǒng) 15
1.2.9 操作系統(tǒng)的進一步發(fā)展 16
1.3 操作系統(tǒng)的結(jié)構(gòu) 17
1.3.1 整體結(jié)構(gòu) 18
1.3.2 分層結(jié)構(gòu) 19
1.3.3 虛擬機結(jié)構(gòu) 20
1.3.4 外核結(jié)構(gòu) 21
1.3.5 客戶機/服務(wù)器結(jié)構(gòu) 21
1.4 常用操作系統(tǒng)簡介 22
1.4.1 Windows系列操作系統(tǒng) 22
1.4.2 UNIX和Linux系統(tǒng) 24
1.5 小結(jié) 26
1.6 思考練習(xí) 26
第2章 操作系統(tǒng)的界面 28
2.1 用戶工作環(huán)境 28
2.1.1 用戶環(huán)境 28
2.1.2 系統(tǒng)的生成與引導(dǎo) 29
2.1.3 實例分析:Linux系統(tǒng)啟動 31
2.2 操作系統(tǒng)的用戶接口 32
2.2.1 命令接口 33
2.2.2 圖形用戶接口 34
2.2.3 程序接口 34
2.3 操作系統(tǒng)提供的服務(wù) 35
2.3.1 操作系統(tǒng)提供的基本服務(wù) 35
2.3.2 操作系統(tǒng)提供的公共函數(shù) 36
2.4 小結(jié) 37
2.5 思考練習(xí) 37
第3章 處理器管理 38
3.1 程序的執(zhí)行 38
3.1.1 程序的順序執(zhí)行 38
3.1.2 程序的并發(fā)執(zhí)行 39
3.2 進程概述 39
3.2.1 進程的概念 39
3.2.2 進程的狀態(tài) 41
3.2.3 進程控制塊 43
3.3 進程控制 44
3.3.1 進程控制的概念 44
3.3.2 進程控制機構(gòu)及其功能 44
3.3.3 進程控制的過程 44
3.4 線程概述 46
3.4.1 線程的概念 46
3.4.2 多線程的概念和優(yōu)點 46
3.4.3 線程的實現(xiàn) 47
3.4.4 多線程模型 47
3.4.5 線程池 49
3.5 處理器調(diào)度 49
3.5.1 處理器調(diào)度的層次 49
3.5.2 選擇調(diào)度算法的準(zhǔn)則 50
3.5.3 作業(yè)調(diào)度 51
3.5.4 進程調(diào)度 52
3.6 調(diào)度算法 53
3.6.1 先來先服務(wù)算法 53
3.6.2 短作業(yè)(進程)優(yōu)先算法 54
3.6.3 優(yōu)先級調(diào)度算法 54
3.6.4 時間片輪轉(zhuǎn)算法 55
3.6.5 多級隊列調(diào)度算法 56
3.6.6 多級反饋隊列調(diào)度算法 56
3.6.7 高響應(yīng)比優(yōu)先調(diào)度算法 58
3.7 多處理器調(diào)度和實時調(diào)度 58
3.7.1 多處理器調(diào)度 58
3.7.2 實時調(diào)度 59
3.8 Linux的進程管理 60
3.8.1 Linux的進程描述符 60
3.8.2 Linux的進程狀態(tài)及轉(zhuǎn)換 61
3.8.3 Linux進程的調(diào)度 62
3.8.4 Linux進程的創(chuàng)建和終止 63
3.8.5 Linux的線程管理 64
3.9 小結(jié) 65
3.10 思考練習(xí) 66
第4章 進程同步與死鎖 68
4.1 進程的同步和互斥 68
4.1.1 進程的同步 68
4.1.2 進程的互斥 69
4.1.3 信號量機制 71
4.1.4 信號量的使用方法 76
4.1.5 信號量的應(yīng)用實例 77
4.2 經(jīng)典同步問題 78
4.2.1 生產(chǎn)者消費者問題 78
4.2.2 讀者寫者問題 80
4.2.3 哲學(xué)家進餐問題 83
4.2.4 理發(fā)師問題 85
4.3 管程 86
4.3.1 管程的基本概念 87
4.3.2 條件變量 88
4.3.3 使用管程解決生產(chǎn)者消費者
問題 89
4.4 進程通信 90
4.4.1 進程通信的概念 90
4.4.2 進程通信的方式 90
4.4.3 消息傳遞系統(tǒng) 91
4.4.4 消息緩沖隊列通信機制 93
4.4.5 管道通信方式 95
4.4.6 Linux的進程通信 95
4.5 死鎖 100
4.5.1 死鎖的概念 100
4.5.2 死鎖產(chǎn)生的原因和必要條件 101
4.5.3 死鎖的描述資源分配圖 103
4.5.4 處理死鎖的方法 105
4.6 死鎖的預(yù)防和避免 105
4.6.1 死鎖的預(yù)防 105
4.6.2 死鎖的避免 107
4.7 死鎖的檢測和解除 112
4.7.1 死鎖的檢測 112
4.7.2 死鎖的解除 115
4.8 小結(jié) 116
4.9 思考練習(xí) 116
第5章 存儲管理 119
5.1 存儲管理概述 119
5.1.1 多級存儲結(jié)構(gòu) 120
5.1.2 程序裝入內(nèi)存的過程 121
5.1.3 存儲管理的任務(wù) 124
5.1.4 存儲管理的功能 124
5.1.5 存儲管理方式 127
5.2 連續(xù)內(nèi)存分配 129
5.2.1 單一連續(xù)分配 129
5.2.2 固定分區(qū)分配 130
5.2.3 動態(tài)分區(qū)分配 131
5.2.4 可重定位分區(qū)分配 135
5.3 處理內(nèi)存不足的手段 137
5.3.1 覆蓋 137
5.3.2 交換 138
5.4 分頁存儲管理 139
5.4.1 分頁存儲管理的基本原理 139
5.4.2 地址映射 141
5.4.3 頁表的結(jié)構(gòu) 143
5.4.4 頁面的共享 145
5.5 分段存儲管理 146
5.5.1 分段存儲管理方式的引入 146
5.5.2 分段存儲管理的基本原理 147
5.5.3 段的共享和保護 149
5.6 段頁式存儲管理 150
5.7 Linux的存儲管理 152
5.7.1 物理內(nèi)存管理 153
5.7.2 進程虛擬地址空間管理 155
5.8 小結(jié) 157
5.9 思考練習(xí) 157
第6章 虛擬存儲器 160
6.1 虛擬存儲器的引入 160
6.1.1 傳統(tǒng)存儲管理方式的特征 160
6.1.2 局部性原理 161
6.1.3 虛擬存儲器的概念 161
6.2 虛擬存儲器的實現(xiàn)方法 162
6.2.1 請求分頁系統(tǒng) 162
6.2.2 請求分段系統(tǒng) 163
6.3 虛擬存儲器的特征 163
6.4 請求分頁存儲管理 164
6.4.1 請求分頁存儲管理的硬件支持 164
6.4.2 請求分頁存儲管理的內(nèi)存分配 166
6.4.3 頁面調(diào)入策略 168
6.5 頁面置換算法 170
6.5.1 置換算法 170
6.5.2 先進先出置換算法 171
6.5.3 近久未使用置換算法 172
6.5.4 少使用置換算法 173
6.5.5 Clock置換算法 173
6.6 頁面緩沖算法 174
6.6.1 影響頁面換進換出效率的因素 174
6.6.2 頁面緩沖算法概述 175
6.7 訪問內(nèi)存的有效時間 176
6.8 工作集理論和抖動問題 176
6.8.1 多道程序度與抖動 177
6.8.2 工作集 178
6.8.3 抖動的預(yù)防方法 179
6.9 請求分段存儲管理 180
6.9.1 請求分段存儲管理的硬件支持 180
6.9.2 分段的共享與保護 182
6.10 小結(jié) 184
6.11 思考練習(xí) 185
第7章 文件管理 186
7.1 文件的概念 186
7.1.1 文件及其分類 186
7.1.2 文件的屬性 189
7.2 文件目錄的概念 189
7.2.1 文件控制塊和文件目錄 189
7.2.2 文件目錄結(jié)構(gòu) 191
7.2.3 目錄的實現(xiàn)方式 194
7.3 文件操作和目錄操作 195
7.3.1 文件操作 195
7.3.2 目錄操作 196
7.4 文件的邏輯結(jié)構(gòu) 197
7.4.1 文件邏輯結(jié)構(gòu)的類型 198
7.4.2 順序文件 199
7.4.3 索引文件 199
7.4.4 索引順序文件 200
7.5 文件的物理結(jié)構(gòu) 200
7.5.1 連續(xù)文件 201
7.5.2 鏈接文件 201
7.5.3 隨機文件 202
7.5.4 連續(xù)文件、鏈接文件與隨機
文件的比較 203
7.6 文件存儲空間的分配 204
7.6.1 連續(xù)分配 204
7.6.2 鏈接分配 205
7.6.3 索引分配 209
7.7 文件存儲空間的管理 211
7.7.1 空閑文件目錄 212
7.7.2 空閑鏈表法 212
7.7.3 位示圖 214
7.8 文件系統(tǒng) 214
7.8.1 文件系統(tǒng)概述 215
7.8.2 文件系統(tǒng)的實現(xiàn) 215
7.9 文件的共享和保護 216
7.9.1 文件的共享 216
7.9.2 文件的保護 218
7.9.3 文件系統(tǒng)的可靠性 219
7.10 Linux的文件系統(tǒng) 220
7.10.1 虛擬文件系統(tǒng) 220
7.10.2 EXT2文件系統(tǒng) 222
7.11 小結(jié) 224
7.12 思考練習(xí) 224
第8章 設(shè)備管理 226
8.1 設(shè)備管理的概念 226
8.1.1 設(shè)備的分類 226
8.1.2 設(shè)備管理的任務(wù)和功能 228
8.1.3 I/O系統(tǒng)的結(jié)構(gòu) 229
8.2 設(shè)備控制器 229
8.2.1 設(shè)備控制器的基本功能 230
8.2.2 設(shè)備控制器的組成 230
8.2.3 CPU與控制器的通信方式 231
8.3 I/O控制方式 231
8.3.1 程序直接控制方式 232
8.3.2 中斷控制方式 233
8.3.3 DMA方式 234
8.3.4 通道控制方式 236
8.4 中斷技術(shù) 237
8.4.1 中斷的基本概念 238
8.4.2 中斷的作用 238
8.4.3 中斷的分類與優(yōu)先級 239
8.4.4 軟中斷 239
8.4.5 中斷處理過程 240
8.5 緩沖技術(shù) 241
8.5.1 緩沖技術(shù)的引入 241
8.5.2 緩沖的種類 241
8.5.3 緩沖池的管理 242
8.6 設(shè)備分配 244
8.6.1 設(shè)備分配的數(shù)據(jù)結(jié)構(gòu) 245
8.6.2 設(shè)備分配的原則 246
8.6.3 SPOOLing系統(tǒng) 247
8.6.4 虛擬設(shè)備共享打印機 249
8.7 I/O軟件管理 249
8.7.1 I/O軟件設(shè)計的注意事項 249
8.7.2 I/O中斷處理程序 250
8.7.3 設(shè)備驅(qū)動程序 251
8.7.4 設(shè)備無關(guān)軟件 253
8.7.5 用戶層I/O軟件 255
8.8 磁盤調(diào)度和管理 255
8.8.1 磁盤結(jié)構(gòu) 255
8.8.2 磁盤訪問時間 256
8.8.3 磁盤調(diào)度 257
8.8.4 磁盤高速緩存 260
8.8.5 磁盤管理 261
8.8.6 廉價磁盤冗余陣列 262
8.9 Linux的設(shè)備管理 264
8.9.1 設(shè)備文件 265
8.9.2 字符設(shè)備管理 265
8.9.3 塊設(shè)備管理 266
8.9.4 網(wǎng)絡(luò)設(shè)備管理 267
8.10 小結(jié) 268
8.11 思考練習(xí) 269
第9章 操作系統(tǒng)的安全和保護 270
9.1 計算機系統(tǒng)安全和
操作系統(tǒng)安全 270
9.1.1 計算機系統(tǒng)安全概述 270
9.1.2 操作系統(tǒng)安全及信息安全
評價準(zhǔn)則 271
9.1.3 計算機安全威脅分類 272
9.2 對計算機系統(tǒng)的攻擊 273
9.2.1 常用的攻擊方式 273
9.2.2 邏輯炸彈和陷阱門 274
9.2.3 特洛伊木馬和登錄欺騙 275
9.2.4 緩沖區(qū)溢出 276
9.3 計算機病毒 277
9.3.1 計算機病毒的基本概念 277
9.3.2 計算機病毒的類型 279
9.3.3 計算機病毒的預(yù)防和檢測 280
9.4 操作系統(tǒng)安全機制 281
9.4.1 加密機制 281
9.4.2 認(rèn)證機制 283
9.4.3 授權(quán)機制 285
9.4.4 審計機制 285
9.5 訪問控制機制 286
9.5.1 保護域 286
9.5.2 訪問矩陣的概念 287
9.5.3 訪問矩陣的修改 288
9.5.4 訪問矩陣的實現(xiàn) 289
9.6 Linux的安全機制 290
9.7 小結(jié) 292
9.8 思考練習(xí) 293
第10章 嵌入式操作系統(tǒng) 294
10.1 嵌入式系統(tǒng)概述 294
10.1.1 嵌入式系統(tǒng)的定義 294
10.1.2 嵌入式系統(tǒng)與個人計算機的
異同 295
10.1.3 嵌入式系統(tǒng)的硬件體系 295
10.2 嵌入式軟件 297
10.2.1 嵌入式控制軟件 297
10.2.2 嵌入式操作系統(tǒng) 299
10.3 常見的嵌入式操作系統(tǒng) 301
10.3.1 C/OS-III 301
10.3.2 嵌入式Linux 302
10.4 小結(jié) 303
10.5 思考練習(xí) 304
參考文獻 305