システムインタフェース

スケジューリングを制御する関数呼び出し

priocntl(2)

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

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

priocntl(2) のコマンド引数は、PC_GETCIDPC_GETCLINFOPC_GETPARMSPC_SETPARMS のいずれかにします。呼び出しプロセスの実識別子または実効識別子は、対象となるプロセスのものと一致するか、スーパーユーザ特権を持っていなければなりません。

PC_GETCID

このコマンドは、認識可能なクラス名 (実時間なら RT、タイムシェアリングなら TS) を含む構造体の名前フィールドを受け入れます。クラス ID とクラス属性データの配列が戻されます。 

PC_GETCLINFO

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

PC_GETPARMS

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

PC_SETPARMS

このコマンドは、指定したプロセス (複数でも可) のスケジューリングクラス識別子またはクラス固有のスケジューリングパラメタ、あるいはその両方を設定します。 

sched_get_priority_max(3RT)

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

sched_get_priority_min(3RT)

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

sched_rr_get_interval(3RT)

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

sched_setparam(3RT)sched_getparam(3RT)

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

sched_yield(3RT)

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