現代作業系統-原理與實現【讀書筆記】
看看多久才會讀完---買於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設計與實現--讀書筆記筆記
- 《Redis設計與實現》讀書筆記Redis筆記
- [轉帖]System Performance 讀書筆記 - 作業系統(1)ORM筆記作業系統
- 重讀經典《作業系統:設計與實現》作業系統
- 《自我實現的人》讀書筆記筆記
- 《現代通訊網路技術》讀書筆記筆記
- 《Linux核心設計與實現》讀書筆記(十三)- 虛擬檔案系統Linux筆記
- 【讀書筆記】Java併發機制的底層實現原理筆記Java
- 解密《一個作業系統的實現》這本書解密作業系統
- 《現代作業系統第三版》閱讀階段感悟作業系統
- 作業系統筆記作業系統筆記
- 讀書筆記——讀《構建之法:現代軟體工程》第13~17章筆記軟體工程
- 《讀書與做人》讀書筆記筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第二章作業系統筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第五章作業系統筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第七章作業系統筆記
- 寫作業系統之實現程式作業系統
- 作業系統(3)程式及其實現作業系統
- 《Effective C++》第5章 實現-讀書筆記C++筆記
- 《Linux核心設計與實現》讀書筆記-目錄(完結)Linux筆記
- 編譯原理讀書筆記編譯原理筆記
- Aero:用rust編寫的新現代作業系統Rust作業系統
- 作業系統:精髓與設計原理,中文第七版閱讀筆記--第一章作業系統筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第三章作業系統筆記
- 作業系統:精髓與設計原理 中文第七版 閱讀筆記 第六章作業系統筆記
- (原)豐田的IT系統-讀書筆記筆記
- 《深入淺出MyBatis--技術原理與實戰》讀書筆記MyBatis筆記
- 作業系統學習筆記作業系統筆記
- 作業系統--怎麼實現中斷作業系統
- 作業系統記憶體管理-原理作業系統記憶體
- 《代數的歷史》讀書筆記筆記
- 作業系統原理作業系統
- 作業系統原理和實訓教程作業系統
- 《Kafka入門與實踐》讀書筆記Kafka筆記
- web端作業控制系統簡易實現Web
- 作業系統(4)執行緒及其實現作業系統執行緒