如何在Linux 2.6.x中计算线程的动态优先级?

前端之家收集整理的这篇文章主要介绍了如何在Linux 2.6.x中计算线程的动态优先级?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

线程(或任务)将通过使用大量cpu来丢失动态优先级,并通过使用较少的cpu获得优先级.如何为n个线程计算这些优先级(使用正常调度策略SCHED_OTHER)?

最佳答案
引自this

The Linux 2.6.8.1 scheduler rewards I/O-bound tasks and punishes
cpu-bound tasks by adding or subtracting from a task’s static
priority. The adjusted priority is called a task’s dynamic priority,
and is accessible via the task’s prio variable (e.g. p->prio where p
is a task). If a task is interactive (the scheduler’s term for I/O
bound),its priority is boosted. If it is a cpu hog,it will get a
penalty. In the Linux 2.6.8.1 scheduler,the maximum priority bonus is
5 and the maximum priority penalty is 5. Since the scheduler uses
bonuses and penalties,adjustments to a task’s static priority are
respected. A mild cpu hog with a nice value of -2 might have a dynamic
priority of 0,the same as a task that is neither a cpu nor an I/O
hog.

我觉得这是一个公平的解释.优先级的计算基于cpu绑定线程还是I / O绑定线程.关于你在问题中提到的内容,通过使用较少的cpu获得优先级是通过交互(I / O绑定)获得优先级.我希望这段摘录能回答你的问题……

原文链接:https://www.f2er.com/linux/440952.html

猜你在找的Linux相关文章