2.6.4 带宽控制

系统引入任务组的基本目的之一,就是实现资源的分配与控制,对CPU时间的限制通过带宽控制来实现,本节我们就来一探究竟。实时任务和普通任务都有带宽控制的逻辑,我们这里只讨论CFS的带宽控制。

带宽控制的总体思路如下:系统为任务组设置带宽额度,任务组中的各个cfs_rq首先需要向任务组(task_group)申请时间,如果申请成功,则cfs_rq中的任务可以被CFS调度运行,如果申请失败(例如当前周期内任务组的时间配额已经用完),则调度器会将cfs_rq挂起(throttle);系统通过定时器周期性地为任务组重新分配时间额度,并将挂起的cfs_rq解挂(unthrottle)。

下面我们深入代码,从各个方面详细分析带宽控制的实现方式。

Last updated