本課程內(nèi)容對(duì)于在Linux以上開(kāi)發(fā)設(shè)計(jì)多進(jìn)程、線程同步程序流程,它的具體內(nèi)容包含各種開(kāi)發(fā)環(huán)境、編譯程序優(yōu)化、實(shí)行亂序、動(dòng)態(tài)鏈接庫(kù)阻攔、白盒測(cè)試方法,及其怎樣在Linux中設(shè)計(jì)方案好多進(jìn)程的通訊、線程同步的通訊并開(kāi)展調(diào)試,怎樣防止線程同步程序流程的內(nèi)存故障、臨界區(qū)競(jìng)態(tài)瀏覽錯(cuò)誤,怎樣規(guī)劃好每個(gè)進(jìn)程的分別的工作中、設(shè)計(jì)方案好I/O模型等。
課程內(nèi)容的下半一部分,會(huì)解讀特性優(yōu)化,剖析清晰CPU、運(yùn)行內(nèi)存、I/O短板,剖析運(yùn)作時(shí)用時(shí)的編碼,剖析一些延遲時(shí)間的來(lái)源于等,牽涉到對(duì)ftrace、perf、kprobe、uprobe、eBPF/BCC、getdelays、火焰圖等專用工具的解讀。
課程大綱:
*章開(kāi)發(fā)環(huán)境:編譯程序,調(diào)試,阻攔,追蹤和檢測(cè)
第1節(jié)進(jìn)到Linux的精彩紛呈全球
1Linux起動(dòng)全過(guò)程(多核)
2Linux系統(tǒng)軟件構(gòu)成
三秒trace和ltrace
4LD_PRELOAD與動(dòng)態(tài)庫(kù)捕捉
5meltdown系統(tǒng)漏洞
第二節(jié)GCC和GDB
2GBNU專用工具鏈和GDB調(diào)試
2GCC與編譯程序優(yōu)化
3編譯程序亂序與實(shí)行亂序
4反編譯,objdump
5GDB調(diào)試方法:中斷點(diǎn)、watch、運(yùn)行內(nèi)存與backtrace等
6奔潰轉(zhuǎn)儲(chǔ)coredump
第三節(jié)ELF文檔剖析
1readelf,nm,strip
2dwarfdump
3程序流程、庫(kù)相互依賴剖析
第四節(jié)GNUtoolchain別的作用
1gprof
3gcov白盒測(cè)試方法
第二章系統(tǒng)軟件程序編寫(xiě):多進(jìn)程和線程同步
第1節(jié)Linux多進(jìn)程程序編寫(xiě)
1.多進(jìn)程模型
2.多進(jìn)程通訊
3.進(jìn)程間通信(IPC)調(diào)試
第二節(jié)Linux線程同步
1.線程同步程序流程建立
2.進(jìn)程生命期
3.進(jìn)程生產(chǎn)調(diào)度對(duì)策和優(yōu)先設(shè)定
4.恰當(dāng)?shù)幕コ夂屯瑲i方式
5.可重入與線程安全
6.IPC調(diào)試、死鏈接
7.多進(jìn)程、線程同步調(diào)試
8.進(jìn)程的棧和棧溢出
9.優(yōu)先旋轉(zhuǎn)難題
第三節(jié)線程同步模型
1.線程同步程序流程的模型,進(jìn)程的整體規(guī)劃
2.姆爺達(dá)爾基本定律
3.Linux的I/O模型
4.線程同步與I/O
5.C10K難題
第三章系統(tǒng)軟件優(yōu)化:基礎(chǔ)理論和專用工具
第1節(jié)Linux特性模型
USE模型
吞吐量率
延遲時(shí)間
排隊(duì)論
CPU、mem和I/O
Lock和lock市場(chǎng)競(jìng)爭(zhēng)
節(jié)電優(yōu)化*大全
第二節(jié)專用工具篇
Ftrace
Perf
eBPF/BCC
getdelays
latencytop
Powertop
分析*知識(shí)
第三節(jié)CPU有關(guān)優(yōu)化
模型與基本專用工具:top,mpstat
CPU的時(shí)間遍布:終斷、軟終斷、D情況(iowait)等
SCHED追蹤
CPU的stalled情況,CPI與IPC
Cache,branchmiss
CPU在干嘛:ON-CPU火焰圖,編碼網(wǎng)絡(luò)*
CPU在等哪些:OFF-CPU火焰圖
第四節(jié)I/O有關(guān)優(yōu)化
模型:iostat,iotop等
追蹤
Blktrace
Blk-mq
Pagecache與I/O
Swap與I/O
第5節(jié)互聯(lián)網(wǎng)有關(guān)優(yōu)化
模型
追蹤
多序列網(wǎng)口
RSS/RPS/XPS