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