RTPRIO(2)

名称
rtprio - ユーティリティやプロセスのリアルタイム / アイドル優先順位の取得と修正

ライブラリ
libc

書式
<sys/types.h> <sys/rtprio.h> int rtprio(int function, pid_t pid, struct rtprio *rtp)

解説
rtprio() システムコールを使用して、プロセスのリアルタイムまたはアイドル優先順位を 取得または変更します。

function 引数で実行する操作を指定します。 現在の優先順位を取得するには RTP_LOOKUP、優先順位を設定するには RTP_SET です。 pid 引数は、対象のプロセスを指定します。 現在のプロセスを指定するには 0 を使います。

*rtp 引数は、優先順位と優先順位のタイプを指定するのに使用する struct rtprio を指す ポインタです。 この構造体は次の型です:

    struct rtprio {
    	u_short	type;
    	u_short prio;
    };

type の値は、リアルタイム優先順位については RTP_PRIO_REALTIME、 通常の優先順位については RTP_PRIO_NORMAL、 アイドル優先順位については RTP_PRIO_IDLE です。 prio によって指定する優先順位は、0 から RTP_PRIO_MAX (通常は 31) の範囲になります。 0 が指定可能な最高の優先順位です。

リアルタイム優先順位とアイドル優先順位は、 fork() と exec() を通じて継承されます。

リアルタイムプロセスは、それ以上の優先順位をもつプロセス、 または割り込みによってだけ優先権を取得できます。 アイドル優先順位のプロセスは、 他のリアルタイムまたは通常の優先順位プロセスが 実行可能でないときにだけ実行されます。 優先順位の高いリアル / アイドルのプロセスは 優先順位の低いリアル / アイドルのプロセスから優先権を取得します。 優先順位が等しいリアル / アイドルの プロセスはラウンドロビン方式で実行されます。

戻り値

エラー
rtprio() システムコールは次の場合に処理を失敗します:

[EINVAL]
    指定された prio が範囲外でした。

[EPERM]
    呼び出しプロセスがリアルタイム優先順位を設定できません。 root だけが任意のプロセスのリアル優先順位を変更することができます。 root でないユーザは現在のプロセスのアイドル優先順位を変更できるだけです。

[ESRCH]
    指定のプロセスが見つかりませんでした。

作者
-nosplit オリジナルの作者は Henrik Vestergaard Draboel <hvd@terry.ping.dk> です。 FreeBSD での実装は David Greenman によって本質的に書き直されました。

関連項目
nice(1), ps(1), rtprio(1), setpriority(2), nice(3), renice(8)