スケジューリングポリシーと優先度 ======================== スケジューリングポリシー ------------------ Linux スケジューラーではスレッドの実行場所と実行期間を決定する数種類のスケジューリングポリシーを実装している。大きく分けると通常ポリシーとリアルタイムポリシーの 2 種類のカテゴリーに分けられる。 ^ ポリシー ^ 値 ^ 説明 ^ 備考 ^ | SCHED\_FIFO | 1 | 静的優先度のスケジューリング | | | SCHED\_RR | 2 | ラウンドロビン方式の優先度スケジューリング | | | SCHED\_OTHER | 0 | デフォルトのスケジューリングポリシー | タイムスライス | 優先度 ----- SCHED\_FIFO と SCHED\_RR スレッドの優先レベルは 1 から 99 で指定することができ、__99 が最も高い__優先度になる。 ### macOSでの優先度範囲 macOSで指定できる優先度は 1〜99 ではなく、POSIX.1-2001 で要求される最低 32 種類のレベル指定となっている模様。(macOS Monterey 12.4で確認) なので、設定きできる優先度の範囲は、 `sched_get_priority_min` と `sched_get_priority_max` を使って調べてから利用する。 参考 ---- * [[https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/performance_tuning_guide/sect-red_hat_enterprise_linux-performance_tuning_guide-configuration_suggestions-tuning_scheduling_policy|スケジューリングポリシーの調整]] * [[https://manpages.ubuntu.com/manpages/jammy/ja/man7/sched.7.html|sched - スケジューリング API の概要]]