書馨卡幫你省薪 2024個人購書報告 2024中圖網(wǎng)年度報告
歡迎光臨中圖網(wǎng) 請 | 注冊

現(xiàn)代操作系統(tǒng)

作者:陳海波
出版社:機械工業(yè)出版社出版時間:2020-10-01
開本: 16開 頁數(shù): 376
中 圖 價:¥53.7(6.8折) 定價  ¥79.0 登錄后可看到會員價
加入購物車 收藏
運費6元,滿39元免運費
?新疆、西藏除外
本類五星書更多>

現(xiàn)代操作系統(tǒng) 版權(quán)信息

現(xiàn)代操作系統(tǒng) 本書特色

以三個“面向”為導(dǎo)向,即面向經(jīng)典基礎(chǔ)理論與方法,面向國際前沿研究,面向工業(yè)界實踐,深入淺出地介紹操作系統(tǒng)的理論、架構(gòu)、設(shè)計方法與具體實現(xiàn)。本書是首本以ARM64為主體介紹操作系統(tǒng)的教材,將學(xué)術(shù)前沿與工業(yè)實踐充分結(jié)合,不僅介紹了現(xiàn)有的Linux宏內(nèi)核操作系統(tǒng)架構(gòu),而且介紹了微內(nèi)核、外核等操作系統(tǒng)架構(gòu)。 本書作者陳海波現(xiàn)為上海交通大學(xué)特聘教授、博導(dǎo),并行與分布式系統(tǒng)研究所所長,領(lǐng)域操作系統(tǒng)教育部工程研究中心主任,國家杰出青年基金獲得者,ACM杰出科學(xué)家,CCF杰出會員與杰出演講者,不但有豐富的教學(xué)經(jīng)驗,而且在工業(yè)界還有豐富的帶領(lǐng)團隊研發(fā)操作系統(tǒng)的經(jīng)驗。因此本書不但介紹了現(xiàn)代操作系統(tǒng)的經(jīng)典理論與方法,還結(jié)合前沿研究與工業(yè)界實踐,介紹了真實場景下的應(yīng)用、問題和解決方案。 為了幫助讀者更好地理解操作系統(tǒng)的設(shè)計與實現(xiàn),上海交通大學(xué)并行與分布式系統(tǒng)研究所團隊還專門實現(xiàn)了一個小巧但具有較完整基礎(chǔ)功能的微內(nèi)核架構(gòu)教學(xué)操作系統(tǒng)ChCore,并基于ChCore設(shè)計了一系列的課程實驗。 擁有豐富的教輔材料:在“好大學(xué)在線”設(shè)置了MOOC課程;建設(shè)了課程網(wǎng)站,提供了與課程教學(xué)配套的講義PPT與授課視頻;搭建了在線社區(qū),供大家討論與答疑等。 結(jié)合作者在工業(yè)界長期擔(dān)任技術(shù)和綜合面試官的經(jīng)驗,將一些典型的操作系統(tǒng)相關(guān)的技術(shù)問題融入本書內(nèi)容以及每章的課后思考題中,既可為工業(yè)界從事操作系統(tǒng)相關(guān)領(lǐng)域研發(fā)工作的專業(yè)人員提供參考,又可對希望從事相關(guān)領(lǐng)域研發(fā)工作的求職者有所幫助。

現(xiàn)代操作系統(tǒng) 內(nèi)容簡介

本書以三個“面向”為導(dǎo)向,即面向經(jīng)典基礎(chǔ)理論與方法,面向國際前沿研究,面向工業(yè)界實踐,深入淺出地介紹操作系統(tǒng)的理論、架構(gòu)、設(shè)計方法與具體實現(xiàn)。本書是首本以ARM64為主體介紹操作系統(tǒng)的教材,將學(xué)術(shù)前沿與工業(yè)實踐充分結(jié)合,不僅介紹了現(xiàn)有的Linux宏內(nèi)核操作系統(tǒng)架構(gòu),而且介紹了微內(nèi)核、外核等操作系統(tǒng)架構(gòu)。 本書共分為三個部分,其中**部分(操作系統(tǒng)基礎(chǔ))以紙質(zhì)版的形式出版,第二部分(操作系統(tǒng)進(jìn)階)和第三部分(ChCore課程實驗)則以電子版的形式在本書網(wǎng)站發(fā)布。**部分共分為11章,內(nèi)容包括:操作系統(tǒng)概述、硬件結(jié)構(gòu)、操作系統(tǒng)結(jié)構(gòu)、內(nèi)存管理、進(jìn)程與線程、操作系統(tǒng)調(diào)度、進(jìn)程間通信、同步原語、文件系統(tǒng)與存儲、設(shè)備管理和系統(tǒng)虛擬化。 本書包含大量插圖、示例和練習(xí),并融入了典型的操作系統(tǒng)相關(guān)的技術(shù)問題,既可以作為高等院校計算機專業(yè)本科生和研究生的操作系統(tǒng)課程教材,也可以作為工業(yè)界從事操作系統(tǒng)相關(guān)領(lǐng)域研發(fā)工作的專業(yè)人員的參考書。

現(xiàn)代操作系統(tǒng) 目錄


目  錄

序言一

序言二

前言

**部分 操作系統(tǒng)基礎(chǔ)

第1章 操作系統(tǒng)概述 2

1.1 簡約但不簡單:從Hello World說起 2

1.2 什么是操作系統(tǒng) 3

1.3 操作系統(tǒng)簡史 6

1.3.1 GM-NAA I/O:**個(批處理)操作系統(tǒng) 6

1.3.2 OS/360:從專用走向通用 6

1.3.3 Multics/UNIX/Linux:分時與多任務(wù) 7

1.3.4 macOS/Windows:以人為本的人機交互 8

1.4 操作系統(tǒng)接口 9

1.5 ChCore:一個簡單的實驗操作系統(tǒng) 11

參考文獻(xiàn) 12

第2章 硬件結(jié)構(gòu) 13

2.1 CPU與指令集架構(gòu) 14

2.1.1 指令集 14

2.1.2 特權(quán)級 15

2.1.3 寄存器 17

2.2 物理內(nèi)存與CPU緩存 17

2.2.1 緩存結(jié)構(gòu) 18

2.2.2 緩存尋址 19

2.3 設(shè)備與中斷 20

2.3.1 內(nèi)存映射輸入輸出 20

2.3.2 輪詢與中斷 21

2.4 思考題 22

參考文獻(xiàn) 22

第3章 操作系統(tǒng)結(jié)構(gòu) 23

3.1 操作系統(tǒng)的機制與策略 24

3.2 操作系統(tǒng)復(fù)雜度管理方法 25

3.3 操作系統(tǒng)內(nèi)核架構(gòu) 27

3.3.1 簡要結(jié)構(gòu) 27

3.3.2 宏內(nèi)核架構(gòu) 28

3.3.3 微內(nèi)核架構(gòu) 30

3.3.4 外核架構(gòu) 32

3.3.5 其他操作系統(tǒng)內(nèi)核架構(gòu) 34

3.4 操作系統(tǒng)框架結(jié)構(gòu) 35

3.4.1 Android系統(tǒng)框架 35

3.4.2 ROS系統(tǒng)框架 37

3.5 思考題 39

參考文獻(xiàn) 40

第4章 內(nèi)存管理 42

4.1 虛擬地址與物理地址 43

4.1.1 初識物理地址與虛擬地址 43

4.1.2 使用虛擬地址訪問物理內(nèi)存 44

4.1.3 分段與分頁機制 44

4.2 基于分頁的虛擬內(nèi)存 46

4.2.1 AArch64架構(gòu)下的4級頁表 47

4.2.2 加速地址翻譯的重要硬件:TLB 49

4.2.3 換頁與缺頁異常 52

4.2.4 頁替換策略 54

4.2.5 工作集模型 57

4.3 虛擬內(nèi)存功能 58

4.3.1 共享內(nèi)存 58

4.3.2 寫時拷貝 58

4.3.3 內(nèi)存去重 60

4.3.4 內(nèi)存壓縮 60

4.3.5 大頁 61

4.4 物理內(nèi)存分配與管理 62

4.4.1 目標(biāo)與評價維度 62

4.4.2 伙伴系統(tǒng) 63

4.4.3 SLAB分配器 65

4.4.4 常用的空閑鏈表 66

4.4.5 物理內(nèi)存與CPU緩存 68

4.5 案例分析:ChCore內(nèi)存管理機制 70

4.6 思考題 73

參考文獻(xiàn) 74

第5章 進(jìn)程與線程 76

5.1 進(jìn)程 76

5.1.1 進(jìn)程的狀態(tài) 76

5.1.2 進(jìn)程的內(nèi)存空間布局 78

5.1.3 進(jìn)程控制塊和上下文切換 79

5.2 案例分析:Linux的進(jìn)程操作 80

5.2.1 進(jìn)程的創(chuàng)建:fork 80

5.2.2 進(jìn)程的執(zhí)行:exec 84

5.2.3 進(jìn)程管理 85

5.2.4 討論:fork過時了嗎 89

5.3 線程 92

5.3.1 多線程的地址空間布局 93

5.3.2 用戶態(tài)線程與內(nèi)核態(tài)線程 93

5.3.3 線程控制塊與線程本地存儲 94

5.3.4 線程的基本接口:以POSIX線程庫為例 95

5.4 案例分析:ChCore的線程上下文 99

5.4.1 線程的上下文和TCB 99

5.4.2 ChCore中上下文切換的實現(xiàn) 100

5.5 纖程 102

5.5.1 對纖程的需求:一個簡單的例子 103

5.5.2 POSIX的纖程支持:ucontext 103

5.5.3 纖程的上下文切換 105

5.6 思考題 106

參考文獻(xiàn) 107

第6章 操作系統(tǒng)調(diào)度 108

6.1 計算機調(diào)度簡介 108

6.1.1 操作系統(tǒng)調(diào)度 110

6.1.2 調(diào)度指標(biāo) 111

6.2 調(diào)度機制 113

6.2.1 長期、中期與短期調(diào)度 114

6.2.2 任務(wù)調(diào)度總覽 116

6.3 單核調(diào)度策略 117

6.3.1 經(jīng)典調(diào)度 118

6.3.2 優(yōu)先級調(diào)度 122

6.3.3 公平共享調(diào)度 127

6.3.4 實時調(diào)度 133

6.3.5 其他調(diào)度 138

6.4 多核調(diào)度策略 141

6.4.1 負(fù)載分擔(dān) 141

6.4.2 協(xié)同調(diào)度 142

6.4.3 兩級調(diào)度 144

6.4.4 負(fù)載追蹤與負(fù)載均衡 145

6.4.5 能耗感知調(diào)度 148

6.5 調(diào)度進(jìn)階機制 151

6.5.1 處理器親和性 152

6.5.2 調(diào)度策略設(shè)置 153

6.6 案例分析:現(xiàn)代調(diào)度器 155

6.6.1 Linux調(diào)度器 155

6.6.2 macOS/iOS調(diào)度器 160

6.7 思考題 162

參考文獻(xiàn) 163

第7章 進(jìn)程間通信 165

7.1 進(jìn)程間通信基礎(chǔ) 165

7.1.1 一個簡單的進(jìn)程間通信設(shè)計 166

7.1.2 數(shù)據(jù)傳遞 167

7.1.3 控制流轉(zhuǎn)移 169

7.1.4 單向和雙向 170

7.1.5 同步和異步 170

7.1.6 超時機制 171

7.1.7 通信連接管理 172

7.1.8 權(quán)限檢查 173

7.1.9 命名服務(wù) 174

7.2 宏內(nèi)核進(jìn)程間通信 175

7.2.1 管道進(jìn)程間通信 175

7.2.2 System V消息隊列 178

7.2.3 System V信號量 179

7.2.4 System V共享內(nèi)存 180

7.2.5 信號進(jìn)程間通信 181

7.2.6 套接字進(jìn)程間通信 185

7.3 微內(nèi)核進(jìn)程間通信 186

7.3.1 Mach:早期的微內(nèi)核進(jìn)程間通信設(shè)計 186

7.3.2 L4:圍繞進(jìn)程間通信優(yōu)化而設(shè)計的微內(nèi)核系統(tǒng) 188

7.3.3 LRPC:遷移線程模型 193

7.4 案例分析:Android Binder 195

7.4.1 背景 195

7.4.2 Binder IPC總覽 196

7.4.3 Binder IPC內(nèi)核設(shè)計 196

7.4.4 匿名共享內(nèi)存 199

7.5 案例分析:ChCore 進(jìn)程間通信機制 201

7.6 思考題 203

參考文獻(xiàn) 203

第8章 同步原語 206

8.1 互斥鎖 209

8.1.1 臨界區(qū)問題 209

8.1.2 硬件實現(xiàn):關(guān)閉中斷 211

8.1.3 軟件實現(xiàn):皮特森算法 211

8.1.4 軟硬件協(xié)同:使用原子操作實現(xiàn)互斥鎖 213

8.2 條件變量 219

8.2.1 條件變量的使用 219

8.2.2 條件變量的實現(xiàn) 222

8.3 信號量 223

8.3.1 信號量的使用 224

8.3.2 信號量的實現(xiàn) 225

8.4 讀寫鎖 229

8.4.1 讀寫鎖的使用 229

8.4.2 讀寫鎖的實現(xiàn) 230

8.5 RCU 233

8.5.1 訂閱/發(fā)布機制 234

8.5.2 寬限期 236

8.6 管程 237

8.7 同步帶來的問題 239

8.7.1 死鎖 239

8.7.2 活鎖 245

8.7.3 優(yōu)先級反轉(zhuǎn) 246

8.8 案例分析:Linux中的futex 249

8.9 案例分析:ChCore中的同步原語 251

8.10 思考題 252

參考文獻(xiàn) 254

第9章 文件系統(tǒng) 256

9.1 基于inode的文件系統(tǒng) 257

9.1.1 inode與文件 258

9.1.2 文件名與目錄 260

9.1.3 硬鏈接與符號鏈接 263

9.1.4 存儲布局 264

9.2 虛擬文件系統(tǒng) 266

9.2.1 面向文件系統(tǒng)的接口 266

9.2.2 面向應(yīng)用程序的接口 270

9.2.3 頁緩存、直接I/O與內(nèi)存映射 277

9.2.4 多種文件系統(tǒng)的組織和管理 280

9.2.5 偽文件系統(tǒng) 282

9.3 其他文件系統(tǒng) 284

9.3.1 FAT文件系統(tǒng) 284

9.3.2 NTFS 288

9.3.3 FUSE與用戶態(tài)文件系統(tǒng) 292

9.4 案例分析:ChCore文件系統(tǒng) 294

9.4.1 ChCore的文件系統(tǒng)架構(gòu) 294

9.4.2 內(nèi)存文件系統(tǒng) 295

9.5 思考題 296

參考文獻(xiàn) 297

第10章 設(shè)備管理 299

10.1 計算機設(shè)備的連接和通信 300

10.1.1 設(shè)備的連接:總線 300

10.1.2 可編程I/O 301

10.1.3 高效數(shù)據(jù)傳輸:DMA 301

10.1.4 設(shè)備地址翻譯:IOMMU 302

10.2 設(shè)備的識別 303

10.2.1 設(shè)備樹 303

10.2.2 ACPI 304

10.3 設(shè)備的中斷處理 305

10.3.1 中斷控制器 305

10.3.2 中斷的基本概念 306

10.3.3 中斷處理:以Linux上下半部的機制為例 308

10.4 設(shè)備驅(qū)動與設(shè)備驅(qū)動模型 313

10.4.1 設(shè)備驅(qū)動 313

10.4.2 設(shè)備驅(qū)動模型 315

10.5 案例分析:Linux設(shè)備驅(qū)動模型 315

10.5.1 Linux的設(shè)備抽象 315

10.5.2 Linux的設(shè)備驅(qū)動模型 318

10.5.3 Linux驅(qū)動的動態(tài)管理 319

10.5.4 Linux的sysfs文件系統(tǒng) 321

10.6 案例分析:L4設(shè)備驅(qū)動模型 322

10.7 案例分析:Linux的用戶態(tài)驅(qū)動框架 323

10.8 思考題 327

參考文獻(xiàn) 327

第11章 系統(tǒng)虛擬化 329

11.1 系統(tǒng)虛擬化技術(shù)概述 330

11.1.1 系統(tǒng)虛擬化及其組成部分 330

11.1.2 虛擬機監(jiān)控器的類型 331

11.2 CPU虛擬化 332

11.2.1 下陷和模擬 333

11.2.2 可虛擬化架構(gòu)與不可虛擬化架構(gòu) 333

11.2.3 解釋執(zhí)行 334

11.2.4 動態(tài)二進(jìn)制翻譯 335

11.2.5 掃描和翻譯 336

11.2.6 半虛擬化技術(shù) 337

11.2.7 硬件虛擬化技術(shù) 338

11.2.8 小結(jié) 340

11.3 內(nèi)存虛擬化 341

11.3.1 影子頁表機制 343

11.3.2 影子頁表的缺頁異常處理流程 345

11.3.3 直接頁表映射機制 345

11.3.4 兩階段地址翻譯機制 346

11.3.5 換頁和內(nèi)存氣球機制 349

11.3.6 小結(jié) 351

11.4 I/O虛擬化 351

11.4.1 軟件模擬方法 352

11.4.2 半虛擬化方法 354

11.4.3 設(shè)備直通:IOMMU和SR-IOV 356

11.4.4 小結(jié) 359

11.5 中斷虛擬化 360

11.6 案例分析:QEMU/KVM 361

11.6.1 KVM API和一個簡單的虛擬機監(jiān)控器 362

11.6.2 KVM與QEMU 364

11.6.3 KVM內(nèi)部實現(xiàn)簡介 366

11.7 思考題 367

參考文獻(xiàn) 367

縮略語 369

在線章節(jié)一

第二部分 操作系統(tǒng)進(jìn)階

第12章 多核與多處理器

第13章 文件系統(tǒng)崩潰一致性

第14章 網(wǎng)絡(luò)協(xié)議棧與系統(tǒng)

第15章 輕量級虛擬化

第16章 操作系統(tǒng)安全

第17章 操作系統(tǒng)調(diào)測

第18章 形式化證明

第三部分 ChCore課程實驗

第19章 實驗1:機器啟動

第20章 實驗2:內(nèi)存管理

第21章 實驗3:用戶進(jìn)程與異常處理

第22章 實驗4:多核處理

第23章 實驗5:文件系統(tǒng)與Shell

第24章 實驗6:進(jìn)階實踐


展開全部

現(xiàn)代操作系統(tǒng) 作者簡介

陳海波 上海交通大學(xué)特聘教授、博導(dǎo),并行與分布式系統(tǒng)研究所所長,領(lǐng)域操作系統(tǒng)教育部工程研究中心主任,國家杰出青年基金獲得者,ACM杰出科學(xué)家,CCF杰出會員與杰出演講者。主要研究領(lǐng)域為操作系統(tǒng)和系統(tǒng)安全。曾獲教育部技術(shù)發(fā)明一等獎(第一完成人)、全國優(yōu)秀博士學(xué)位論文獎、CCF青年科學(xué)家獎。目前擔(dān)任ACM SIGOPS ChinaSys主席、CCF系統(tǒng)軟件專委會副主任、ACM旗艦雜志Communications of the ACM中國首位編委與Special Sections領(lǐng)域共同主席、ACM Transactions on Storage編委。曾任ACM SOSP 2017年大會共同主席、ACM CCS 2018系統(tǒng)安全領(lǐng)域主席、ACM SIGSAC獎勵委員會委員。研究工作還獲得了華為最*個人貢獻(xiàn)獎、金牌團隊獎。按照csrankings.org的統(tǒng)計,其近5年(2015~2019)在操作系統(tǒng)領(lǐng)域高水平會議(SOSP/OSDI、EuroSys、USENIX ATC和FAST)上發(fā)表的論文數(shù)居世界第一。 夏虞斌 上海交通大學(xué)副教授、博導(dǎo),CCF高級會員。主要研究領(lǐng)域為操作系統(tǒng)、體系結(jié)構(gòu)和系統(tǒng)安全,曾任OSDI、EuroSys等多個國際會議的程序委員會委員。領(lǐng)導(dǎo)團隊研發(fā)的安全操作系統(tǒng)T6獲得2015年“挑戰(zhàn)杯”全國大學(xué)生課外學(xué)術(shù)科技作品競賽和中國大學(xué)生創(chuàng)業(yè)計劃競賽特等獎、2019年中國“互聯(lián)網(wǎng)+”大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽全國銀獎,并已實現(xiàn)產(chǎn)業(yè)化,實際部署設(shè)備數(shù)量過億;基于RISC-V平臺研發(fā)的可信執(zhí)行環(huán)境軟硬件系統(tǒng)“蓬萊”現(xiàn)已開源。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網(wǎng)
在線客服