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