本書詳細介紹了操作系統(tǒng)的基本原理,以操作系統(tǒng)的五大功能作為主線,分章節(jié)闡述了操作系統(tǒng)的理論基礎。主要內(nèi)容包括用戶與操作系統(tǒng)的接口、處理器資源管理、存儲器管理、I/O設備管理、文件系統(tǒng)。*后介紹了操作系統(tǒng)安全知識,并對Windows、Linux以及Android操作系統(tǒng)作了簡單剖析。各章均配有大量的精選習題,題型豐富,有助于讀者領會和掌握相關知識。本書力求做到結合實際、突出應用、便于教學,同時各章例題錄制了視頻講解,以幫助讀者學習和掌握操作系統(tǒng)的理論知識。 本書可作為高等院校計算機科學與技術、軟件工程、網(wǎng)絡工程等各相關專業(yè)的本科教材,也可作為非計算機專業(yè)的教學參考書。
操作系統(tǒng)是計算機系統(tǒng)中最重要的系統(tǒng)軟件,它是圍繞著如何提高計算機資源利用率和改善用戶界面的友好性而形成、發(fā)展和不斷成熟的。本書針對培養(yǎng)技術型人才的特點,在注重操作系統(tǒng)原理的基礎上結合高等院校專業(yè)基礎課程的需求,深入淺出地介紹了操作系統(tǒng)的理論知識,并以各類操作系統(tǒng)為實例,引入現(xiàn)代操作系統(tǒng)所采用的最新技術。
本書是在2010年清華大學出版社出版,武偉教授主編的《操作系統(tǒng)教程》基礎上進行修訂和再版的。初版教材經(jīng)過了教學團隊的多年使用,申報并建設了上海市教委精品課程。此次在教學實踐和科學研究的基礎上,參閱了大量國內(nèi)外操作系統(tǒng)教材,再版了這本適用于高等院校計算機科學各相關專業(yè)的本科教科書。其編寫思路及特點如下:
(1) 以主流操作系統(tǒng)Linux和Windows為實例,從操作系統(tǒng)原理的角度對其做了詳盡的介紹,并在講授原理時注重理論聯(lián)系實際。
(2) 根據(jù)編者的教學經(jīng)驗,對于難以理解的部分,均以實例引出,語言淺顯易懂,使讀者能夠從簡單的實例入手,更容易地掌握操作系統(tǒng)的內(nèi)部工作原理。
(3) 本書配有大量經(jīng)過精選的習題,以幫助讀者檢驗和加深對內(nèi)容的理解。
(4) 本書在各章例題部分配備了例題講解視頻,讀者可以掃描二維碼查看例題講解。
本書參考教學時數(shù)為60~70學時。要求先修課程為數(shù)據(jù)結構匯編語言C語言和計算機組成原理。
本書的內(nèi)容是按照理工科院校計算機科學與技術專業(yè)的教學大綱編寫的。對于非計算機專業(yè)的本科教學及高職高專的計算機專業(yè)教學,可適當刪減內(nèi)容。
全書共分12章。第1、2、12章由姜麗編寫,第3章由林捷編寫,第4、5、7、8、10章由張成姝編寫,第6章由徐克奇編寫,第9、11章由曹輝編寫。本書是在武偉教授主編的第1版教程基礎上加以改編的,武偉教授主審并給予了全程指導和協(xié)助。在此,謹向武偉教授表示誠摯的謝意。
由于時間和水平所限,書中難免會有錯誤和不足之處,敬請讀者批評指正。
編者
2019年7月于上海
第1章引論
1.1操作系統(tǒng)的作用和定義
1.1.1操作系統(tǒng)的作用
1.1.2操作系統(tǒng)的定義
1.2操作系統(tǒng)的發(fā)展過程
1.3操作系統(tǒng)的功能和特性
1.3.1操作系統(tǒng)的功能
1.3.2操作系統(tǒng)的特性
1.4操作系統(tǒng)的分類
1.4.1批處理系統(tǒng)
1.4.2分時操作系統(tǒng)
1.4.3實時操作系統(tǒng)
1.4.4微機操作系統(tǒng)
1.4.5網(wǎng)絡操作系統(tǒng)
1.4.6分布式操作系統(tǒng)
1.4.7嵌入式操作系統(tǒng)
1.5操作系統(tǒng)的結構模型
1.5.1整體式模型
1.5.2層次式模型
1.5.3微內(nèi)核與客戶/服務器模型
1.5.4面向對象模型
本章小結
習題
第2章用戶與操作系統(tǒng)的接口
2.1作業(yè)控制級接口
2.1.1作業(yè)和作業(yè)類型
2.1.2脫機用戶接口
2.1.3聯(lián)機用戶接口
2.2Shell命令語言
2.2.1Shell簡介
2.2.2Shell命令
2.2.3Shell腳本
2.3程序級接口
2.3.1用戶態(tài)和核心態(tài)
2.3.2特權指令和訪管指令
2.4系統(tǒng)調(diào)用
2.4.1系統(tǒng)調(diào)用的概念和類型
2.4.2系統(tǒng)調(diào)用的實現(xiàn)
本章小結
習題
第3章進程的描述與控制
3.1程序執(zhí)行方式與進程的引入
3.1.1程序順序執(zhí)行
3.1.2程序并發(fā)執(zhí)行
3.2進程描述
3.2.1進程的定義
3.2.2進程的特性
3.2.3進程與程序的區(qū)別
3.2.4進程控制塊
3.3進程狀態(tài)
3.3.1進程執(zhí)行
3.3.2進程的基本狀態(tài)
3.3.3進程的掛起
3.4進程控制
3.4.1內(nèi)核
3.4.2微內(nèi)核
3.4.3進程控制
3.5線程
3.5.1線程引入
3.5.2線程的定義
3.5.3線程的狀態(tài)
3.5.4線程和進程的比較
3.5.5線程分類
3.5.6線程的模型
本章小結
習題
第4章進程通信
4.1進程的同步與互斥
4.1.1進程合作
4.1.2共享資源
4.1.3與時間有關的錯誤
4.1.4臨界資源與臨界區(qū)
4.1.5同步機構設計準則
4.2互斥的軟件方法
4.3硬件指令機制
4.3.1測試與設置技術
4.3.2TS指令
4.3.3利用TS實現(xiàn)進程互斥
4.4信號量機制
4.4.1整型信號量
4.4.2結構型信號量
4.4.3AND型信號量集
4.4.4管程機制
4.5用信號量機制實現(xiàn)互斥與同步
4.5.1用信號量實現(xiàn)互斥
4.5.2用信號量實現(xiàn)同步
4.6經(jīng)典進程同步問題
4.6.1生產(chǎn)者消費者問題
4.6.2哲學家就餐問題
4.6.3讀者寫者問題
4.6.4睡眠的理發(fā)師問題
4.7進程通信
4.7.1共享存儲區(qū)系統(tǒng)
4.7.2管道通信系統(tǒng)
4.7.3消息傳遞系統(tǒng)
4.7.4客戶/服務器系統(tǒng)
本章小結
習題
第5章處理器調(diào)度
5.1三級調(diào)度的概念
5.1.1作業(yè)的狀態(tài)及其轉換
5.1.2調(diào)度的層次
5.1.3調(diào)度模型
5.1.4作業(yè)和進程的關系
5.2作業(yè)調(diào)度
5.2.1作業(yè)調(diào)度的功能
5.2.2作業(yè)調(diào)度的目標與性能衡量
5.3進程調(diào)度
5.3.1進程調(diào)度的功能
5.3.2進程調(diào)度方式
5.3.3進程調(diào)度的時機
5.4常用的調(diào)度算法
5.4.1先來先服務調(diào)度算法
5.4.2短作業(yè)(進程)優(yōu)先調(diào)度算法
5.4.3時間片輪轉調(diào)度算法
5.4.4高優(yōu)先權優(yōu)先調(diào)度算法
5.4.5最高響應比優(yōu)先調(diào)度算法
5.4.6多級隊列調(diào)度算法
5.4.7多級反饋隊列調(diào)度算法
5.5實時調(diào)度
5.5.1實現(xiàn)實時調(diào)度的基本條件
5.5.2實時調(diào)度算法的分類
5.5.3最早截止時間優(yōu)先算法
5.5.4最低松弛度優(yōu)先算法
5.6實例分析: UNIX進程調(diào)度
5.6.1調(diào)度時機
5.6.2調(diào)度標記設置
5.6.3優(yōu)先數(shù)計算
5.6.4調(diào)度的實現(xiàn)
本章小結
習題
第6章死鎖
6.1死鎖的基本概念
6.1.1死鎖的定義
6.1.2死鎖產(chǎn)生的原因
6.1.3死鎖的必要條件
6.1.4處理死鎖的策略
6.2死鎖預防
6.3死鎖避免
6.3.1安全狀態(tài)和不安全狀態(tài)
6.3.2利用銀行家算法避免死鎖
6.4死鎖檢測
6.5死鎖解除
6.6死鎖綜合處理
本章小結
習題
第7章實存儲管理技術
7.1存儲管理的基本概念
7.1.1多級存儲器結構
7.1.2存儲管理要解決的問題
7.1.3存儲管理的分類
7.1.4地址重定位
7.2連續(xù)分配存儲管理方式
7.2.1單一連續(xù)分配方式
7.2.2固定分區(qū)存儲管理方式
7.2.3可變分區(qū)存儲管理方式
7.3離散分配存儲管理方式
7.3.1分頁存儲管理方式
7.3.2分段存儲管理方式
7.3.3段頁式存儲管理
本章小結
習題
第8章虛擬存儲管理技術
8.1虛擬存儲器的基本概念
8.1.1局部性原理
8.1.2虛擬存儲器
8.2對換
8.2.1多道程序環(huán)境下的對換技術
8.2.2對換空間的管理
8.3請求分頁式存儲管理方式
8.3.1請求分頁式存儲管理的基本概念
8.3.2頁面分配策略
8.3.3頁面調(diào)入時機
8.4頁面置換算法
8.4.1先進先出置換算法
8.4.2最佳置換算法
8.4.3最近最久未使用置換算法
8.4.4最近未使用置換算法
8.4.5Clock置換算法
8.4.6請求分頁系統(tǒng)的性能分析
8.5請求分段式存儲管理方式
8.5.1請求分段存儲管理的基本概念
8.5.2分段共享與保護
本章小結
習題
第9章設備管理
9.1I/O設備管理的基本概念
9.1.1I/O系統(tǒng)的功能
9.1.2I/O軟件的層次結構
9.2I/O系統(tǒng)的組成
9.2.1I/O設備概述
9.2.2設備控制器
9.2.3I/O通道
9.3I/O控制方式
9.3.1程序I/O方式
9.3.2中斷驅動I/O方式
9.3.3直接存儲器存取方式
9.3.4I/O通道方式
9.4緩沖管理
9.4.1緩沖的引入
9.4.2緩沖區(qū)及其管理
9.5設備分配
9.5.1設備分配中的數(shù)據(jù)結構
9.5.2設備分配策略
9.5.3設備獨立性
9.5.4獨占設備分配方法
9.5.5SPOOLing技術
9.6I/O軟件
9.6.1中斷處理程序
9.6.2設備驅動程序
9.6.3與設備無關的系統(tǒng)軟件
9.6.4用戶空間的I/O軟件
9.7磁盤I/O
9.7.1磁盤性能概述
9.7.2數(shù)據(jù)的組織
9.7.3磁盤訪問時間
9.7.4磁盤調(diào)度算法
本章小結
習題
第10章文件系統(tǒng)
10.1文件和文件系統(tǒng)
10.1.1文件
10.1.2文件系統(tǒng)
10.1.3文件的分類
10.1.4文件系統(tǒng)的功能和基本操作
10.2文件的邏輯結構
10.2.1文件邏輯結構的定義
10.2.2文件的組織和存取
10.3外存分配
10.3.1文件的物理結構
10.3.2連續(xù)分配
10.3.3鏈接分配
10.3.4索引分配
10.3.5文件分配表
10.4文件目錄
10.4.1文件控制塊
10.4.2索引結點
10.4.3單級目錄結構
10.4.4二級目錄結構
10.4.5多級目錄結構
10.4.6目錄查詢技術
10.5文件存儲空間的管理
10.5.1空閑表法
10.5.2空閑鏈表法
10.5.3位示圖
10.5.4成組鏈接法
10.6文件的共享
10.6.1目錄結構中的共享
10.6.2打開文件結構中的共享
10.6.3管道文件
10.7文件系統(tǒng)的安全性
10.7.1文件的存取控制
10.7.2文件的轉儲和恢復
10.8Linux文件系統(tǒng)
10.9Windows NTFS
10.9.1NTFS的重要特征
10.9.2NTFS的磁盤組織
10.9.3NTFS的文件組織
10.9.4NTFS的可恢復性
本章小結
習題
第11章操作系統(tǒng)的安全性
11.1操作系統(tǒng)安全性概述
11.1.1操作系統(tǒng)安全性的內(nèi)容
11.1.2操作系統(tǒng)安全性的特性
11.2數(shù)據(jù)的安全管理與保護
11.2.1數(shù)據(jù)加密技術
11.2.2認證技術
11.3系統(tǒng)攻擊
11.3.1內(nèi)部攻擊
11.3.2外部攻擊
11.4計算機病毒
11.4.1計算機病毒概述
11.4.2計算機病毒的分類
11.4.3常用反病毒技術
11.4.4未來計算機病毒的發(fā)展趨勢
本章小結
習題
第12章操作系統(tǒng)介紹
12.1Windows操作系統(tǒng)簡介
12.1.1Windows操作系統(tǒng)概述
12.1.2Windows系統(tǒng)結構
12.1.3Windows進程和線程
12.1.4Windows存儲管理
12.1.5Windows同步機制
12.2Linux操作系統(tǒng)簡介
12.2.1Linux操作系統(tǒng)概述
12.2.2Linux內(nèi)核模塊
12.2.3Linux進程和進程調(diào)度
12.2.4Linux內(nèi)存管理
12.2.5Linux文件管理
12.3Android操作系統(tǒng)簡介
12.3.1Android操作系統(tǒng)概述
12.3.2Android操作系統(tǒng)架構
12.3.3Android操作系統(tǒng)進程管理
12.3.4Android操作系統(tǒng)內(nèi)存管理
本章小結
習題