预购商品
书目分类
特别推荐
作業系統目前已成為中國“卡脖子”的關鍵技術之一,這對作業系統的教材建設提出了新的要求。首先,教材需要體現作業系統的核心原理與設計,説明讀者構築系統性的認識;其次,教材需要反映國際研究前沿,幫助讀者開拓新思路;*後,教材需要反映工業界實踐,不可陷入紙上談兵的陷阱。 作為作業系統教材的新嘗試,本書融合了作者的教學經驗與工業實踐經驗,以三個“面向”為導向,即面向經典基礎理論與方法,面向國際前沿研究,面向*新工業界實踐,深入淺出地介紹作業系統的理論、架構、設計方法與具體實現。本書將原理與實現解耦,從具體問題匯出抽象概念,然後分析實現方法。全書內容以ARM架構為主,x86架構為輔;以微內核架構為主,同時兼顧宏內核與外核等架構。 除紙質版教材外,本書還配有網路章節、線上社區和課程實驗。與本書配套的微內核架構教學作業系統ChCore由上海交通大學並行與分散式系統研究所設計並實現,通過ChCore相關實驗,讀者可在動手實踐中獲得第一手經驗。
叢書序言 序言一 序言二 前言 第一部分 作業系統基礎 第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 6.6.1 對纖 ........
陳海波 上海交通大學特聘教授、博導,並行與分散式系統研究所所長,領域作業系統工程研究中心主任,國家傑出青年基金獲得者,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機密計算技術委員會委員。
客服公告
热门活动
订阅电子报