线程(或任务)将通过使用大量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绑定)获得优先级.我希望这段摘录能回答你的问题……
(编辑:淮北站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|