編輯推薦
適讀人群 :本書可作為高等學校計算機科學與技術專業操作係統課程的教材,也可供其他專業學生參考。 本書的目的是使讀者熟悉現代操作係統的設計原理和實現問題,因此單純講述概念和理論遠遠不夠。為說明這些概念,同時將它們與真實世界中不得不做齣的設計選擇相關聯,本書選擇瞭4個操作係統作為實例:
◆ Windows 8:用於個人計算機、工作站和服務器的多任務操作係統。它融入瞭很多操作係統發展的*新技術。此外,Windows是*早采用麵嚮對象原理進行設計的重要商業操作係統之一。本書涵蓋瞭Windows*新版本所采用的技術,包括Windows 8。
◆ Android:Android是為嵌入式設備特彆是手機量身定做的,主要是為瞭滿足嵌入式環境的獨特需求。本書介紹瞭Android的內核信息。
◆ UNIX:*初是為小型計算機設計的多用戶操作係統,但後來廣泛用於從微機到超級計算機的各種機器中。本書采用若乾版本的UNIX作為實例。FreeBSD融閤瞭很多的現代特徵,是一個廣泛應用的操作係統;Solaris是一個廣泛應用的商業版UNIX係統。
◆ Linux:一個非常普及且源代碼開放的UNIX版本。
選擇這些操作係統的原因是它們之間存在相關性,同時它們也具有代錶性。關於這些實例操作係統的討論貫穿全書,而非集中於某一章或附錄部分。因此在討論並發性時,會描述每個實例操作係統的並發機製,並探討各種設計選擇的動機。采用真實的例子可加深讀者對相關章節中設計概念的理解。為方便起見,讀者也可在在綫文檔中查閱所有實例操作係統的資料。
內容簡介
本書既是關於操作係統概念、結構和機製的教材,目的是盡可能清楚和全麵地展示現代操作係統的本質和特點;也是講解操作係統的經典教材,不僅係統地講述瞭操作係統的基本概念、原理和方法,而且以當代*流行的操作係統Windows 8、UNIX、Android、Linux為例,展現瞭當代操作係統的本質和特點。全書共分背景知識、進程、內存、調度、輸入/輸齣和文件、嵌入式係統六部分,內容包括計算機係統概述、操作係統概述、進程描述和控製、綫程、並發性:互斥和同步、並發:死鎖和飢餓、內存管理、虛擬內存、單處理器調度、多處理器和實時調度、I/O管理和磁盤調度、文件管理、嵌入式操作係統、虛擬機、計算機安全技術、分布式處理、客戶/服務器和集群等。此外,本書配套網站提供瞭及時、生動的材料。
作者簡介
陳嚮群,北京大學信息科學技術學院計算機科學技術係教授,博士生導師,主要研究領域為軟件需求工程、知識工程、基於知識的軟件工程、麵嚮服務的計算。
William Stallings:美國聖母大學電子工程學士,麻省理工學院計算機科學博士,《密碼術》期刊編委。美國多傢高科技公司執行總監,政府機構、計算機軟/硬件供應商顧問;曾為各種計算機和操作係統設計並實現TCP/IP和OSI協議套件;創建並維護瞭計算機科學專業學生資源網站ComputerScienceStudent.com。齣版圖書17種,內容涉及計算機安全、計算機網絡和計算機係統結構等;在《IEEE進展》《ACM計算評論》和《密碼術》等期刊上發錶文章多篇;先後12次獲美國年度*佳計算機科學教科書奬和學術作者協會奬。
目錄
第0章 讀者與教師指南 1
0.1 本書概述 1
0.2 實例係統 1
0.3 讀者和教師的路綫圖 2
0.4 互聯網和網站資源 3
第一部分 背景知識
第1章 計算機係統概述 6
1.1 基本構成 6
1.2 微處理器的發展 7
1.3 指令的執行 8
1.4 中斷 10
1.4.1 中斷和指令周期 11
1.4.2 中斷處理 12
1.4.3 多個中斷 14
1.5 存儲器的層次結構 15
1.6 高速緩存 17
1.6.1 動機 18
1.6.2 高速緩存原理 18
1.6.3 高速緩存設計 19
1.7 直接內存存取 20
1.8 多處理器和多核計算機組織結構 21
1.8.1 對稱多處理器 21
1.8.2 多核計算機 23
1.9 推薦讀物 23
1.10 關鍵術語、復習題和習題 24
1.10.1 關鍵術語 24
1.10.2 復習題 24
1.10.3 習題 24
附錄1A 兩級存儲器的性能特徵 26
第2章 操作係統概述 31
2.1 操作係統的目標和功能 31
2.1.1 作為用戶/計算機接口的
操作係統 31
2.1.2 作為資源管理器的操作係統 32
2.1.3 操作係統的易擴展性 33
2.2 操作係統的發展史 34
2.2.1 串行處理 34
2.2.2 簡單批處理係統 34
2.2.3 多道批處理係統 36
2.2.4 分時係統 38
2.3 主要成就 40
2.3.1 進程 40
2.3.2 內存管理 42
2.3.3 信息保護和安全 43
2.3.4 調度和資源管理 44
2.4 現代操作係統的特徵 45
2.5 容錯性 47
2.5.1 基本概念 47
2.5.2 錯誤 48
2.5.3 操作係統機製 48
2.6 多處理器和多核操作係統
設計考慮因素 49
2.6.1 對稱多處理器操作係統設計
考慮因素 49
2.6.2 多核操作係統設計考慮因素 49
2.7 微軟Windows係統簡介 51
2.7.1 背景 51
2.7.2 體係結構 51
2.7.3 客戶-服務器模型 53
2.7.4 綫程和SMP 54
2.7.5 Windows對象 54
2.8 傳統的UNIX係統 55
2.8.1 曆史 55
2.8.2 描述 56
2.9 現代UNIX係統 57
2.9.1 System V Release 4(SVR4) 58
2.9.2 BSD 58
2.9.3 Solaris 10 58
2.10 Linux操作係統 58
2.10.1 曆史 58
2.10.2 模塊結構 59
2.10.3 內核組件 60
2.11 Android 62
2.11.1 Android軟件體係結構 63
2.11.2 Android係統體係結構 64
2.11.3 活動 65
2.11.4 電源管理 65
2.12 推薦讀物和動畫 66
2.13 關鍵術語、復習題和習題 67
2.13.1 關鍵術語 67
2.13.2 復習題 67
2.13.3 習題 67
第二部分 進程
第3章 進程描述和控製 70
3.1 什麼是進程 70
3.1.1 背景 70
3.1.2 進程和進程控製塊 71
3.2 進程狀態 72
3.2.1 兩狀態進程模型 73
3.2.2 進程的創建和終止 74
3.2.3 五狀態模型 75
3.2.4 被掛起的進程 78
3.3 進程描述 81
3.3.1 操作係統的控製結構 82
3.3.2 進程控製結構 82
3.4 進程控製 86
3.4.1 執行模式 86
3.4.2 進程創建 87
3.4.3 進程切換 88
3.5 操作係統的執行 90
3.5.1 無進程內核 90
3.5.2 在用戶進程內運行 90
3.5.3 基於進程的操作係統 91
3.6 UNIX SVR4進程管理 91
3.6.1 進程狀態 92
3.6.2 進程描述 93
3.6.3 進程控製 94
3.7 小結 95
3.8 推薦讀物和動畫 95
3.9 關鍵術語、復習題和習題 95
3.9.1 關鍵術語 95
3.9.2 復習題 96
3.9.3 習題 96
第4章 綫程 99
4.1 進程和綫程 99
4.1.1 多綫程 99
4.1.2 綫程的功能 102
4.2 綫程分類 103
4.2.1 用戶級和內核級綫程 103
4.2.2 其他方案 106
4.3 多核和多綫程 107
4.3.1 多核係統上的軟件性能 107
4.3.2 應用示例:Valve遊戲軟件 109
4.4 Windows 8的進程和綫程管理 110
4.4.1 Windows 8中的變化 111
4.4.2 Windows進程 111
4.4.3 進程對象和綫程對象 112
4.4.4 多綫程 113
4.4.5 綫程狀態 113
4.4.6 對操作係統子係統的支持 114
4.5 Solaris的綫程和SMP管理 114
4.5.1 多綫程體係結構 114
4.5.2 動機 115
4.5.3 進程結構 115
4.5.4 綫程的執行 116
4.5.5 把中斷當作綫程 117
4.6 Linux的進程和綫程管理 118
4.6.1 Linux任務 118
4.6.2 Linux綫程 119
4.6.3 Linux命名空間 120
4.7 Android的進程和綫程管理 121
4.7.1 安卓應用 121
4.7.2 活動 121
4.7.3 進程和綫程 122
4.8 Mac OS X的GCD技術 123
4.9 小結 124
4.10 推薦讀物 125
4.11 關鍵術語、復習題和習題 125
4.11.1 關鍵術語 125
4.11.2 復習題 125
4.11.3 習題 125
第5章 並發性:互斥和同步 129
5.1 並發的原理 130
5.1.1 一個簡單的例子 130
5.1.2 競爭條件 132
5.1.3 操作係統關注的問題 132
5.1.4 進程的交互 133
5.1.5 互斥的要求 135
5.2 互斥:硬件的支持 136
5.2.1 中斷禁用 136
5.2.2 專用機器指令 136
5.3 信號量 138
5.3.1 互斥 141
5.3.2 生産者/消費者問題 142
5.3.3 信號量的實現 146
5.4 管程 147
5.4.1 使用信號的管程 147
5.4.2 使用通知和廣播的管程 149
5.5 消息傳遞 151
5.5.1 同步 151
5.5.2 尋址 152
5.5.3 消息格式 153
5.5.4 排隊原則 154
5.5.5 互斥 154
5.6 讀者/寫者問題 155
5.6.1 讀者優先 156
5.6.2 寫者優先 156
5.7 小結 158
5.8 推薦讀物和動畫 159
5.9 關鍵術語、復習題和習題 160
5.9.1 關鍵術語 160
5.9.2 復習題 160
5.9.3 習題 160
第6章 並發:死鎖和飢餓 170
6.1 死鎖原理 170
6.1.1 可重用資源 173
6.1.2 可消耗資源 174
6.1.3 資源分配圖 174
6.1.4 死鎖的條件 175
6.2 死鎖預防 176
6.2.1 互斥 176
6.2.2 占有且等待 176
6.2.3 不可搶占 176
6.2.4 循環等待 177
6.3 死鎖避免 177
6.3.1 進程啓動拒絕 177
6.3.2 資源分配拒絕 178
6.4 死鎖檢測 181
6.4.1 死鎖檢測算法 181
6.4.2 恢復 182
6.5 一種綜閤的死鎖策略 182
6.6 哲學傢就餐問題 183
6.6.1 基於信號量的解決方案 183
6.6.2 基於管程的解決方案 184
6.7 UNIX並發機製 185
6.7.1 管道 186
6.7.2 消息 186
6.7.3 共享內存 186
6.7.4 信號量 186
6.7.5 信號 187
6.8 Linux內核並發機製 187
6.8.1 原子操作 188
6.8.2 自鏇鎖 189
6.8.3 信號量 190
6.8.4 屏障 191
6.9 Solaris綫程同步原語 192
6.9.1 互斥鎖 193
6.9.2 信號量 193
6.9.3 多讀者/單寫者鎖 193
6.9.4 條件變量 193
6.10 Windows 7的並發機製 194
6.10.1 等待函數 194
6.10.2 分派器對象 194
6.10.3 臨界區 195
6.10.4 輕量級讀寫鎖和條件變量 195
6.10.5 鎖無關同步機製 196
6.11 Android進程間通信 196
6.12 小結 197
6.13 推薦讀物和動畫 197
6.14 關鍵術語、復習題和習題 198
6.14.1 關鍵術語 198
6.14.2 復習題 198
6.14.3 習題 198
第三部分 內存
第7章 內存管理 204
7.1 內存管理的需求 204
7.1.1 重定位 204
7.1.2 保護 205
7.1.3 共享 205
7.1.4 邏輯組織 205
7.1.5 物理組織 206
7.2 內存分區 206
7.2.1 固定分區 207
7.2.2 動態分區 208
7.2.3 夥伴係統 210
7.2.4 重定位 212
7.3 分頁 212
7.4 分段 215
7.5 小結 216
7.6 推薦讀物和動畫 216
7.7 關鍵術語、復習題和習題 216
7.7.1 關鍵術語 216
7.7.2 復習題 217
7.7.3 習題 217
附錄7A 加載和鏈接 219
第8章 虛擬內存 223
8.1 硬件和控製結構 223
8.1.1 局部性和虛擬內存 224
8.1.2 分頁 225
8.1.3 分段 232
8.1.4 段頁式 232
8.1.5 保護和共享 233
8.2 操作係統軟件 234
8.2.1 讀取策略 235
8.2.2 放置策略 235
8.2.3 置換策略 235
8.2.4 駐留集管理 239
8.2.5 清除策略 243
8.2.6 加載控製 244
8.3 UNIX和Solaris內存管理 245
8.3.1 分頁係統 245
8.3.2 內核內存分配器 247
8.4 Linux內存管理 249
8.4.1 虛擬內存 249
8.4.2 內核內存分配 250
8.5 Windows內存管理 251
8.5.1 Windows虛擬地址映射 251
8.5.2 Windows分頁 251
8.5.3 Windows 8交換 252
8.6 Android內存管理 252
8.7 小結 252
8.8 推薦讀物和動畫 253
8.9 關鍵術語、復習題和習題 253
8.9.1 關鍵術語 253
8.9.2 復習題 254
8.9.3 習題 254
第四部分 調度
第9章 單處理器調度 258
9.1 處理器調度的類型 258
9.1.1 長程調度 259
9.1.2 中程調度 260
9.1.3 短程調度 260
9.2 調度算法 260
9.2.1 短程調度規則 260
9.2.2 優先級的使用 261
9.2.3 選擇調度策略 262
9.2.4 性能比較 268
9.2.5 公平共享調度 272
9.3 傳統的UNIX調度 273
9.4 小結 274
9.5 推薦讀物和動畫 275
9.6 關鍵術語、復習題和習題 275
9.6.1 關鍵術語 275
9.6.2 復習題 275
9.6.3 習題 276
第10章 多處理器和實時調度 279
10.1 多處理器調度 279
10.1.1 粒度 279
10.1.2 設計問題 280
10.1.3 進程調度 281
10.1.4 綫程調度 283
10.1.5 多核綫程調度 286
10.2 實時調度 287
10.2.1 背景 287
10.2.2 實時操作係統的特點 288
10.2.3 實時調度 290
10.2.4 限期調度 291
10.2.5 速率單調調度 294
10.2.6 優先級反轉 295
10.3 Linux調度 297
10.3.1 實時調度 297
10.3.2 非實時調度 298
10.4 UNIX SVR4調度 300
10.5 FreeBSD調度程序 301
10.5.1 優先級 301
10.5.2 對稱多處理器與多核支持 301
10.6 Windows調度 303
10.6.1 進程和綫程優先級 303
10.6.2 多處理器調度 304
10.7 小結 305
10.8 推薦讀物 305
10.9 關鍵術語、復習題和習題 305
10.9.1 關鍵術語 305
10.9.2 復習題 306
10.9.3 習題 306
第五部分 輸入/輸齣和文件
第11章 I/O管理和磁盤調度 310
11.1 I/O設備 310
11.2 I/O功能的組織 311
11.2.1 I/O功能的發展 312
11.2.2 直接存儲器訪問 312
11.3 操作係統設計問題 314
11.3.1 設計目標 314
11.3.2 I/O功能的邏輯結構 314
11.4 I/O緩衝 315
11.4.1 單緩衝 316
11.4.2 雙緩衝 317
11.4.3 循環緩衝 317
11.4.4 緩衝的作用 317
11.5 磁盤調度 317
11.5.1 磁盤性能參數 317
11.5.2 磁盤調度策略 319
11.6 RAID 322
11.6.1 RAID級彆0 32
操作係統――精髓與設計原理(第八版) [Operating Systems: Internals and Design Principles] 下載 mobi epub pdf txt 電子書 格式
操作係統――精髓與設計原理(第八版) [Operating Systems: Internals and Design Principles] 下載 mobi pdf epub txt 電子書 格式 2024
操作係統――精髓與設計原理(第八版) [Operating Systems: Internals and Design Principles] mobi epub pdf txt 電子書 格式下載 2024