《Linux的进程、线程以及调度》4节系列课方案出炉!
前面几天我们发布了《Linux的进程、线程以及调度》连续4次课(预案),现在最终敲定了方案。
本课程作为《打通Linux脉络系列》中的一个分系列,分成4个组成部分,每次课60分钟。每次课后留下3~4个练习题,可以在微信群或者Linuxer公众号留言讨论答案和做题心得。
第一部分深入彻底地搞清楚进程生命周期,进程生命周期创建、退出、停止,以及僵尸是个什么意思;
第二部分,深入分析进程创建的写时拷贝技术、以及Linux的线程究竟是怎么回事(为什么称为轻量级进程),此部分也会搞清楚进程0、进程1和托孤,以及睡眠时的等待队列;
第三部分,搞清楚Linux进程调度算法,不同的调度策略、实时性,完全公平调度算法;
第四部分,搞清楚Linux多核下的CPU、中断、软负载均衡,cgroups调度算法以及Linux为什么不是一个实时操作系统,如何把Linux变成一个硬实时的操作系统。
通过这4部分的学习,彻底理清Linux的进程、线程,弄清楚你写的内核和应用程序在系统里面究竟是如何跑,知其然,知其所以然。
针对人群:Linux开发者以及其他对进程调度感兴趣的开发者
指导老师: 宋宝华
平台: CSDN学院
第一部分大纲
Linux进程生命周期(就绪、运行、睡眠、停止、僵死)
僵尸是个什么鬼?
停止状态与作业控制,cpulimit
内存泄漏的真实含义
task_struct以及task_struct之间的关系
初见fork和僵尸
练习题
fork的例子
life-period例子,观察僵尸
用cpulimit控制CPU利用率
第二部分大纲
fork、vfork、clone
写时拷贝技术
Linux线程的实现本质
进程0和进程1
进程的睡眠和等待队列
孤儿进程的托孤,SUBREAPER
练习题
fork、vfork、Copy-on-Write例子
life-period例子,实验体会托孤
pthread_create例子,strace它
彻底看懂等待队列的案例
第三部分大纲
1. CPU/IO消耗型进程
2. 吞吐率 vs. 响应
3. SCHED_FIFO、SCHED_RR
4. SCHED_NORMAL和CFS
5. nice、renice
6. chrt
练习题
运行2个高CPU利用率程序,调整他们的nice
用chrt把一个死循环程序调整为SCHED_FIFO
阅读ARM的big.LITTLE架构资料,并论述为什么ARM要这么做?
第四部分大纲
多核下负载均衡
中断负载均衡、RPS软中断负载均衡
cgroups和CPU资源分群分配
Android和NEON对cgroups的采用
Linux为什么不是硬实时的
preempt-rt对Linux实时性的改造
练习题
用time命令跑1个含有2个死循环线程的进程
用taskset调整多线程依附的CPU
创建和分群CPU的cgroup,调整权重和quota
cyclictest
优惠报名方法
本课程共有四次直播,分别是9月13日、9月15日、9月19日、9月22日晚20点开始。
4次课程系列,early bird(8.24-8.31报名)总价格219元
朋友圈分享本微信,并截图发送到CSDN的课程微信群,可以再获得一个30元的优惠码。入群方法:扫描如下CSDN机器人二维码,加此机器人微信,然后回复“Linux”即可自动入群
报名链接:
http://edu.csdn.net/huiyiCourse/series_detail/60?utm_source=wxs
安卓用户扫描如下二维码或者点击底部的“阅读原文”即可报名,苹果用户通过浏览器打开上述链接可以报名。
相关链接
历史课程
CSDN Docker实战三小时直播Practical Docker
Android用户点击阅读原文,也进入报名页面