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