操作系統(tǒng)原理與Linux實(shí)例設(shè)計(jì)-(第2版)
定 價(jià):39 元
- 作者:蒲曉蓉
- 出版時(shí)間:2014/6/1
- ISBN:9787121232046
- 出 版 社:電子工業(yè)
- 中圖法分類:TP316.89
- 頁碼:455000
- 紙張:
- 版次:1
- 開本:16開
本書從原理性和實(shí)用性出發(fā),以現(xiàn)代操作系統(tǒng)原理為基礎(chǔ),較深入地介紹Linux操作系統(tǒng)中的部分功能實(shí)現(xiàn)與應(yīng)用編程技術(shù)。全書共6章,主要內(nèi)容包括:概述、進(jìn)程的并發(fā)控制、存儲管理、設(shè)備管理、文件管理系統(tǒng)及嵌入式操作系統(tǒng)。本書提供多媒體電子課件和習(xí)題解答。
目錄
第1章 概述 1
1.1 計(jì)算機(jī)系統(tǒng)資源與操作系統(tǒng) 1
1.2 操作系統(tǒng)的發(fā)展 4
1.2.1 推動操作系統(tǒng)發(fā)展的關(guān)鍵因素 4
1.2.2 操作系統(tǒng)發(fā)展的幾個典型轉(zhuǎn)變 5
1.2.3 操作系統(tǒng)的進(jìn)一步發(fā)展 7
1.3 現(xiàn)代操作系統(tǒng)的設(shè)計(jì)概述 8
1.3.1 操作系統(tǒng)的功能性需求 8
1.3.2 操作系統(tǒng)的非功能性需求 12
1.3.3 操作系統(tǒng)依賴的硬件平臺 13
1.3.4 操作系統(tǒng)的體系結(jié)構(gòu) 14
1.3.5 操作系統(tǒng)中的關(guān)鍵數(shù)據(jù)結(jié)構(gòu) 17
1.4 Linux操作系統(tǒng)簡介 18
1.4.1 Linux的起源及特性 18
1.4.2 Linux系統(tǒng)運(yùn)行的基本硬件
平臺 19
1.4.3 主流Linux操作系統(tǒng)版本簡介 19
1.5 Linux的系統(tǒng)調(diào)用分析 21
1.5.1 系統(tǒng)調(diào)用的含義 21
1.5.2 系統(tǒng)調(diào)用的作用 21
1.5.3 系統(tǒng)調(diào)用的工作原理 22
1.5.4 Linux系統(tǒng)調(diào)用的相關(guān)數(shù)據(jù)
結(jié)構(gòu) 22
1.5.5 Linux新型快速系統(tǒng)調(diào)用機(jī)制
簡析 23
1.6 Linux的系統(tǒng)調(diào)用設(shè)計(jì) 24
1.6.1 添加一個系統(tǒng)調(diào)用 24
1.6.2 系統(tǒng)調(diào)用測試 26
1.6.3 系統(tǒng)調(diào)用過程分析 26
習(xí)題 29
第2章 進(jìn)程的并發(fā)控制 30
2.1 并發(fā)、程序與進(jìn)程 30
2.1.1 并發(fā)概述 30
2.1.2 程序的順序執(zhí)行與并發(fā)執(zhí)行 31
2.1.3 進(jìn)程及其運(yùn)行環(huán)境 33
2.2 進(jìn)程的狀態(tài)轉(zhuǎn)換 35
2.2.1 五狀態(tài)進(jìn)程模型 35
2.2.2 進(jìn)程的掛起狀態(tài)與七狀態(tài)進(jìn)程
模型 37
2.2.3 Linux的進(jìn)程及其狀態(tài)轉(zhuǎn)換 39
2.3 操作系統(tǒng)對進(jìn)程的控制 41
2.3.1 操作系統(tǒng)內(nèi)核 41
2.3.2 進(jìn)程的構(gòu)成及進(jìn)程的組織 43
2.3.3 進(jìn)程控制塊 44
2.3.4 操作系統(tǒng)對進(jìn)程的控制 47
2.3.5 Linux對進(jìn)程的控制 50
2.3.6 Linux的內(nèi)核機(jī)制 52
2.4 線程——另一種并發(fā)實(shí)體 55
2.4.1 進(jìn)程與線程 55
2.4.2 多線程并發(fā) 56
2.4.3 線程的類型 57
2.4.4 Linux的進(jìn)程與線程管理 58
2.5 進(jìn)程調(diào)度 59
2.5.1 調(diào)度的目標(biāo)、原則和方式 60
2.5.2 調(diào)度的類型 61
2.5.3 進(jìn)程調(diào)度算法 63
2.5.4 實(shí)時(shí)系統(tǒng)與實(shí)時(shí)任務(wù)調(diào)度 66
2.5.5 Linux的進(jìn)程調(diào)度分析 69
2.5.6 Linux下時(shí)鐘中斷與進(jìn)程調(diào)度
的關(guān)系 75
2.6 進(jìn)程并發(fā)控制:互斥與同步 77
2.6.1 并發(fā)控制 77
2.6.2 互斥與同步的解決策略 80
2.6.3 互斥/同步問題:生產(chǎn)者/
消費(fèi)者問題 89
2.6.4 互斥/同步問題:讀者/寫者
問題 92
2.6.5 Linux通信實(shí)例 94
2.6.6 Linux信號量分析 97
2.7 進(jìn)程死鎖 99
2.7.1 進(jìn)程死鎖的原因 100
2.7.2 解決死鎖的方法 101
2.7.3 預(yù)防死鎖 102
2.7.4 避免死鎖 103
2.7.5 檢測并解除死鎖 107
2.8 死鎖問題:哲學(xué)家進(jìn)餐問題 108
習(xí)題 110
第3章 存儲管理 113
3.1 存儲管理子系統(tǒng)概述 113
3.1.1 存儲分配 113
3.1.2 地址映射 114
3.1.3 存儲保護(hù) 116
3.1.4 存儲共享 116
3.1.5 存儲擴(kuò)充 117
3.2 簡單存儲管理技術(shù) 117
3.2.1 簡單存儲分區(qū)技術(shù) 117
3.2.2 簡單存儲分頁技術(shù) 121
3.2.3 簡單存儲分段技術(shù) 125
3.2.4 簡單存儲段頁式技術(shù) 127
3.3 虛擬存儲管理技術(shù) 129
3.3.1 虛擬存儲技術(shù)概述 129
3.3.2 虛擬存儲分頁技術(shù) 131
3.3.3 虛擬存儲分段技術(shù) 132
3.3.4 虛擬存儲段頁式技術(shù) 133
3.3.5 虛擬存儲系統(tǒng)的軟件策略 134
3.4 Linux的虛擬內(nèi)存管理 143
3.4.1 80386分段機(jī)制在Linux系統(tǒng)中
的實(shí)現(xiàn) 144
3.4.2 80386的分頁機(jī)制在Linux系統(tǒng)
中的實(shí)現(xiàn) 148
3.4.3 Linux虛擬內(nèi)存管理的實(shí)現(xiàn) 152
3.5 Linux存儲器管理案例分析 157
3.5.1 共享存儲分析 157
3.5.2 共享存儲的修改與測試 172
習(xí)題 175
第4章 設(shè)備管理 177
4.1 設(shè)備管理子系統(tǒng)概述 177
4.1.1 設(shè)備管理的主要功能 177
4.1.2 設(shè)備管理分層模型 178
4.1.3 I/O控制方式 179
4.2 設(shè)備分配 180
4.2.1 相關(guān)的數(shù)據(jù)結(jié)構(gòu) 180
4.2.2 設(shè)備分配算法 182
4.3 I/O緩沖技術(shù) 184
4.4 虛擬設(shè)備 186
4.5 磁盤設(shè)備的管理 189
4.6 Linux的設(shè)備管理 193
4.6.1 Linux驅(qū)動程序的設(shè)計(jì)框架 194
4.6.2 Linux內(nèi)核模塊驅(qū)動程序
設(shè)計(jì) 198
4.6.3 驅(qū)動程序測試 203
習(xí)題 204
第5章 文件管理系統(tǒng) 205
5.1 文件管理子系統(tǒng)概述 205
5.2 文件目錄 206
5.3 文件的邏輯組織與訪問 208
5.4 文件的物理組織 211
5.4.1 文件存儲空間的分配技術(shù) 213
5.4.2 空閑空間的管理 217
5.5 Linux的虛擬文件系統(tǒng) 219
5.5.1 VFS文件系統(tǒng)的作用 220
5.5.2 VFS文件系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu) 220
5.5.3 主要數(shù)據(jù)結(jié)構(gòu)間的關(guān)系 229
5.6 文件系統(tǒng)分析與設(shè)計(jì) 229
5.6.1 文件系統(tǒng)的操作集 230
5.6.2 物理文件系統(tǒng)的注冊 235
5.6.3 文件系統(tǒng)的安裝 238
5.6.4 文件系統(tǒng)的設(shè)計(jì)與測試 241
習(xí)題 245
第6章 嵌入式操作系統(tǒng) 246
6.1 嵌入式操作系統(tǒng)概述 246
6.1.1 無處不在的嵌入式系統(tǒng) 246
6.1.2 嵌入式軟件系統(tǒng) 247
6.1.3 嵌入式操作系統(tǒng)及其特點(diǎn) 248
6.1.4 嵌入式操作系統(tǒng)的結(jié)構(gòu) 249
6.1.5 嵌入式實(shí)時(shí)內(nèi)核和擴(kuò)展組件 251
6.2 任務(wù)管理與調(diào)度 251
6.2.1 任務(wù)及其管理 251
6.2.2 任務(wù)調(diào)度 252
6.3 任務(wù)間的同步、互斥與通信 254
6.3.1 信號量 254
6.3.2 事件 256
6.3.3 異步信號 256
6.3.4 消息隊(duì)列 256
6.3.5 管道 257
6.4 中斷管理 258
6.4.1 中斷處理過程 258
6.4.2 中斷嵌套 259
6.5 時(shí)鐘管理 260
6.5.1 實(shí)時(shí)時(shí)鐘和系統(tǒng)時(shí)鐘 260
6.5.2 時(shí)間管理 260
6.6 內(nèi)存與設(shè)備管理 261
6.6.1 內(nèi)存管理 261
6.6.2 設(shè)備管理 263
6.7 嵌入式文件系統(tǒng) 264
6.8 嵌入式操作系統(tǒng)與通用操作系統(tǒng)
的比較 265
6.9 代表性嵌入式操作系統(tǒng) 265
6.9.1 VxWorks 266
6.9.2 Windows Phone 267
6.9.3 Embedded Linux 267
6.9.4 Symbian 267
6.9.5 iOS系統(tǒng) 268
6.9.6 Android系統(tǒng) 268
習(xí)題 275
參考文獻(xiàn) 276
前言
計(jì)算機(jī)技術(shù)的發(fā)展不僅極大地促進(jìn)了科學(xué)技術(shù)的發(fā)展,而且明顯地加快了經(jīng)濟(jì)信息化和社會信息化的進(jìn)程。因此,計(jì)算機(jī)教育在各國備受重視,具備計(jì)算機(jī)知識與能力已成為21世紀(jì)人才的基本素質(zhì)之一。
計(jì)算機(jī)操作系統(tǒng)是現(xiàn)代計(jì)算機(jī)系統(tǒng)中的核心基礎(chǔ)系統(tǒng)軟件,操作系統(tǒng)設(shè)計(jì)原理與實(shí)現(xiàn)技術(shù)是計(jì)算機(jī)專業(yè)人員必須掌握的基本知識。操作系統(tǒng)經(jīng)典原理不僅適合于具體操作系統(tǒng)的實(shí)現(xiàn),同時(shí)也對應(yīng)用程序設(shè)計(jì)具有很好的指導(dǎo)意義。因此,學(xué)習(xí)和研究操作系統(tǒng)的一般原理,了解操作系統(tǒng)涉及的關(guān)鍵術(shù)語、數(shù)據(jù)結(jié)構(gòu)、經(jīng)典算法,對于計(jì)算機(jī)專業(yè)知識的構(gòu)建是非常必要和重要的。然而,單純的原理介紹太過于理論化,結(jié)合一個具體操作系統(tǒng)實(shí)例進(jìn)行分析,將有助于對操作系統(tǒng)原理的理解,提高系統(tǒng)級應(yīng)用程序設(shè)計(jì)能力。
本書從原理性和實(shí)用性出發(fā),以現(xiàn)代操作系統(tǒng)原理為基礎(chǔ),較深入地介紹Linux操作系統(tǒng)中的部分功能實(shí)現(xiàn)與應(yīng)用編程技術(shù)。全書共6章,第1章為概述,第2章詳細(xì)地分析多進(jìn)程的并發(fā)控制,第3章介紹現(xiàn)代操作系統(tǒng)的存儲管理技術(shù)與Linux的存儲實(shí)現(xiàn),第4章分析輸入/輸出設(shè)備管理及Linux的設(shè)備管理技術(shù),第5章介紹文件管理系統(tǒng)的原理及Linux的虛擬文件系統(tǒng)實(shí)現(xiàn),第6章介紹嵌入式操作系統(tǒng)。
本教材基于操作系統(tǒng)的一般原理,結(jié)合Linux操作系統(tǒng)關(guān)鍵功能模塊的實(shí)現(xiàn),既有理論基礎(chǔ)的支撐,又配合實(shí)際操作系統(tǒng)實(shí)例分析。通過學(xué)習(xí)本書內(nèi)容,讀者可以:
系統(tǒng)了解計(jì)算機(jī)操作系統(tǒng)的一般原理;
認(rèn)識操作系統(tǒng)的各大功能模塊;
掌握計(jì)算機(jī)操作系統(tǒng)的經(jīng)典算法和數(shù)據(jù)結(jié)構(gòu);
以Linux操作系統(tǒng)為例,學(xué)習(xí)如何編程實(shí)現(xiàn)操作系統(tǒng)的具體功能模塊;
借鑒操作系統(tǒng)的原理和算法,指導(dǎo)計(jì)算機(jī)應(yīng)用程序的設(shè)計(jì)和開發(fā)。
本書語言簡明、通俗易懂,具有很強(qiáng)的專業(yè)性、技術(shù)性和實(shí)用性。本書是作者在對計(jì)算機(jī)專業(yè)和軟件專業(yè)學(xué)生進(jìn)行多年計(jì)算機(jī)操作系統(tǒng)教學(xué)的基礎(chǔ)上逐年積累編寫而成的,力求讀者能利用操作系統(tǒng)的基本原理,理解和解釋相應(yīng)的操作系統(tǒng)實(shí)例。然而,眾所周知,每一個操作系統(tǒng)實(shí)例的具體實(shí)現(xiàn)都是十分復(fù)雜的,且源于基本原理,又在基本原理的基礎(chǔ)上進(jìn)行了很大的發(fā)展和改進(jìn)。本書注重操作系統(tǒng)通用原理的介紹,對實(shí)例分析部分僅僅是一個引入,有興趣的讀者還需要參考大量的文獻(xiàn),深入了解一個操作系統(tǒng)的實(shí)現(xiàn)。本書每一章都附有一定量的習(xí)題,供學(xué)生課后練習(xí)以鞏固所學(xué)知識。本書提供教學(xué)用多媒體電子課件和習(xí)題解答,請登錄華信教育資源網(wǎng)(http://www.hxedu.com.cn)注冊下載。
本書可作為計(jì)算機(jī)專業(yè)和軟件專業(yè)本科以及碩士研究生的計(jì)算機(jī)操作系統(tǒng)結(jié)構(gòu)分析課程教材,也可供相關(guān)領(lǐng)域的工程技術(shù)人員學(xué)習(xí)和參考。
本書中關(guān)于操作系統(tǒng)原理部分由蒲曉蓉編寫,李玉軍負(fù)責(zé)第1章Linux操作系統(tǒng)簡介、Linux系統(tǒng)調(diào)用分析與設(shè)計(jì)、第4章Linux的設(shè)備管理和第5章Linux的文件系統(tǒng)等內(nèi)容的撰寫,薛瑞尼負(fù)責(zé)第2章Linux的進(jìn)程管理和第3章Linux的存儲管理等部分內(nèi)容的撰寫,周瑞負(fù)責(zé)第6章嵌入式操作系統(tǒng)的撰寫,全書由蒲曉蓉統(tǒng)稿。本書第一版的Linux實(shí)例部分由劉丹編寫,為本次改版打下了良好的基礎(chǔ),在此表示感謝!本書的編寫參考了大量近年來出版的相關(guān)技術(shù)資料,吸取了許多專家和同仁的寶貴經(jīng)驗(yàn),在此向他們深表感謝!
由于筆者經(jīng)驗(yàn)和知識等方面的不足,加之時(shí)間倉促,最后的成品未能達(dá)到筆者預(yù)期的效果,書中難免存在錯誤和不足,敬請讀者和專家批評指正。
編 者
于電子科技大學(xué)
2014年5月