南京
杭州
上海
025-87787966    0571-88257871

Linux系统编程与调试调优

发布日期: 2017/10/10 13:50:13

课程大纲:
一、进入 Linux 的精彩世界
    1、Linux 启动过程(多核)
    2、Linux 系统组成
    3、strace和ltrace
    4、GNU工具链和GDB调试
    5、GCC编译的各个阶段分解
    6、ELF文件分析
    7、反汇编,objdump, dwarfdump
    8、readelf, nm,strip
    9、GDB调试技巧:断点、watch、内存与backtrace 等
    10、GDB与多线程
    11、LD_PRELOAD与动态库捕获
    12、gprof
    13、gcov
    14、崩溃转储core dump
二、Linux 内核进程调度与调试
    1、进程生命周期
    2、调度的上下文切换以及开销
    3、调度算法的出发点:吞吐率与响应
    4、进程调度算法
       —— SCHED_FIFO/RR
       —— SCHED_NORMAL与CFS算法
       —— nice
    5、进程调度时机
    6、Linux 实时性与RT解决方案
    7、SMP
                —— 多核负载均衡
                —— CPU热插拔
                —— CPU affinity
                —— BFS算法
    8、针对CPU源的Cgroups
    9、系列案例演示调度行为对系统响应的影响
三、内核调试
    1、printk及其变体
    2、内核崩溃oops分析
    3、内核debug选项
    4、proc和sys
    5、内核启动过程调试
    6、内核启动时间优化调试
    7、待机和电源管理调试
    8、用JTAG调试内核
四、内存分析与内存泄露
    1、MMU系统
    2、page与zone
    3、buddy系统
    4、slab、kmalloc
    5、用户空间malloc与内核buddy等的关系
    6、out-of-memory(OOM)与控制
    7、进程的内存消耗
    8、page cache与swap
    9、zRAM
    10、内存泄露剖析
    11、Addresssanitizer与valgrind
    12、针对内存资源的Cgroups
五、Linux 多进程与多线程
    1、多进程通信
    2、多线程通信
    3、正确的互斥和同步方法
    4、可重入与线程安全
    5、多进程、多线程调试
    6、IPC调试、死锁
    7、Linux 的 I/O模型
    8、多线程与 I/O
    9、C10K 问题
六、Linux 性能优化
    1、CPU负载分析:top, htop,mpstat
    2、I/O负载分析:iostat, iotop
    3、Linux逻辑分析仪:LTTng
    4、综合性能瓶颈:oprofile/perf
    5、程序执行时间分布分析
    6、cache miss 分析
    7、开机优化:bootchart
    8、功耗优化: powertop  和 cpufreq-bench
    9、ftrace
    10、Linux 基准程序(LMBench,Bonnie++, IOZone,Netperf/iperf 等)
    11、LEP(Linux  EasyProfiling)
课程周期:
24课时(45分/课时)

相关培训课程

TRAINING COURSE
无标题文档