Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

第五十九章:时间片与优先级调度

复习

  • 不抢占的简单调度会让短而急的任务久等。

TL;DR

  • 时间片让进程最多运行一小段时间就让出 CPU。
  • 优先级能表达任务重要性,但需防止低优先级饥饿。

正文

  时间片轮转把 CPU 时间切成小段。时间片到达时,内核可抢占当前进程,换下一个就绪进程;每个交互程序因而很快再次获得机会。片太长接近先来先服务,太短又会被切换成本吞掉。

  系统也可按优先级选择就绪进程,例如优先回应正在与人交互的程序。为避免低优先级永远等待,常会随等待时间逐步提高其优先级,这叫老化。

  如果任务长短未知,能否从它实际表现中学习优先级?

思考题

时间片为什么不能无限缩短?

小结

  • 抢占式时间片改善交互响应。
  • 优先级调度常需老化机制维持公平。

思考题答案(仅供参考)

  每次切换都要保存和恢复现场;片过短时,大量时间消耗在切换而非完成工作上。

协议

本文采用 CC BY-NC-SA 4.0 协议发布。