計(jì)算機(jī)操作系統(tǒng)(第二版)
定 價(jià):59 元
- 作者:趙偉華
- 出版時(shí)間:2022/4/26
- ISBN:9787560663760
- 出 版 社:西安電子科技大學(xué)出版社
- 中圖法分類:TP316.85
- 頁碼:416
- 紙張:
- 版次:1
- 開本:16開
本書全面系統(tǒng)地介紹了現(xiàn)代計(jì)算機(jī)操作系統(tǒng)的基本實(shí)現(xiàn)原理。全書共7章。第1章介紹操作系統(tǒng)的概念、特征和功能、發(fā)展歷史、用戶接口及結(jié)構(gòu)模型;第2章介紹操作系統(tǒng)的硬件基礎(chǔ)相關(guān)知識(shí),包括處理器計(jì)算、存儲(chǔ)系統(tǒng)、中斷和時(shí)鐘;第3章深入闡述進(jìn)程與線程的概念、進(jìn)程調(diào)度、死鎖、同步與通信機(jī)制等;第4至6章分別介紹操作系統(tǒng)的存儲(chǔ)器管理、設(shè)備管理和文件管理;第7章給出由簡單到綜合的實(shí)踐環(huán)節(jié)建議實(shí)驗(yàn)項(xiàng)目。此外,本書以Linux系統(tǒng)的2.6.24內(nèi)核及openEuler系統(tǒng)為實(shí)例,簡要介紹其基本實(shí)現(xiàn)原理,力求方便讀者學(xué)習(xí)時(shí)能理論聯(lián)系實(shí)際。
本書結(jié)構(gòu)清晰,內(nèi)容豐富,基本覆蓋研究生招生考試大綱的內(nèi)容,強(qiáng)調(diào)理論與實(shí)踐相結(jié)合,既可作為普通高等院校計(jì)算機(jī)及相關(guān)專業(yè)的操作系統(tǒng)課程教材,也可供計(jì)算機(jī)應(yīng)用和開發(fā)技術(shù)人員參考。
操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中最重要的系統(tǒng)軟件,負(fù)責(zé)管理系統(tǒng)中所有的硬件資源和軟件資源,因此操作系統(tǒng)課程是計(jì)算機(jī)相關(guān)專業(yè)非常重要的核心課程,它所涉及的概念、原理及算法是從事軟硬件開發(fā)等計(jì)算機(jī)相關(guān)工作的工程技術(shù)人員所必不可少的基礎(chǔ)知識(shí)。但該課程本身概念多、知識(shí)面廣、原理性和實(shí)踐性強(qiáng),教學(xué)過程中老師難教、學(xué)生難學(xué)。鑒于此,作者基于自己多年操作系統(tǒng)課程的教學(xué)經(jīng)驗(yàn)與體會(huì),通過廣泛閱讀和分析國內(nèi)外操作系統(tǒng)相關(guān)優(yōu)秀教材及最新操作系統(tǒng)研究論文,結(jié)合工程教育專業(yè)認(rèn)證及考研的需要,精心編寫了此書。
本書主要內(nèi)容共包括7章,分別是操作系統(tǒng)引論、操作系統(tǒng)硬件基礎(chǔ)、進(jìn)程管理、存儲(chǔ)器管理、設(shè)備管理、文件系統(tǒng)和操作系統(tǒng)實(shí)驗(yàn)。為激發(fā)讀者的學(xué)習(xí)興趣,每章開頭提出若干與本章內(nèi)容密切相關(guān)且讀者所熟知卻未必能準(zhǔn)確回答的問題,以問題引導(dǎo)學(xué)習(xí)。下面按照章節(jié)介紹本書的特點(diǎn)。
(1) 在操作系統(tǒng)引論部分,注重內(nèi)容的組織和增加內(nèi)容的趣味性,把操作系統(tǒng)的來龍去脈和主要技術(shù)組織成一個(gè)邏輯清晰的整體,并且內(nèi)容上不失閱讀的趣味性。
(2) 在操作系統(tǒng)硬件基礎(chǔ)部分,闡述與操作系統(tǒng)緊密相關(guān)的硬件知識(shí)。該部分除了處理器指令、尋址方式、中斷、系統(tǒng)時(shí)鐘、堆棧、寄存器、磁盤、內(nèi)存之外,還引入其他操作系統(tǒng)教材較少介紹的Cache和非易失性存儲(chǔ)。
(3) 在進(jìn)程管理部分,采用操作系統(tǒng)原理和實(shí)際Linux系統(tǒng)有機(jī)融合的方式進(jìn)行編排。在每節(jié)介紹進(jìn)程管理相關(guān)原理的基礎(chǔ)上,直接給出Linux中的具體實(shí)現(xiàn)技術(shù)和算法;為方便讀者查詢?cè)创a,對(duì)重要數(shù)據(jù)結(jié)構(gòu)和函數(shù)的定義,都給出詳細(xì)的檢索路徑。
(4) 在存儲(chǔ)器管理部分,為兼顧知識(shí)的新穎性和系統(tǒng)性,對(duì)已經(jīng)過時(shí)的存儲(chǔ)管理方式,如連續(xù)分配方式只做簡單介紹,而對(duì)廣泛使用的分頁存儲(chǔ)管理及虛擬存儲(chǔ)系統(tǒng)則進(jìn)行系統(tǒng)描述。此外,本章還介紹了Linux系統(tǒng)的尋址機(jī)制、物理內(nèi)存管理及進(jìn)程的虛擬地址空間管理。
(5) 在設(shè)備管理部分,相對(duì)系統(tǒng)地介紹操作系統(tǒng)中設(shè)備管理的基本概念及相關(guān)知識(shí),并介紹Linux系統(tǒng)字符設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)及中斷處理機(jī)制。
(6) 在文件系統(tǒng)部分,采用從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的方式進(jìn)行闡述。在介紹Linux的虛擬文件系統(tǒng)VFS的基礎(chǔ)上,講述其經(jīng)典的Ext2文件系統(tǒng)。
(7) 本書將操作系統(tǒng)原理教學(xué)和實(shí)踐環(huán)節(jié)結(jié)合到一起,不再分列兩本書,方便教師教學(xué)和學(xué)生學(xué)習(xí)。本書共提供5個(gè)實(shí)驗(yàn)項(xiàng)目,全部在Linux系統(tǒng)中開發(fā)。實(shí)驗(yàn)題目與操作系統(tǒng)原理緊密結(jié)合且難度適中,能幫助學(xué)生掌握Linux系統(tǒng)中底層的編程技術(shù),熟悉相關(guān)的系統(tǒng)調(diào)用。為方便讀者閱讀分析Linux源碼,本書還介紹了幾種常用的源碼檢索工具。
為方便學(xué)生課后及考研復(fù)習(xí),每一章都給出了數(shù)量眾多、內(nèi)容豐富的習(xí)題。本書是一本立體化的計(jì)算機(jī)操作系統(tǒng)教材,除了高質(zhì)量的課件,我們還將提供面向課堂改革所需要的所有教學(xué)資源,如教學(xué)大綱、教學(xué)視頻、習(xí)題詳解、拓展知識(shí)、Linux源碼分析教學(xué)案例、課堂討論和測(cè)試題目等,可滿足翻轉(zhuǎn)課堂教學(xué)、工程認(rèn)證對(duì)學(xué)生處理復(fù)雜問題能力的要求。
本書由杭州電子科技大學(xué)趙偉華、劉真、賈剛勇、周旭編寫。其中,第1章和第4章由周旭編寫,第2章和第5章由賈剛勇與趙偉華編寫,第3章由趙偉華編寫,第7章由趙偉華、賈剛勇、劉真編寫,第6章由劉真編寫。
本書的編寫參閱了大量的書籍和資料,主要的參考文獻(xiàn)列于書后,在這里對(duì)相關(guān)書籍及資料的編著者表示誠摯的謝意!
本書自2018年出版以來,經(jīng)幾輪教學(xué)實(shí)踐及課程的持續(xù)建設(shè),作者對(duì)教學(xué)內(nèi)容與實(shí)踐環(huán)節(jié)進(jìn)行了更加深入的研究與設(shè)計(jì),并將其充分體現(xiàn)在本次修訂中。相對(duì)于第一版內(nèi)容,本次主要修訂了以下內(nèi)容:
(1) 在1~6章的“本章小結(jié)”中增加了知識(shí)點(diǎn)思維導(dǎo)圖,以方便學(xué)生復(fù)習(xí)總結(jié)。
(2) 第3章增加了多處理器調(diào)度。
(3) 第3章、第4章、第6章分別增加了openEuler進(jìn)程管理、存儲(chǔ)器管理、文件管理相關(guān)內(nèi)容。
(4) 第7章增加了操作系統(tǒng)原理典型算法模擬實(shí)現(xiàn)實(shí)驗(yàn)、Linux系統(tǒng)塊設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)實(shí)驗(yàn),以充分滿足不同層次教學(xué)需要。此外,調(diào)整了原書7.2節(jié)及7.3節(jié)的順序,使實(shí)踐環(huán)節(jié)的開展更加符合由簡單到綜合的原則。
雖經(jīng)多次修改、補(bǔ)充和完善,但限于作者時(shí)間、水平和能力,書中仍難免還有不當(dāng)和疏漏之處,懇請(qǐng)讀者批評(píng)指正。作者聯(lián)系郵箱:whzhao@hdu.edu.cn。
作 者
2022年1月
第1章 操作系統(tǒng)引論 1
1.1 什么是操作系統(tǒng) 2
1.1.1 計(jì)算機(jī)系統(tǒng) 2
1.1.2 操作系統(tǒng)的概念 3
1.2 操作系統(tǒng)的發(fā)展與分類 4
1.3 操作系統(tǒng)的特征和功能 8
1.3.1 操作系統(tǒng)的特征 8
1.3.2 操作系統(tǒng)的功能 9
1.4 操作系統(tǒng)用戶接口 10
1.5 操作系統(tǒng)內(nèi)核結(jié)構(gòu) 11
1.6 典型操作系統(tǒng)介紹 13
1.7 本章小結(jié) 14
本章習(xí)題 15
第2章 操作系統(tǒng)硬件基礎(chǔ) 17
2.1 處理器計(jì)算 17
2.1.1 處理器指令 17
2.1.2 尋址方式 19
2.1.3 寄存器 21
2.1.4 處理器特權(quán)級(jí) 23
2.2 存儲(chǔ)系統(tǒng) 23
2.2.1 高速緩沖存儲(chǔ)器 25
2.2.2 內(nèi)存 27
2.2.3 堆棧 28
2.2.4 磁盤 29
2.2.5 非易失性存儲(chǔ) 31
2.2.6 局部性原理 31
2.3 中斷和時(shí)鐘 33
2.3.1 中斷和異常 33
2.3.2 系統(tǒng)調(diào)用 39
2.3.3 系統(tǒng)時(shí)鐘 42
2.4 本章小結(jié) 44
本章習(xí)題 45
第3章 進(jìn)程管理 47
3.1 進(jìn)程的引入 47
3.1.1 程序的并發(fā)執(zhí)行及特征 48
3.1.2 進(jìn)程管理功能 50
3.2 進(jìn)程的概念 51
3.2.1 進(jìn)程定義與特征 51
3.2.2 進(jìn)程狀態(tài)及轉(zhuǎn)換 52
3.2.3 Linux進(jìn)程狀態(tài)解析 53
3.2.4 進(jìn)程控制塊 54
3.3 進(jìn)程控制 56
3.3.1 進(jìn)程創(chuàng)建 56
3.3.2 進(jìn)程撤銷 57
3.3.3 進(jìn)程阻塞與喚醒 57
3.3.4 Linux進(jìn)程管理 58
3.4 進(jìn)程同步 64
3.4.1 進(jìn)程同步的基本概念 64
3.4.2 進(jìn)程同步機(jī)制及應(yīng)用 66
3.4.3 經(jīng)典進(jìn)程同步問題 76
3.4.4 管程機(jī)制 80
3.4.5 Linux同步機(jī)制解析 83
3.5 進(jìn)程調(diào)度 91
3.5.1 進(jìn)程調(diào)度的基本概念 91
3.5.2 進(jìn)程調(diào)度算法 95
3.5.3 多處理器調(diào)度 100
3.5.4 Linux調(diào)度算法解析 104
3.6 進(jìn)程通信 116
3.6.1 進(jìn)程通信類型 116
3.6.2 消息緩沖隊(duì)列通信機(jī)制 121
3.6.3 Linux進(jìn)程通信機(jī)制 123
3.7 進(jìn)程死鎖 131
3.7.1 死鎖的基本概念 131
3.7.2 預(yù)防死鎖 134
3.7.3 避免死鎖 135
3.7.4 死鎖的檢測(cè)與解除 139
3.8 線程機(jī)制 142
3.8.1 線程的基本概念 142
3.8.2 線程的實(shí)現(xiàn)機(jī)制 146
3.8.3 Linux線程機(jī)制 149
3.9 openEuler進(jìn)程管理簡介 153
3.9.1 進(jìn)程控制塊 153
3.9.2 進(jìn)程創(chuàng)建與終止 157
3.9.3 進(jìn)程調(diào)度 158
3.9.4 進(jìn)程同步 161
3.10 本章小結(jié) 163
本章習(xí)題 165
第4章 存儲(chǔ)器管理 173
4.1 存儲(chǔ)器管理概述 173
4.1.1 多級(jí)存儲(chǔ)器體系 173
4.1.2 存儲(chǔ)器管理功能 175
4.1.3 程序的裝入和鏈接 176
4.2 連續(xù)存儲(chǔ)器管理方式 177
4.2.1 固定分區(qū)方式 177
4.2.2 可變分區(qū)方式 178
4.3 分頁存儲(chǔ)管理方式 181
4.3.1 分頁存儲(chǔ)管理基本原理 181
4.3.2 兩級(jí)和多級(jí)頁表 185
4.4 分段存儲(chǔ)管理方式 185
4.5 段頁式存儲(chǔ)管理方式 188
4.6 虛擬存儲(chǔ)系統(tǒng) 190
4.6.1 虛擬存儲(chǔ)器的基本概念 190
4.6.2 請(qǐng)求分頁存儲(chǔ)管理方式 191
4.7 Linux內(nèi)存管理機(jī)制 196
4.7.1 Linux地址映射機(jī)制 196
4.7.2 Linux物理內(nèi)存空間管理 201
4.7.3 Linux虛擬地址空間管理 218
4.8 openEuler中的多級(jí)頁表 223
4.8.1 openEuler的虛擬內(nèi)存 223
4.8.2 內(nèi)存管理單元MMU 225
4.8.3 openEuler多級(jí)頁表 225
4.8.4 加速地址轉(zhuǎn)換 227
4.8.5 標(biāo)準(zhǔn)大頁和大頁池 227
4.9 本章小結(jié) 230
本章習(xí)題 231
第5章 設(shè)備管理 237
5.1 設(shè)備管理的功能 237
5.2 I/O系統(tǒng) 238
5.2.1 設(shè)備的分類 238
5.2.2 設(shè)備控制器 239
5.2.3 I/O通道 241
5.2.4 I/O系統(tǒng)結(jié)構(gòu) 242
5.3 I/O控制方式 243
5.4 緩沖管理 245
5.4.1 緩沖的引入 245
5.4.2 緩沖的實(shí)現(xiàn)機(jī)制 246
5.5 I/O軟件 249
5.5.1 I/O軟件的層次模型 249
5.5.2 獨(dú)立于設(shè)備的軟件 250
5.5.3 設(shè)備驅(qū)動(dòng)程序的基本概念 252
5.5.4 用戶空間的I/O軟件 254
5.6 設(shè)備分配 255
5.7 SPOOLing系統(tǒng) 256
5.8 Linux字符設(shè)備驅(qū)動(dòng)程序 257
5.8.1 Linux字符設(shè)備驅(qū)動(dòng)程序基礎(chǔ) 257
5.8.2 字符設(shè)備驅(qū)動(dòng)程序設(shè)計(jì) 261
5.8.3 字符設(shè)備驅(qū)動(dòng)程序舉例 263
5.9 Linux中斷處理機(jī)制 269
5.9.1 Linux中斷處理機(jī)制概述 269
5.9.2 中斷服務(wù)例程的注冊(cè)和注銷 271
5.9.3 上半部的處理過程 272
5.9.4 下半部的實(shí)現(xiàn)機(jī)制 273
5.10 本章小結(jié) 279
本章習(xí)題 280
第6章 文件系統(tǒng) 281
6.1 文件和文件系統(tǒng) 282
6.1.1 文件 282
6.1.2 文件系統(tǒng) 283
6.1.3 文件操作 284
6.2 文件的結(jié)構(gòu)和存取 285
6.2.1 文件的邏輯結(jié)構(gòu) 285
6.2.2 文件的物理結(jié)構(gòu) 287
6.2.3 文件存取 292
6.3 文件目錄管理 292
6.3.1 文件目錄的概念 293
6.3.2 文件目錄結(jié)構(gòu) 296
6.3.3 目錄檢索技術(shù) 299
6.4 文件存儲(chǔ)空間管理 299
6.5 文件共享和文件保護(hù) 304
6.5.1 文件共享 304
6.5.2 文件保護(hù) 306
6.6 磁盤調(diào)度 309
6.6.1 磁盤管理概述 309
6.6.2 磁盤調(diào)度算法 310
6.7 Linux文件系統(tǒng) 312
6.7.1 Linux文件系統(tǒng)概述 312
6.7.2 虛擬文件系統(tǒng)VFS 314
6.7.3 文件系統(tǒng)的注冊(cè)、安裝和卸載 320
6.7.4 Linux文件系統(tǒng)對(duì)文件的操作 324
6.7.5 Ext文件系統(tǒng) 329
6.8 本章小結(jié) 337
本章習(xí)題 338
第7章 操作系統(tǒng)實(shí)驗(yàn) 342
7.1 Linux常用工具介紹 342
7.1.1 Linux基本使用 342
7.1.2 查看Linux源碼內(nèi)容工具 347
7.1.3 Linux中的匯編語言 355
7.2 操作系統(tǒng)原理典型算法的模擬實(shí)現(xiàn) 359
7.2.1 設(shè)計(jì)目的和實(shí)驗(yàn)環(huán)境 359
7.2.2 設(shè)計(jì)內(nèi)容 360
7.2.3 實(shí)驗(yàn)思考 365
7.3 實(shí)驗(yàn)一:Linux內(nèi)核模塊編程 366
7.3.1 設(shè)計(jì)目的和內(nèi)容要求 366
7.3.2 Linux內(nèi)核模塊簡介 366
7.3.3 內(nèi)核模塊編程基礎(chǔ) 367
7.3.4 實(shí)驗(yàn)指南 372
7.3.5 添加內(nèi)核模塊或系統(tǒng)調(diào)用
備選題目 374
7.4 實(shí)驗(yàn)二:Linux內(nèi)核編譯及添加
系統(tǒng)調(diào)用 376
7.4.1 設(shè)計(jì)目的和內(nèi)容要求 376
7.4.2 Linux系統(tǒng)調(diào)用的基本概念 377
7.4.3 Linux添加系統(tǒng)調(diào)用的步驟 378
7.4.4 Linux內(nèi)核編譯步驟 380
7.5 實(shí)驗(yàn)三:Linux進(jìn)程管理 383
7.6 實(shí)驗(yàn)四:Linux設(shè)備驅(qū)動(dòng)程序開發(fā) 384
7.6.1 設(shè)計(jì)目的和內(nèi)容要求 384
7.6.2 Linux字符設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì) 385
7.6.3 Linux字符設(shè)備驅(qū)動(dòng)程序的
編譯及加載 388
7.6.4 USB大容量存儲(chǔ)設(shè)備驅(qū)動(dòng)程序
編寫指導(dǎo) 389
7.6.5 USB字符設(shè)備驅(qū)動(dòng)程序
編寫指導(dǎo) 393
7.7 實(shí)驗(yàn)五:簡單文件系統(tǒng)的實(shí)現(xiàn) 399
7.7.1 設(shè)計(jì)目的和內(nèi)容要求 399
7.7.2 預(yù)備知識(shí) 400
7.7.3 實(shí)例系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 402
參考文獻(xiàn) 407