プログラミングインタフェース

スケジューリングを制御するインタフェース呼び出し

次に、プロセスのスケジューリングを制御するインタフェース呼び出しを説明します。

priocntl の使用法

動作中のクラスのスケジューリング制御は、priocntl(2) で処理します。fork(2)exec(2) を実行した場合、クラスの属性は、優先順位の制御に必要なスケジューリングパラメータやアクセス権とともに継承されます。この継承は、RT クラスと TS クラスの両方に当てはまります。

priocntl(2) は、システムコールが適用されるリアルタイムプロセス、プロセスのセット、またはクラスを指定するインタフェースです。priocntlset(2) も、システムコールを適用するプロセスのセット全体を指定する、より一般的なインタフェースを提供します。

priocntl(2) のコマンド引数は、PC_GETCIDPC_GETCLINFOPC_GETPARMSPC_SETPARMS のいずれかにします。呼び出し側プロセスの実 ID または実効 ID は、対象となるプロセスの実 ID または実効 ID と一致するか、あるいは、スーパーユーザー特権を持つ必要があります。

PC_GETCID

このコマンドは、認識可能なクラス名を含む構造体の名前フィールドを受け入れます。クラス ID とクラス属性データの配列が返されます。

PC_GETCLINFO

このコマンドは、認識可能なクラス識別子を含む構造体の ID フィールドを受け入れます。クラス名とクラス属性データの配列が返されます。

PC_GETPARMS

このコマンドは、指定されたプロセスのうち、1 つのプロセスのスケジューリングクラス識別子またはクラス固有のスケジューリングパラメータを返します。idtypeid によって大きなセットが指定された場合でも、PC_GETPARMS は 1 つのプロセスのパラメータだけを返します。どのプロセスを選択するかはクラスによって決まります。

PC_SETPARMS

このコマンドは、指定されたプロセス (複数可) のスケジューリングクラスまたはクラス固有のスケジューリングパラメータを設定します。

その他のインタフェース呼び出し

sched_get_priority_max

指定された方針の最大値を返します。

sched_get_priority_min

指定された方針の最小値を返します。詳細は、sched_get_priority_max(3RT) のマニュアルページを参照してください。

sched_rr_get_interval

指定された timespec 構造体を現在の実行時間制限に更新します。詳細は、sched_get_priority_max(3RT) のマニュアルページを参照してください。

sched_setparamsched_getparam

指定されたプロセスのスケジューリングパラメータを設定または取得します。

sched_yield

呼び出し側プロセスがプロセスリストの先頭に戻るまで、呼び出し側プロセスをブロックします。