课程培训
Linux进程、内存和IO培训课程

Linux进程、内存和IO培训课程

Linux进程、内存和IO培训课程介绍:

本课程是打下内核、驱动和系统编程基础的课程,它主要讲解Linux内核最核心的进程调度、内存管理和I/O模型。

Linux进程、内存和IO培训课程大纲:

第一章 进程
第一节 进程生命周期
Linux进程生命周期(就绪、运行、睡眠、停止、僵死)
僵尸是个什么鬼?
停止状态与作业控制,cpulimit
内存泄漏的真实含义
task_struct以及task_struct之间的关系
初见fork和僵尸
练习题
fork的例子
life-period例子,观察僵尸
cpulimit控制CPU利用率

第二节 进程的创建、退出和睡眠
forkvforkclone
写时拷贝技术
Linux线程的实现本质
进程0和进程1
进程的睡眠和等待队列
孤儿进程的托孤,SUBREAPER
练习题
forkvforkCopy-on-Write例子
life-period例子,实验体会托孤
pthread_create例子,strace
彻底看懂等待队列的案例

第三节 调度算法
1. CPU/IO消耗型进程
2. 吞吐率 vs. 响应
3. SCHED_FIFOSCHED_RR
4. SCHED_NORMALCFS
5. nicerenice
6. chrt
练习题
运行2个高CPU利用率程序,调整他们的nice
chrt把一个死循环程序调整为SCHED_FIFO
阅读ARMbig.LITTLE架构资料,并论述为什么ARM要这么做?

第四节 多核调度、cgroup、实时性
多核下负载均衡
中断负载均衡、RPS软中断负载均衡
cgroupsCPU资源分群分配
AndroidNEONcgroups的采用
Linux为什么不是硬实时的
preempt-rtLinux实时性的改造
练习题
time命令跑1个含有2个死循环线程的进程
taskset调整多线程依附的CPU
创建和分群CPUcgroup,调整权重和quota
cyclictest

第二章 内存
1 硬件原理和分页管理
CPU寻址内存,虚拟地址、物理地址
MMU以及RWX权限、kerneluser模式权限
内存的zone: DMANormalHIGHMEM
Linux内存管理Buddy算法
连续内存分配器(CMA)
练习题
尝试去更改一个const变量
meltdown实例
/proc/buddyinfo

2 内存的动态申请和释放
slabkmalloc/kfree/proc/slabinfoslabtop
用户空间malloc/free与内核之间的关系
mallopt
vmalloc
内存耗尽(OOM)、oom_scoreoom_adj
Android进程生命周期与OOM
练习题
/proc/slabinfo,运行slabtop
运行mallopt.c程序:mallopt(M_TRIM_THRESHOLD)
/proc/vmallocinfo,grep ioremap映射
运行一个很耗费内存的程序,观察oom memory
通过oom_adj调整firefoxoom_score

3 进程的内存消耗和泄漏
进程的VMA
进程内存消耗的4个概念:vssrsspssuss
page fault的几种可能性,majorminor
应用内存泄漏的界定方法
应用内存泄漏的检测方法:valgrindaddresssanitizer
练习题
看一下进程的/proc//mapssmaps文件;
pmap一个进程;
把同一个程序运行2次,运行1次,观察pss;再运行,得到2个进程,观察代码段的pss变化;
valgrind检查内存错误

4 内存与I/O的交换
page cache
free命令的详细解释
readwritemmap
file-backed的页面和匿名页
swap以及zRAM
页面回收和LRU
练习题
hellopython运行两次,对比时间差;
freecat /dev/sda > /dev/null, free,观察变化,分析原因;


5 其他工程问题以及调优
DMAcache一致性
内存的cgroup
性能方面的调优:page in/out, swapin/out
Dirty ratio的一些设置
Swappiness
练习题
vmstat;
smem -s swap -t -k –n
限制一个cgroupmemory,用cgexec把一个进程放到这个cgroup

第三章 I/O
1Linux I/O和网络模型
阻塞
非阻塞
多路复用
Signal IO
异步IO
Libevent
练习题
针对globalfifo采用signalio访问;
运行glibc-aio.c的案例;
运行libevent网络程序案例;
运行epoll案例

2节 典型文件系统
VFS
EXT2/3/4layout
文件系统的日志与掉电保护
练习题
dump一个ext文件系统;
分析各种日志方法的时序

3IO调度器
Linux block IO流程
IO调度和CFQ调度算法
ionice
cgroupIO
练习题
ionice调整进程io优先级,iotop观察;
cgroup控制io

 




如果您想学习本课程,请预约报名
如果没找到合适的课程或有特殊培训需求,请订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表点击在线申请

服务特点:
海量专家资源,精准匹配相关行业,相关项目专家,针对实际需求,顾问式咨询,互动式授课,案例教学,小班授课,实际项目演示,快捷高效,省时省力省钱。

专家力量:
中国科学院软件研究所,计算研究所高级研究人员
oracle,微软,vmware,MSC,Ansys,candence,Altium,达索等大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关技术专业,理论素养丰富
多年实际项目经历,大型项目实战案例,热情,乐于技术分享
针对客户实际需求,案例教学,互动式沟通,学有所获
报名表下载
联系我们 更多>>

咨询电话010-62883247

                4007991916

咨询邮箱:soft@info-soft.cn  

 

微信号.jpg

  微信咨询

随时听讲课

聚焦技术实践

订制培训 更多>>