作業系統:原理與實現

《作業系統:原理與實現》是2023年機械工業出版社出版的圖書。

基本介紹

  • 中文名:作業系統:原理與實現
  • 出版時間:2023年2月
  • 出版社:機械工業出版社
  • ISBN:9787111722489
內容簡介,圖書目錄,

內容簡介

作業系統目前已成為我國“卡脖子”的關鍵技術之一,這對作業系統的教材建設提出了新的要求。首先,教材需要體現作業系統的核心原理與設計,幫助讀者構築系統性的認識;其次,教材需要反映國際研究前沿,幫助讀者開拓新思路;*後,教材需要反映工業界實踐,不可陷入紙上談兵的陷阱。
作為作業系統教材的新嘗試,本書融合了作者的教學經驗與工業實踐經驗,以三個“面向”為導向,即面向經典基礎理論與方法,面向國際前沿研究,面向*新工業界實踐,深入淺出地介紹作業系統的理論、架構、設計方法與具體實現。本書將原理與實現解耦,從具體問題導出抽象概念,然後分析實現方法。全書內容以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
6.6.1 對纖

相關詞條

熱門詞條

聯絡我們