早鸟最后一天:《Linux的任督二脉》之《内存管理》微课(连续5晚)

内存管理是Linux里面最难最晦涩的部分,但是内存管理不清楚,Linux的很多现象又无法解释,很多环节都无法理清。这是宋宝华老师继《Linux的任督二脉:进程调度和内存管理》第一脉《进程、线程和调度》后的第二脉。


主要目的:

理解硬件访问内存的原理,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内存管理的全景视图。


课件ppt

Linux任督二脉之内存管理(一) PPT

Linux任督二脉之内存管理(二) PPT

Linux任督二脉之内存管理(三) PPT

Linux任督二脉之内存管理(四) PPT

Linux任督二脉之内存管理(五) PPT

习题位置

https://github.com/21cnbao/memory-courses



直播时间:预期6月中旬某五晚(具体视情况最终决定),共五晚9点-10点。


直播形式:

2个微信群 1个群上课采用图、语音、关键部分电脑演示录屏视频分享形式(可无限次数回看);另外1个群深度技术答疑模式和讨论。

本课程已于2018.1.29-2.2开展了第一期,165参加学习,取得极好的效果;

本课程已于2018.3.3-3.7开展了一期,135人参加学习,取得极好的效果;

应部分童鞋的殷切希望,同样的内容,特别开展第三期。

FAQ:

如果直播的时间段在加班怎么办?

提前报名后,已经加入了上课微信群,就可以收到上课内容,之后再看也没有问题。

课程结束后能再报名吗?

是不可以的,因为没有在上课前进入上课群,所以收不到上课的内容。

大纲:


1


硬件原理和分页管理

  1. CPU寻址内存,虚拟地址、物理地址

  2. MMU以及RWX权限、kernel和user模式权限

  3. 内存的zone: DMA、Normal和HIGHMEM

  4. Linux内存管理Buddy算法

  5. 连续内存分配器(CMA)


2


内存的动态申请和释放

  1. slab、kmalloc/kfree、/proc/slabinfo和slabtop

  2. 用户空间malloc/free与内核之间的关系

  3. mallopt

  4. vmalloc

  5. 内存耗尽(OOM)、oom_score和oom_adj

  6. Android进程生命周期与OOM


3


进程的内存消耗和泄漏

  1. 进程的VMA。

  2. 进程内存消耗的4个概念:vss、rss、pss和uss

  3. page fault的几种可能性,major和minor

  4. 应用内存泄漏的界定方法

  5. 应用内存泄漏的检测方法:valgrind和addresssanitizer



4


内存与I/O的交换

  1. page cache

  2. free命令的详细解释

  3. read、write和mmap

  4. file-backed的页面和匿名页

  5. swap以及zRAM

  6. 页面回收和LRU


5


其他工程问题以及调优

  1. DMA和cache一致性

  2. 内存的cgroup

  3. 性能方面的调优:page in/out, swapin/out

  4. Dirty ratio的一些设置

  5. swappiness



报名方法(扫码加微信),发送报名红包,加入直播群。

报名价格:

416.25元(早鸟,4月30前,包括4.30报名),

485元(非早鸟)。



640?wx_fmt=png



相关资料:

宋宝华:Linux的任督二脉——进程调度和内存管理

宋宝华: 关于DMA ZONE和dma alloc coherent若干误解的彻底澄清

宋宝华: CPU是如何访问到内存的?--MMU最基本原理

为什么手工drop_caches之后cache值并未减少?

宋宝华:swappiness=0究竟意味着什么?

...


你可能感兴趣的:(早鸟最后一天:《Linux的任督二脉》之《内存管理》微课(连续5晚))