本课程内容对于在Linux以上开发设计多进程、线程同步程序流程,它的具体内容包含各种开发环境、编译程序优化、实行乱序、动态链接库阻拦、白盒测试方法,及其怎样在Linux中设计方案好多进程的通讯、线程同步的通讯并开展调试,怎样防止线程同步程序流程的内存故障、临界区竞态浏览错误,怎样规划好每个进程的分别的工作中、设计方案好I/O模型等。
课程内容的下半一部分,会解读特性优化,剖析清晰CPU、运行内存、I/O短板,剖析运作时用时的编码,剖析一些延迟时间的来源于等,牵涉到对ftrace、perf、kprobe、uprobe、eBPF/BCC、getdelays、火焰图等专用工具的解读。
课程大纲:
*章开发环境:编译程序,调试,阻拦,追踪和检测
第1节进到Linux的精彩纷呈全球
1Linux起动全过程(多核)
2Linux系统软件构成
三秒trace和ltrace
4LD_PRELOAD与动态库捕捉
5meltdown系统漏洞
第二节GCC和GDB
2GBNU专用工具链和GDB调试
2GCC与编译程序优化
3编译程序乱序与实行乱序
4反编译,objdump
5GDB调试方法:中断点、watch、运行内存与backtrace等
6奔溃转储coredump
第三节ELF文档剖析
1readelf,nm,strip
2dwarfdump
3程序流程、库相互依赖剖析
第四节GNUtoolchain别的作用
1gprof
3gcov白盒测试方法
第二章系统软件程序编写:多进程和线程同步
第1节Linux多进程程序编写
1.多进程模型
2.多进程通讯
3.进程间通信(IPC)调试
第二节Linux线程同步
1.线程同步程序流程建立
2.进程生命期
3.进程生产调度对策和优先设定
4.恰当的互斥和同歩方式
5.可重入与线程安全
6.IPC调试、死链接
7.多进程、线程同步调试
8.进程的栈和栈溢出
9.优先旋转难题
第三节线程同步模型
1.线程同步程序流程的模型,进程的整体规划
2.姆爷达尔基本定律
3.Linux的I/O模型
4.线程同步与I/O
5.C10K难题
第三章系统软件优化:基础理论和专用工具
第1节Linux特性模型
USE模型
吞吐量率
延迟时间
排队论
CPU、mem和I/O
Lock和lock市场竞争
节电优化*大全
第二节专用工具篇
Ftrace
Perf
eBPF/BCC
getdelays
latencytop
Powertop
分析*知识
第三节CPU有关优化
模型与基本专用工具:top,mpstat
CPU的時间遍布:终断、软终断、D情况(iowait)等
SCHED追踪
CPU的stalled情况,CPI与IPC
Cache,branchmiss
CPU在干嘛:ON-CPU火焰图,编码网络*
CPU在等哪些:OFF-CPU火焰图
第四节I/O有关优化
模型:iostat,iotop等
追踪
Blktrace
Blk-mq
Pagecache与I/O
Swap与I/O
第5节互联网有关优化
模型
追踪
多序列网口
RSS/RPS/XPS