CFSとリアルタイム戦略

CFSとリアルタイム戦略

Linuxでリアルタイムアルゴリズムを実装しようとしています。

私はLinuxのリアルタイム戦略を調べました:Scheduling_rr先入れ先出しスケジューリング

私より深く掘り下げて、完全に公正なスケジューラを見つけました。 CFSを使用すると、CFSは公平性のみを考慮するため、予測可能性を失うと考えました。

リアルタイムスケジューリングアルゴリズムを厳密に実装するには、CFSを使用しないでください。私は正しいですか?それでは、どのLinuxスケジューラを使用する必要がありますか?

ベストアンサー1

CFSは、さまざまな同時ワークロード間で帯域幅を公平に共有するため、待ち時間の短いインタラクティブワークロードに適しています。リアルタイムとは、時間内に作業を完了することを意味します。待ち時間が短いように聞こえますが違います。 CFSは締め切りを提供しないため、リアルタイムには適していません。ぜひご覧ください。SCHED_DEADLINEスケジューラ。期限切れの周期的または散発的な作業のための非常に優れたユニバーサルリアルタイムスケジューラです。

SCHED_DEADLINEジョブは優先順位が最も高いため、他のすべてのジョブよりも優先されます。 SCHED_RRとSCHED_FIFOは優先順位1〜99に従って予約され、高い数字は低い優先順位よりも優先されます。 SCHED_OTHERの優先順位はゼロで、前の優先順位よりも低いため、CFSスケジューラはリアルタイムジョブに対してのみ残りのCPUを取得します。リアルタイムスケジューラはCPU帯域幅の最大95%を割り当て、SCHED_OTHERジョブに5%を残すことができます(sysctlを介して変更しない限り)。スケジューラに SCHED_OTHER と比較して他の欠点を与えるように指示する SCHED_BATCH および SCHED_IDLE もあります。 Linuxのマニュアルページ予約(7)詳細を提供してください。

おすすめ記事