01调度器演化
408 停在 FCFS / RR / 优先级 / 多级反馈。ULK 第 3 版对应 2.6.11,写的是 O(1) 调度器;CFS 在 2.6.23 合入,已超出该书。EEVDF 属于更晚的主线,本页只写动机。
进阶 / 超出 408下面三行是设计动机,不是统考模型。
| 阶段 | 动机 | 不要写成 |
|---|---|---|
| O(1) | 用位图在固定步数里挑下一个,避免随就绪进程数线性扫描 | 「408 的 RR 就是 O(1) 调度器」 |
| CFS | 按已跑时间(vruntime)找「最亏」的进程,追求公平份额 | 把红黑树当成 408 必答结构 |
| EEVDF | 以 lag/virtual lag 判断实体是否 eligible,再从 eligible 实体中选虚拟截止期最早者,兼顾公平与延迟;概念层,不绑定小版本号 | 默写某一提交的参数名 |
进程与线程都由 task_struct 表示;clone 标志决定资源共享与线程组关系,CLONE_VM 只是地址空间这一维(files/fs/sighand/线程组归属由其他标志决定)。陷入返回用户态前仍可能调度。