| 项目 | 值 |
|---|---|
| 定义 | 在多 CPU 系统中将进程/线程分配到各处理器上 |
| 两种模型 | 非对称多处理(AMP)、对称多处理(SMP) |
| SMP 主流 | 每个 CPU 运行自己的调度程序(独立调度) |
| 关键问题 | 负载均衡、处理器亲和性、缓存一致性 |
多处理机调度是在拥有多颗 CPU(或多核)的系统中,决定哪个进程/线程在哪颗 CPU 上执行的问题。
两种多处理机模型:
SMP 调度策略:
处理器亲和性(Processor Affinity):
负载均衡:
| 对比项 | 公共就绪队列 | 私有就绪队列 |
|---|---|---|
| 队列数量 | 1 个(共享) | 每个 CPU 一个 |
| 负载均衡 | 自动(共享队列) | 需要额外机制 |
| 竞争问题 | 有(需加锁) | 无 |
| 实现复杂度 | 简单 | 复杂 |
| 考法 | 解题套路 |
|---|---|
| AMP vs SMP | AMP 有主 CPU 瓶颈,SMP 是主流 |
| 处理器亲和性 | 软亲和性(尽量不迁移)vs 硬亲和性(不允许迁移) |
| 负载均衡 | 推迁移(主动推送)vs 拉迁移(空闲 CPU 拉取) |
| 为什么需要亲和性 | 利用 CPU 缓存(热数据在缓存中),迁移会导致缓存失效 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。