精通Linux内核开发
上QQ阅读APP看书,第一时间看更新

1.2.3 调度属性:关键元素

所有相互竞争的进程都必须拥有公平的CPU时间,这就要求基于时间片和进程优先级来调度。以下这些属性包含了调度器所需的必要信息,以帮助确定哪个进程在竞争时获得优先权。

1.prio和static_prio

prio帮助确定调度进程的优先级。如果进程被分配了实时调度策略,则此字段保存了进程的静态优先级,范围为1~99(由sched_setscheduler()指定)。对于正常的进程,这个字段保存了由nice值得来的动态优先级。

2.se、rt和dl

每个任务都属于调度实体(任务组),因为调度是在每个实体级别上完成的。se用于所有正常进程,rt用于实时进程,dl用于截止期进程。我们将在下一章讨论关于调度的这些属性的更多细节。

3.policy

该字段保存了和进程调度策略相关的信息,这有助于确定进程的优先级。

4.cpus_allowed

该字段指定了进程的CPU掩码。也就是说,在多处理器系统中,进程允许在哪个CPU上进行调度。

5.rt_priority

该字段用于指定实时调度策略的进程优先级。但对于非实时进程,该字段未被使用。