37.7. sched_attr 構造体
sched_attr 構造体には、指定されたスレッドのスケジューリングポリシーとそれに関連する属性が含まれるか、それらを定義します。sched_attr 構造体の形式は次のとおりです。
struct sched_attr {
u32 size;
u32 sched_policy;
u64 sched_flags;
s32 sched_nice;
u32 sched_priority;
/* SCHED_DEADLINE fields */
u64 sched_runtime;
u64 sched_deadline;
u64 sched_period;
};
sched_attr データ構造体
- size
バイト単位のスレッドサイズ。構造体のサイズがカーネル構造体よりも小さい場合、追加のフィールドは
0と見なされます。サイズがカーネル構造体よりも大きい場合、カーネルはすべての追加フィールドを0として検証します。注記sched_attr構造体がカーネル構造体よりも大きく、カーネル構造のサイズを含むようにサイズを更新すると、sched_setattr()関数はE2BIGエラーで失敗します。- sched_policy
- スケジューリングポリシー
- sched_flags
プロセスが
fork()関数を使用してフォークする場合のスケジューリング動作を制御するのに役立ちます。呼び出し元のプロセスは親プロセスと呼ばれ、新しいプロセスは子プロセスと呼ばれます。有効な値は以下のとおりです。-
0: 子プロセスは親プロセスからスケジューリングポリシーを継承します。 -
SCHED_FLAG_RESET_ON_FORK: fork(): 子プロセスは親プロセスからスケジューリングポリシーを継承しません。代わりに、デフォルトのスケジューリングポリシー(struct sched_attr){ .sched_policy = SCHED_OTHER, }に設定されます。
-
- sched_nice
-
SCHED_OTHERまたはSCHED_BATCHスケジューリングポリシーを使用する際に設定するnice値を指定します。nice値は、-20(優先度が高い) から+19(優先度が低い) の範囲の数値です。 - sched_priority
-
SCHED_FIFOまたはSCHED_RRをスケジュールするときに設定する静的優先度を指定します。その他のポリシーの場合は、優先度を0として指定します。
SCHED_DEADLINE フィールドは、期限スケジューリングの場合にのみ指定する必要があります。
-
sched_runtime: 期限スケジューリングの
runtimeパラメーターを指定します。値はナノ秒で表されます。 -
sched_deadline: 期限スケジューリングの
deadlineパラメーターを指定します。値はナノ秒で表されます。 -
sched_period: 期限スケジューリングの
periodパラメーターを指定します。値はナノ秒で表されます。