如何以编程方式更改 linux 内核进程优先级?
How to change linux kernel process priority in programmatic way?
我发现了一些函数 'renice' 可以改变进程的 nice 值。
但我想知道如何在内核代码中更改优先级。
只改变进程 sched_entity 中的优先级值可以吗?
如果您想以编程方式更改进程的友好性,我建议不要直接在内核结构中设置这些值。相反,您可以使用多个 POSIX 函数,例如 setpriority
或 pthread_setschedparam
.
Linux 上的默认调度程序策略是 SCHED_OTHER
,因此默认情况下,您使用这两个函数实现相同的目的,因为 SCHED_OTHER
只是使用 niceness 级别来时间表。
如果您可以访问task_struct
,为了直接实现这一点,您只需要在task_struct
中设置static_prio
。
我发现了一些函数 'renice' 可以改变进程的 nice 值。
但我想知道如何在内核代码中更改优先级。
只改变进程 sched_entity 中的优先级值可以吗?
如果您想以编程方式更改进程的友好性,我建议不要直接在内核结构中设置这些值。相反,您可以使用多个 POSIX 函数,例如 setpriority
或 pthread_setschedparam
.
Linux 上的默认调度程序策略是 SCHED_OTHER
,因此默认情况下,您使用这两个函数实现相同的目的,因为 SCHED_OTHER
只是使用 niceness 级别来时间表。
如果您可以访问task_struct
,为了直接实现这一点,您只需要在task_struct
中设置static_prio
。