36.7. sched_attr 结构
sched_attr
结构包含或定义指定线程的调度策略及其关联的属性。sched_attr
结构的格式如下:
sched_attr 数据结构
- size
线程大小(以字节为单位)。如果结构的大小小于内核结构,则假定其他字段为 0。
如果大小大于内核结构,内核会将所有其他字段验证为
0。
注意当
sched_attr
结构大于内核结构大小时,sched_setattr ()
函数会失败,并带有E2BIG
错误。- sched_policy
- 调度策略
- sched_flags
当进程使用 fork () 函数时,帮助控制调度行为。
调用过程称为父进程,新进程称为子进程。有效值:
-
0
:子进程从父进程继承调度策略。 -
SCHED_FLAG_RESET_ON_FORK: fork ()
:子进程不会从父进程继承调度策略。相反,它被设置为默认的调度策略(struct sched_attr){ .sched_policy = SCHED_OTHER, }
。
-
- sched_nice
-
指定在使用
SCHED_OTHER
或SCHED_BATCH
调度策略时设置的nice
值。nice
值是范围为-20
(高优先级)到+19
(低优先级)的数字。 - sched_priority
-
指定在调度
SCHED_FIFO
或SCHED_RR
时要设置的静态优先级。对于其他策略,将 priority 指定为0。
只能为截止时间调度指定 SCHED_DEADLINE
字段:
-
sched_runtime :指定截止时间调度的
runtime
参数。该值以纳秒表示。 -
SCHED_ DEADLINE : 指定
截止时间
调度的截止时间参数。该值以纳秒表示。 -
sched_period :指定截止时间调度的
period
参数。该值以纳秒表示。