5

SCHED_FIFO と SCHED_RR はどちらもリアルタイムで使用するためのものです。SCHED_RR はタイム スライスによってプリエンプトされる可能性があることは承知しています。しかし、1 つのスレッドが SCHED_FIFO に設定され、別のスレッドが SCHED_RR に設定されている場合、両方のスレッドが実行できる状態になっている場合、それらは純粋に優先度によってスケジュールされているのでしょうか? 優先度が同じ場合はどうなりますか?

4

1 に答える 1

6

概念的には、各静的優先度レベルに関連付けられた実行可能なプロセスのリストがあります。これらのリストには、プロセスの両方SCHED_FIFOを含めることができますSCHED_RR。2つのスケジューリングポリシーは、静的な優先順位の同じセットを共有します。

実行するプロセスを選択するとき、スケジューラーは、そのプロセスのスケジューリングポリシーに関係なく、静的優先度が最も高い空でないリストの先頭にあるプロセスを取得します。

スケジューリングポリシーは、プロセスがこれらのリスト内でどのように移動するかに影響します。の場合SCHED_FIFO、プロセスが特定の優先度でリストの先頭に到達すると、ブロックまたは譲歩するまでそこにとどまります。の場合SCHED_RR、最大タイムクォンタムを超えた実行可能プロセスは、静的優先度のリストの最後に移動されます。

于 2012-12-04T04:53:44.983 に答える