Linux内核进程、内存和I/O |
1198 次浏览 63 次
|
|
 |
|
宋老师 |
知名嵌入式系统专家,2008~2009年度十大畅销书、十大原创图书《Linux设备驱动开发详解》作者 |
|
|
|
时间地点: 北京、上海、深圳根据报名开班 |
课程费用:5000元/人 |
|
|
|
企业内训:可以根据企业需求,定制内训,详见
内训学习手册 |
|
 |
认证方式:
培训前了解能力模型。
培训后进行能力评测: 在线考试
能力分析,给出学习建议
合格者颁发证书,作为职业技能资格证明 |
 |
|
|
课程是打下内核、驱动和系统编程基础的课程,它主要讲解 Linux 内核最核心的进程调度、内存管理和 I/O 模型,打通开发过程中对 Linux 系统知识的要求。
|
培训目标:
进程生命周期
进程的创建、退出和睡眠
调度算法
多核调度、 cgroup 、实时性
硬件原理和分页管理
内存的动态申请和释放
进程的内存消耗和泄漏
内存与 I/O 的交换
其他工程问题以及调优
Linux I/O 和网络模型
典型文件系统
IO 调度器
|
培训对象:Linux开发者(熟练地使用Linux,在Linux上从事开发) |
学员基础:了解Linux开发知识,具备一定的Linux开发经验 |
授课方式:定制课程 + 案例讲解
+ 小组讨论,60%案例讲解,40%实践演练 |
培训内容:2天
|
第一章 进程 |
- 进程生命周期
- Linux 进程生命周期 ( 就绪、运行、睡眠、停止、僵死 )
- 僵尸是个什么鬼?
- 停止状态与作业控制, cpulimit
- 内存泄漏的真实含义
- task_struct 以及 task_struct 之间的关系
- 初见 fork 和僵尸
- 进程的创建、退出和睡眠
- fork 、 vfork 、 clone
- 写时拷贝技术
- Linux 线程的实现本质
- 进程 0 和进程 1
- 进程的睡眠和等待队列
- 孤儿进程的托孤, SUBREAPER
- 调度算法
- CPU/IO 消耗型进程
- 吞吐率 vs. 响应
- SCHED_FIFO 、 SCHED_RR
- SCHED_NORMAL 和 CFS
- nice 、 renice
- chrt
- 多核调度、 cgroup 、实时性
- 多核下负载均衡
- 中断负载均衡、 RPS 软中断负载均衡
- cgroups 和 CPU 资源分群分配
- Android 和 NEON 对 cgroups 的采用
- Linux 为什么不是硬实时的
- preempt-rt 对 Linux 实时性的改造
|
第二章 内存 |
- 硬件原理和分页管理
- CPU 寻址内存,虚拟地址、物理地址
- MMU 以及 RWX 权限、 kernel 和 user 模式权限
- 内存的 zone: DMA 、 Normal 和 HIGHMEM
- Linux 内存管理 Buddy 算法
- 连续内存分配器 (CMA)
- 内存的动态申请和释放
- slab 、 kmalloc/kfree 、 /proc/slabinfo 和 slabtop
- 用户空间 malloc/free 与内核之间的关系
- mallopt
- vmalloc
- 内存耗尽( OOM )、 oom_score 和 oom_adj
- Android 进程生命周期与 OOM
- 进程的内存消耗和泄漏
- 进程的 VMA 。
- 进程内存消耗的 4 个概念: vss 、 rss 、 pss 和 uss
- page fault 的几种可能性, major 和 minor
- 应用内存泄漏的界定方法
- 应用内存泄漏的检测方法: valgrind 和 addresssanitizer
- 内存与 I/O 的交换
- page cache
- free 命令的详细解释
- read 、 write 和 mmap
- file-backed 的页面和匿名页
- swap 以及 zRAM
- 页面回收和 LRU 原因;
- 其他工程问题以及调优
- DMA 和 cache 一致性
- 内存的 cgroup
- 性能方面的调优: page in/out, swapin/out
- Dirty ratio 的一些设置
- Swappiness
|
第三章I/O |
- Linux I/O 和网络模型
- 阻塞
- 非阻塞
- 多路复用
- Signal IO
- 异步 IO
- Libevent
- 典型文件系统
- VFS
- EXT2/3/4 的 layout
- 文件系统的日志与掉电保护
- IO 调度器
- Linux block IO 流程
- IO 调度和 CFQ 调度算法
- ionice
- cgroup 与 IO
|
|
|