操作系統(tǒng)是計算機系統(tǒng)中的核心系統(tǒng)軟件,“操作系統(tǒng)”課程是計算機專業(yè)的一門必修課程。本書深入淺出地闡述了操作系統(tǒng)的基本原理、基本結(jié)構(gòu)、實現(xiàn)技術和運行機制。全書共分9章,依次介紹了操作系統(tǒng)的基本概念、進程(線程)管理、內(nèi)存管理、I/O設備管理、文件管理及Linux操作系統(tǒng)的相關實現(xiàn)技術。這些知識可為讀者理解、分析和應用操作系統(tǒng)打下堅實的專業(yè)基礎。本書內(nèi)容講解重點突出、通俗易懂,符合計算機專業(yè)“操作系統(tǒng)”課程教學大綱的要求,并涵蓋了全國碩士研究生入學考試計算機學科專業(yè)基礎綜合考試大綱中操作系統(tǒng)部分的全部內(nèi)容,每章后精選了大量典型習題和歷年全國統(tǒng)考真題供讀者練習。本書是普通高等教育“十一五”國家級規(guī)劃教材,可用于普通高等院校計算機各專業(yè)“操作系統(tǒng)”課程的教材或考研參考書,也可作為廣大計算機科學工作者和從事相關領域工作的工程技術人員的參考資料。
本書結(jié)合自己的教學體會,突出重點、難點知識的講解,對學生容易忽略的疑點進行詳細闡述,幫助學生少走彎路,節(jié)省寶貴的學習時間。該教材由于其實用性強、講解通俗易懂,受到了廣大學生的歡迎。
李建偉,博士副教授碩士生導師。本人長期在一線從事操作系統(tǒng)課程課程教學,具有豐富的教學經(jīng)驗,廣受學生好評。
編者2011年4月目錄
第1章操作系統(tǒng)概述1
1.1操作系統(tǒng)的概念1
1.1.1計算機系統(tǒng)資源1
1.1.2操作系統(tǒng)的地位3
1.1.3操作系統(tǒng)的定義4
1.1.4操作系統(tǒng)的設計目標5
1.2操作系統(tǒng)的發(fā)展歷史與分類6
1.2.1操作系統(tǒng)的發(fā)展歷史6
1.2.2操作系統(tǒng)分類10
1.3操作系統(tǒng)的主要功能20
1.3.1處理機管理功能20
1.3.2內(nèi)存管理功能21
1.3.3設備管理功能21
1.3.4文件管理功能22
1.3.5用戶接口管理功能22
1.4操作系統(tǒng)的主要特征23
1.4.1并發(fā)執(zhí)行24
1.4.2資源共享24
1.4.3一切皆虛擬25
1.4.4異步性26
1.5操作系統(tǒng)的結(jié)構(gòu)設計26
1.5.1無結(jié)構(gòu)操作系統(tǒng)26
1.5.2模塊化結(jié)構(gòu)操作系統(tǒng)27
1.5.3分層式結(jié)構(gòu)操作系統(tǒng)27
1.5.4虛擬機結(jié)構(gòu)操作系統(tǒng)28
1.5.5微內(nèi)核結(jié)構(gòu)操作系統(tǒng)29
1.6操作系統(tǒng)的運行環(huán)境30
1.6.1操作系統(tǒng)硬件運行環(huán)境30
1.6.2操作系統(tǒng)與其他系統(tǒng)軟件關系36
1.7初識Linux操作系統(tǒng)36
1.7.1Linux概述36
1.7.2Linux內(nèi)核設計38
1.7.3Linux啟動和初始化過程40
1.7.4Linux系統(tǒng)調(diào)用介紹40
習題141第2章進程、線程管理45
2.1進程的基本概念45
2.1.1程序執(zhí)行過程45
2.1.2進程的定義和特征49
2.1.3進程狀態(tài)和狀態(tài)轉(zhuǎn)換52
2.1.4進程控制塊及其組織方式55
2.2進程控制58
2.2.1進程創(chuàng)建59
2.2.2進程執(zhí)行與進程切換60
2.2.3進程阻塞與喚醒61
2.2.4進程掛起與激活62
2.2.5進程撤銷62
2.3線程63
2.3.1進程的局限性63
2.3.2線程及其屬性64
2.3.3線程狀態(tài)與控制67
2.3.4線程間同步和通信67
2.3.5線程的實現(xiàn)69
2.3.6多線程模型70
2.4Linux進程管理概述71
2.4.1Linux中的進程及其進程控制塊71
2.4.2Linux中的進程控制76
2.4.3Linux中的線程77
習題278第3章進程同步與通信 80
3.1進程同步和互斥 80
3.1.1進程同步和互斥的基本概念80
3.1.2信號量機制88
3.1.3利用信號量解決互斥問題89
3.1.4利用信號量解決同步問題90
3.2典型進程同步問題詳解93
3.2.1生產(chǎn)者消費者問題93
3.2.2哲學家就餐問題96
3.2.3讀者寫者問題99
3.3管程機制102
3.3.1為何引入管程102
3.3.2管程的定義103
3.3.3條件變量104
3.3.4管程解決生產(chǎn)者消費者問題104
3.4進程通信105
3.4.1高級通信分類106
3.4.2消息傳遞系統(tǒng)107
3.5Linux進程通信概述110
3.5.1管道110
3.5.2信號111
3.5.3消息隊列112
3.5.4信號量112
3.5.5共享內(nèi)存112
習題3113第4章處理機調(diào)度117
4.1三級調(diào)度體系117
4.1.1高級調(diào)度118
4.1.2中級調(diào)度120
4.1.3低級調(diào)度120
4.1.4三級調(diào)度關系121
4.2進程調(diào)度目標和調(diào)度方式122
4.2.1進程調(diào)度目標122
4.2.2進程調(diào)度方式123
4.3調(diào)度算法的評價準則124
4.3.1面向用戶的評價準則124
4.3.2面向系統(tǒng)的評價準則125
4.4典型進程調(diào)度算法126
4.4.1先來先服務調(diào)度算法126
4.4.2短作業(yè)(進程)優(yōu)先調(diào)度算法127
4.4.3最短剩余時間優(yōu)先調(diào)度算法129
4.4.4時間片輪轉(zhuǎn)調(diào)度算法129
4.4.5優(yōu)先級調(diào)度算法130
4.4.6高響應比優(yōu)先調(diào)度算法132
4.4.7多級反饋隊列調(diào)度算法133
4.5線程調(diào)度算法135
4.5.1用戶級線程調(diào)度135
4.5.2核心級線程調(diào)度136
4.6實時調(diào)度算法137
4.6.1實時調(diào)度目標和所需必要信息137
4.6.2搶占調(diào)度和快速切換機制137
4.6.3典型實時調(diào)度算法138
4.7Linux進程調(diào)度概述139
習題4141第5章死鎖145
5.1死鎖的基本概念和產(chǎn)生原因145
5.1.1死鎖的基本概念145
5.1.2產(chǎn)生死鎖的原因147
5.2死鎖的必要條件151
5.3死鎖的處理152
5.3.1死鎖的處理方法152
5.3.2資源分配圖153
5.4死鎖的靜態(tài)預防154
5.4.1破壞互斥條件154
5.4.2破壞請求和保持條件154
5.4.3破壞不剝奪條件155
5.4.4破壞環(huán)路等待條件155
5.5死鎖的動態(tài)避免156
5.5.1系統(tǒng)安全狀態(tài)156
5.5.2銀行家算法158
5.6死鎖的檢測和解除160
5.6.1等待圖檢測死鎖161
5.6.2多體資源類死鎖檢測算法161
5.6.3死鎖解除方法163
5.6.4鴕鳥算法164
5.7線程死鎖164
習題5164第6章內(nèi)存管理168
6.1內(nèi)存管理概述168
6.1.1存儲器的層次結(jié)構(gòu)168
6.1.2內(nèi)存管理功能169
6.1.3內(nèi)存管理目標170
6.2程序的鏈接和裝入171
6.2.1幾個基本概念171
6.2.2程序的鏈接173
6.2.3程序的裝入174
6.3連續(xù)分配方式176
6.3.1單一連續(xù)分配176
6.3.2固定分區(qū)分配176
6.3.3可變分區(qū)分配178
6.3.4動態(tài)可重定位分區(qū)分配184
6.4基本分頁存儲管理方式185
6.4.1基本概念186
6.4.2基本分頁管理的地址變換機構(gòu)187
6.4.3多級頁表189
6.4.4頁面的共享與保護191
6.4.5基本分頁存儲管理優(yōu)缺點192
6.5基本分段存儲管理方式193
6.5.1分段存儲管理的引入193
6.5.2基本分段管理的地址結(jié)構(gòu)193
6.5.3基本分段管理的地址變換機構(gòu)194
6.5.4分段共享與保護195
6.5.5基本分段存儲管理優(yōu)缺點196
6.5.6分頁和分段的主要區(qū)別196
6.6基本段頁式存儲管理方式196
6.6.1基本原理與地址變換機構(gòu)196
6.6.2Intel 80386段頁式存儲管理機制198
習題6200第7章虛擬存儲管理203
7.1覆蓋與交換技術203
7.1.1覆蓋技術203
7.1.2交換技術205
7.2虛擬存儲管理206
7.2.1程序局部性原理206
7.2.2虛擬存儲器及其特征207
7.3請求分頁存儲管理方式208
7.3.1請求分頁中的硬件支持208
7.3.2請求分頁中的軟件支持210
7.3.3頁面置換算法211
7.3.4頁面調(diào)度性能215
7.3.5影響缺頁率因素 217
7.3.6Belady現(xiàn)象217
7.3.7請求分頁存儲管理優(yōu)缺點218
7.4請求分段存儲管理方式219
7.4.1基本概念219
7.4.2請求分段存儲管理優(yōu)缺點221
7.5請求段頁式存儲管理方式222
7.6存儲管理方案總結(jié)223
7.7Linux存儲管理概述223
7.7.1Linux虛擬內(nèi)存管理223
7.7.2Linux物理內(nèi)存管理228
7.7.3頁面緩存與Swap交換空間231
習題7232第8章I/O設備管理237
8.1I/O設備管理概述237
8.1.1I/O設備的分類237
8.1.2I/O設備的差異性238
8.1.3I/O設備管理的任務和功能239
8.2I/O系統(tǒng)240
8.2.1I/O系統(tǒng)結(jié)構(gòu)240
8.2.2設備控制器242
8.2.3I/O控制方式244
8.3I/O軟件252
8.3.1I/O軟件的設計目標252
8.3.2I/O軟件層次253
8.3.3I/O中斷的執(zhí)行流程257
8.4設備分配與回收259
8.4.1設備管理中的數(shù)據(jù)結(jié)構(gòu)259
8.4.2設備分配與回收261
8.4.3SPOOLing系統(tǒng)262
8.5緩沖管理264
8.5.1緩沖的引入264
8.5.2單緩沖265
8.5.3雙緩沖266
8.5.4循環(huán)緩沖267
8.5.5緩沖池269
8.6磁盤存儲器管理270
8.6.1磁盤及其訪問270
8.6.2磁盤調(diào)度算法272
8.6.3磁盤高速緩沖276
8.7I/O控制278
8.7.1I/O控制的引入278
8.7.2I/O控制的功能278
8.7.3I/O控制的實現(xiàn)279
8.8Linux設備管理279
8.8.1Linux設備管理概述279
8.8.2Linux設備管理中的數(shù)據(jù)結(jié)構(gòu)280
8.8.3Linux的設備文件283
8.8.4Linux的設備驅(qū)動程序284
習題8291第9章文件系統(tǒng)296
9.1文件的基本概念296
9.1.1文件的概念296
9.1.2文件屬性及其分類297
9.2文件系統(tǒng)298
9.2.1文件系統(tǒng)的概念298
9.2.2文件系統(tǒng)的組成299
9.3文件結(jié)構(gòu)302
9.3.1文件邏輯結(jié)構(gòu)302
9.3.2文件物理結(jié)構(gòu)305
9.4文件目錄和目錄查詢311
9.4.1文件目錄的概念311
9.4.2文件目錄結(jié)構(gòu)313
9.4.3目錄查詢技術316
9.5文件存儲空間管理318
9.5.1文件存儲空間劃分318
9.5.2文件存儲空間的分配技術318
9.5.3空閑文件存儲器空間管理方法319
9.6文件的共享與保護322
9.6.1文件共享322
9.6.2文件保護323
9.7文件系統(tǒng)的可靠性325
9.7.1文件的可靠性325
9.7.2文件的保密性326
9.8Linux文件管理327
9.8.1Linux虛擬文件系統(tǒng)327
9.8.2文件系統(tǒng)的安裝與拆卸330
9.8.3Linux常見文件系統(tǒng)調(diào)用331
9.9EXT2文件系統(tǒng)334
習題9336參考文獻341