第八章:多级反馈队列

内容

  • MLFQ中有许多独立的队列(queue),每个队列有不同的优先级(prioritylevel)。任何时刻,一个工作只能存在于一个队列中。MLFQ总是优先执行较高优先级的工作(即在较高级队列中的工作);

MLFQ:基本规则

  • 规则1:如果A的优先级 > B的优先级,运行A(不运行B);
  • 规则2:如果A的优先级 = B的优先级,轮转运行A和B;
  • 规则3:工作进入系统时,放在最高优先级(最上层队列);
  • 规则4a:工作用完整个时间片后,降低其优先级(移入下一个队列);
  • 规则4a:工作用完整个时间片后,降低其优先级(移入下一个队列);
  • 规则5:经过一段时间S,就将系统中所有工作重新加入最高优先级队列。

重写规则四

  • ·规则4:一旦工作用完了其在某一层中的时间配额(无论中间主动放弃了多少次CPU),就降低其优先级(移入低一级队列)。

总结

  • 本章介绍了一种调度方式,名为多级反馈队列(MLFQ)。你应该已经知道它为什么叫这个名字——它有多级队列,并利用反馈信息决定某个工作的优先级。以史为鉴:关注进程的一贯表现,然后区别对待。