学习Linux进程调度子系统,需要合理进程拆分,逐一击破。关于Linux进程调度子系统可以拆分如下五个大方向:
一、Tasks
1. tasks如何在Linux内核中表示:struct task_struct
2. Linux如何在用户态和内核态下分别创建task_struct
3. Linux中task_struct相关属性,如调度策略,PID等等
二、Scheduler Class
1. Linux内核关于进程调度的五种调度算法
2. Linux高版本上默认的调度算法
三、Scheduler
1. 两种核心的调度程序:主调度器和周期调度器
四、Context Switch
1. 进程上下文切换:save and restore
五、SMP Load Balance
1. 进程在SMP中负载均衡运用
为了方便理解,需要将Linux调度子系统流程逻辑框图画出来,这样能有整个流程有大概的思路:
接下来需要在这个子系统中也将涉及的关键结构体罗列出来,便于理解,简易图如下所示: