【发布时间】:2023-04-01 10:12:01
【问题描述】:
我发现一些函数 'renice' 可以改变进程的 nice 值。
但我想知道如何更改内核代码中的优先级。
只改变进程的sched_entity中的优先级值可以吗?
【问题讨论】:
标签: process linux-kernel kernel scheduling
我发现一些函数 'renice' 可以改变进程的 nice 值。
但我想知道如何更改内核代码中的优先级。
只改变进程的sched_entity中的优先级值可以吗?
【问题讨论】:
标签: process linux-kernel kernel scheduling
如果您想以编程方式更改进程的便利性,我建议您不要直接在内核结构中设置这些值。相反,您可以使用多个 POSIX 函数,例如 setpriority 或 pthread_setschedparam。
Linux 上的默认调度程序策略是 SCHED_OTHER,因此默认情况下,您可以使用这两个函数实现相同的目标,因为 SCHED_OTHER 只是使用 niceness 级别进行调度。
如果你可以访问task_struct,为了直接实现这个,你只需要在task_struct中设置static_prio。
【讨论】: