早鸟最后一天:《Linux的任督二脉》之《内存管理》在线

内存管理是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月27号开始后共五晚,9点-10点。


本课程已于2018年开展了3期,共有500+人参加,取得了极好的效果;应广大童鞋的殷切希望,*同样的内容*,特别开展第四期。

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


640?wx_fmt=png

报名方法


电脑浏览器访问(暂时不支持手机)

https://yomocode.com/courses/7

点击网页最右上角,微信扫码登录(首次登录需完成信息注册)。

报名后,扫描报名页的客服微信,入答疑群。


原价759元,早鸟:599元早鸟6月2日晚8点结束



相关资料:

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

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

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

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

文件读写(BIO)波澜壮阔的一生

swappiness=0究竟意味着什么?

...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux进程管理是指在Linux操作系统中对进程进行创建、终止和监控等管理操作的过程。Linux是一个多任务操作系统,可以同时运行多个进程,因此对进程的管理至关重要。 在Linux中,每个进程都有一个唯一的进程标识符(PID),通过这个PID可以对进程进行管理操作。Linux提供了多种方式来管理进程,例如使用命令行工具如ps、top、kill等,还可以使用系统调用来编写程序进行进程管理。 创建进程是进程管理的一个重要方面。在Linux中,可以通过系统调用fork()来创建新的进程。fork()函数会创建一个子进程,子进程复制了父进程的地址空间和资源,成为一个独立运行的新进程。父进程可以通过fork()函数的返回值来判断是父进程还是子进程,并根据需要执行不同的操作。 终止进程也是进程管理的一部分。在Linux中,可以使用命令行工具如kill来终止指定的进程。kill命令发送一个信号给进程,进程可以选择接收并处理该信号,也可以忽略该信号。常用的信号包括SIGKILL和SIGTERM,前者用于强制终止进程,后者用于正常终止进程。 监控进程是进程管理中的重要任务。通过命令行工具如top可以实时查看系统中正在运行的进程信息,包括进程的PID、CPU使用率、内存占用等。通过监控进程,可以及时发现并处理异常情况,保证系统的稳定运行。 总之,Linux进程管理是Linux操作系统中非常重要的一部分。通过适当的进程管理,可以提高系统的性能和稳定性,确保系统可以同时运行多个进程,并及时发现和处理异常情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值