現代作業系統-原理與實現【讀書筆記】
看看多久才會讀完---買於20年雙十一
目錄
第1章-作業系統概述
從硬體角度
對硬體進行管理,處理各種錯誤
對硬體進行抽象,形成不依賴硬體的資源
從應用角度
提供不同的介面,滿足不同型別的訪問控制,應用間互動等服務
進行資源分配與管理
作業系統提供不同層次的介面
- 系統呼叫介面,例如printf【printf 從應用程式-》libc-》下陷處理-》系統呼叫處理】[從應用程式-》libc-》是在使用者態] [從下陷處理-》系統呼叫處理 是在核心態]
- POSIX介面【可移植作業系統介面】,例如glibc
- 領域應用介面,例如AUTOSAR,這種算框架了
第2章-硬體結構
馮諾依曼-機,包含
- 中央處理器
- 儲存器
- 輸入輸出
指令集是ISA【指令集架構】的重要組成部分,AArch64屬於RISC【精簡指令集計算機】
特權級在AArch64中叫做異常級別,包括
- EL0 應用層跑在這【使用者態】
- EL1 作業系統跑在這【核心態】
- EL2 虛擬化在這裡【虛擬機器場景用】
- EL3 TrustZone相關【負責切換安全世界和普通世界】
何時從EL0切換到EL1
- 應用層程式用系統呼叫
- CPU收到中斷
- 應用層觸發了異常
其中1和2為同步的CPU特權級切換
3為非同步的CPU特權級切換
從EL0切換到EL1
- 觸發異常的指令地址【PC】儲存到ELR_EL1
- 異常原因儲存到ESR_EL1
- CPU將棧指標從SP_EL0切換到SP_EL1,在異常向量表中選擇對應的異常處理函式
- CPU還要儲存一些狀態
暫存器是ISA的重要組成,包括
- 通用暫存器
- 棧指標暫存器
- 連結指標
EL1下有兩個頁表基地址暫存器,這個和虛擬記憶體有關係
Cache
這個是為了加快CPU訪問資料的速度,包括:
若干個緩衝行,每一個行包括
一個有效位
一個標記地址
為了通過實體地址找到對應的快取,實體地址在邏輯上分為Tag,Set以及Offset三段
實體地址中Set段能夠表示的最大數目叫做組
支援的最大Tag數叫做路
快取結構和快取定址的圖請看書
第3章-作業系統結構
設計作業系統的原則【機制與策略分離】
策略:做什麼【輸入處理,啟動載入....】
機制:如何做【排程方法...】
管理複雜系統的方法
- 模組化
- 抽象
- 分層
- 層級
模組化:分而治之,將複雜系統分解成一系列的模組,保證模組之間的界限,高耦合低內聚,使之有獨立性
抽象:介面與實現分離,無需關心各個模組之間的內部實現
分層:將模組按一定的層次劃分,約束內部模組之間的互動方式
層級:將功能相近的模組劃分在一個子系統
作業系統的核心架構
- 簡要結構
- 單核心
- 微核心
- 外核
- 多核心
簡要結構:應用程式和作業系統在同一個地址空間,沒有虛擬記憶體管理,特權級隔離等功能,任何一個模組出問題,系統就崩潰了
單核心:所有的作業系統模組執行在核心態
微核心:將單個的核心功能拆分,作為服務部署在使用者態,僅有很小部分的核心執行在核心態,服務提供程式間通訊的功能使之互相協作
外核:作業系統與應用程式掛鉤,應用程式要啥就裝對應的功能,核心只負責對作業系統在多個作業系統之間的多路複用
多核心:通過多核心管理異構多核裝置
第4章-記憶體管理
應用程式是面向虛擬記憶體編寫的,CPU會翻譯地址到實體地址,作業系統來管理虛擬地址和實體地址的對映
設計時的三個目標
- 高效性【不應占用過多的實體記憶體資源】
- 安全性【使不同應用程式互相隔離】
- 透明性【應用層程式設計時感覺不到記憶體的抽象】
CPU通過MMU進行地址翻譯,為了加速翻譯,現代CPU都有TLB【轉址旁路快取】
有兩種機制
- 分段機制
- 分頁機制
分段機制不多寫了,目前用的多的是分頁機制的
相關文章
- Lua設計與實現--讀書筆記筆記
- [轉帖]System Performance 讀書筆記 - 作業系統(1)ORM筆記作業系統
- 重讀經典《作業系統:設計與實現》作業系統
- 解密《一個作業系統的實現》這本書解密作業系統
- 作業系統筆記作業系統筆記
- 《讀書與做人》讀書筆記筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第二章作業系統筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第五章作業系統筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第七章作業系統筆記
- 編譯原理讀書筆記編譯原理筆記
- 寫作業系統之實現程式作業系統
- 作業系統:精髓與設計原理,中文第七版閱讀筆記--第一章作業系統筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第三章作業系統筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第六章作業系統筆記
- 作業系統--怎麼實現中斷作業系統
- 《Kafka入門與實踐》讀書筆記Kafka筆記
- Aero:用rust編寫的新現代作業系統Rust作業系統
- 作業系統原理作業系統
- 《大型網站系統與Java中介軟體》讀書筆記(上)網站Java筆記
- web端作業控制系統簡易實現Web
- 一個作業系統的設計與實現——第23章 快速系統呼叫作業系統
- 《spring技術內幕》讀書筆記3-AOP的實現Spring筆記
- 作業系統實驗6之訊號量的實現與應用作業系統
- 網際網路企業安全高階指南讀書筆記之大規模縱深防禦體系設計與實現筆記
- Docker和宿主機作業系統檔案目錄互相隔離的實現原理Docker作業系統
- 讀懂作業系統之快取原理(cache)(三)作業系統快取
- 【一】作業系統原理作業系統
- 黑客與畫家讀書筆記黑客筆記
- 《C缺陷與陷阱》讀書筆記筆記
- 雲控系統的實現原理
- 簡讀筆記-Redis設計與實現第二章筆記Redis
- 作業系統能實現國產替代嗎?智慧終端作業系統大調查作業系統
- 作業系統——記憶體管理學習筆記作業系統記憶體筆記
- 《Hbase原理與實踐》讀書筆記——2.基礎資料結構與演算法筆記資料結構演算法
- 讀書筆記筆記
- 《Maven實戰》之讀書筆記Maven筆記
- 《3D列印與工業製造》—— 讀書筆記3D筆記
- 《Redis深度歷險:核心原理和應用實踐》讀書筆記Redis筆記