CPU 只有几个核心,同时就绪的进程却有一长串。调度器决定谁先跑、跑多久,是操作系统的心脏。
时间片轮转的问题
所有进程一视同仁听起来公平,但交互式进程需要快速响应,批处理任务反而应该跑长一点。朴素轮转两头不讨好。
公平调度
按权重分配 CPU 时间账本,欠账多的进程优先调度。配合动态调整交互任务的优先级,兼顾吞吐与响应。
观察手段
系统的运行队列长度和上下文切换次数是判断调度压力的两个直接指标。
操作系统如何在几十上百个 runnable 进程之间分配 CPU?主流调度器的核心思想一览。
CPU 只有几个核心,同时就绪的进程却有一长串。调度器决定谁先跑、跑多久,是操作系统的心脏。
所有进程一视同仁听起来公平,但交互式进程需要快速响应,批处理任务反而应该跑长一点。朴素轮转两头不讨好。
按权重分配 CPU 时间账本,欠账多的进程优先调度。配合动态调整交互任务的优先级,兼顾吞吐与响应。
系统的运行队列长度和上下文切换次数是判断调度压力的两个直接指标。