2011-04-17 55 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個優先事項是否真的相當於一大堆豆子。