0.概述
本文介紹了Linux調度專題的撰寫提綱,接下來的4個月時間將逐步完成調度專題的撰寫。數據結構
1.範圍
調度和內存管理是Linux系統中最基礎、最核心、涉及知識面最廣的兩個模塊。能夠絕不誇張的說,理解了Linux的調度和內存管理,基本上就理解了Linux的一大半。撰寫Linux調度專題的初衷有兩點:1)深刻理解Linux調度的細節 2)爲後續內存專題的撰寫打下基礎。架構
部分章節的內容會與底層硬件的關聯較爲緊密,此專題會以ARM64平臺爲例進行講述。負載均衡
2.提綱
本專題將分爲如下章節,初步計劃每一個章節一篇文章,很明顯有些專題不是一篇文章能夠講透,因此我會重點講述與調度相關的細節,爭取作到把調度相關的核心代碼梳理一遍。函數
- 調度關鍵數據結構體,參照《深刻Linux內核架構》的行文方法,先給出數據結構,在解釋結構的過程當中順帶介紹調度的基本知識。
-
進程的生命週期設計
- 進程建立,分析進程建立的底層細節;
- 進程狀態切換,分析進程運行過程當中的各類狀態以及狀態間切換;
- 進程銷燬,分析進程在銷燬過程當中作了哪些收尾工做;
- CFS調度類,介紹CFS調度類的函數接口
- RT調度類,介紹RT調度類的函數接口
- 負載均衡,介紹Linux負載均衡的設計細節
- 調度管理的同步問題,介紹Linux調度管理過程當中的同步細節
-
調度攪局者接口
- 系統調用,介紹系統調用的實現過程
- 中斷,介紹Linux中斷子系統
- 信號,介紹Linux信號子系統
-
調度驅動者生命週期
- 週期Tick,介紹Linux時鐘子系統和週期Tick模式
- NOHZ模式,介紹Linux NOHZ模式
- 調度專題總結,回顧和總結Linux調度的知識點