-
>
決戰(zhàn)行測5000題(言語理解與表達(dá))
-
>
軟件性能測試.分析與調(diào)優(yōu)實踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計算機系統(tǒng)-原書第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門到精通-(附贈1DVD.含語音視頻教學(xué)+辦公模板+PDF電子書)
現(xiàn)代操作系統(tǒng) 版權(quán)信息
- ISBN:9787111666073
- 條形碼:9787111666073 ; 978-7-111-66607-3
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
現(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)已開源。
- >
小考拉的故事-套裝共3冊
- >
巴金-再思錄
- >
史學(xué)評論
- >
名家?guī)阕x魯迅:故事新編
- >
莉莉和章魚
- >
大紅狗在馬戲團-大紅狗克里弗-助人
- >
中國歷史的瞬間
- >
中國人在烏蘇里邊疆區(qū):歷史與人類學(xué)概述