本書從概念、原理和技術的角度介紹操作系統(tǒng)的基礎知識,包括進程管理、中斷與處理機調度、死鎖、存儲管理、設備管理、文件系統(tǒng)。不僅講述基本原理,而且以當今較為成熟和流行的操作系統(tǒng)如以Windows、UNIX、Linux為例,在相關章節(jié)介紹具體的實現技術和方法。此外,還介紹了近年來新出現的云操作系統(tǒng),蘋果MacOS、安卓Android等移動操作系統(tǒng)。針對云計算技術,增加篇幅介紹其實現的基礎:分布式文件系統(tǒng)。
本書有3個特色:理論和實際系統(tǒng)的實現相結合;收錄了近年來操作系統(tǒng)新的技術和發(fā)展;每章后面附一篇描述對應章節(jié)技術的英語小短文,既可拓展視野,又可以提高讀者的科技英語閱讀水平。
本書可作為普通高等院校計算機專業(yè)及相關專業(yè)的操作系統(tǒng)課程教材,也可供廣大計算機科學工作者和從事相關領域工程技術人員參考。
針對本科和考研,首先講解操作系統(tǒng)帶有共性的基本原理:進程管理、中斷與調度、死鎖、存儲管理、設備管理、文件系統(tǒng)等,然后以UNIX、Linux、Windows為例闡述具體實現。相對于封閉源代碼的Windows,開放源代碼的Linux描述得更為詳細。
操作系統(tǒng)近年一直在不斷地發(fā)展和創(chuàng)新,針對于此,本書還介紹了近年來新出現的云操作系統(tǒng)、蘋果MacOS和安卓Android等移動操作系統(tǒng)。針對云計算技術,在第10章增加篇幅介紹其實現的基礎:分布式文件系統(tǒng)。為了跟蹤國外的新技術,常常需要閱讀原版英文資料,本書亦為每章附上一篇描述該章技術的英語短文,以期能提高有需要的讀者的英語閱讀水平。
本書在原范策老師主編、清華大學出版社出版的《操作系統(tǒng)教程》的基礎上,做了內容的替換和更新。課程組所做的配套PPT,內容生動詳實、配套大量的動畫描述各種原理,方便讀者自學及用于教學。該課件榮獲第五屆全國高等學校計算機課件評比三等獎。此外,章后習題充分,附有答案,便于讀者理解和鞏固相關知識點。
第1章操作系統(tǒng)概述
1.1什么是操作系統(tǒng)
1.2操作系統(tǒng)的目標和功能
1.2.1操作系統(tǒng)的目標
1.2.2操作系統(tǒng)的功能
1.3操作系統(tǒng)的發(fā)展歷程
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網絡操作系統(tǒng)
1.4.6分布式操作系統(tǒng)
1.4.7微機操作系統(tǒng)
1.4.8嵌入式操作系統(tǒng)
1.4.9多處理機操作系統(tǒng)
1.4.10服務器操作系統(tǒng)
1.4.11大型機操作系統(tǒng)
1.4.12云操作系統(tǒng)
1.4.13移動操作系統(tǒng)
1.5支持操作系統(tǒng)的硬件環(huán)境
1.6操作系統(tǒng)的特征
1.6.1并發(fā)性
1.6.2資源共享性
1.6.3異步性
1.7現代操作系統(tǒng)
1.7.1Windows
1.7.2Mac OS
1.7.3UNIX
1.7.4Linux
1.7.5Android
1.8有關操作系統(tǒng)的研究
習題1
閱讀材料
第2章用戶接口與作業(yè)管理
2.1操作系統(tǒng)提供的用戶接口
2.1.1程序接口與系統(tǒng)調用
2.1.2操作接口與系統(tǒng)程序
2.2作業(yè)的基本概念
2.2.1作業(yè)的定義
2.2.2作業(yè)的分類
2.3批處理作業(yè)控制
2.3.1作業(yè)狀態(tài)
2.3.2作業(yè)控制塊
2.4調度算法
2.4.1作業(yè)調度算法的目標與設計因素
2.4.2單道批處理作業(yè)調度算法
2.4.3多道批處理作業(yè)調度算法
習題2
閱讀材料
第3章進程管理
3.1多道程序設計
3.2進程的概念
3.2.1前驅圖和程序執(zhí)行
3.2.2進程的描述
3.3進程控制塊和狀態(tài)轉換
3.3.1進程控制塊PCB
3.3.2進程狀態(tài)及其轉換
3.4進程控制
3.4.1操作系統(tǒng)控制結構
3.4.2進程創(chuàng)建與終止
3.4.3進程的阻塞與喚醒
3.4.4進程的掛起與激活
3.4.5進程間的相互關系
3.5線程
3.5.1線程的引入
3.5.2線程的結構與線程控制塊TCB
3.5.3線程與進程
3.5.4線程的實現
3.5.5線程的調度
3.5.6線程的應用
3.6Linux進程管理
3.6.1Linux進程結構
3.6.2Linux進程狀態(tài)及運行模式
3.6.3Linux進程控制
習題3
閱讀材料
第4章中斷和處理機調度
4.1中斷
4.1.1中斷和指令周期
4.1.2中斷處理
4.1.3多個中斷
4.1.4多道程序設計
4.1.5調度機制
4.1.6高級、中級和低級調度
4.2處理機調度
4.2.1進程調度方式
4.2.2調度算法
4.2.3調度時機
4.3實時調度
4.3.1實現實時調度的基本條件
4.3.2實時調度算法的分類
4.3.3實時調度算法
4.4多處理機調度
4.4.1多處理機系統(tǒng)的類型
4.4.2自調度
4.4.3組調度
4.5Linux系統(tǒng)進程調度
4.5.1Linux時鐘運作機制(時間基準)
4.5.2UNIX/Linux中的系統(tǒng)調用
4.5.3Linux調度程序
習題4
閱讀材料
第5章并發(fā)性——互斥、同步和通信
5.1并發(fā)的原理
5.1.1與時間有關的錯誤
5.1.2互斥與同步的概念
5.1.3臨界區(qū)與進程互斥
5.1.4硬件支持互斥的方法
5.2信號量機制
5.2.1信號量的概念
5.2.2信號量的應用
5.2.3生產者消費者問題信號量機制解法
5.2.4哲學家進餐問題信號量機制解法
5.2.5讀者寫者問題解法
5.3管程機制
5.3.1管程的概念
5.3.2生產者消費者問題管程機制解法
5.3.3哲學家進餐問題管程機制解法
5.4進程通信
5.4.1進程通信的方式
5.4.2消息緩沖通信
5.4.3信箱通信
5.4.4共享文件通信
5.4.5消息傳遞系統(tǒng)的若干問題
習題5
閱讀材料
第6章并發(fā)性——死鎖
6.1死鎖的概念
6.2產生死鎖的條件和處理
6.2.1必要條件
6.2.2處理死鎖的基本方法
6.3死鎖的預防
6.3.1預先分配策略
6.3.2有序分配策略
6.4死鎖的避免
6.4.1系統(tǒng)安全狀態(tài)
6.4.2銀行家算法
6.5死鎖的檢測與解除
6.5.1死鎖的檢測
6.5.2死鎖的解除
6.6死鎖的綜合處理策略
習題6
閱讀材料
第7章內存管理
7.1內存管理的功能
7.1.1內存分配
7.1.2地址變換
7.1.3存儲保護
7.1.4存儲共享
7.1.5存儲擴充
7.2程序的鏈接和加載
7.2.1程序的鏈接
7.2.2程序的加載
7.3連續(xù)分配方式
7.3.1單一連續(xù)分配
7.3.2固定分區(qū)分配
7.3.3動態(tài)分區(qū)分配
7.3.4可重定位分區(qū)分配
7.3.5交換和覆蓋
7.4基本分頁分配方式
7.4.1頁面與頁表
7.4.2地址變換機構
7.4.3頁面大小
7.5基本分段分配方式
7.5.1段表
7.5.2地址變換機構
7.5.3共享與保護
習題7
閱讀材料
第8章虛擬存儲管理
8.1虛擬存儲器
8.1.1虛擬存儲器的定義
8.1.2虛擬存儲器的特點
8.1.3虛擬存儲器技術需要解決的問題
8.2請求頁式分配
8.2.1請求分頁硬件支持
8.2.2內存分配策略
8.2.3內存分配方法
8.2.4缺頁處理
8.3頁面置換算法
8.3.1最優(yōu)頁面置換算法
8.3.2先進先出置換算法
8.3.3最近最少使用置換算法
8.3.4用軟件模擬LRU算法
8.3.5時鐘算法
8.3.6改進Clock算法
8.3.7工作集模型
8.4虛擬段式分配
8.4.1請求分段中的硬件支持
8.4.2地址變換機構
8.4.3缺段中斷
8.5段頁式分配方式
8.5.1段頁式分配的原理
8.5.2段頁式分配的地址變換
8.5.3分段和分頁的結合: Intel Pentium
8.6Linux系統(tǒng)的存儲管理
8.6.1Linux的虛擬存儲空間
8.6.2Linux管理內存空間的數據結構
8.6.3Linux內存區(qū)的分配、釋放和淘汰
習題8
閱讀材料
第9章設備管理
9.1I/O系統(tǒng)
9.1.1設備的類別
9.1.2設備標識
9.1.3I/O系統(tǒng)的結構
9.2I/O設備數據傳輸控制方式
9.2.1程序直接控制方式
9.2.2中斷控制方式
9.2.3DMA控制方式
9.2.4通道控制方式
9.3設備管理與功能
9.4設備分配
9.4.1設備分配中的數據結構
9.4.2設備分配應考慮的因素和分配技術
9.4.3設備分配算法
9.4.4SPOOLING系統(tǒng)
9.5緩沖技術
9.5.1緩沖的引入
9.5.2單緩沖
9.5.3雙緩沖
9.5.4循環(huán)緩沖
9.5.5緩沖池
9.6I/O軟件設計
9.6.1I/O軟件的設計目標和原則
9.6.2I/O中斷處理程序
9.6.3設備驅動程序
9.6.4與硬件無關的操作系統(tǒng)I/O軟件
9.6.5用戶空間的I/O軟件
9.7磁盤存儲器管理
9.7.1磁盤I/O
9.7.2磁盤調度算法
9.8RAID技術
9.8.1RAID技術的引入
9.8.2RAID分級
9.9Linux的設備管理
9.9.1Linux設備管理概述
9.9.2設備驅動程序和內核之間的接口
9.9.3字符設備
9.9.4塊設備
9.9.5網絡設備
習題9
閱讀材料
第10章文件管理
10.1文件系統(tǒng)的概念
10.1.1文件和文件系統(tǒng)
10.1.2文件分類
10.1.3文件操作
10.2文件的邏輯結構
10.2.1文件邏輯結構的類型
10.2.2順序文件
10.2.3索引文件
10.2.4索引順序文件
10.2.5直接文件和散列文件
10.3文件的物理結構
10.3.1順序結構
10.3.2鏈接結構
10.3.3索引結構
10.4文件的存取方法
10.4.1順序存取
10.4.2直接存取
10.4.3按鍵存取
10.5文件目錄
10.5.1文件控制塊與索引結點
10.5.2文件目錄與目錄文件
10.5.3目錄結構
10.5.4目錄查詢技術
10.6文件存儲空間管理
10.6.1空閑表和空閑鏈表
10.6.2位示圖
10.6.3UNIX成組鏈接
10.7文件共享和保護
10.7.1文件共享的模式
10.7.2文件的保護
10.8Windows文件系統(tǒng)
10.8.1Windows磁盤管理和文件系統(tǒng)驅動
10.8.2Windows文件系統(tǒng)格式
10.8.3NTFS文件系統(tǒng)的結構
10.9Linux的文件系統(tǒng)
10.9.1ext2的文件系統(tǒng)
10.9.2虛擬文件系統(tǒng)
10.10分布式文件系統(tǒng)
10.10.1分布式文件系統(tǒng)的發(fā)展階段
10.10.2HDFS系統(tǒng)構成
10.10.3HDFS文件的讀寫操作
10.10.4HDFS數據維護機制
習題10
閱讀材料
參考文獻