注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡操作系統(tǒng)操作系統(tǒng):原理與實現(xiàn)

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

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

定 價:¥119.00

作 者: 陳海波 夏虞斌 等
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787111722489 出版時間: 2023-02-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內容簡介

  操作系統(tǒng)目前已成為我國“卡脖子”的關鍵技術之一,這對操作系統(tǒng)的教材建設提出了新的要求。首先,教材需要體現(xiàn)操作系統(tǒng)的核心原理與設計,幫助讀者構筑系統(tǒng)性的認識;其次,教材需要反映國際研究前沿,幫助讀者開拓新思路;*后,教材需要反映工業(yè)界實踐,不可陷入紙上談兵的陷阱。作為操作系統(tǒng)教材的新嘗試,本書融合了作者的教學經(jīng)驗與工業(yè)實踐經(jīng)驗,以三個“面向”為導向,即面向經(jīng)典基礎理論與方法,面向國際前沿研究,面向*新工業(yè)界實踐,深入淺出地介紹操作系統(tǒng)的理論、架構、設計方法與具體實現(xiàn)。本書將原理與實現(xiàn)解耦,從具體問題導出抽象概念,然后分析實現(xiàn)方法。全書內容以ARM架構為主,x86架構為輔;以微內核架構為主,同時兼顧宏內核與外核等架構。除紙質版教材外,本書還配有網(wǎng)絡章節(jié)、在線社區(qū)和課程實驗。與本書配套的微內核架構教學操作系統(tǒng)ChCore由上海交通大學并行與分布式系統(tǒng)研究所設計并實現(xiàn),通過ChCore相關實驗,讀者可在動手實踐中獲得第一手經(jīng)驗。

作者簡介

  陳海波 上海交通大學特聘教授、博導,并行與分布式系統(tǒng)研究所所長,領域操作系統(tǒng)工程研究中心主任,國家杰出青年基金獲得者,IEEE Fellow,ACM杰出科學家。主要研究領域為操作系統(tǒng)、分布式系統(tǒng)與系統(tǒng)安全。研究成果通過產(chǎn)學研深度結合被應用到十億級設備,產(chǎn)生了廣泛的學術與產(chǎn)業(yè)影響。曾獲陳嘉庚青年科學獎、技術發(fā)明一等獎、全國優(yōu)秀博士學位論文獎、中國青年科技獎等。目前擔任OpenHarmony技術指導委員會創(chuàng)始主席、CCF系統(tǒng)軟件專委會副主任、ACM旗艦雜志Communications of the ACM首位中國學者編委與領域共同主席。研究工作還獲得了華為卓越貢獻個人獎,ASPLOS、EuroSys、VEE等*佳論文獎以及DSN“時間檢驗獎”。按照csrankings.org的統(tǒng)計,其近5年(2018~2022)在操作系統(tǒng)領域高水平會議(SOSP/OSDI、EuroSys、USENIX ATC和FAST)上發(fā)表的論文數(shù)居世界第一。 夏虞斌 上海交通大學教授、博導,青年長江學者,上海市優(yōu)秀學術帶頭人,上海交通大學卓越教學獎獲得者,《麻省理工科技評論》2022年中國隱私計算科技創(chuàng)新人物。主要研究領域為操作系統(tǒng)、體系結構和系統(tǒng)安全,多次擔任OSDI、EuroSys等操作系統(tǒng)領域會議的程序委員會委員。曾獲技術發(fā)明一等獎、CCF NASAC青年軟件創(chuàng)新獎、VEE*佳論文獎、DSN“時間檢驗獎”。領導團隊研發(fā)的安全操作系統(tǒng)T6獲得“挑戰(zhàn)杯”全國特等獎、“互聯(lián)網(wǎng) ”雙創(chuàng)大賽全國銀獎,并已實現(xiàn)產(chǎn)業(yè)化,實際部署設備數(shù)量過億;基于RISC-V平臺研發(fā)的可信執(zhí)行環(huán)境軟硬件系統(tǒng)“蓬萊”現(xiàn)已開源。目前擔任OpenHarmony-上海交通大學技術俱樂部主任、OpenHarmony機密計算技術委員會委員。

圖書目錄

CONTENTS
目  錄
叢書序言
序言一
序言二
前言
第一部分 操作系統(tǒng)基礎
第1章 操作系統(tǒng)概述 2
1.1 簡約不簡單?:從Hello World
說起 2
1.2 什么是操作系統(tǒng) 3
1.3 操作系統(tǒng)簡史 5
1.3.1 GM-NAA I/O?:第一個
(批處理)操作系統(tǒng) 5
1.3.2 OS/360?:從專用走向通用 6
1.3.3 Multics/UNIX/Linux?:分時與多任務 6
1.3.4 macOS/Windows?:以人
為本的人機交互 7
1.3.5 iOS/Android?:移動互聯(lián)網(wǎng)
時代的操作系統(tǒng) 8
1.4 操作系統(tǒng)接口 10
1.5 思考題 12
參考文獻 12
第2章 操作系統(tǒng)結構 13
2.1 操作系統(tǒng)的機制與策略 14
2.2 操作系統(tǒng)復雜性的管理方法 15
2.3 操作系統(tǒng)內核架構 17
2.3.1 簡要結構 18
2.3.2 宏內核 18
2.3.3 微內核 20
2.3.4 外核 22
2.3.5 其他操作系統(tǒng)內核架構 24
2.4 操作系統(tǒng)框架結構 26
2.4.1 Android系統(tǒng)框架 26
2.4.2 ROS系統(tǒng)框架 28
2.5 操作系統(tǒng)設計?:Worse is better? 29
2.6 ChCore?:教學科研型微內核操作系統(tǒng) 31
2.7 思考題 32
參考文獻 32
第3章 硬件環(huán)境與軟件抽象 35
3.1 應用程序的硬件運行環(huán)境 35
3.1.1 程序的運行?:用指令序列
控制處理器 36
3.1.2 處理數(shù)據(jù)?:寄存器、運算和訪存 38
3.1.3 條件結構?:程序分支和
條件碼 43
3.1.4 函數(shù)的調用、返回與棧 46
3.1.5 函數(shù)的調用慣例 50
3.1.6 小結?:應用程序依賴的
處理器狀態(tài) 52
3.2 操作系統(tǒng)的硬件運行環(huán)境 54
3.2.1 特權級別與系統(tǒng)ISA 54
3.2.2 異常機制與異常向量表 57
3.2.3 案例分析?:ChCore啟動與
異常向量表初始化 60
3.2.4 用戶態(tài)與內核態(tài)的切換 61
3.2.5 系統(tǒng)調用 64
3.2.6 系統(tǒng)調用的優(yōu)化 66
3.3 操作系統(tǒng)提供的基本抽象與
接口 67
3.3.1 進程?:對處理器的抽象 69
3.3.2 案例分析?:使用POSIX
進程接口實現(xiàn)shell 70
3.3.3 虛擬內存?:對內存的
抽象 73
3.3.4 進程的虛擬內存布局 75
3.3.5 文件?:對存儲設備的
抽象 77
3.3.6 文件?:對所有設備的
抽象 79
3.4 思考題 80
3.5 練習答案 81
參考文獻 82
第4章 虛擬內存管理 83
4.1 CPU的職責?:內存地址翻譯 84
4.1.1 地址翻譯 84
4.1.2 分頁機制 85
4.1.3 多級頁表 87
4.1.4 頁表項與大頁 91
4.1.5 TLB?:頁表的緩存 93
4.2 操作系統(tǒng)的職責?:管理頁表映射 96
4.2.1 操作系統(tǒng)為自己配置頁表 96
4.2.2 如何填寫進程頁表 97
4.2.3 何時填寫進程頁表?:立即映射 101
4.2.4 何時填寫進程頁表?:延遲映射 104
4.2.5 常見的改變虛擬內存區(qū)域的接口 108
4.2.6 虛擬內存擴展功能 109
4.3 案例分析?:ChCore虛擬內存
管理 112
4.3.1 ChCore內核頁表初始化 112
4.3.2 ChCore內存管理 115
4.4 思考題 118
4.5 練習答案 119
參考文獻 121
第5章 物理內存管理 122
5.1 操作系統(tǒng)的職責?:管理物理
內存資源 122
5.1.1 目標與評價維度 122
5.1.2 基于位圖的連續(xù)物理頁
分配方法 123
5.1.3 伙伴系統(tǒng)原理 126
5.1.4 案例分析?:ChCore中伙伴
系統(tǒng)的實現(xiàn) 127
5.1.5 SLAB分配器的基本設計 131
5.1.6 常用的空閑鏈表 133
5.2 操作系統(tǒng)如何獲得更多物理內存資源 134
5.2.1 換頁機制 134
5.2.2 頁替換策略 137
5.2.3 頁表項中的訪問位與
頁替換策略實現(xiàn) 140
5.2.4 工作集模型 141
5.2.5 利用虛擬內存抽象節(jié)約物理內存資源 142
5.3 性能導向的內存分配擴展機制 143
5.3.1 物理內存與CPU緩存 144
5.3.2 物理內存分配與CPU
緩存 146
5.3.3 多核與內存分配 147
5.3.4 CPU緩存的硬件劃分 147
5.3.5 非一致內存訪問
(NUMA架構) 149
5.3.6 NUMA架構與內存分配 150
5.4 思考題 151
5.5 練習答案 152
參考文獻 152
第6章 進程與線程 154
6.1 進程的內部表示與管理接口 154
6.1.1 進程的內部表示—
PCB 154
6.1.2 進程創(chuàng)建的實現(xiàn) 155
6.1.3 進程退出的實現(xiàn) 159
6.1.4 進程等待的實現(xiàn) 160
6.1.5 exit與waitpid之間的信息傳遞 162
6.1.6 進程等待的范圍與父子
進程關系 164
6.1.7 進程睡眠的實現(xiàn) 166
6.1.8 進程執(zhí)行狀態(tài)及其管理 166
6.2 案例分析?:ChCore微內核的
進程管理 169
6.2.1 進程管理器與分離式
PCB 169
6.2.2 ChCore的進程操作?:
以進程創(chuàng)建為例 170
6.3 案例分析?:Linux的進程創(chuàng)建 172
6.3.1 經(jīng)典的進程創(chuàng)建方法?:
fork 172
6.3.2 其他進程創(chuàng)建方法 175
6.4 進程切換 179
6.4.1 進程的處理器上下文 180
6.4.2 進程的切換節(jié)點 180
6.4.3 進程切換的全過程 181
6.4.4 案例分析?:ChCore的
進程切換實現(xiàn) 182
6.5 線程及其實現(xiàn) 191
6.5.1 為什么需要線程 191
6.5.2 用戶視角看線程 192
6.5.3 線程的實現(xiàn)?:內核數(shù)據(jù)
結構 194
6.5.4 線程的實現(xiàn)?:管理接口 195
6.5.5 線程切換 200
6.5.6 內核態(tài)線程與用戶態(tài)
線程 200
6.6 纖程 202
6.6.1 對纖

本目錄推薦

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