內容簡介
作業系統是現代計算機系統中必不可少的基本系統軟體,也是計算機專業的必修課程和從事計算機套用人員必不可少的知識。 本書是編著者在清華大學計算機系多年教學和科研的基礎上對其第2版改編而成的。主要內容包括作業系統用戶界面、進程與執行緒管理、處理機管理、記憶體管理、檔案系統與設備管理等基本原理及Linux和Windows兩個主流作業系統的核心介紹。與第2版相比,本書進一步深入淺出地對作業系統基本原理進行了描述,而且,本書更進一步強調了學生對當前主流作業系統的了解。因此,本書去掉了第2版中的作業系統示例UNIX System V,換之為Linux 2.4和Windows NT。 全書共11章。
圖書目錄
第1章緒論/1
1.1作業系統概念/1
1.2作業系統的歷史/2
1.2.1手工操作階段/3
1.2.2早期批處理/3
1.2.3多道程式系統/6
1.2.4分時作業系統/6
1.2.5實時作業系統/7
1.2.6通用作業系統/7
1.2.7作業系統的進一步發展/8
1.3作業系統的基本類型/8
1.3.1批處理作業系統/8
1.3.2分時系統/9
1.3.3實時系統/10
1.3.4通用作業系統/10
1.3.5個人計算機上的作業系統/10
1.3.6網路作業系統/11
1.3.7分散式作業系統/11
1.4作業系統功能/12
1.4.1處理機管理/12
1.4.2存儲管理/13
1.4.3設備管理/13
1.4.4信息管理(檔案系統管理)/13
1.4.5用戶接口/14
1.5計算機硬體簡介/14
1.5.1計算機的基本硬體元素/14
1.5.2與作業系統相關的幾種主要暫存器/15
1.5.3存儲器的訪問速度/16
1.5.4指令的執行與中斷/17
1.5.5作業系統的啟動/18
1.6算法的描述/18
1.7研究作業系統的幾種觀點/19
1.7.1作業系統是計算機資源的管理者/20
1.7.2用戶界面的觀點/20
1.7.3進程管理的觀點/20
習題/21
第2章作業系統用戶界面/22
2.1簡介/22
2.2一般用戶的輸入輸出界面/23
2.2.1作業的定義/23
2.2.2作業組織/24
2.2.3一般用戶的輸入輸出方式/24
2.3命令控制界面/26
2.4Linux與Windows的命令控制界面/28
2.4.1Linux的命令控制界面/28
2.4.2Windows的命令控制界面/29
2.5系統調用/32
2.6Linux和Windows的系統調用/33
2.6.1Linux系統調用/33
2.6.2Windows系統調用/34
本章小結/36
習題/36
第3章進程管理/38
3.1進程的概念/38
3.1.1程式的並發執行/38
3.1.2進程的定義/42
3.2進程的描述/43
3.2.1進程控制塊PCB/43
3.2.2進程上下文/45
3.2.3進程上下文切換/46
3.2.4進程空間與大小/47
3.3進程狀態及其轉換/47
3.3.1進程狀態/47
3.3.2進程狀態轉換/48
3.4進程控制/48
3.4.1進程創建與撤銷/49
3.4.2進程的阻塞與喚醒/50
3.5進程互斥/51
3.5.1資源共享所引起的制約/51
3.5.2互斥的加鎖實現/54
3.5.3信號量和P,V原語/55
3.5.4用P,V原語實現進程互斥/58
3.6進程同步/59
3.6.1同步的概念/59
3.6.2私用信號量/61
3.6.3用P,V原語操作實現同步/61
3.6.4生產者消費者問題/62
3.7進程通信/63
3.7.1進程的通信方式/63
3.7.2訊息緩衝機制/65
3.7.3信箱通信/66
3.7.4進程通信的實例——和控制台的
通信/67
3.7.5進程通信的實例——管道/70
3.8死鎖問題/73
3.8.1死鎖的概念/73
3.8.2死鎖的排除方法/74
3.9執行緒的概念/76
3.9.1為什麼要引入執行緒/76
3.9.2執行緒的基本概念/77
3.9.3執行緒與進程的區別/78
3.9.4執行緒的適用範圍/78
3.10執行緒分類與執行/80
3.10.1執行緒的分類/80
3.10.2執行緒的執行特性/81
本章小結/82
習題/83
第4章處理機調度/85
4.1分級調度/86
4.1.1作業的狀態及其轉換/86
4.1.2調度的層次/87
4.1.3作業與進程的關係/87
4.2作業調度/88
4.2.1作業調度功能/88
4.2.2作業調度目標與性能衡量/89
4.3進程調度/91
4.3.1進程調度的功能/91
4.3.2進程調度的時機/92
4.3.3進程調度性能評價/92
4.4調度算法/93
4.5算法評價/97
4.5.1FCFS方式的調度性能分析/97
4.5.2輪轉法調度性能評價/101
4.5.3線性優先權法的調度性能/101
4.6實時系統調度方法/103
4.6.1實時系統的特點/103
4.6.2實時調度算法的分類/104
4.6.3時限調度算法與頻率單調調度
算法/105
本章小結/107
習題/108
第5章存儲管理/109
5.1存儲管理的功能/109
5.1.1虛擬存儲器/109
5.1.2地址變換/110
5.1.3內外存數據傳輸的控制/112
5.1.4記憶體的分配與回收/113
5.1.5記憶體信息的共享與保護/113
5.2分區存儲管理/114
5.2.1分區管理基本原理/114
5.2.2分區的分配與回收/117
5.2.3有關分區管理其他問題的討論/120
5.3覆蓋與交換技術/121
5.3.1覆蓋技術/121
5.3.2交換技術/122
5.4頁式管理/123
5.4.1頁式管理的基本原理/123
5.4.2靜態頁面管理/124
5.4.3動態頁式管理/127
5.4.4請求頁式管理中的置換算法/129
5.4.5存儲保護/132
5.4.6頁式管理的優缺點/132
5.5段式與段頁式管理/133
5.5.1段式管理的基本思想/133
5.5.2段式管理的實現原理/133
5.5.3段式管理的優缺點/138
5.5.4段頁式管理的基本思想/138
5.5.5段頁式管理的實現原理/138
5.6局部性原理和抖動問題/140
本章小結/143
習題/144
第6章進程與存儲管理示例/145
6.1Linux進程和存儲管理簡介/145
6.2Linux進程結構/148
6.2.1進程的概念/148
6.2.2進程的虛擬地址結構/149
6.2.3進程上下文/150
6.2.4進程的狀態和狀態轉換/152
6.2.5小結/154
6.3進程控制/154
6.3.1Linux啟動及進程樹的形成/154
6.3.2進程控制/156
6.4Linux進程調度/159
6.5進程通信/161
6.5.1Linux的低級通信/161
6.5.2進程間通信IPC/163
6.6Linux存儲管理/171
6.6.1虛存空間和管理/171
6.6.2請求調頁技術/173
本章小結/175
習題/176
第7章Windows的進程與記憶體管理/177
7.1WindowsNT的特點及相關的概念/177
7.1.1WindowsNT體系結構的特點/177
7.1.2Windows的管理機制/177
7.2Windows進程和執行緒/180
7.2.1Windows的進程和執行緒的定義/180
7.2.2進程和執行緒的關聯/180
7.2.3Windows進程的結構/181
7.2.4Windows執行緒的結構/182
7.2.5Windows進程和執行緒的創建/183
7.3Windows處理器調度機制/184
7.3.1調度優先權/184
7.3.2執行緒狀態/185
7.3.3執行緒調度機制/186
7.4Windows的記憶體管理/187
7.4.1記憶體管理器/188
7.4.2記憶體管理的機制/188
7.5虛擬地址空間/189
7.5.1虛擬地址空間布局/189
7.5.2虛擬地址轉換/191
7.6頁面調度/193
7.6.1缺頁處理/193
7.6.2工作集及頁面調度策略/193
7.6.3頁框號和物理記憶體管理/194
本章小結/195
習題/195
第8章檔案系統/197
8.1檔案系統的概念/197
8.2檔案的邏輯結構與存取方法/200
8.2.1邏輯結構/200
8.2.2存取方法/202
8.3檔案的物理結構與存儲設備/204
8.3.1檔案的物理結構/205
8.3.2檔案存儲設備/207
8.4檔案存儲空間管理/208
8.5檔案目錄管理/210
8.5.1檔案的組成/211
8.5.2檔案目錄/211
8.5.3便於共享的檔案目錄/213
8.5.4目錄管理/215
8.6檔案存取控制/216
8.7檔案的使用/218
8.8檔案系統的層次模型/219
本章小結/220
習題/221
第9章設備管理/223
9.1引言/223
9.1.1設備的類別/223
9.1.2設備管理的功能和任務/224
9.2數據傳送控制方式/225
9.2.1程式直接控制方式/225
9.2.2中斷方式/227
9.2.3DMA方式/228
9.2.4通道控制方式/230
9.3中斷技術/232
9.3.1中斷的基本概念/232
9.3.2中斷的分類與優先權/233
9.3.3軟中斷/234
9.3.4中斷處理過程/234
9.4緩衝技術/235
9.4.1緩衝的引入/235
9.4.2緩衝的種類/236
9.4.3緩衝池的管理/237
9.5設備分配/239
9.5.1設備分配用數據結構/239
9.5.2設備分配的原則/241
9.5.3設備分配算法/242
9.6I/O進程控制/242
9.6.1I/O控制的引入/242
9.6.2I/O控制的功能/243
9.6.3I/O控制的實現/243
9.7設備驅動程式/244
本章小結/244
習題/245
第10章Linux檔案系統/247
10.1Linux檔案系統的特點與檔案類別/247
10.1.1特點/247
10.1.2檔案類型/248
10.2Linux的虛擬檔案系統/249
10.2.1虛擬檔案系統VFS框架/249
10.2.2Linux虛擬檔案系統的數據
結構/250
10.2.3VFS的系統調用/256
10.3檔案系統的註冊和掛裝/257
10.3.1檔案系統註冊/257
10.3.2已掛裝檔案系統描述符鍊表/258
10.3.3掛裝根檔案系統/259
10.3.4掛裝一般檔案系統/260
10.3.5卸載檔案系統/260
10.4進程與檔案系統的聯繫/261
10.4.1系統打開檔案表/261
10.4.2用戶打開檔案表/261
10.4.3進程的當前目錄和根目錄/262
10.5ext2檔案系統/262
10.5.1ext2檔案系統的存儲結構/262
10.5.2ext2檔案系統主要的磁碟數據
結構/263
10.5.3ext2檔案系統的記憶體數據結構/266
10.5.4數據塊定址/267
10.6塊設備驅動/268
10.6.1設備配置/269
10.6.2設備驅動程式的接口/269
10.7字元設備驅動/271
習題/271
第11章Windows的設備管理和檔案系統/272
11.1WindowsI/O系統的結構/272
11.1.1設計目標/272
11.1.2設備管理服務/273
11.2設備驅動程式和I/O處理/274
11.2.1設備驅動類型和結構/274
11.2.2Windows的I/O處理/275
11.3Windows的檔案系統/277
11.3.1Windows磁碟管理/277
11.3.2Windows檔案系統格式/277
11.3.3Windows檔案系統驅動/278
11.4NTFS檔案系統/279
11.4.1NTFS的特點/279
11.4.2NTFS的磁碟結構/279
11.4.3NTFS的檔案系統恢復/281
本章小結/281
習題/282
參考文獻/284