OpenBSDスレッド優先順位

OpenBSDスレッド優先順位

OpenBSDでスレッド優先順位を使用する方法を説明できる人はいますか?

MANページにはこの問題に関する情報はほとんどなく、明確な理解は提供されません。特に:

sched_get_priority_min/max範囲を指定します。 OpenBSD 6.3 amd64があり、範囲は0-31

最初に作成されたプロセススレッドのデフォルトの優先順位ポリシー/レベルが表示されると、次のものが表示されます(SCHED_OTHER, 0)0最低の場合、アイドルスレッドをどのように指定しますか?それとも優先順位は通常より低いですか?私はただ増加する優先順位?システムスレッドの優先順位は何ですか?アイデアによると、基本的な優先順位はでなければなりませんnormal

マニュアルページには、pthread_setschedparam()「スレッドのスケジューリング方針はSCHED_FIFO(先入れ先出し)またはSCHED_RR(ラウンドロビン)のいずれかになります」と記載されています。なぜダメなのSCHED_OTHER?最初の基本スレッドにこれポリシー。

この優先順位はリアルタイムですか、それとも正常ですか?

誰でも明らかにできますか?

Windowsでは優先順位を設定できidle、システムに他のタスクがない場合にのみスレッドがスケジュールされていることがわかります。私は設定することができ、time_criticalそのスレッドはほぼすべてのプロセッサ時間を持っています。

OpenBSDでこれらのタスクを解決するには?Windowsの優先順位に似ているものは何ですか:idle、、、、、、、、?lowestbelow_normalnormalabove_normalhighesttime_critical

ポリシーを選択する方法は?FIFOOTHERまたはRR?優先順位が同じ場合に処理時間を付与するという点で、これらのポリシーは同じですか?

MANページには回答されていない質問がたくさんあります。

ベストアンサー1

unistd.hOpenBSDでは、両方_POSIX_PRIORITY_SCHEDULINGそして_POSIX_THREAD_PRIORITY_SCHEDULINGに設定すると、-1プロセススケジューリングおよびスレッド実行スケジューリングオプションはサポートされていません(ランタイムもサポートされていません)。sysconf機能示す)。

これは、OpenBSD実装が設定された優先順位によるスケジューリングをサポートしていないため、設定されたすべての優先順位が意味をなさないpthread_setschedparamことを意味します。事実ソースはpthread_setschedparamEINVAL優先順位ベースのスケジュールポリシーを返す必要があるかどうか疑問があります。

したがって、最初の質問に答えると、現在OpenBSDはスレッド優先順位をサポートしていないため、使用できません。

おすすめ記事