struct sched_pa​​ram中的sched_priority是指什么?

时间:2014-11-22 10:29:55

标签: linux linux-kernel scheduling scheduler

我很难理解setscheduler func中的sched_priority角色。
我使用linux 2.4.X,文档说:

Valid priorities for SCHED_OTHER is 0, Valid priorities for SCHED_RR\FIFO are 1...MAX_USER_RT_PRIO-1

但是,我记得rt procsses的优先级是0-99,而SCHED_OTHER的优先级是100-139,所以...我错过了什么? sched_priority中的struct sched_param指的是什么?

2 个答案:

答案 0 :(得分:2)

SCHED_OTHER是带循环的默认计划策略。这是没有优先权的选择。

SCHED_FIFOSCHED_RR是实时调度策略,优先级范围为1到99.

SCHED_OTHERSCHED_BATCHSCHED_IDLE是正常的调度策略。

从Linux 3.14开始,您会发现SCHED_DEADLINE首先执行具有最早截止日期的任务。

您可以使用sched_priority设置线程优先级。 sched_priority是结构struct sched_param的成员。

尝试chrt -m检查可配置/设置的最小/最大有效优先级。 chrt可用于设置或检索进程的调度属性。

答案 1 :(得分:0)

您将用户空间接口与内部内核实现混淆。 sched_priority只是请求的固定实时优先级。 在SCHED_OTHER策略下安排的任务也有一个很好的水平。

您记住的比例是任务相对优先级的内核表示,将实时任务和SCHED_OTHER任务与各自的优秀级别聚合在一起。