操作系統:原理與實現 版權信息
- ISBN:9787111722489
- 條形碼:9787111722489 ; 978-7-111-72248-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
操作系統:原理與實現 本書特色
·解耦原理與實現,以問題為驅動學習經典理論與設計方法
·面向前沿研究與工業界實踐,以ARM架構為主探索真實場景與問題
·微內核架構操作系統ChCore全新升級,配備全套實驗及教輔資源
操作系統:原理與實現 內容簡介
操作系統目前已成為我國“卡脖子”的關鍵技術之一,這對操作系統的教材建設提出了新的要求。首先,教材需要體現操作系統的核心原理與設計,幫助讀者建立系統性的認識;其次,教材需要反映國際研究前沿,幫助讀者開拓新思路;*后,教材需要反映工業界實踐,不可陷入紙上談兵的陷阱。 作為操作系統教材的新嘗試,本書融合了作者的教學經驗與工業實踐經驗,以三個“面向”為導向,即面向經典基礎理論與方法,面向國際前沿研究,面向*新工業界實踐,深入淺出地介紹操作系統的理論、架構、設計方法與具體實現。本書將原理與實現解耦,從具體問題導出抽象概念,然后分析實現方法。全書內容以ARM架構為主,x86架構為輔;以微內核架構為主,同時兼顧宏內核與外核等架構。 除紙質版教材外,本書還配有網絡章節、在線社區和課程實驗。與本書配套的微內核架構教學操作系統ChCore由上海交通大學并行與分布式系統研究所設計并實現,通過ChCore相關實驗,讀者可在動手實踐中獲得**手經驗。
操作系統:原理與實現 目錄
CONTENTS
目 錄
叢書序言
序言一
序言二
前言
**部分 操作系統基礎
第1章 操作系統概述 2
1.1 簡約不簡單?:從Hello World
說起 2
1.2 什么是操作系統 3
1.3 操作系統簡史 5
1.3.1 GM-NAA I/O?:**個
(批處理)操作系統 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?:移動互聯網
時代的操作系統 8
1.4 操作系統接口 10
1.5 思考題 12
參考文獻 12
第2章 操作系統結構 13
2.1 操作系統的機制與策略 14
2.2 操作系統復雜性的管理方法 15
2.3 操作系統內核架構 17
2.3.1 簡要結構 18
2.3.2 宏內核 18
2.3.3 微內核 20
2.3.4 外核 22
2.3.5 其他操作系統內核架構 24
2.4 操作系統框架結構 26
2.4.1 Android系統框架 26
2.4.2 ROS系統框架 28
2.5 操作系統設計?:Worse is better? 29
2.6 ChCore?:教學科研型微內核操作系統 31
2.7 思考題 32
參考文獻 32
第3章 硬件環境與軟件抽象 35
3.1 應用程序的硬件運行環境 35
3.1.1 程序的運行?:用指令序列
控制處理器 36
3.1.2 處理數據?:寄存器、運算和訪存 38
3.1.3 條件結構?:程序分支和
條件碼 43
3.1.4 函數的調用、返回與棧 46
3.1.5 函數的調用慣例 50
3.1.6 小結?:應用程序依賴的
處理器狀態 52
3.2 操作系統的硬件運行環境 54
3.2.1 特權級別與系統ISA 54
3.2.2 異常機制與異常向量表 57
3.2.3 案例分析?:ChCore啟動與
異常向量表初始化 60
3.2.4 用戶態與內核態的切換 61
3.2.5 系統調用 64
3.2.6 系統調用的優化 66
3.3 操作系統提供的基本抽象與
接口 67
3.3.1 進程?:對處理器的抽象 69
3.3.2 案例分析?:使用POSIX
進程接口實現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 操作系統的職責?:管理頁表映射 96
4.2.1 操作系統為自己配置頁表 96
4.2.2 如何填寫進程頁表 97
4.2.3 何時填寫進程頁表?:立即映射 101
4.2.4 何時填寫進程頁表?:延遲映射 104
4.2.5 常見的改變虛擬內存區域的接口 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 操作系統的職責?:管理物理
內存資源 122
5.1.1 目標與評價維度 122
5.1.2 基于位圖的連續物理頁
分配方法 123
5.1.3 伙伴系統原理 126
5.1.4 案例分析?:ChCore中伙伴
系統的實現 127
5.1.5 SLAB分配器的基本設計 131
5.1.6 常用的空閑鏈表 133
5.2 操作系統如何獲得更多物理內存資源 134
5.2.1 換頁機制 134
5.2.2 頁替換策略 137
5.2.3 頁表項中的訪問位與
頁替換策略實現 140
5.2.4 工作集模型 141
5.2.5 利用虛擬內存抽象節約物理內存資源 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 進程創建的實現 155
6.1.3 進程退出的實現 159
6.1.4 進程等待的實現 160
6.1.5 exit與waitpid之間的信息傳遞 162
6.1.6 進程等待的范圍與父子
進程關系 164
6.1.7 進程睡眠的實現 166
6.1.8 進程執行狀態及其管理 166
6.2 案例分析?:ChCore微內核的
進程管理 169
6.2.1 進程管理器與分離式
PCB 169
6.2.2 ChCore的進程操作?:
以進程創建為例 170
6.3 案例分析?:Linux的進程創建 172
6.3.1 經典的進程創建方法?:
fork 172
6.3.2 其他進程創建方法 175
6.4 進程切換 179
6.4.1 進程的處理器上下文 180
6.4.2 進程的切換節點 180
6.4.3 進程切換的全過程 181
6.4.4 案例分析?:ChCore的
進程切換實現 182
6.5 線程及其實現 191
6.5.1 為什么需要線程 191
6.5.2 用戶視角看線程 192
6.5.3 線程的實現:內核數據
結構 194
6.5.4 線程的實現:管理接口 195
6.5.5 線程切換 200
6.5.6 內核態線程與用戶態
線程 200
6.6 纖程 202
展開全部
操作系統:原理與實現 作者簡介
陳海波
上海交通大學特聘教授、博導,并行與分布式系統研究所所長,領域操作系統教育部工程研究中心主任,國家杰出青年基金獲得者,IEEE Fellow,ACM杰出科學家。主要研究領域為操作系統、分布式系統與系統安全。研究成果通過產學研深度結合被應用到十億級設備,產生了廣泛的學術與產業影響。曾獲陳嘉庚青年科學獎、教育部技術發明一等獎、全國優秀博士學位論文獎、中國青年科技獎等。目前擔任OpenHarmony技術指導委員會創始主席、CCF系統軟件專委會副主任、ACM旗艦雜志Communications of the ACM首位中國學者編委與領域共同主席。研究工作還獲得了華為卓越貢獻個人獎,ASPLOS、EuroSys、VEE等最佳論文獎以及DSN“時間檢驗獎”。按照csrankings.org的統計,其近5年(2018~2022)在操作系統領域高水平會議(SOSP/OSDI、EuroSys、USENIX ATC和FAST)上發表的論文數居世界第一。 夏虞斌
上海交通大學教授、博導,教育部青年長江學者,上海市優秀學術帶頭人,上海交通大學卓越教學獎獲得者,《麻省理工科技評論》2022年中國隱私計算科技創新人物。主要研究領域為操作系統、體系結構和系統安全,多次擔任OSDI、EuroSys等操作系統領域會議的程序委員會委員。曾獲教育部技術發明一等獎、CCF NASAC青年軟件創新獎、VEE最佳論文獎、DSN“時間檢驗獎”。領導團隊研發的安全操作系統T6獲得“挑戰杯”全國特等獎、“互聯網+”雙創大賽全國銀獎,并已實現產業化,實際部署設備數量過億;基于RISC-V平臺研發的可信執行環境軟硬件系統“蓬萊”現已開源。目前擔任OpenHarmony-上海交通大學技術俱樂部主任、OpenHarmony機密計算技術委員會委員。