Linux的進程調度和內存管理是理解Linux的關鍵,如果這2個問題理不清,Linux的脈絡就打不通,很多問題就無法得到解釋。
這是宋老師《Linux內核鐵三角》的第一脈——《Linux的進程、線程以及調度》2020最新版,試圖解決進程的生命週期、調度算法、多核負載均衡、Linux實時性、cgroups等一系列的問題。
Linux內核鐵三角系列共包含:進程調度、內存管理、IO/文件系統三個系列。
大綱
本課程作爲《打通Linux脈絡系列》中的一個分系列,分成6個組成部分,每次課60-70分鐘。每次課後留下3~4個練習題,可以在答疑羣討論。
第一部分深入徹底地搞清楚進程生命週期,進程生命週期創建、退出、停止,以及殭屍是個什麼意思;
第二部分,深入分析進程創建的寫時拷貝技術、以及Linux的線程究竟是怎麼回事(爲什麼稱爲輕量級進程),此部分也會搞清楚進程0、進程1和託孤,以及睡眠時的等待隊列;
第三部分,搞清楚Linux進程調度算法,不同的調度策略、實時性,完全公平調度算法;
第四部分,搞清楚Linux多核下的CPU、中斷、軟負載均衡,Linux實時性問題,SCHED_DEADLINE調度算法
第五部分,cgroups調度算法,自動cgroup,Android、docker、systemd對cgroup的應用以及cpuset cgroup。
第六部分,深入解釋深度睡眠TASK_UNINTERRUPTIBLE、淺度睡眠TASK_INTERRUPTIBLE和TASK_KILLABLE,D狀態以及D狀態與系統負載的關係。
通過這4部分的學習,徹底理清Linux的進程、線程,弄清楚你寫的內核和應用程序在系統裏面究竟是如何跑,知其然,知其所以然。
針對人羣:Linux開發者以及其他對進程調度感興趣的開發者
指導老師:宋老師
上課時間:課程已經全部上線,無需等待
上課形式:在線視頻,無限回看。課程羣討論答疑。
第一部分大綱
Linux進程生命週期(就緒、運行、睡眠、停止、僵死)
殭屍是個什麼鬼?
殭屍可以被殺死的一個假象(全新內容)
停止狀態與作業控制,cpulimit
內存泄漏的真實含義
task_struct以及task_struct之間的關係
初見fork和殭屍
練習題
fork的例子
life-period例子,觀察殭屍
用cpulimit控制CPU利用率
第二部分大綱
fork、vfork、clone
寫時拷貝技術
Linux線程的實現本質
進程0和進程1
進程的睡眠和等待隊列
孤兒進程的託孤,SUBREAPER
練習題
fork、vfork、Copy-on-Write例子
life-period例子,實驗體會託孤
pthread_create例子,strace它
徹底看懂等待隊列的案例
第三部分大綱
1. CPU/IO消耗型進程
2. 吞吐率 vs. 響應
3. SCHED_FIFO、SCHED_RR
4. SCHED_NORMAL和CFS
5. nice、renice
6. chrt
練習題
運行2個高CPU利用率程序,調整他們的nice
用chrt把一個死循環程序調整爲SCHED_FIFO
閱讀ARM的big.LITTLE架構資料,並論述爲什麼ARM要這麼做?
第四部分大綱
Linux Deadline調度器(全新內容)
Linux爲什麼不是硬實時的
preempt-rt對Linux實時性的改造
多核下負載均衡
中斷負載均衡、RPS軟中斷負載均衡
練習題
用taskset調整多線程依附的CPU
cyclictest
SCHED_DEADLINE案例
第五部分大綱
基於cpu cgroups進行CPU資源分配
Linux的sched_autogroup(全新內容)
基於cpuset cgroups進行進程CPU綁定(全新內容)
Docker和cgroups
Systemd和cgroups(全新內容)
Android對cgroups的利用
練習題
開啓和關閉sched_autogroup,關鍵CPU利用率情況;
創建和分羣CPU的cgroups,調整權重和quota;
利用cpuset cgroups,進行進程的CPU綁定
第六部分大綱
深度睡眠TASK_UNINTERRUPTIBLE和淺度睡眠TASK_INTERRUPTIBLE(全新內容)
D狀態的意思是什麼?(全新內容)
爲什麼需要深度睡眠?(全新內容)
TASK_KILLABLE(全新內容)
練習題
寫內核代碼,實踐TASK_UNINTERRUPTIBLE、TASK_INTERRUPTIBLE和TASK_KILLABLE
報名方法
蘋果和電腦用戶報名方法:
電腦瀏覽器訪問yomocode.com(不支持手機訪問),先點擊網站右上角圖標,微信掃碼登錄,然後在此鏈接報名:
https://yomocode.com/courses/18
(訪問該網址,也看免費試看一小節)
報名價格:
原價759元,現在報名仍享早鳥優惠價格:599元。
安卓手機用戶可點擊鏈接一鍵報名:
點擊報名
也可微信一鍵試看免費小節:
點擊試看
詳情也可掃描如下二維碼添加客服諮詢: