SCHED_SETPARAM(2)

名前
sched_setparam, sched_getparam - スケジューリング・パラメーターの設定と取得を行なう

書式
#include <sched.h>

int sched_setparam(pid_t pid, const struct sched_param *p);

int sched_getparam(pid_t pid, struct sched_param *p);

struct sched_param {
	...
	int sched_priority;
	...
};

説明
sched_setparam はpidで指定されたプロセスのスケジューリング方針(scheduling policy)に 関連するスケジューリング・パラメーターを取得する。もし pid が ゼロならば、呼び出したプロセスのパラメーターが設定される。 パラメーター p の解釈は選択された方針に依存している。 現在のところ Linux では、以下に三つのスケージューリング方針がサポート されている: SCHED_FIFO、 SCHED_RR、 SCHED_OTHER。 sched_getparam は pid で指定されたプロセスのスケジューリング・パラメーターを 獲得する。もしpidがゼロならば、呼び出したプロセスのパラメーター を獲得する。 sched_setparam はプロセスのスケージュリング方針における p の妥当性をチェックする。 パラメーター p->sched_priority は sched_get_priority_min と sched_get_priority_max によって 与えられる範囲になければならない。 POSIX システムでは sched_setparam と sched_getparam は <unistd.h> に _POSIX_PRIORITY_SCHEDULING が定義されている場合にのみ使用可能である。

返り値
成功した場合は sched_setparam と sched_getparam は 0 を返す。 エラーの場合は -1 が返され、 errno が適切に設定される。

エラー

ESRCH
    pid を ID に持つプロセスが見つからなかった。

EPERM
    呼び出したプロセスが適切な権利を持っていなかった。 sched_setparam を呼び出すプロセスは実効(effective)ユーザーIDが pid で指定されたプロセスの実効ユーザーIDかユーザーIDに等しくなければならない。 又はスーパー・ユーザー・プロセスでなければならない。

EINVAL
    パラメーター p が現在のスケジューリング方針においては無意味である。

準拠
POSIX.1b (以前の POSIX.4)

関連項目
sched_setscheduler(2), sched_getscheduler(2), sched_get_priority_max(2), sched_get_priority_min(2), nice(2), setpriority(2), getpriority(2),

sched_setscheduler(2) には Linux のスケージュリング方式についての記述がある。

Programming for the real world - POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0
IEEE Std 1003.1b-1993 (POSIX.1b standard)
ISO/IEC 9945-1:1996