|
-- 會員 / 註冊 --
|
|
|
|
操作系統 精髓與設計原理 第8版 全球版 ( 簡體 字) |
作者:[美] 威廉·斯托林斯(William Stallings) | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 50480 詢問書籍請說出此書號!【缺書】 NT售價: 540 元 |
出版日:1/1/2019 |
頁數:596 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115477026 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書是操作系統的經典教材,內容涉及操作系統的概念、結構和機制。 全書不僅系統地講述了操作系統的基本概念、原理和方法,而且以當代主流的操作系統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.3 多道批處理系統 47 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 競態(Race Condition) 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 死鎖預防(Deadlock Prevention) 229 6.2.1 互斥條件 229 6.2.2 占有并等待條件 230 6.2.3 不可搶占條件 230 6.2.4 環路等待條件 230 6.3 死鎖避免(Deadlock Avoidance) 230 6.3.1 拒絕創建進程 231 6.3.2 拒絕分配資源 232 6.4 死鎖檢測(Deadlock Detection) 235 6.4.1 死鎖檢測算法 236 6.4.2 死鎖恢復 237 6.5 解決死鎖的綜合方案 237 6.6 哲學家進餐問題 238 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 條件變量(Condition Variable) 252 6.10 Windows 7的并發控制機制 252 6.10.1 Wait函數 252 6.10.2 調度對象(Dispatcher Object) 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 13.4.1 無線傳感器 網絡 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
|
序: |
|