作業系統——精髓與設計原理(第八版)

本書既是關於作業系統概念、結構和機制的教材,目的是儘可能清楚和全面地展示現代作業系統的本質和特點;也是講解作業系統的經典教材,不僅系統地講述了作業系統的基本概念、原理和方法,而且以當代最流行的作業系統Windows 8、UNIX、Android、Linux為例,展現了當代作業系統的本質和特點。

圖書內容

本書既是關於作業系統概念、結構和機制的教材,目的是儘可能清楚和全面地展示現代作業系統的本質和特點;也是講解作業系統的經典教材,不僅系統地講述了作業系統的基本概念、原理和方法,而且以當代最流行的作業系統Windows 8、UNIX、Android、Linux為例,展現了當代作業系統的本質和特點。

全書共分背景知識、進程、記憶體、調度、輸入/輸出和檔案、嵌入式系統六部分,內容包括計算機系統概述、作業系統概述、進程描述和控制、執行緒、並發性:互斥和同步、並發:死鎖和飢餓、記憶體管理、虛擬記憶體、單處理器調度、多處理器和實時調度、I/O管理和磁碟調度、檔案管理、嵌入式作業系統、虛擬機、計算機安全技術、分散式處理、客戶/伺服器和集群等。此外,本書配套網站提供了及時、生動的材料。

目錄

第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

相關詞條

熱門詞條

聯絡我們