スポンサーリンク

RTPRIO(2) FreeBSD システムコールマニュアル RTPRIO(2)

名称

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

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <sys/types.h>
#include <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() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

エラー

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

       [EINVAL]

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

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

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

作者

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

関連項目

nice(1), ps(1), rtprio(1), setpriority(2), nice(3), renice(8)

FreeBSD 10.0 July 23, 1994 FreeBSD 10.0

スポンサーリンク