4

Linuxカーネルで同時に機能する3つ以上のスケジューリングポリシーがありますか?FIFOとラウンドロビンは同じマシンで動作できますか?

4

2 に答える 2

10

はい、Linux は 4 つ以上の異なるタスクのスケジューリング方法をサポートしています: SCHED_BATCH、SCHED_FAIR、SCHED_FIFO、および SCHED_RR。

スケジューリング方法に関係なく、すべてのタスクには固定のハード優先度もあります (バッチおよび公平の場合は 0、FIFO および RR の RT スケジューリング方法の場合は 1 ~ 99)。タスクは何よりもまず優先度によって選択されます。優先度が最も高いタスクが優先されます。

ただし、複数のタスクを同じ優先度で実行できる場合、ここでスケジューリング方法が開始されます。公平なタスクは、割り当てられた重み付けされた (重みはタスクのナイス レベルと呼ばれるソフトな優先度に由来する) シェアに対してのみ実行されます。他の公平なタスクに関する CPU 時間。FIFO タスクは、別のタスク (同じ優先度の - 優先度の高いタスクが常に優先される) に譲る前に固定タイム スライスで実行され、RR タスクはブロックされるまで実行され、同じ優先度を持つ他のタスクを無視します。優先順位。

上記の記述は正確ですが完全ではないことに注意してください。これは、事前の CPU 予約機能を考慮していないためです。ただし、相互に作用するさまざまなスケジューリング方法の詳細を示しています。

于 2012-03-20T06:36:04.913 に答える
1

はい !!現在、OS のさまざまな段階でさまざまなスケジューリング ポリシーがあります.. ラウンド ロビンは通常、コア実行を取得する前に行われます... fifo は、新しく来るプロセスの開始段階で行われます... !!!

于 2012-03-19T18:02:46.513 に答える