作業系統:精髓與設計原理(第8版) 全球版

作業系統:精髓與設計原理(第8版) 全球版

《作業系統:精髓與設計原理(第8版) 全球版》是2020年2月人民郵電出版社出版的圖書,作者是[美]威廉·斯托林斯(William Stallings)。

基本介紹

  • 中文名:作業系統:精髓與設計原理(第8版) 全球版
  • 作者:[美]威廉·斯托林斯(William Stallings)
  • 出版時間:2020年2月
  • 出版社人民郵電出版社
  • 頁數:596 頁
  • ISBN:9787115477026
  • 定價:108 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

本書是作業系統的經典教材,內容涉及作業系統的概念、結構和機制。
全書不僅系統地講述了作業系統的基本概念、原理和方法,而且以當代主流的作業系統Windows 8、UNIX、Android、Linux為例,呈現了當代作業系統的本質和特點。具體內容包括背景、進程、記憶體、調度、輸入/輸出與檔案、嵌入式系統、安全、分散式系統8個部分。

圖書目錄

第0章 讀者和教師指南 1
0.1 本書概述 2
0.2 實例系統 2
0.3 讀者和教師學習路線圖 3
0.4 網際網路和網站資源 4
本書配套的網站 4
其他網站 4
第 1部分 背景
第 1章 計算機系統概述 5
1.1 基本組成 6
1.2 微處理器的發展 7
1.3 指令的執行 8
1.4 中斷 10
1.4.1 中斷和指令周期 11
1.4.2 中斷處理 15
1.4.3 多箇中斷 17
1.5 分級存儲體系 19
1.6 高速快取 22
1.6.1 動機 22
1.6.2 高速快取的原理 22
1.6.3 高速快取的設計 24
1.7 直接記憶體訪問 25
1.8 多處理器和多核組織結構 26
1.8.1 對稱多處理器 27
1.8.2 組織結構 27
1.8.3 多核計算機 28
1.9 推薦閱讀 29
1.10 關鍵術語、複習題與習題 30
附錄1A 兩級存儲器的性能特徵 33
第 2章 作業系統概述 39
2.1 作業系統的目標和功能 40
2.1.1 作為用戶與系統互動
接口的作業系統 40
2.1.2 作為資源管理器
作業系統 42
2.1.3 作業系統的易
發展性 43
2.2 作業系統的發展 44
2.2.1 串列處理 44
2.2.2 簡單批處理系統 44
2.2.4 分時系統 49
2.3 主要成就 51
2.3.1 進程 52
2.3.2 記憶體管理 55
2.3.3 信息保護和安全 56
2.3.4 調度和資源管理 57
2.4 現代作業系統的發展 58
2.5 容錯 61
2.5.1 基本概念 61
2.5.2 故障 62
2.5.3 作業系統中的機制 63
2.6 多處理器和多核作業系統設計要
考慮的因素 63
2.6.1 對稱多處理器操作
系統設計上的考慮 63
2.6.2 多核作業系統
設計上的考慮 64
2.7 微軟Windows簡介 66
2.7.1 背景 66
2.7.2 體系結構 66
2.7.3 客戶/伺服器模式 69
2.7.4 執行緒和SMP 70
2.7.5 Windows對象 70
2.8 傳統UNIX系統 72
2.8.1 發展歷史 72
2.8.2 系統概述 72
2.9 現代UNIX系統 74
2.9.1 System V第4版
(SVR4) 74
2.9.2 BSD 75
2.9.3 Solaris 10 75
2.10 Linux系統 76
2.10.1 發展歷史 76
2.10.2 模組結構 76
2.10.3 核心組件 78
2.11 Android系統 80
2.11.1 安卓軟體架構 81
2.11.2 安卓系統架構 83
2.11.3 活動 83
2.11.4 電源管理 84
2.12 推薦閱讀和配套演示 85
2.13 關鍵術語、複習題與習題 86
第 2部分 進程
第3章 進程的描述與控制 89
3.1 什麼是進程· 90
3.1.1 背景 90
3.1.2 進程和進程控制塊 91
3.2 進程狀態 92
3.2.1 雙狀態模型 94
3.2.2 進程的創建和結束 95
3.2.3 五狀態模型 97
3.2.4 進程掛起 100
3.3 進程描述符 104
3.3.1 作業系統中控制
資源的結構 105
3.3.2 進程控制塊 106
3.4 進程控制 112
3.4.1 (處理器的)執行的
模式 112
3.4.2 進程創建 113
3.4.3 進程切換 114
3.5 作業系統的執行 116
3.5.1 獨立核心 116
3.5.2 嵌套於用戶進程 117
3.5.3 基於進程的操作
系統 118
3.6 UNIX SVR4中的進程管理 118
3.6.1 進程狀態 118
3.6.2 進程描述 120
3.6.3 進程控制 122
3.7 總結 122
3.8 推薦閱讀與動畫 123
3.9 關鍵術語、複習題與習題 123
第4章 執行緒 128
4.1 進程和執行緒 129
4.1.1 多執行緒 129
4.1.2 執行緒功能 132
4.2 執行緒的類型 134
4.2.1 用戶級和核心級
執行緒 134
4.2.2 其他設計 138
4.3 多核和多執行緒 140
4.3.1 多核環境下套用的
性能 140
4.3.2 套用示例:Valve的
遊戲軟體 143
4.4 Windows 8的進程和執行緒
管理 144
4.4.1 Windows 8所帶來的
改變 145
4.4.2 Windows進程 146
4.4.3 進程和執行緒對象 147
4.4.4 多執行緒 149
4.4.5 執行緒狀態 149
4.4.6 作業系統子系統的
支持 150
4.5 Solaris的執行緒和多處理器
管理 150
4.5.1 多執行緒結構 150
4.5.2 設計目標 151
4.5.3 進程結構 152
4.5.4 執行緒執行 153
4.5.5 用執行緒處理中斷 153
4.6 Linux的進程和執行緒管理 154
4.6.1 Linux進程 154
4.6.2 Linux執行緒 156
4.6.3 Linux命名空間 157
4.7 Android的進程和執行緒管理 158
4.7.1 Android套用 158
4.7.2 活動 159
4.7.3 進程和執行緒 161
4.8 Mac OS X的Grand Central
Dispatch 161
4.9 總結 164
4.10 推薦閱讀 164
4.11 關鍵術語、複習題與習題 164
第5章 並發:互斥與同步 169
5.1 並發的原理 171
5.1.1 一個簡單例子 172
5.1.2 競態(RaceCondition) 173
5.1.3 作業系統的設計
挑戰 174
5.1.4 進程互動 174
5.1.5 實現互斥的條件 177
5.2 互斥:硬體的支撐方案 178
5.2.1 關中斷 178
5.2.2 特殊機器指令 178
5.3 信號燈(Semaphore) 181
5.3.1 互斥的實現 184
5.3.2 生產者/消費者
問題 186
5.3.3 信號燈的實現 191
5.4 管程(Monitor) 192
5.4.1 管程和信號 192
5.4.2 採用通知和廣播的
管程模型 196
5.5 訊息通信 197
5.5.1 同步(Synchroni-zation) 198
5.5.2 定址(Addres-sing) 199
5.5.3 訊息格式 201
5.5.4 佇列組織 201
5.5.5 互斥的實現 201
5.6 讀者/寫者問題 203
5.6.1 讀者優先 203
5.6.2 寫者優先 204
5.7 總結 207
5.8 推薦閱讀 207
5.9 關鍵術語、複習題與習題 208
第6章 並發:死鎖與飢餓 221
6.1 死鎖的原理 222
6.1.1 可重用資源 225
6.1.2 消耗性資源 226
6.1.3 資源分配圖 227
6.1.4 死鎖發生的條件 228
6.2 死鎖預防(DeadlockPrevention) 229
6.2.1 互斥條件 229
6.2.2 占有並等待條件 230
6.2.3 不可搶占條件 230
6.2.4 環路等待條件 230
6.3 死鎖避免(DeadlockAvoidance) 230
6.3.1 拒絕創建進程 231
6.3.2 拒絕分配資源 232
6.4 死鎖檢測(DeadlockDetection) 235
6.4.1 死鎖檢測算法 236
6.4.2 死鎖恢復 237
6.5 解決死鎖的綜合方案 237
6.6.1 使用信號燈的解決
方案 238
6.6.2 使用管程的解決
方案 240
6.7 UNIX系統的並發控制機制 241
6.7.1 管道 242
6.7.2 訊息 242
6.7.3 共享記憶體 242
6.7.4 信號燈 242
6.7.5 信號 243
6.8 Linux核心的並發控制機制 244
6.8.1 原子操作 245
6.8.2 自旋鎖
(Spinlocks) 246
6.8.3 信號燈 248
6.8.4 屏障點
(Barriers) 249
6.9 Solaris執行緒同步原語 250
6.9.1 互斥鎖 251
6.9.2 信號燈 251
6.9.3 讀者/寫者鎖 252
6.9.4 條件變數(ConditionVariable) 252
6.10 Windows 7的並發控制機制 252
6.10.1 Wait函式 252
6.10.2 調度對象(DispatcherObject) 253
6.10.3 臨界區 254
6.10.4 瘦讀者-寫者鎖和
條件變數 254
6.10.5 無鎖同步 255
6.11 Android系統中的進程間
通信 255
6.12 總結 256
6.13 推薦閱讀 256
6.14 關鍵術語、複習題與習題 257
第3部分 記憶體
第7章 記憶體管理 265
7.1 記憶體管理的需求 266
7.1.1 記憶體重定位 266
7.1.2 記憶體保護 267
7.1.3 記憶體共享 268
7.1.4 邏輯結構 268
7.1.5 物理結構 268
7.2 記憶體分區 269
7.2.1 固定分區 270
7.2.2 分區大小 270
7.2.3 放置策略 271
7.2.4 動態分區 272
7.2.5 放置策略 273
7.2.6 置換策略 275
7.2.7 夥伴系統 275
7.2.8 重定位 277
7.3 分頁 278
7.4 分段 282
7.5 小結 282
7.6 推薦閱讀和配套演示 283
7.7 關鍵術語、複習題與習題 283
附錄7A 載入和連結 286
第8章 虛擬記憶體 292
8.1 硬體和控制結構 293
8.1.1 局部性和虛擬
記憶體 295
8.1.2 分頁 296
8.1.3 頁表結構 297
8.1.4 分段 305
8.1.5 段頁式 306
8.1.6 保護和共享 307
8.2 作業系統軟體 308
8.2.1 讀取策略 309
8.2.2 放置策略 309
8.2.3 置換策略 310
8.2.4 頁緩衝 314
8.2.5 置換策略和高速
緩衝的大小 315
8.2.6 清除策略 321
8.2.7 載入控制 321
8.3 UNIX和SOLARIS的記憶體
管理 323
8.3.1 分頁系統 323
8.3.2 核心記憶體分配器 326
8.4 Linux記憶體管理 327
8.4.1 Linux虛擬記憶體 327
8.4.2 核心記憶體分配 329
8.5 Windows記憶體管理 330
8.5.1 Windows虛擬地址
映射 330
8.5.2 Windows分頁 331
8.5.3 Windows 8交換 332
8.6 Android記憶體管理 332
8.7 小結 332
8.8 推薦閱讀和配套演示 333
8.9 關鍵術語、複習題與習題 334
第4部分 調度
第9章 單處理器調度 339
9.1 處理器調度的類型 340
9.1.1 長期調度 342
9.1.2 中期調度 343
9.1.3 短期調度 343
9.2 調度算法 343
9.2.1 短期調度準則 343
9.2.2 優先權的使用 345
9.2.3 可選的調度策略 345
9.2.4 性能比較 355
9.2.5 公平共享調度 360
9.3 傳統的UNIX調度 362
9.4 總結 363
9.5 推薦閱讀和動畫 364
9.6 關鍵術語、複習題與習題 364
第 10章 多處理器、多核調度與實時
調度 369
10.1 多處理器和多核調度 370
10.1.1 粒度 370
10.1.2 設計問題 371
10.1.3 進程調度 373
10.1.4 執行緒調度 374
10.1.5 多核執行緒調度 379
10.2 實時調度 380
10.2.1 背景 380
10.2.2 實時作業系統的
特點 381
10.2.3 實時調度 384
10.2.4 截止期限調度 385
10.2.5 單調速率調度 388
10.2.6 優先權反轉 391
10.3 Linux調度 393
10.3.1 實時調度 393
10.3.2 非實時調度 394
10.4 UNIX SVR4調度 396
10.5 UNIX FreeBSD調度 397
10.5.1 優先權類 398
10.5.2 對SMP和多核的
支持 398
10.6 Windows調度 400
10.6.1 進程和執行緒
優先權 400
10.6.2 多處理器調度 401
10.7 總結 402
10.8 推薦閱讀 403
10.9 關鍵術語、複習題與習題 403
第5部分 輸入/輸出與檔案
第 11章 I/O管理和磁碟調度 407
11.1 I/O設備 408
11.2 I/O功能的組織 409
11.2.1 I/O功能的發展
歷程 410
11.2.2 直接記憶體訪問 411
11.3 作業系統設計問題 412
11.3.1 設計目標 412
11.3.2 I/O功能的邏輯
結構 413
11.4 I/O緩衝 414
11.4.1 單緩衝區 415
11.4.2 雙緩衝區 416
11.4.3 環形緩衝區 417
11.4.4 緩衝區的作用 417
11.5 磁碟調度 417
11.5.1 磁碟性能參數 417
11.5.2 磁碟調度策略 419
11.6 RAID 423
11.6.1 0級RAID 426
11.6.2 1級RAID 427
11.6.3 2級RAID 428
11.6.4 3級RAID 428
11.6.5 4級RAID 429
11.6.6 5級RAID 430
11.6.7 6級RAID 430
11.7 磁碟高速快取 430
11.7.1 設計考慮 431
11.7.2 性能考慮 432
11.8 UNIX SVR4 I/O 434
11.8.1 緩衝區高速
快取 434
11.8.2 字元佇列 435
11.8.3 無緩衝的I/O 435
11.8.4 UNIX設備 436
11.9 Linux I/O 436
11.9.1 磁碟調度 436
11.9.2 Linux頁面快取 438
11.10 Windows I/O 439
11.10.1 基本I/O機制 439
11.10.2 異步I/O和同步
I/O 439
11.10.3 軟體RAID 440
11.10.4 卷影拷貝 441
11.10.5 卷加密 441
11.11 總結 441
11.12 推薦閱讀和動畫 441
11.13 關鍵術語、複習題與習題 443
第 12章 檔案管理 445
12.1 概述 446
12.1.1 檔案和檔案
系統 446
12.1.2 檔案結構 447
12.1.3 檔案管理系統 448
12.2 檔案組織與訪問 451
12.2.1 堆 452
12.2.2 順序檔案 453
12.2.3 索引順序檔案 453
12.2.4 索引檔案 454
12.2.5 直接檔案或哈希
檔案 455
12.3 B樹 455
12.4 檔案 458
12.4.1 內容 458
12.4.2 結構 459
12.4.3 命名 460
12.5 檔案共享 461
12.5.1 訪問許可權 462
12.5.2 同時訪問 462
12.6 記錄組塊 463
12.7 輔存管理 464
12.7.1 檔案分配 464
12.7.2 空閒空間管理 469
12.7.3 卷 471
12.7.4 可靠性 471
12.8 UNIX檔案管理 472
12.8.1 i節點 472
12.8.2 檔案分配 474
12.8.3 475
12.8.4 卷結構 475
12.9 Linux虛擬檔案系統 475
12.9.1 超級塊對象 477
12.9.2 i節點對象 478
12.9.3 項對象 478
12.9.4 檔案對象 478
12.9.5 高速快取 479
12.10 Windows檔案系統 479
12.10.1 NTFS的關鍵
特性 479
12.10.2 NTFS的卷和檔案
結構 480
12.10.3 可恢復性 482
12.11 Android檔案管理 483
12.11.1 檔案系統 483
12.11.2 SQLite 484
12.12 總結 485
12.13 推薦閱讀 485
12.14 關鍵術語、複習題與習題 486
第6部分 嵌入式系統
第 13章 嵌入式系統 489
13.1 嵌入式系統 490
13.2 嵌入式作業系統的特徵 491
13.2.1 移植現有的商用
作業系統 492
13.2.2 專用嵌入式操作
系統 492
13.3 嵌入式Linux 493
13.3.1 核心大小 493
13.3.2 編譯 493
13.3.3 嵌入式Linux檔案
系統 493
13.3.4 嵌入式Linux的
優勢 494
13.3.5 Android 494
13.4 TinyOS 495
網路 495
13.4.2 TinyOS的目標 496
13.4.3 TinyOS組件 497
13.4.4 TinyOS調度器 499
13.4.5 配置實例 500
13.4.6 TinyOS資源
接口 501
13.5 推薦閱讀 503
13.6 關鍵術語、複習題與習題 503
第 14章 虛擬機 506
14.1 虛擬化方法 508
14.2 處理器問題 511
14.3 記憶體管理 513
14.4 I/O管理 514
14.5 VMware ESXi 515
14.6 微軟Hyper-V和Xen變體 517
14.7 Java VM 518
14.8 Linux VServer虛擬機架構 519
14.8.1 體系結構 519
14.8.2 進程調度 520
14.9 Android虛擬機 521
14.9.1 Dex檔案格式 522
14.9.2 Zygote 523
14.10 總結 523
14.11 推薦閱讀 523
14.12 關鍵術語、複習題與習題 524
第7部分 安全
第 15章 作業系統安全 527
15.1 入侵者和惡意軟體 528
15.1.1 系統訪問威脅 528
15.1.2 對策 529
15.2 緩衝區溢出 531
15.2.1 緩衝區溢出
攻擊 531
15.2.2 編譯時防禦 534
15.2.3 運行時防禦 536
15.3 訪問控制 537
15.3.1 檔案系統訪問
控制 537
15.3.2 訪問控制策略 539
15.4 UNIX訪問控制 544
15.4.1 傳統UNIX檔案訪問
控制 544
15.4.2 UNIX中的訪問控制
列表 546
15.5 作業系統強化 546
15.5.1 作業系統安裝:初次
安裝與修補 547
15.5.2 移除不必要的服務、
套用和協定 548
15.5.3 配置用戶、組和身份
驗證 548
15.5.4 配置資源控制 549
15.5.5 安裝額外的安全
控制 549
15.5.6 測試系統安全性 549
15.6 安全維護 550
15.6.1 用戶登入 550
15.6.2 數據備份和存檔 550
15.7 Windows安全 551
15.7.1 訪問控制模式 551
15.7.2 訪問令牌 552
15.7.3 安全描述符 552
15.8 總結 555
15.9 推薦閱讀 555
15.10 關鍵術語、複習題與習題 556
第8部分 分散式系統
第 16章 分散式處理、客戶/伺服器和
集群 559
16.1 客戶/伺服器計算 560
16.1.1 什麼是客戶/伺服器
計算· 560
16.1.2 客戶/伺服器
套用 562
16.1.3 中間件 567
16.2 分散式訊息傳遞 569
16.2.1 可靠性與不可
靠性 571
16.2.2 阻塞與非阻塞 571
16.3 遠程過程調用 571
16.3.1 參數傳遞 572
16.3.2 參數表示 573
16.3.3 客戶/伺服器
綁定 573
16.3.4 同步與異步 573
16.3.5 面向對象機制 574
16.4 集群 574
16.4.1 集群的配置 575
16.4.2 作業系統的設計
問題 577
16.4.3 集群計算機的體系
結構 578
16.4.4 集群與SMP的
對比 579
16.5 Windows集群伺服器 579
16.6 Beowulf和Linux集群 581
16.6.1 Beowulf特性 581
16.6.2 Beowulf軟體 582
16.7 總結 582
16.8 推薦閱讀 583
16.9 關鍵術語、複習題與習題 583
參考文獻 586

相關詞條

熱門詞條

聯絡我們