从 fork 到 exit:Linux 调度器全解Linux 6.12.110

从 fork 到 exit:Linux 调度器全解

ARM64 + PREEMPT_RT · Linux 6.12 · 用 4+1 视图跟着一个程序走完一生。所有代码引用都对照 Linux 6.12.110(linux-6.12.y,主线首个内置 PREEMPT_RT 的 LTS)源码给出 文件:行号;硬件以 12 核三丛集 ARMv9.2 示例平台「X9」为例。

6.12.110内核版本2个系列3篇文档14张架构图

系列索引

这套文档怎么读

这是一套围绕 Linux 6.12.110(linux-6.12.y,主线首个内置 CONFIG_PREEMPT_RT 的 LTS) 的调度器源码解读,目标架构是 ARM64。组织方式借用了软件架构里的 4+1 视图模型

每一篇文章顶部都有一排视图标签,亮起的就是这一篇用到的视图。

图 0-1 调度器的 4+1 视图地图
图 0-1 调度器的 4+1 视图地图

三个约定

  1. 一个程序demo 由父进程 fork 出子进程,子进程里再建 worker(计算)、io(睡眠/唤醒)、ctrl(SCHED_FIFO 80、1ms 周期)三个线程,一个程序覆盖所有典型调度场景。源码见 导读 0.1
  2. 一块板子:示例平台「X9」是一颗 12 核三丛集 ARMv9.2 SoC(4×A520 + 6×A725 + 2×X925,DynamIQ 共享 L3,GICv3)。所有"选哪个 CPU""算力多少"的例子都在它上面推演。
  3. 一份源码:所有 文件:行号 都对应 linux-6.12.y @ fa5b06866b64(v6.12.110),可以直接打开核对。

当前进度

批次 内容 状态
第 1 批 站点骨架 · 0.1 导读 · A1 fork · A3 首次上 CPU ✅ 已发布
第 2 批 A2 · A4–A9(场景主线补全) 撰写中
第 3 批 B 逻辑视图 · C 进程视图 计划中
第 4 批 D 物理视图 · E 开发视图 · 全站搜索 计划中