注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)現(xiàn)代操作系統(tǒng):原理與實(shí)現(xiàn)

現(xiàn)代操作系統(tǒng):原理與實(shí)現(xiàn)

現(xiàn)代操作系統(tǒng):原理與實(shí)現(xiàn)

定 價(jià):¥79.00

作 者: 陳海波,夏虞斌 等 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111666073 出版時(shí)間: 2020-10-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 376 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書(shū)目錄


目  錄
序言一
序言二
前言
第一部分 操作系統(tǒng)基礎(chǔ)
第1章 操作系統(tǒng)概述 2
1.1 簡(jiǎn)約但不簡(jiǎn)單:從Hello World說(shuō)起 2
1.2 什么是操作系統(tǒng) 3
1.3 操作系統(tǒng)簡(jiǎn)史 6
1.3.1 GM-NAA I/O:第一個(gè)(批處理)操作系統(tǒng) 6
1.3.2 OS/360:從專用走向通用 6
1.3.3 Multics/UNIX/Linux:分時(shí)與多任務(wù) 7
1.3.4 macOS/Windows:以人為本的人機(jī)交互 8
1.4 操作系統(tǒng)接口 9
1.5 ChCore:一個(gè)簡(jiǎn)單的實(shí)驗(yàn)操作系統(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)級(jí) 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)的機(jī)制與策略 24
3.2 操作系統(tǒng)復(fù)雜度管理方法 25
3.3 操作系統(tǒng)內(nèi)核架構(gòu) 27
3.3.1 簡(jiǎn)要結(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 初識(shí)物理地址與虛擬地址 43
4.1.2 使用虛擬地址訪問(wèn)物理內(nèi)存 44
4.1.3 分段與分頁(yè)機(jī)制 44
4.2 基于分頁(yè)的虛擬內(nèi)存 46
4.2.1 AArch64架構(gòu)下的4級(jí)頁(yè)表 47
4.2.2 加速地址翻譯的重要硬件:TLB 49
4.2.3 換頁(yè)與缺頁(yè)異常 52
4.2.4 頁(yè)替換策略 54
4.2.5 工作集模型 57
4.3 虛擬內(nèi)存功能 58
4.3.1 共享內(nèi)存 58
4.3.2 寫(xiě)時(shí)拷貝 58
4.3.3 內(nèi)存去重 60
4.3.4 內(nèi)存壓縮 60
4.3.5 大頁(yè) 61
4.4 物理內(nèi)存分配與管理 62
4.4.1 目標(biāo)與評(píng)價(jià)維度 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)存管理機(jī)制 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過(guò)時(shí)了嗎 89
5.3 線程 92
5.3.1 多線程的地址空間布局 93
5.3.2 用戶態(tài)線程與內(nèi)核態(tài)線程 93
5.3.3 線程控制塊與線程本地存儲(chǔ) 94
5.3.4 線程的基本接口:以POSIX線程庫(kù)為例 95
5.4 案例分析:ChCore的線程上下文 99
5.4.1 線程的上下文和TCB 99
5.4.2 ChCore中上下文切換的實(shí)現(xiàn) 100
5.5 纖程 102
5.5.1 對(duì)纖程的需求:一個(gè)簡(jiǎn)單的例子 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 計(jì)算機(jī)調(diào)度簡(jiǎn)介 108
6.1.1 操作系統(tǒng)調(diào)度 110
6.1.2 調(diào)度指標(biāo) 111
6.2 調(diào)度機(jī)制 113
6.2.1 長(zhǎng)期、中期與短期調(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)先級(jí)調(diào)度 122
6.3.3 公平共享調(diào)度 127
6.3.4 實(shí)時(shí)調(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 兩級(jí)調(diào)度 144
6.4.4 負(fù)載追蹤與負(fù)載均衡 145
6.4.5 能耗感知調(diào)度 148
6.5 調(diào)度進(jìn)階機(jī)制 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 一個(gè)簡(jiǎn)單的進(jìn)程間通信設(shè)計(jì) 166
7.1.2 數(shù)據(jù)傳遞 167
7.1.3 控制流轉(zhuǎn)移 169
7.1.4 單向和雙向 170
7.1.5 同步和異步 170
7.1.6 超時(shí)機(jī)制 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消息隊(duì)列 178
7.2.3 System V信號(hào)量 179
7.2.4 System V共享內(nèi)存 180
7.2.5 信號(hào)進(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è)計(jì) 186
7.3.2 L4:圍繞進(jìn)程間通信優(yōu)化而設(shè)計(jì)的微內(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è)計(jì) 196
7.4.4 匿名共享內(nèi)存 199
7.5 案例分析:ChCore 進(jìn)程間通信機(jī)制 201
7.6 思考題 203
參考文獻(xiàn) 203
第8章 同步原語(yǔ) 206
8.1 互斥鎖 209
8.1.1 臨界區(qū)問(wèn)題 209
8.1.2 硬件實(shí)現(xiàn):關(guān)閉中斷 211
8.1.3 軟件實(shí)現(xiàn):皮特森算法 211
8.1.4 軟硬件協(xié)同:使用原子操作實(shí)現(xiàn)互斥鎖 213
8.2 條件變量 219
8.2.1 條件變量的使用 219
8.2.2 條件變量的實(shí)現(xiàn) 222
8.3 信號(hào)量 223
8.3.1 信號(hào)量的使用 224
8.3.2 信號(hào)量的實(shí)現(xiàn) 225
8.4 讀寫(xiě)鎖 229
8.4.1 讀寫(xiě)鎖的使用 229
8.4.2 讀寫(xiě)鎖的實(shí)現(xiàn) 230
8.5 RCU 233
8.5.1 訂閱/發(fā)布機(jī)制 234
8.5.2 寬限期 236
8.6 管程 237
8.7 同步帶來(lái)的問(wèn)題 239
8.7.1 死鎖 239
8.7.2 活鎖 245
8.7.3 優(yōu)先級(jí)反轉(zhuǎn) 246
8.8 案例分析:Linux中的futex 249
8.9 案例分析:ChCore中的同步原語(yǔ) 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 硬鏈接與符號(hào)鏈接 263
9.1.4 存儲(chǔ)布局 264
9.2 虛擬文件系統(tǒng) 266
9.2.1 面向文件系統(tǒng)的接口 266
9.2.2 面向應(yīng)用程序的接口 270
9.2.3 頁(yè)緩存、直接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 計(jì)算機(jī)設(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è)備的識(shí)別 303
10.2.1 設(shè)備樹(shù) 303
10.2.2 ACPI 304
10.3 設(shè)備的中斷處理 305
10.3.1 中斷控制器 305
10.3.2 中斷的基本概念 306
10.3.3 中斷處理:以Linux上下半部的機(jī)制為例 308
10.4 設(shè)備驅(qū)動(dòng)與設(shè)備驅(qū)動(dòng)模型 313
10.4.1 設(shè)備驅(qū)動(dòng) 313
10.4.2 設(shè)備驅(qū)動(dòng)模型 315
10.5 案例分析:Linux設(shè)備驅(qū)動(dòng)模型 315
10.5.1 Linux的設(shè)備抽象 315
10.5.2 Linux的設(shè)備驅(qū)動(dòng)模型 318
10.5.3 Linux驅(qū)動(dòng)的動(dòng)態(tài)管理 319
10.5.4 Linux的sysfs文件系統(tǒng) 321
10.6 案例分析:L4設(shè)備驅(qū)動(dòng)模型 322
10.7 案例分析:Linux的用戶態(tài)驅(qū)動(dòng)框架 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 虛擬機(jī)監(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 動(dòng)態(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 影子頁(yè)表機(jī)制 343
11.3.2 影子頁(yè)表的缺頁(yè)異常處理流程 345
11.3.3 直接頁(yè)表映射機(jī)制 345
11.3.4 兩階段地址翻譯機(jī)制 346
11.3.5 換頁(yè)和內(nèi)存氣球機(jī)制 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和一個(gè)簡(jiǎn)單的虛擬機(jī)監(jiān)控器 362
11.6.2 KVM與QEMU 364
11.6.3 KVM內(nèi)部實(shí)現(xiàn)簡(jiǎn)介 366
11.7 思考題 367
參考文獻(xiàn) 367
縮略語(yǔ) 369
在線章節(jié)一
第二部分 操作系統(tǒng)進(jìn)階
第12章 多核與多處理器
第13章 文件系統(tǒng)崩潰一致性
第14章 網(wǎng)絡(luò)協(xié)議棧與系統(tǒng)
第15章 輕量級(jí)虛擬化
第16章 操作系統(tǒng)安全
第17章 操作系統(tǒng)調(diào)測(cè)
第18章 形式化證明
第三部分 ChCore課程實(shí)驗(yàn)
第19章 實(shí)驗(yàn)1:機(jī)器啟動(dòng)
第20章 實(shí)驗(yàn)2:內(nèi)存管理
第21章 實(shí)驗(yàn)3:用戶進(jìn)程與異常處理
第22章 實(shí)驗(yàn)4:多核處理
第23章 實(shí)驗(yàn)5:文件系統(tǒng)與Shell
第24章 實(shí)驗(yàn)6:進(jìn)階實(shí)踐

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)