記事ディレクトリ
1.プロセス分類(リアルタイムプロセス|通常のプロセス)
Linuxプロセスは、「リアルタイムプロセス」と「通常プロセス」の2つのカテゴリに分類されます。
「リアルタイムプロセス」の 優先度は 「通常プロセス」よりも高くなります。現在のLinuxシステムの実行キューに「リアルタイムプロセス」がある場合、スケジューラは「リアルタイムプロセス」を優先的選択します。スケジューリング用。
実行キューに複数のリアルタイムプロセスがある場合、スケジューラーは実行の優先度が最も高い「リアルタイムプロセス」を選択します。
プロセス分類「リアルタイムプロセス」、「通常プロセス」、「限定プロセス」、参照可能
- [Linuxカーネル]プロセス管理-プロセス優先度①(制限付きプロセス|リアルタイムプロセス|通常プロセス|プロセス優先度関連フィールド)
- [Linuxカーネル]スケジューラ⑧(プロセス優先度ソースコードinclude \ linux \ sched \ prio.h|プロセス分類|リアルタイムプロセス|通常プロセス|プロセス優先度値|0〜99リアルタイムプロセス)
ブログ;
2.Linuxカーネルスケジューリングポリシー
[ Linuxカーネル]スケジューラ⑨(Linuxカーネルスケジューリングポリシー|SCHED_NORMALポリシー|SCHED_FIFOポリシー|SCHED_NORMALポリシー|SCHED_BATCHポリシー)ブログでは、Linuxカーネル関連のスケジューリングポリシーが紹介されています。
1.SCHED_FIFOスケジューリングポリシー
SCHED_FIFO
は「リアルタイムプロセススケジューリング戦略」であり、先入れ先出し(先入れ先出し)スケジューリング戦略です。
この戦略には、CPUタイムスライスメカニズム(時分割多重メカニズム)は含まれていません。優先度の高いプロセスがない場合は、他のプロセスがCPUリソースをアクティブに解放するのを待つ。
SCHED_FIFO
スケジューリング戦略では、スケジューラーによって実行されるようにスケジュールされたプロセスの実行時間は無制限であり、任意の時間実行できます。
2.SCHED_RRスケジューリング戦略
SCHED_RR
これは、タイムスライスローテーションメカニズムを使用する「リアルタイムプロセススケジューリング戦略」であり、対応する時間値は実行時に減少します。
プロセス がCPUタイムスライス後、プロセスの優先度に対応する実行キューの最後に追加されます。
同時に、CPUリソースが解放され、CPUタイムスライスが同じます。
3.リアルタイムスケジューリングエンティティsched_rt_entity
リアルタイムスケジューリングエンティティは、Linuxカーネルソースコードのsched_rt_entity
構造。
sched_rt_entity
Linuxカーネルソースコードのlinux-5.6.18\include\linux\sched.h
ヘッダー
struct sched_rt_entity {
struct list_head run_list;
unsigned long timeout;
unsigned long watchdog_stamp;
unsigned int time_slice;
unsigned short on_rq;
unsigned short on_list;
struct sched_rt_entity *back;
#ifdef CONFIG_RT_GROUP_SCHED
struct sched_rt_entity *parent;
/* rq on which this entity is (to be) queued: */
struct rt_rq *rt_rq;
/* rq "owned" by this entity/group: */
struct rt_rq *my_q;
#endif
} __randomize_layout;