スポンサーリンク

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

名称

sched_setscheduler, sched_getscheduler − スケジュール方針とスケジューラパ ラメータの設定 / 取得

ライブラリ

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

書式

#include <sched.h>

int

sched_setscheduler(pid_t pid, int policy, const struct sched_param *param);

int

sched_getscheduler(pid_t pid);

解説

sched_setscheduler() システムコールは、 pid で指定したプロセスのスケ ジュール方針とスケジュールパラメータを、それぞれ、 policy および param が 指す sched_param 構造体の指定するパラメータに設定します。 param 構造体の メンバ sched_priority の値は、 policy で指定するスケジュール方針用の優先 度範囲内 (両端含む) の整数である必要があります。

この実装では、 pid の値が負である場合、システムコールは処理に失敗します。

pid で指定するプロセスが存在し、かつ呼び出し元プロセスにパーミッションが ある場合、プロセス ID が pid と等しいプロセスに対してスケジュール方針とス ケジュールパラメータを設定します。

pid が 0 の場合、呼び出し元プロセスに対してスケジュール方針とスケジュール パラメータを設定します。

この実装では、あるプロセスが別のプロセスのスケジュールパラメータにいつ影 響を及ぼせるのかという方針は、書込みスタイル操作として IEEE Std 1003.1b-1993 (‘‘POSIX.1’’) に指定されているものです。

スケジュール方針は <sched.h> 内にあります。

       [SCHED_FIFO]

ラウンドロビンスケジュールのない、先入先出 (FIFO) 優先順位 固定スケジュール。

[SCHED_OTHER]
標準のタイムシェアリングスケジューラ。

[SCHED_RR]
同じ優先順位のプロセス間でのラウンドロビンスケジュール。

sched_param 構造体は <sched.h> に定義されています。

struct sched_param {

int sched_priority;

/* スケジュール優先順位 */

};

sched_getscheduler() システムコールは、 pid で指定するプロセスのスケ ジュール方針を返します。

pid で指定するプロセスが存在してかつ、呼び出し元プロセスにパーミッション がある場合、プロセス ID が pid に等しいプロセスのスケジュールパラメータを 返します。

この実装では、あるプロセスが別のプロセスのスケジュールパラメータをいつ得 られるかの方針は、読取りスタイル操作として IEEE Std 1003.1b-1993 (‘‘POSIX.1’’) に詳説されているものです。

pid が 0 の場合、呼び出し元プロセスのスケジュールパラメータを返します。こ の実装では、 pid が負の場合、 sched_getscheduler システムコールは処理に失 敗します。

戻り値

成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno が設定されてエラーを示します。

エラー

処理に失敗すると、 errno を対応する値に設定します。

       [ENOSYS]

システムは、この機能をサポートするように構成されていま せん。

[EPERM]
要求しているプロセスは IEEE Std 1003.1b-1993 (‘‘POSIX.1’’) で詳説されているパーミッションを持ってい ません。

[ESRCH]
pid
で指定したプロセスに対応するプロセスが見つかりませ ん。

[EINVAL]
policy
引数の値が無効であるか、または param に含まれて いる 1 つまたは複数のパラメータが、指定されたスケ ジュール方針で有効な範囲の外にあります。

関連項目

sched_getparam(2), sched_get_priority_max(2), sched_get_priority_min(2), sched_rr_get_interval(2), sched_setparam(2), sched_yield(2)

規格

sched_setscheduler() システムコールと sched_getscheduler() システムコール は IEEE Std 1003.1b-1993 (‘‘POSIX.1’’) に準拠しています。

FreeBSD 10.0 March 12, 1998 FreeBSD 10.0

スポンサーリンク