微课:Linux的任督二脉之内存管理(2018.3.3-3.7五晚)
这是宋宝华老师《Linux的任督二脉:进程调度和内存管理》的第二脉,第一脉《打通Linux脉络系列:进程、线程和调度》的CSDN录播位于:http://edu.csdn.net/course/detail/5995
主要目的:
理解硬件访问内存的原理,MMU和页表;澄清Linux内核ZONE,buddy,slab管理;澄清用户空间malloc与内核关系,Lazy分配机制;澄清进程的内存消耗的vss,rss,pss,uss概念;澄清内存耗尽的OOM行为;澄清文件背景页面与匿名页,page cache与swap;澄清内存的回收、dirty page的写回,以及一些内存管理/proc/sys/vm sysctl配置的幕后原理;DMA和cache一致性,IOMMU等;给出一些内存相关的调试和优化方法;消除网上各种免费资料的各种误解。最终形成一个Linux内存管理的全景视图。
直播时间: 2018.3.3-3.7,共五晚9点-10点。
直播形式:
2个微信群 1个群上课采用图、语音、关键部分电脑演示录屏视频分享形式;另外1个群深度技术答疑模式和讨论。
本课程已于2018.1.29-2.2开展了一期,该期限流至165人,取得极好的效果;所以特别于春节后再开展一期同样课程。
大纲:
硬件原理和分页管理
CPU寻址内存,虚拟地址、物理地址
MMU以及RWX权限、kernel和user模式权限
内存的zone: DMA、Normal和HIGHMEM
Linux内存管理Buddy算法
连续内存分配器(CMA)
2
内存的动态申请和释放
slab、kmalloc/kfree、/proc/slabinfo和slabtop
用户空间malloc/free与内核之间的关系
mallopt
vmalloc
内存耗尽(OOM)、oom_score和oom_adj
Android进程生命周期与OOM
3
进程的内存消耗和泄漏
进程的VMA。
进程内存消耗的4个概念:vss、rss、pss和uss
page fault的几种可能性,major和minor
应用内存泄漏的界定方法
应用内存泄漏的检测方法:valgrind和addresssanitizer
4
内存与I/O的交换
page cache
free命令的详细解释
read、write和mmap
file-backed的页面和匿名页
swap以及zRAM
页面回收和LRU
5
其他工程问题以及调优
DMA和cache一致性
内存的cgroup
性能方面的调优:page in/out, swapin/out
Dirty ratio的一些设置
swappiness
报名方法(扫码加微信),发送报名红包,加入直播群。
各个时段报名的价格:
春节前报名发红包(early bird) 333元
春节后报名发红包 388元
相关资料:
宋宝华: 关于DMA ZONE和dma alloc coherent若干误解的彻底澄清
...