本書在修改之前,課程組征詢和歸納了使用本教材的部分院校師生的反饋意見,參考碩士研究生入學(xué)考試大綱,并結(jié)合實(shí)際教學(xué)中的體會,研討了操作系統(tǒng)理論、技術(shù)和應(yīng)用的最新發(fā)展。在本次修訂中,我們力求能夠突出理論基本點(diǎn),講清技術(shù)發(fā)展脈絡(luò),導(dǎo)人最新知識應(yīng)用,并專門增加了有關(guān)Linux的設(shè)計(jì)實(shí)現(xiàn)技術(shù)的內(nèi)容。近來,“勒索”病毒在網(wǎng)上肆虐,運(yùn)行Windows系統(tǒng)的機(jī)器紛紛中招,在全球造成了重大損失和嚴(yán)重恐慌,然而,在運(yùn)行Linux系統(tǒng)的機(jī)器上并未出現(xiàn)這種災(zāi)難。可見,推廣、使用和開發(fā)Linux系統(tǒng)是正確的選擇。
與第1版相比,本次修訂進(jìn)行了一系列重要修改,主要包括以下幾個方面:
1)在第1章中,1.1.1節(jié)增加了“看待操作系統(tǒng)的進(jìn)程管理觀點(diǎn)”的內(nèi)容,對操作系統(tǒng)的運(yùn)行環(huán)境做了補(bǔ)充,詳細(xì)討論了系統(tǒng)程序和系統(tǒng)調(diào)用之間的關(guān)系,借助圖例進(jìn)一步闡述了命令行接口和圖形用戶接口,詳細(xì)討論了微內(nèi)核結(jié)構(gòu)。
2)在第2章中,采用了較規(guī)范化的進(jìn)程定義,詳細(xì)討論了進(jìn)程掛起狀態(tài),給出Linux中task_ struct結(jié)構(gòu)的簡要定義;詳細(xì)討論了Linux有關(guān)進(jìn)程操作的命令和系統(tǒng)調(diào)用使用示例;更嚴(yán)謹(jǐn)?shù)孛枋隽送胶突コ獾暮x,對信號量的類型做了界定,改寫了“哲學(xué)家進(jìn)餐問題”的算法;增加了“使用信號量的幾點(diǎn)提示”內(nèi)容,以答復(fù)實(shí)際授課中學(xué)生對信號量和P、V操作解決進(jìn)程同步等問題時的疑惑,這僅是粗淺體會,希望起到“拋磚引玉”的效果;增加了2.8節(jié);修訂了對活鎖概念的介紹。
3)在第3章中,增加了3.4節(jié),增加了關(guān)于“高響應(yīng)比優(yōu)先法”的例題。
4)在第4章中,4.1節(jié)增加了“用戶程序的主要處理過程”方面的內(nèi)容,將動態(tài)重定位的實(shí)現(xiàn)過程并入“動態(tài)重定位”,補(bǔ)充了“覆蓋技術(shù)”的相關(guān)介紹,添加了空閑分區(qū)鏈的圖示;將原4.9節(jié)調(diào)整為4.5節(jié);增加了4個頁面置換算法,即“第二次機(jī)會置換法”“時鐘置換法”“最少使用置換法”和“頁面緩沖算法”;刪除了4.9節(jié)中有關(guān)“鏈接中斷處理”的內(nèi)容;增加了4.10.3節(jié)。
5)在第5章中,補(bǔ)充了關(guān)于“UNIX文件系統(tǒng)的i節(jié)點(diǎn)”的內(nèi)容,增加了5.7.3節(jié)。
6)在第6章中,增加了6.1.3節(jié)、6.5.2節(jié)、6.5.3節(jié),以及補(bǔ)充了6.5.4等的內(nèi)容。
7)在第7章中,擴(kuò)充了“嵌入式系統(tǒng)”和“分布式系統(tǒng)”方面的內(nèi)容;增加了7.2.7節(jié),以適應(yīng)當(dāng)前信息技術(shù)最熱門應(yīng)用的潮流。
8)各章后面增加了有代表性的習(xí)題,附錄A中增加了一個實(shí)驗(yàn)指導(dǎo)。另外,對書后給出習(xí)題參考答案的做法一直存在爭議,褒貶不一。此次修訂時我們?nèi)∠嗽瓡戒浿械膮⒖即鸢福鈭D是提升學(xué)生自主思考、分析、解決問題的能力,培養(yǎng)勤信作風(fēng),幫助教師了解學(xué)生對相關(guān)知識的真實(shí)掌握情況。為輔助教師備課,我們將另外提供這部分資料。
9)最后,對原書中不妥、不確切、不明了的表述做了修訂。
全書共分7章:
第1章是操作系統(tǒng)概述,主要介紹操作系統(tǒng)的概念、基本功能、主要特征、在計(jì)算機(jī)系統(tǒng)中的地位,以及操作系統(tǒng)的基本類型及主要結(jié)構(gòu)、UNIx和Linux系統(tǒng)的核心結(jié)構(gòu)。
第2章是進(jìn)程管理,主要介紹進(jìn)程的概念、進(jìn)程的狀態(tài)和組成、進(jìn)程管理、進(jìn)程同步與互斥、進(jìn)程通信、線程和管程、死鎖的定義及各種對策。
第3章是處理機(jī)調(diào)度,主要介紹調(diào)度的級別、各級調(diào)度的功能和模型、調(diào)度性能評價標(biāo)準(zhǔn)及常用調(diào)度算法、中斷處理和系統(tǒng)調(diào)用、shell基本工作原理。
第4章是存儲管理,主要介紹與地址空間有關(guān)的基本概念、分區(qū)管理、基本的分頁技術(shù)和分段技術(shù)、虛擬存儲器、請求分頁和請求分段技術(shù)、Linux中的存儲管理技術(shù)。
第5章是文件系統(tǒng),主要介紹文件分類、文件系統(tǒng)的功能、文件的邏輯組織和物理組織、文件的目錄結(jié)構(gòu)、文件的存儲空間管理、文件的可靠性、文件共享和保護(hù)、Linux文件系統(tǒng)。
第6章是設(shè)備管理,主要介紹設(shè)備管理的有關(guān)概念和功能、設(shè)備分配技術(shù)、I/O軟件構(gòu)造原則、磁盤調(diào)度和管理、Linux系統(tǒng)設(shè)備管理。
第7章是操作系統(tǒng)的發(fā)展和安全性,主要介紹操作系統(tǒng)發(fā)展的動力、現(xiàn)代操作系統(tǒng)的發(fā)展、系統(tǒng)的安全性、系統(tǒng)性能評價。
書后三個附錄分別給出了實(shí)驗(yàn)指導(dǎo)、Linux常用系統(tǒng)調(diào)用和庫函數(shù)、Linux常用命令。
由于各學(xué)校課程設(shè)置、學(xué)時安排及學(xué)生程度等方面存在差異,在應(yīng)用本書授課時,可以對內(nèi)容進(jìn)行適當(dāng)取舍。下面列出的理論課學(xué)時安排建議是我們多年授課的體會,僅供參考。
本次修訂工作主要由孟慶昌、張志華完成,參與編寫、整理、錄人工作的還有劉振英、牛欣源、路旭強(qiáng)、孟欣、馬鳴遠(yuǎn)等。
由于編者水平有限,時間倉促,對廣大讀者的需求尚缺乏廣泛深入的了解,書中難免存在不妥甚至錯誤之處,懇切期望廣大讀者給予批評指正,并及時反饋用書信息。
作者2017年7月于北京信息科技大學(xué)