2011-04-17 56 views
0

我想知道如何将SCHED_RR的POSIX线程优先级的范围增加到1-99之外。我已经调用了sched_get_priority_min和sched_get_priority_max来验证SCHED_RR的1-99范围,但是我正在为使用更多优先级的另一个操作系统移植代码。我希望每个线程具有相同的相对优先级,但不希望强制线程在应该不同时共享相同的优先级。如何增加POSIX线程优先级的范围?

+0

对你来说99不够吗? – 2011-04-17 16:15:00

+0

不完全 - 要移植的应用程序使用超过99个优先级别。 – shaunp 2011-04-17 16:28:30

+0

我已经过类似的练习,将VxWorks 5(0-255)的产品移植到Linux。我认为任务优先级数字是冒烟的 - 由于调度程序和上下文切换开销的差异,匹配数字是没有意义的。我甚至发现,保持相同的优先顺序不足以避免各种新的行为。底线:你问的是错误的问题! – Mogsdad 2016-04-27 20:45:38

回答

0

你可能已经阅读它们既可手册页似乎很清楚:

调度优先级的 可以在其他POSIX系统变化的范围,从而 它是便携式 应用程序使用一个好主意虚拟优先级 范围并通过sched_get_priority_max()和 sched_get_priority_min()将其映射到给定的间隔 。 POSIX.1-2001 要求在SCHED_FIFO和SCHED_RR的最大值和最小值之间至少扩展32个 值。

我宁可怀疑有一个旋钮来改变这个,所以我的猜测是你坚持改变内核或按照建议缩放优先级。我坦率地想知道,在实际的表现中,超过99个优先事项是否真的相当于一大堆豆子。