本書針對(duì)計(jì)算機(jī)和其他IT專業(yè)學(xué)生的發(fā)展需求,系統(tǒng)、全面地介紹了操作系統(tǒng)的概念、原理、方法與應(yīng)用。全書共12章,包括硬件基礎(chǔ)、操作系統(tǒng)概述、進(jìn)程描述和控制、線程、互斥與同步、死鎖與饑餓、內(nèi)存管理、處理器管理、I/O設(shè)備管理、文件管理、操作系統(tǒng)安全、操作系統(tǒng)發(fā)展等內(nèi)容,力圖反映操作系統(tǒng)領(lǐng)域的新知識(shí)與發(fā)展,具有較強(qiáng)的系統(tǒng)性和可讀性。
本書提供了大量習(xí)題,并為部分習(xí)題提供了參考答案。除第12章外,各章均設(shè)計(jì)了實(shí)驗(yàn)與思考環(huán)節(jié),讀者可結(jié)合Windows、Linux操作系統(tǒng),通過實(shí)踐來加深對(duì)理論知識(shí)的認(rèn)識(shí)。
本書適合用于高等院校操作系統(tǒng)課程的教學(xué),也可供有一定實(shí)踐經(jīng)驗(yàn)的軟件開發(fā)人員參考,還可以作為參加計(jì)算機(jī)軟件專業(yè)技術(shù)資格和水平考試相關(guān)人員的學(xué)習(xí)輔導(dǎo)用書。
本書力圖全面反映操作系統(tǒng)領(lǐng)域的新知識(shí)與發(fā)展,具有較強(qiáng)的系統(tǒng)性和可讀性。
本書各章由理論和實(shí)驗(yàn)兩部分組成。理論和實(shí)驗(yàn)內(nèi)容相互配合、相互聯(lián)系,保證了教學(xué)內(nèi)容的完整性。
配套提供電子課件、習(xí)題答案、教學(xué)進(jìn)度表、實(shí)驗(yàn)與思考。
操作系統(tǒng)(OS)是管理計(jì)算機(jī)硬件資源、控制其他程序運(yùn)行并為用戶提供交互界面的系統(tǒng)軟件的集合,是直接運(yùn)行在裸機(jī)上的基本的系統(tǒng)軟件。任何其他軟件都必須在操作系統(tǒng)的支持下才能運(yùn)行。操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)的關(guān)鍵組成部分,負(fù)責(zé)管理與配置內(nèi)存、決定系統(tǒng)資源供需的優(yōu)先次序、控制輸入與輸出設(shè)備、運(yùn)作網(wǎng)絡(luò)與管理文件系統(tǒng)等基本任務(wù)。
操作系統(tǒng)是構(gòu)建在計(jì)算機(jī)硬件之上的第一層軟件,也是基礎(chǔ)軟件運(yùn)行平臺(tái)的主要成分,在計(jì)算機(jī)系統(tǒng)中占據(jù)著重要的地位,是計(jì)算機(jī)系統(tǒng)的核心和靈魂。操作系統(tǒng)的性能直接影響著計(jì)算機(jī)系統(tǒng)的工作效率。操作系統(tǒng)原理是計(jì)算機(jī)類專業(yè)中一門非常重要的專業(yè)基礎(chǔ)課,理論性和實(shí)踐性都很強(qiáng)。
課程介紹:
和其他基礎(chǔ)課程相比,操作系統(tǒng)原理課程有著十分顯著的特點(diǎn)。
(1)內(nèi)容十分廣泛和龐雜
操作系統(tǒng)是隨著計(jì)算機(jī)技術(shù)的發(fā)展和計(jì)算機(jī)應(yīng)用的普及而逐漸發(fā)展和完善起來的,對(duì)操作系統(tǒng)理論的研究也隨著操作系統(tǒng)實(shí)踐的發(fā)展而不斷深入。操作系統(tǒng)涉及的內(nèi)容十分廣泛,包含了硬件、計(jì)算機(jī)組成、編譯原理、數(shù)據(jù)結(jié)構(gòu)、軟件工程、程序設(shè)計(jì)等內(nèi)容。直到今天,人們?nèi)匀豢梢詮牟僮飨到y(tǒng)原理各類教材的內(nèi)容組織中看到這些包容的痕跡。例如,中斷機(jī)構(gòu)是典型的計(jì)算機(jī)組成研究的對(duì)象,也是多數(shù)操作系統(tǒng)原理課程所必須講述的內(nèi)容;存儲(chǔ)管理中的空閑塊管理既是操作系統(tǒng)研究的課題,也是數(shù)據(jù)結(jié)構(gòu)課程的重要內(nèi)容之一,等等。
另外,操作系統(tǒng)管理著計(jì)算機(jī)系統(tǒng)的全部軟硬件資源,而這些資源本身種類繁多,特性千差萬別。要管理這些資源,就要適應(yīng)這些資源的差異,從而增加了操作系統(tǒng)的復(fù)雜性。
此外,操作系統(tǒng)的實(shí)例類型極為豐富。對(duì)于操作系統(tǒng)原理這樣一門實(shí)踐性很強(qiáng)的課程,讀者必須注意理論與實(shí)際的結(jié)合,應(yīng)該了解各種操作系統(tǒng)的實(shí)例,跟蹤研究成果,以便增加感性認(rèn)識(shí),從而更深刻地理解操作系統(tǒng)。這也給操作系統(tǒng)原理課程的組織和學(xué)習(xí)增加了難度。
(2)知識(shí)點(diǎn)難度、跨度大
操作系統(tǒng)原理課程中,各知識(shí)點(diǎn)的難度和跨度相對(duì)而言是比較大的,既有操作系統(tǒng)界面這種常見的內(nèi)容,也有進(jìn)程管理這類比較抽象、難度和跨度大的內(nèi)容,從而給學(xué)生在學(xué)習(xí)中迅速轉(zhuǎn)換角色造成了困難,出現(xiàn)了有的章節(jié)一讀就懂,一學(xué)就會(huì),而有的章節(jié)雖已苦讀多遍,但仍不得要領(lǐng)的情況。
(3)既抽象又靈活
在操作系統(tǒng)原理課程中,有許多知識(shí)點(diǎn)是必須記憶的,表現(xiàn)出來就是概念多。另外,在整個(gè)課程中很難找到一根主線。實(shí)際上,在不同的環(huán)境下,評(píng)價(jià)操作系統(tǒng)設(shè)計(jì)策略優(yōu)劣與否的標(biāo)準(zhǔn)是不同的。舉例來說,實(shí)時(shí)系統(tǒng)要求很高的可靠性和響應(yīng)及時(shí)性,但從批處理系統(tǒng)的要求來看,實(shí)時(shí)系統(tǒng)卻像是在浪費(fèi)資源。一些經(jīng)典算法,如銀行家算法和LRU算法都是理想的,但幾乎都不能運(yùn)用于實(shí)際,這就是操作系統(tǒng)的靈活性。要求讀者在學(xué)習(xí)每一部分內(nèi)容時(shí),不僅要記住給出的結(jié)論,還要認(rèn)真思考所討論問題的由來、環(huán)境、意義、理論依據(jù)和應(yīng)用背景,并結(jié)合實(shí)例,做到舉一反三。
為學(xué)好操作系統(tǒng)原理課程,建議讀者根據(jù)這門課程的特點(diǎn),有針對(duì)性地加強(qiáng)訓(xùn)練。要結(jié)合本書講授的操作系統(tǒng)實(shí)例和實(shí)驗(yàn),深刻領(lǐng)會(huì)設(shè)計(jì)思想。
操作系統(tǒng)原理是計(jì)算機(jī)類專業(yè)本科教學(xué)的一門重要的專業(yè)方向課程,甚至是計(jì)算機(jī)專業(yè)和其他專業(yè)學(xué)生的分水嶺,其教學(xué)效果對(duì)學(xué)生今后從事計(jì)算機(jī)應(yīng)用、大型軟件系統(tǒng)開發(fā)等都有著深刻的影響。
本書內(nèi)容:
本書對(duì)現(xiàn)代操作系統(tǒng)的概念、結(jié)構(gòu)和機(jī)制進(jìn)行了系統(tǒng)、全面的闡述。全書共12章,包括硬件基礎(chǔ)、操作系統(tǒng)概述、進(jìn)程描述和控制、線程、互斥與同步、死鎖與饑餓、內(nèi)存管理、處理器管理、I/O設(shè)備管理、文件管理、操作系統(tǒng)安全、操作系統(tǒng)發(fā)展等內(nèi)容,力圖全面反映操作系統(tǒng)領(lǐng)域的新知識(shí)與發(fā)展,具有較強(qiáng)的系統(tǒng)性和可讀性。
課程目標(biāo):
通過本書的學(xué)習(xí),讀者能夠系統(tǒng)地掌握操作系統(tǒng)的基本概念、主要功能、設(shè)計(jì)原理和實(shí)現(xiàn)方法,了解操作系統(tǒng)是如何管理計(jì)算機(jī)系統(tǒng)的資源及控制計(jì)算機(jī)運(yùn)行的。讀者在此基礎(chǔ)上可以更深入、更實(shí)際地了解操作系統(tǒng)的結(jié)構(gòu)和設(shè)計(jì)方法,并達(dá)到如下目標(biāo)。
1)了解操作系統(tǒng)與計(jì)算機(jī)硬件、其他應(yīng)用軟件及用戶的關(guān)系。
2)掌握操作系統(tǒng)的主要功能及實(shí)現(xiàn)原理。
3)對(duì)操作系統(tǒng)的結(jié)構(gòu)問題、死鎖問題、抖動(dòng)(顛簸)問題等重要內(nèi)容有初步了解。
4)具有獨(dú)立分析、理解操作系統(tǒng)程序代碼的能力。
5)理解和掌握當(dāng)前流行的Windows、Linux、UNIX操作系統(tǒng)的工作原理和使用方法,為以后在操作系統(tǒng)平臺(tái)上開發(fā)各種應(yīng)用軟件或系統(tǒng)軟件奠定堅(jiān)實(shí)的基礎(chǔ)。
本書各章由理論和實(shí)驗(yàn)兩部分組成。理論和實(shí)驗(yàn)內(nèi)容相互配合、相互聯(lián)系,保證了教學(xué)內(nèi)容的完整性。
本書由金海溶、周蘇主編。參加本書編寫工作的還有劉志揚(yáng)、劉均、李超、呂圣軍、王文等。本書的編寫工作得到浙江工業(yè)大學(xué)之江學(xué)院、浙大城市學(xué)院、溫州商學(xué)院等多所院校師生的支持,在此一并表示感謝。歡迎教師和編者交流。
由于編者水平有限,書中難免存在疏漏和不足,歡迎讀者批評(píng)指正。
前言
課程教學(xué)進(jìn)度表
第1章硬件基礎(chǔ)
11硬件的基本構(gòu)成
12處理器
121CPU的性能因素
122微處理器的發(fā)展
13指令與指令周期
131指令集
132指令周期
14中斷
141中斷和指令周期
142中斷處理
143多個(gè)中斷
15存儲(chǔ)器的層次結(jié)構(gòu)
151存儲(chǔ)器的重要特性
152局部性原理
153高速緩存
154啟動(dòng)計(jì)算機(jī)
16對(duì)稱多處理器和多核計(jì)算機(jī)結(jié)構(gòu)
161對(duì)稱多處理器
162多核計(jì)算機(jī)
【習(xí)題】
【實(shí)驗(yàn)與思考】熟悉計(jì)算機(jī)指令的執(zhí)行
第2章操作系統(tǒng)概述
21什么是操作系統(tǒng)
211作為用戶/計(jì)算機(jī)接口
212作為資源管理器
213作為擴(kuò)展機(jī)器
214操作系統(tǒng)的核心概念
22操作系統(tǒng)的發(fā)展歷程
221串行處理
222簡單批處理系統(tǒng)
223多道批處理系統(tǒng)
224分時(shí)系統(tǒng)
225實(shí)時(shí)操作系統(tǒng)與網(wǎng)絡(luò)操作系統(tǒng)
226現(xiàn)代操作系統(tǒng)
23操作系統(tǒng)的容錯(cuò)性
231基本概念
232錯(cuò)誤
233操作系統(tǒng)機(jī)制
24多處理器和多核操作系統(tǒng)設(shè)計(jì)因素
241對(duì)稱多處理器操作系統(tǒng)
242多核操作系統(tǒng)
【習(xí)題】
【實(shí)驗(yàn)與思考】熟悉操作系統(tǒng)實(shí)例
第3章進(jìn)程描述和控制
31什么是進(jìn)程
32進(jìn)程狀態(tài)
321兩狀態(tài)進(jìn)程模型
322進(jìn)程的創(chuàng)建和終止
3235狀態(tài)進(jìn)程模型
324被掛起的進(jìn)程
33進(jìn)程描述
331操作系統(tǒng)的控制結(jié)構(gòu)
332進(jìn)程控制結(jié)構(gòu)
34進(jìn)程控制
341進(jìn)程創(chuàng)建
342進(jìn)程切換
35操作系統(tǒng)的執(zhí)行
351無進(jìn)程的內(nèi)核
352在用戶進(jìn)程中執(zhí)行
353基于進(jìn)程的操作系統(tǒng)
【習(xí)題】
【實(shí)驗(yàn)與思考】Windows進(jìn)程的一生
第4章線程
41線程的概念
411多線程
412線程的屬性
413線程的功能特性
414線程和進(jìn)程的區(qū)別
42線程分類
421用戶級(jí)線程
422內(nèi)核級(jí)線程
423混合方法
43多核和多線程
【習(xí)題】
【實(shí)驗(yàn)與思考】利用互斥體保護(hù)共享資源
第5章互斥與同步
51并發(fā)的原理
511關(guān)于原語
512同步與互斥概述
513簡單舉例
514進(jìn)程的交互
515互斥的要求
52互斥:硬件的支持
53信號(hào)量
531信號(hào)量的設(shè)置
532強(qiáng)信號(hào)量的互斥算法
533生產(chǎn)者/消費(fèi)者問題
534讀者/寫者問題
54管程
541使用信號(hào)的管程
542使用通知和廣播的管程
55消息傳遞
551同步
552尋址
553消息格式
554排隊(duì)原則
555實(shí)施互斥的消息傳遞
【習(xí)題】
【實(shí)驗(yàn)與思考】Windows進(jìn)程同步
第6章死鎖與饑餓
61死鎖原理
611可搶占資源和不可搶占資源
612可重用資源和可消耗資源
613資源獲取
614死鎖的定義
615發(fā)生資源死鎖的條件
62死鎖預(yù)防
621互斥
622占有且等待
623不可搶占
624循環(huán)等待
63死鎖避免
631安全狀態(tài)和不安全狀態(tài)
632單個(gè)與多個(gè)資源的銀行家算法
64死鎖檢測和死鎖恢復(fù)
641死鎖檢測
642死鎖恢復(fù)
65活鎖與饑餓
651兩階段加鎖
652通信死鎖
653活鎖
654饑餓
66哲學(xué)家就餐問題
661基于信號(hào)量解決方案
662基于管程解決方案
【習(xí)題】
【實(shí)驗(yàn)與思考】Windows線程間的通信
第7章內(nèi)存管理
71內(nèi)存管理的需求
711交換
712保護(hù)
713共享
714邏輯組織
715物理組織
72內(nèi)存分區(qū)
721固定分區(qū)
722動(dòng)態(tài)分區(qū)
723伙伴系統(tǒng)
724重定位
73分頁技術(shù)
74分段技術(shù)
75虛擬內(nèi)存的硬件特征
751局部性和虛擬內(nèi)存
752分頁
753分段
754段頁式
755保護(hù)和共享
76操作系統(tǒng)的內(nèi)存管理設(shè)計(jì)
761讀取策略
762放置策略
763置換策略
764駐留集管理
765清除策略
766加載控制
【習(xí)題】
【實(shí)驗(yàn)與思考】Linux用戶程序的內(nèi)存管理
第8章處理器管理
81處理器調(diào)度的類型
811長程調(diào)度
812中程調(diào)度
813短程調(diào)度
82調(diào)度算法
821短程調(diào)度準(zhǔn)則
822優(yōu)先級(jí)的使用
823選擇調(diào)度策略
824公平共享調(diào)度
83多處理器調(diào)度
831粒度
832設(shè)計(jì)問題
833進(jìn)程調(diào)度
834線程調(diào)度
84實(shí)時(shí)調(diào)度
841實(shí)時(shí)操作系統(tǒng)的特點(diǎn)
842實(shí)時(shí)操作系統(tǒng)的特征
843實(shí)時(shí)調(diào)度
844限期調(diào)度
845速率單調(diào)調(diào)度
846優(yōu)先級(jí)反轉(zhuǎn)
【習(xí)題】
【實(shí)驗(yàn)與思考】進(jìn)程調(diào)度算法模擬實(shí)現(xiàn)
第9章I/O設(shè)備管理
91I/O硬件原理
911I/O設(shè)備
912設(shè)備控制器
913內(nèi)存映射I/O
914直接存儲(chǔ)器存取
92I/O軟件原理
921I/O軟件的目標(biāo)
922程序控制I/O
923中斷驅(qū)動(dòng)I/O
924使用DMA的I/O
93I/O軟件層次
931中斷處理程序
932設(shè)備驅(qū)動(dòng)程序
933與設(shè)備無關(guān)的I/O軟件
934用戶空間的I/O軟件
94I/O設(shè)備管理
941磁盤、光盤及固態(tài)硬盤
942磁盤臂調(diào)度算法
943磁盤陣列(RAID)
944時(shí)鐘
95用戶界面:鍵盤、鼠標(biāo)和監(jiān)視器
951輸入軟件
952輸出軟件
96電源管理
【習(xí)題】
【實(shí)驗(yàn)與思考】Linux重定向以及對(duì)聲音設(shè)備編程
第10章文件管理
101文件
1011文件命名
1012文件結(jié)構(gòu)
1013文件類型
1014文件存取
1015文件屬性
102目錄
1021一級(jí)目錄系統(tǒng)
1022層次目錄系統(tǒng)
1023路徑名
103文件系統(tǒng)的實(shí)現(xiàn)
1031文件系統(tǒng)布局
1032文件的實(shí)現(xiàn)
1033目錄的實(shí)現(xiàn)
104文件系統(tǒng)的管理和優(yōu)化
1041磁盤空間管理
1042文件系統(tǒng)備份
1043文件系統(tǒng)的一致性
1044文件系統(tǒng)性能
1045磁盤碎片整理
【習(xí)題】
【實(shí)驗(yàn)與思考】優(yōu)化Windows系統(tǒng)
第11章操作系統(tǒng)安全
111安全的概念
112威脅、攻擊與資產(chǎn)
1121威脅與資產(chǎn)
1122數(shù)據(jù)意外遺失
1123入侵者
1124惡意軟件
1125應(yīng)對(duì)措施
113緩沖區(qū)溢出
1131緩沖區(qū)溢出攻擊
1132編譯和運(yùn)行時(shí)防御
114訪問控制
1141文件系統(tǒng)控制
1142訪問控制策略
1143身份驗(yàn)證控制
115操作系統(tǒng)加固
1151操作系統(tǒng)安裝:初裝與更新
1152刪除不必要的服務(wù)、應(yīng)用與協(xié)議
1153配置用戶、組和認(rèn)證過程
1154安裝額外的安全控制工具
1155對(duì)系統(tǒng)安全進(jìn)行測試
116安全性維護(hù)
1161記錄日志
1162數(shù)據(jù)備份和存檔
【習(xí)題】
【實(shí)驗(yàn)與思考】Windows 11的安全性概覽
第12章操作系統(tǒng)發(fā)展
121嵌入式操作系統(tǒng)
1211嵌入式系統(tǒng)的概念
1212嵌入式操作系統(tǒng)的特性
1213嵌入式Linux操作系統(tǒng)
1214嵌入式操作系統(tǒng)TinyOS
122虛擬機(jī)
1221虛擬機(jī)的概念
1222虛擬機(jī)管理程序
1223容器虛擬化
1224處理器問題
1225內(nèi)存管理
1226輸入/輸出管理
123云操作系統(tǒng)
1231云計(jì)算要素
1232云計(jì)算參考架構(gòu)
1233云操作系統(tǒng)的IaaS模型
1234云操作系統(tǒng)的基本架構(gòu)
124物聯(lián)網(wǎng)操作系統(tǒng)
1241物聯(lián)網(wǎng)的概念
1242物聯(lián)網(wǎng)和云環(huán)境
1243受限設(shè)備
1244物聯(lián)網(wǎng)操作系統(tǒng)的要求
1245物聯(lián)網(wǎng)操作系統(tǒng)架構(gòu)
125機(jī)器人操作系統(tǒng)
【習(xí)題】
【課程學(xué)習(xí)與實(shí)驗(yàn)總結(jié)】
附錄部分習(xí)題參考答案
參考文獻(xiàn)