本書第1版自2019年10月出版以來,已重印4次,讀者在肯定該書的同時,也提出了一些建議,版本升級方面的建議尤為突出。鑒于此,新版教材增加了鴻蒙操作系統(tǒng)、PV操作經(jīng)典問題等相關(guān)內(nèi)容; 以紙質(zhì)教材 電子活頁的形式呈現(xiàn)教學(xué)內(nèi)容,擴展了紙質(zhì)教材的內(nèi)涵; 微課、思維導(dǎo)圖與教材相得益彰,創(chuàng)造性地豐富了新形態(tài)教材的形式和內(nèi)容,更能體現(xiàn)新形態(tài)教材的改革精神。
修改內(nèi)容
(1) 各章新增電子活頁內(nèi)容,優(yōu)化教學(xué)項目,完善操作系統(tǒng)資源管理算法案例。
(2) 根據(jù)作者的教學(xué)經(jīng)驗,對于讀者難以理解的部分,均以實例引出,語言淺顯易懂,使讀者能夠從簡單的實例入手,更容易地掌握操作系統(tǒng)的復(fù)雜工作原理。
(3) 本書采用了知識點思維導(dǎo)圖、微課和算法詳細案例的形式輔助教學(xué),使用紙質(zhì)教材 電子活頁的模式,增加了豐富的網(wǎng)絡(luò)數(shù)字化資源。
(4) 本書配有大量經(jīng)過精選的習(xí)題,以幫助讀者檢驗和加深對內(nèi)容的理解,為部分難度特別大的例題和習(xí)題配有詳細的講解視頻。
主要特點
再版教材最大的特點是為教師和學(xué)生提供了一站式課程解決方案和立體化教學(xué)資源,助力易教易學(xué)。
1) 精品課程和線上線下混合式改革課程的配套教材
在使用本書進行教學(xué)時需要用到的教學(xué)大綱、課件、電子教案、實踐教學(xué)、授課計劃、學(xué)習(xí)指南、習(xí)題解答、補充材料等內(nèi)容,都能夠在精品資源共享課程網(wǎng)站上找到。
2) 提供教、學(xué)、做一站式課程解決方案
本書提供微課 學(xué)習(xí)平臺 共享課程 資源庫四位一體教學(xué)平臺,配有主要知識點的思維導(dǎo)圖、微課和實驗實訓(xùn)課,精品資源共享課程建有開放共享型資源,提供教、學(xué)、做、考一站式課程解決方案。
3) 符合三教改革精神,創(chuàng)新教材形態(tài)
將教材、課堂、教學(xué)資源、LEEPEE教學(xué)法四者融合,實現(xiàn)線上線下有機結(jié)合,為翻轉(zhuǎn)課堂和混合課堂改革奠定了基礎(chǔ),體現(xiàn)了教、學(xué)、做的完美統(tǒng)一。
4) 采用紙質(zhì)教材 電子活頁的形式編寫教材
配套豐富的數(shù)字資源,包含視頻、大綱、課件、思維導(dǎo)圖、實訓(xùn)教程、拓展資源等。實現(xiàn)紙質(zhì)教材三年內(nèi)修訂、電子活頁隨時增減的目標。
本書由張練興、朱明華、李宏偉、柯勝男編著。其中,第1、2章由李宏偉編寫,第3、4章由柯勝男編寫,第5、6章由朱明華編寫,第7、8章由張練興編寫,全書由謝旭升教授主審。在本書的修訂過程中,作者聽取了諸多授課教師與廣大讀者的意見和建議,在此謹致謝意!
限于個人水平和時間倉促,書中難免存在錯誤和不足之處,懇請同行和廣大讀者,特別是使用本書的教師和學(xué)生多提寶貴意見。
作者
2022年3月
隨著計算機科學(xué)與技術(shù)的飛速發(fā)展,作為計算機系統(tǒng)核心與靈魂的操作系統(tǒng)也在不斷發(fā)展中,操作系統(tǒng)作為一門計算機專業(yè)的必修課程,無論是對于計算機及其相關(guān)專業(yè)的學(xué)生,還是對于一般的計算機應(yīng)用人員而言都是非常有益而重要的。
本書從計算機資源管理觀點來剖析操作系統(tǒng)的概念、原理、設(shè)計與實現(xiàn),闡述了傳統(tǒng)操作系統(tǒng)的基本概念、技術(shù)與方法,同時還介紹現(xiàn)代操作系統(tǒng)最新技術(shù)發(fā)展與應(yīng)用。全書共分8章。第1章介紹了操作系統(tǒng)的基本概念、操作系統(tǒng)的形成與發(fā)展、操作系統(tǒng)的功能、操作系統(tǒng)的特征和作用、操作系統(tǒng)的體系結(jié)構(gòu),并對現(xiàn)代典型操作系統(tǒng)進行介紹; 第2章介紹了并發(fā)執(zhí)行的特征以及進程與線程的概念,對進程控制、進程互斥與同步、進程通信等問題進行了分析和討論; 第3章介紹了死鎖產(chǎn)生的原因、產(chǎn)生死鎖的必要條件以及死鎖的處理方法; 第4章介紹了中斷的概念、系統(tǒng)的三級調(diào)度體系、進程調(diào)度的目標和方式、進程調(diào)度算法的評價標準,并對幾種常見的進程調(diào)度算法進行了討論; 第5章介紹了存儲管理的基本功能,討論存儲管理發(fā)展中常見的存儲管理技術(shù)和虛擬存儲管理技術(shù); 第6章介紹了I/O系統(tǒng)結(jié)構(gòu)、I/O控制方式和緩沖技術(shù),對設(shè)備的分配、磁盤驅(qū)動調(diào)度算法和虛擬設(shè)備技術(shù)進行了討論; 第7章介紹了文件及文件系統(tǒng)的概念,對文件目錄、文件組織、文件存儲、文件操作、文件共享、文件保護與保密的問題進行了分析和討論; 第8章介紹了作業(yè)的概念、作業(yè)控制方式、批處理作業(yè)管理和交互式作業(yè)管理、用戶接口等,著重討論了批處理作業(yè)調(diào)度算法。本書各章都配有一節(jié),以Linux為實例對操作系統(tǒng)功能進行介紹。
本書由作者在多年教學(xué)工作的基礎(chǔ)上參閱相關(guān)文獻而編寫。在介紹操作系統(tǒng)基本理論的同時,除第3章外的各章都配有Linux的相關(guān)介紹,以幫助讀者更好地了解和學(xué)習(xí)操作系統(tǒng)知識。考慮課時數(shù)量有限,我們對內(nèi)容進行了精選,力求做到概念清晰、表述準確、結(jié)構(gòu)合理、通俗易懂,以使讀者達到較好的學(xué)習(xí)效果。
本書由張練興、朱明華、李宏偉、柯勝男編寫,全書由謝旭升教授主審。由于編者水平有限,書中難免有不盡如人意之處,懇請同行專家和廣大讀者指正賜教。
編者
2019年3月
第1章操作系統(tǒng)引論
1.1操作系統(tǒng)概念
1.2操作系統(tǒng)的形成與發(fā)展歷程
1.2.1計算機硬件發(fā)展簡要介紹
1.2.2計算機操作系統(tǒng)的發(fā)展
1.3操作系統(tǒng)的功能
1.4操作系統(tǒng)的特征和作用
1.4.1操作系統(tǒng)的特征
1.4.2操作系統(tǒng)的作用
1.5操作系統(tǒng)體系結(jié)構(gòu)
1.5.1單體內(nèi)核結(jié)構(gòu)
1.5.2層次結(jié)構(gòu)
1.5.3微內(nèi)核結(jié)構(gòu)
1.6現(xiàn)代典型操作系統(tǒng)
1.6.1Windows
1.6.2UNIX
1.6.3Linux
1.6.4Android
1.6.5Mac OS
1.6.6iOS
1.6.7鴻蒙
1.7本章小結(jié)
習(xí)題1
第2章進程管理
2.1程序的順序執(zhí)行和并發(fā)執(zhí)行
2.1.1程序的順序執(zhí)行
2.1.2程序的并發(fā)執(zhí)行
2.2進程的概念
2.2.1進程的定義
2.2.2進程的基本狀態(tài)和轉(zhuǎn)換
2.2.3進程控制塊
2.2.4進程隊列
2.2.5線程
2.3進程控制
2.3.1進程創(chuàng)建
2.3.2進程撤銷
2.3.3進程阻塞與喚醒
2.3.4進程掛起與激活
2.4進程互斥
2.4.1與時間有關(guān)的錯誤
2.4.2臨界區(qū)
2.4.3進程的互斥
2.5進程同步
2.5.1進程的同步
2.5.2用PV操作實現(xiàn)進程的同步
2.5.3時間同步問題
2.6經(jīng)典進程問題
2.6.1生產(chǎn)者消費者問題
2.6.2讀者寫者問題
2.6.3理發(fā)師問題
2.6.4獨木橋問題
2.7管程*
2.8進程通信
2.8.1進程通信的類型
2.8.2直接通信
2.8.3間接通信
2.9Linux進程管理機制
2.9.1進程的數(shù)據(jù)結(jié)構(gòu)
2.9.2進程和線程
2.10本章小結(jié)
習(xí)題2
第3章死鎖
3.1死鎖的定義和產(chǎn)生原因
3.1.1死鎖的定義
3.1.2死鎖產(chǎn)生的原因
3.2產(chǎn)生死鎖的必要條件
3.3死鎖的處理方法
3.4死鎖的預(yù)防
3.4.1破壞請求條件和保持條件
3.4.2破壞不剝奪條件
3.4.3破壞循環(huán)等待條件
3.5死鎖的避免
3.5.1系統(tǒng)安全狀態(tài)
3.5.2銀行家算法
3.6死鎖的檢測
3.6.1資源分配圖
3.6.2死鎖定理
3.6.3死鎖檢測算法
3.7死鎖的解除
3.8死鎖的綜合處理策略
3.9線程死鎖
3.10本章小結(jié)
習(xí)題3
第4章中斷與處理機調(diào)度
4.1中斷概述
4.1.1中斷的概念
4.1.2中斷優(yōu)先級和中斷屏蔽
4.1.3中斷的處理過程
4.2三級調(diào)度體系
4.2.1低級調(diào)度
4.2.2中級調(diào)度
4.2.3高級調(diào)度
4.2.4三級調(diào)度關(guān)系
4.3進程調(diào)度目標和調(diào)度方式
4.3.1進程調(diào)度目標
4.3.2進程調(diào)度方式
4.4調(diào)度算法的評價準則
4.4.1面向用戶的評價準則
4.4.2面向系統(tǒng)的評價準則
4.5進程調(diào)度算法
4.5.1先來先服務(wù)調(diào)度算法
4.5.2短進程優(yōu)先調(diào)度算法
4.5.3最短剩余時間優(yōu)先調(diào)度算法
4.5.4時間片輪轉(zhuǎn)調(diào)度算法
4.5.5優(yōu)先級調(diào)度算法
4.5.6多級反饋隊列調(diào)度算法
4.6線程的調(diào)度
4.6.1用戶級線程調(diào)度
4.6.2核心級線程調(diào)度
4.7Linux進程的調(diào)度
4.7.1進程調(diào)度的數(shù)據(jù)結(jié)構(gòu)
4.7.2進程調(diào)度的時機
4.7.3進程調(diào)度的策略
4.7.4Linux常用調(diào)度命令
4.8本章小結(jié)
習(xí)題4
第5章存儲管理
5.1存儲管理概述
5.1.1存儲器的存儲結(jié)構(gòu)
5.1.2存儲管理的功能
5.2程序的裝入與鏈接
5.2.1物理地址和邏輯地址
5.2.2程序的裝入
5.2.3程序的鏈接
5.3連續(xù)存儲管理
5.3.1單一連續(xù)存儲管理
5.3.2固定分區(qū)存儲管理
5.3.3可變分區(qū)存儲管理
5.3.4覆蓋與交換技術(shù)
5.4頁式存儲管理
5.4.1基本原理
5.4.2存儲空間的分配與去配
5.4.3頁表與地址轉(zhuǎn)換
5.4.4快表
5.4.5頁的共享與保護
5.5段式存儲管理
5.5.1基本原理
5.5.2空間的分配與去配
5.5.3地址轉(zhuǎn)換與存儲保護
5.5.4段的共享
5.5.5分頁和分段存儲管理的主要區(qū)別
5.6段頁式存儲管理
5.7虛擬存儲管理方式
5.7.1虛擬存儲器
5.7.2請求分頁式存儲管理
5.7.3請求分段式存儲管理
5.7.4請求段頁式存儲管理
5.8Linux存儲管理
5.8.1Linux的請求分頁存儲管理
5.8.2Linux的多級頁表
5.8.3Linux主存頁的缺頁中斷
5.8.4Linux主存空間的分配與回收
5.8.5Linux的頁面交換機制
5.9本章小結(jié)
習(xí)題5
第6章設(shè)備管理
6.1設(shè)備管理概述
6.2I/O系統(tǒng)
6.2.1I/O系統(tǒng)結(jié)構(gòu)
6.2.2I/O控制方式
6.3緩沖技術(shù)
6.3.1緩沖的引入
6.3.2單緩沖
6.3.3雙緩沖
6.3.4多緩沖
6.3.5緩沖池
6.4獨占設(shè)備的分配
6.4.1設(shè)備的邏輯號和絕對號
6.4.2設(shè)備的獨立性
6.4.3獨占設(shè)備的分配
6.5磁盤管理
6.5.1磁盤結(jié)構(gòu)
6.5.2磁盤空間的管理
6.5.3驅(qū)動調(diào)度
6.5.4提高磁盤I/O速度的方法
6.6設(shè)備處理
6.6.1設(shè)備驅(qū)動程序的處理過程
6.6.2設(shè)備的中斷處理
6.7虛擬設(shè)備
6.7.1脫機外圍設(shè)備操作
6.7.2聯(lián)機同時外圍設(shè)備操作
6.7.3SPOOLing應(yīng)用例子
6.8Linux設(shè)備管理
6.8.1Linux設(shè)備管理概述
6.8.2Linux磁盤I/O調(diào)度算法
6.9本章小結(jié)
習(xí)題6
第7章文件管理
7.1文件管理概述
7.1.1文件和文件系統(tǒng)
7.1.2文件的分類
7.1.3文件系統(tǒng)的功能
7.1.4文件系統(tǒng)的層次結(jié)構(gòu)
7.2文件的組織結(jié)構(gòu)和存取方式
7.2.1文件的存儲介質(zhì)
7.2.2文件的存取方式
7.2.3文件的邏輯結(jié)構(gòu)
7.2.4文件的物理結(jié)構(gòu)
7.2.5記錄的成組和分解
7.3目錄管理
7.3.1文件目錄
7.3.2文件目錄結(jié)構(gòu)
7.4輔存空間的管理
7.4.1空閑塊表法
7.4.2空閑塊鏈法
7.4.3位示圖法
7.4.4成組鏈接法
7.5文件的使用
7.5.1主存打開文件表
7.5.2文件基本操作
7.5.3文件訪問過程
7.6文件的共享
7.6.1目錄鏈接法
7.6.2索引結(jié)點鏈接法
7.6.3符號鏈接法
7.7文件的保護與保密
7.7.1存取控制
7.7.2容錯技術(shù)
7.7.3數(shù)據(jù)轉(zhuǎn)儲
7.8Linux文件系統(tǒng)
7.8.1Linux中常見文件系統(tǒng)格式
7.8.2虛擬文件系統(tǒng)
7.8.3EXT2文件系統(tǒng)
7.8.4日志文件系統(tǒng)
7.9本章小結(jié)
習(xí)題7
第8章作業(yè)管理與用戶接口
8.1作業(yè)管理概述
8.2批處理作業(yè)的管理
8.2.1批處理作業(yè)輸入
8.2.2批處理作業(yè)調(diào)度
8.2.3批處理作業(yè)控制
8.3批處理作業(yè)調(diào)度算法
8.3.1單道批處理作業(yè)調(diào)度算法
8.3.2多道批處理作業(yè)調(diào)度算法
8.4交互式作業(yè)的控制與管理
8.4.1交互式作業(yè)的控制
8.4.2交互式作業(yè)的管理
8.5操作系統(tǒng)與用戶的接口
8.5.1命令接口
8.5.2程序接口
8.5.3圖形接口
8.6Linux系統(tǒng)接口
8.6.1Linux命令接口
8.6.2Linux程序接口
8.7本章小結(jié)
習(xí)題8
參考文獻