Skip to content

多处理机调度

考情分析

多处理机调度在 408 真题中考查很少,属于 🔥 低频考点,了解基本概念即可。

前面讨论的调度算法都假设只有一个 CPU。但现在连手机都有多核了,多个 CPU 之间怎么分配进程、怎么避免"一核有难八核围观"?

对称多处理(SMP)

SMP(Symmetric Multi-Processing):多个处理器地位对等,每个处理器都可以运行操作系统和用户进程。

非对称多处理(一个主处理器负责调度,其他只执行)相比,SMP 更主流。

多处理机调度的关键问题

处理器亲和性

处理器亲和性(Processor Affinity):倾向于让进程在之前运行过的处理器上继续运行。就像你在一家咖啡店待了一下午,桌上摊满了资料,换到隔壁店等于从头收拾一遍——Cache 里积累的数据就是那些"摊开的资料"。

原因:处理器的 Cache 中可能保留了该进程的数据,迁移到其他处理器会导致 Cache 失效。

类型说明
软亲和性尽量但不保证在同一处理器上运行
硬亲和性强制绑定到指定处理器

负载均衡

确保各处理器的工作负载大致均衡,避免一些处理器忙碌而其他空闲。

方式说明
Push 迁移定期检查负载,将进程从忙的处理器推到闲的
Pull 迁移空闲处理器主动从忙的处理器拉取进程

调度队列组织

方式说明优缺点
全局队列所有处理器共享一个就绪队列自动负载均衡,但队列访问需要互斥
每处理器队列每个处理器有自己的就绪队列无互斥开销,但需要负载均衡机制

考研高频考点

  • 🔥 SMP 的概念(对称多处理)
  • 🔥 处理器亲和性的原因(Cache 利用率)

调度决定了"谁来用 CPU",但从一个进程切到另一个进程的那一刻具体发生了什么?下一篇看上下文切换的细节。