計算機作業系統教程(第4版)

計算機作業系統教程(第4版)

《計算機作業系統教程(第4版)》是2014年出版的圖書,作者是張堯學、宋虹、張高。

圖書簡介

作業系統是現代計算機系統中必不可少的基本系統軟體,也是計算機專業的必修課程和從事計算機套用人員必不可少的知識。

本書是編著者在清華大學計算機系多年教學和科研的基礎上對第3版改編而成的,全書共12章,主要內容包括作業系統用戶界面、進程與執行緒管理、處理機管理、記憶體管理、檔案系統與設備管理等基本原理及Linux和Windows兩個主流作業系統的核心介紹。

與第3版相比,本書進一步深入淺出地對作業系統的基本原理進行了描述,而且,本書更進一步強調了學生對當前主流作業系統的應有了解。因此,本書在第3版Linux 2.4和Windows NT作業系統實例的基礎上,補充了有關Linux 2.6、Windows NT 6.0以及嵌入式作業系統的相關知識。

本書可作為高等院校計算機專業或相關專業作業系統課程的教材,也可供有關科技人員自學或參考。

目錄

第1章緒論1

1.1作業系統概念1

1.2作業系統的歷史2

1.2.1手工操作階段2

1.2.2早期批處理3

1.2.3多道程式系統5

1.2.4分時作業系統6

1.2.5實時作業系統6

1.2.6通用作業系統7

1.2.7作業系統的進一步發展7

1.3作業系統的基本類型8

1.3.1批處理作業系統8

1.3.2分時系統9

1.3.3實時系統9

1.3.4通用作業系統10

1.3.5個人計算機上的作業系統10

1.3.6網路作業系統10

1.3.7分散式作業系統11

1.4作業系統功能11

1.4.1處理機管理12

1.4.2存儲管理12

1.4.3設備管理12

1.4.4信息管理(檔案系統管理)12

1.4.5用戶接口13

1.5計算機硬體簡介13

1.5.1計算機的基本硬體元素13

1.5.2與作業系統相關的幾種主要暫存器14

1.5.3存儲器的訪問速度15

1.5.4指令的執行與中斷15

1.5.5作業系統的啟動16

1.6算法的描述16

1.7研究作業系統的幾種觀點17

1.7.1計算機資源管理者的觀點18

1.7.2用戶界面的觀點18

1.7.3進程管理的觀點18

本章小結18

習題19

第2章作業系統用戶界面20

2.1簡介20

2.2一般用戶的輸入輸出界面21

2.2.1作業的定義21

2.2.2作業組織21

2.2.3一般用戶的輸入輸出方式22

2.3命令控制界面24

2.4Linux與Windows的命令控制界面25

2.4.1Linux的命令控制界面25

2.4.2Windows的命令控制界面27

2.5系統調用29

2.6Linux和Windows的系統調用31

2.6.1Linux系統調用31

2.6.2Windows系統調用32

本章小結33

習題34

第3章進程管理35

3.1進程的概念35

3.1.1程式的並發執行35

3.1.2進程的定義39

3.2進程的描述39

3.2.1進程控制塊40

3.2.2進程上下文41

3.2.3進程上下文切換43

3.2.4進程空間與大小43

3.3進程狀態及其轉換44

3.3.1進程狀態44

3.3.2進程狀態轉換44

3.4進程控制45

3.4.1進程創建與撤銷45

3.4.2進程的阻塞與喚醒47

3.5進程互斥47

3.5.1資源共享所引起的制約47

3.5.2互斥的加鎖實現50

3.5.3信號量和P、V原語51

3.5.4用P、V原語實現進程互斥54

3.6進程同步55

3.6.1同步的概念55

3.6.2私用信號量56

3.6.3用P、V原語操作實現同步57

3.6.4生產者消費者問題58

3.7進程通信59

3.7.1進程的通信方式59

3.7.2訊息緩衝機制60

3.7.3信箱通信61

3.7.4進程通信的實例——和控制台的通信62

3.7.5進程通信的實例——管道66

3.8死鎖問題69

3.8.1死鎖的概念69

3.8.2死鎖的消除方法70

3.9執行緒的概念71

3.9.1為什麼要引入執行緒71

3.9.2執行緒的基本概念72

3.9.3執行緒與進程的區別72

3.9.4執行緒的適用範圍73

3.10執行緒分類與執行74

3.10.1執行緒的分類74

3.10.2執行緒的執行特性76

本章小結77

習題77

第4章處理機調度79

4.1分級調度79

4.1.1作業的狀態及其轉換79

4.1.2調度的層次80

4.1.3作業與進程的關係81

4.2作業調度81

4.2.1作業調度功能81

4.2.2作業調度目標與性能衡量82

4.3進程調度84

4.3.1進程調度的功能84

4.3.2進程調度的時機85

4.3.3進程調度性能評價86

4.4調度算法86

4.5算法評價90

4.5.1FCFS方式的調度性能分析90

4.5.2輪轉法調度性能評價93

4.5.3線性優先權法的調度性能94

4.6實時系統調度方法95

4.6.1實時系統的特點95

4.6.2實時調度算法的分類97

4.6.3時限調度算法與頻率單調調度算法97

本章小結99

習題99

第5章存儲管理101

5.1存儲管理的功能101

5.1.1虛擬存儲器101

5.1.2地址變換102

5.1.3內外存數據傳輸的控制104

5.1.4記憶體的分配與回收104

5.1.5記憶體信息的共享與保護105

5.2分區存儲管理106

5.2.1分區管理基本原理106

5.2.2分區的分配與回收108

5.2.3有關分區管理其他問題的討論111

5.3覆蓋與交換技術112

5.3.1覆蓋技術112

5.3.2交換技術113

5.4頁式管理115

5.4.1頁式管理的基本原理115

5.4.2靜態頁面管理115

5.4.3動態頁式管理118

5.4.4請求頁式管理中的置換算法120

5.4.5存儲保護123

5.4.6頁式管理的優缺點123

5.5段式與段頁式管理124

5.5.1段式管理的基本思想124

5.5.2段式管理的實現原理124

5.5.3段式管理的優缺點128

5.5.4段頁式管理的基本思想129

5.5.5段頁式管理的實現原理129

5.6局部性原理和抖動問題131

本章小結134

習題134第6章進程與存儲管理示例136

6.1Linux進程和存儲管理簡介136

6.2Linux進程結構139

6.2.1進程的概念139

6.2.2進程的虛擬地址結構140

6.2.3進程上下文141

6.2.4進程的狀態和狀態轉換143

6.2.5小結145

6.3Linux進程控制145

6.3.1Linux啟動及進程樹的形成145

6.3.2進程控制146

6.4Linux進程調度149

6.5Linux進程通信152

6.5.1Linux的低級通信152

6.5.2進程間通信153

6.6Linux存儲管理161

6.6.1虛存空間和管理161

6.6.2請求調頁技術163

本章小結165

習題166

第7章Windows的進程與記憶體管理167

7.1WindowsNT的特點及相關的概念167

7.1.1WindowsNT體系結構的特點167

7.1.2Windows的管理機制168

7.2Windows進程和執行緒169

7.2.1Windows的進程和執行緒的定義170

7.2.2進程和執行緒的關聯170

7.2.3Windows進程的結構170

7.2.4Windows執行緒的結構171

7.2.5Windows進程和執行緒的創建172

7.3Windows處理器調度機制173

7.3.1調度優先權174

7.3.2執行緒狀態174

7.3.3執行緒調度機制175

7.4Windows的記憶體管理176

7.4.1記憶體管理器177

7.4.2記憶體管理的機制177

7.5虛擬地址空間178

7.5.1虛擬地址空間布局178

7.5.2虛擬地址轉換179

7.6頁面調度181

7.6.1缺頁處理181

7.6.2工作集及頁面調度策略182

7.6.3頁框號和物理記憶體管理182

本章小結183

習題184

第8章檔案系統185

8.1檔案系統的概念185

8.2檔案的邏輯結構與存取方法187

8.2.1邏輯結構187

8.2.2存取方法189

8.3檔案的物理結構與存儲設備191

8.3.1檔案的物理結構192

8.3.2檔案存儲設備194

8.4檔案存儲空間管理195

8.5檔案目錄管理197

8.5.1檔案的組成198

8.5.2檔案目錄198

8.5.3便於共享的檔案目錄200

8.5.4目錄管理201

8.6檔案存取控制203

8.7檔案的使用205

8.8檔案系統的層次模型205

本章小結207

習題208

第9章設備管理210

9.1引言210

9.1.1設備的類別210

9.1.2設備管理的功能和任務211

9.2數據傳送控制方式212

9.2.1程式直接控制方式212

9.2.2中斷方式213

9.2.3DMA方式215

9.2.4通道控制方式217

9.3中斷技術219

9.3.1中斷的基本概念219

9.3.2中斷的分類與優先權219

9.3.3軟中斷220

9.3.4中斷處理過程220

9.4緩衝技術222

9.4.1緩衝的引入222

9.4.2緩衝的種類222

9.4.3緩衝池的管理223

9.5設備分配225

9.5.1設備分配用數據結構225

9.5.2設備分配的原則227

9.5.3設備分配算法228

9.6I/O進程控制228

9.6.1I/O控制的引入228

9.6.2I/O控制的功能228

9.6.3I/O控制的實現229

9.7設備驅動程式230

本章小結230

習題231

第10章Linux檔案系統233

10.1Linux檔案系統的特點與檔案類別233

10.1.1特點233

10.1.2檔案類型234

10.2Linux的虛擬檔案系統235

10.2.1虛擬檔案系統框架235

10.2.2Linux虛擬檔案系統的數據結構235

10.2.3VFS的系統調用241

10.3檔案系統的註冊和掛裝242

10.3.1檔案系統註冊242

10.3.2已掛裝檔案系統描述符鍊表243

10.3.3掛裝根檔案系統244

10.3.4掛裝一般檔案系統245

10.3.5卸載檔案系統246

10.4進程與檔案系統的聯繫246

10.4.1系統打開檔案表246

10.4.2用戶打開檔案表246

10.4.3進程的當前目錄和根目錄247

10.5ext2檔案系統247

10.5.1ext2檔案系統的存儲結構247

10.5.2ext2檔案系統主要的磁碟數據結構248

10.5.3ext2檔案系統的記憶體數據結構251

10.5.4數據塊定址252

10.6塊設備驅動253

10.6.1設備配置253

10.6.2設備驅動程式的接口254

10.7字元設備驅動255

本章小結256

習題257

第11章Windows的設備管理和檔案系統258

11.1WindowsI/O系統的結構258

11.1.1設計目標258

11.1.2設備管理服務258

11.2設備驅動程式和I/O處理259

11.2.1設備驅動類型和結構260

11.2.2Windows的I/O處理260

11.3Windows的檔案系統262

11.3.1Windows磁碟管理263

11.3.2Windows檔案系統格式263

11.3.3Windows檔案系統驅動264

11.4NTFS檔案系統264

11.4.1NTFS的特點264

11.4.2NTFS的磁碟結構265

11.4.3NTFS的檔案系統恢復266

本章小結267

習題268

第12章嵌入式作業系統簡介269

12.1嵌入式作業系統的總體架構269

12.1.1嵌入式作業系統特點及分類269

12.1.2嵌入式作業系統的總體架構270

12.2嵌入式作業系統的任務管理273

12.2.1多任務機制273

12.2.2任務狀態和任務狀態遷移274

12.2.3任務調度275

12.2.4任務間通信276

12.2.5VxWorks任務管理278

12.3記憶體管理281

12.3.1動態記憶體管理機制282

12.3.2VxWorks動態記憶體管理函式282

12.3.3虛擬記憶體管理機制283

12.3.4VxWorks虛擬記憶體管理284

12.4設備管理與檔案系統285

12.4.1I/O系統內部結構285

12.4.2實時核心的中斷管理286

12.4.3基本I/O操作流程287

12.4.4VxWorks的I/O接口287

12.4.5檔案系統架構及操作288

12.4.6VxWorks檔案系統289

12.5嵌入式作業系統的開發290

12.5.1集成開發環境Tornado291

12.5.2VxWorks的交叉編譯開發環境294

12.5.3實例開發的設計與實現過程296

本章小結297

習題298

參考文獻299

相關詞條

熱門詞條

聯絡我們