我一直在学习一些调度概念。目前我的理解如下。
nice
的优先级值可以在-20到+20的范围内。较高的正值表示该进程具有较低的优先级。-
如本答案here中所述。这主要是因为实时进程比非实时进程具有更高的优先级,并且niceness 值不适用于它们。chrt
来查看进程的实时属性。 对于实时过程,chrt
给出的输出为,
chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99
Run Code Online (Sandbox Code Playgroud)
正如我们在进程5 中看到的,优先级是 99,这是最高的。此外,调度策略是SCHED_FIFO
现在,对于非实时过程,chrt
给出的输出为,
chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0
Run Code Online (Sandbox Code Playgroud)
正如我们所见,进程22383的优先级为 0,调度策略为SCHED_OTHER
。
问题
SCHED_OTHER
非实时进程之外,我是否可以设置其他一些调度算法?从这里,我还看到我可以修改正在运行的进程的属性,
chrt -p prio pid …
Run Code Online (Sandbox Code Playgroud)