tail head cat sleep
QR code linking to this page

manページ  — SCHED_SETSCHEDULER

名称

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

内容

ライブラリ

Standard C Library (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-93 ("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-93 ("POSIX.1") に詳説されているものです。

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

戻り値

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

処理に失敗すると、 errno を対応する値に設定します。
[ENOSYS]
  システムは、この機能をサポートするように構成されていません。
[EPERM]
  要求しているプロセスは IEEE Std 1003.1b-93 ("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-93 ("POSIX.1") に準拠しています。

SCHED_SETSCHEDULER (2) March 12, 1998

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.