0.概述
本文介绍了Linux调度专题的撰写提纲,接下来的4个月时间将逐步完成调度专题的撰写。
1.范围
调度和内存管理是Linux系统中最基础、最核心、涉及知识面最广的两个模块。可以毫不夸张的说,理解了Linux的调度和内存管理,基本上就理解了Linux的一大半。撰写Linux调度专题的初衷有两点:1)深入理解Linux调度的细节 2)为后续内存专题的撰写打下基础。
部分章节的内容会与底层硬件的关联较为紧密,此专题会以ARM64平台为例进行讲述。
2.提纲
本专题将分为以下章节,初步计划每个章节一篇文章,很明显有些专题不是一篇文章可以讲透,所以我会重点讲述与调度相关的细节,争取做到把调度相关的核心代码梳理一遍。
- 调度关键数据结构体,参照《深入Linux内核架构》的行文方法,先给出数据结构,在解释结构的过程中顺带介绍调度的基本知识。
进程的生命周期
- 进程创建,分析进程创建的底层细节;
- 进程状态切换,分析进程运行过程中的各种状态以及状态间切换;
- 进程销毁,分析进程在销毁过程中做了哪些收尾工作;
- CFS调度类,介绍CFS调度类的函数接口
- RT调度类,介绍RT调度类的函数接口
- 负载均衡,介绍Linux负载均衡的设计细节
- 调度管理的同步问题,介绍Linux调度管理过程中的同步细节
调度搅局者
- 系统调用,介绍系统调用的实现过程
- 中断,介绍Linux中断子系统
- 信号,介绍Linux信号子系统
调度驱动者
- 周期Tick,介绍Linux时钟子系统和周期Tick模式
- NOHZ模式,介绍Linux NOHZ模式
- 调度专题总结,回顾和总结Linux调度的知识点