Manpages

名 前

sched_rr_get_interval − 指 定 さ れ た プ ロ セ ス の SCHED_RR 間 隔 を 取 得 す る

書 式

#include <sched.h>

int sched_rr_get_interval(pid_t pid, struct timespec *tp);

説 明

sched_rr_get_interval() は tp で 指 定 さ れ た timespec 構 造 体 に pid で 指 定 さ れ た プ ロ セ ス の ラ ウ ン ド ロ ビ ン 時 間 量 (round robin time quantum) を 書 き 込 む 。 指 定 さ れ た プ ロ セ ス は SCHED_RR ス ケ ジ ュ ー リ ン グ ポ リ シ ー で 動 作 し て い る は ず で あ る 。

timespec 構 造 体 は 以 下 の 通 り で あ る :

struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */ };

pid が 0 の 場 合 、 呼 び 出 し た プ ロ セ ス の 時 間 量 (time quantum) が *tp に 書 き 込 ま れ る 。

返 り 値

成 功 し た 場 合 は sched_rr_get_interval() は 0 を 返 す 。 エ ラ ー の 場 合 は −1 が 返 さ れ 、 errno が 適 切 に 設 定 さ れ る 。

エ ラ ー

EFAULT 情 報 を ユ ー ザ ー 空 間 に コ ピ ー す る 時 に 問 題 が 起 き た 。

EINVAL

PID が 不 正 で あ る 。

ENOSYS シ ス テ ム コ ー ル が ま だ 実 装 さ れ て い な い

(か な り 古 い カ ー ネ ル に お い て

の み )。

ESRCH プ ロ セ ス

ID が pid の プ ロ セ ス が 見 つ か ら な か っ た 。

準 拠

POSIX.1−2001.

注 意

POSIX シ ス テ ム で sched_rr_get_interval() は <unistd.h>_POSIX_PRIORITY_SCHEDULING が 定 義 さ れ て い る 場 合 に の み 使 用 可 能 で あ る 。

Linux で の 注 意
POSIX で は ラ ウ ン ド ロ ビ ン 時 間 量 の 大 き さ を 制 御 す る 仕 組 み が 規 定 さ れ て い な い 。 古 い Linux カ ー ネ ル で は こ れ を 変 更 す る 方 法 が 提 供 さ れ て い る (こ の 方 法 に 移 植 性 は な い )。 プ ロ セ ス の nice 値 を 調 整 す る こ と で 時 間 量 を 制 御 で き る (setpriority(2) 参 照 )。 負 の nice 値 (す な わ ち 、 高 い nice 値 ) を 割 り 当 て る と 時 間 量 は 長 く な り 、 正 の nice 値 (す な わ ち 、 低 い nice 値 ) を 割 り 当 て る と 時 間 量 は 短 く な る 。 デ フ ォ ル ト の 時 間 量 は 0.1 秒 で あ る 。 nice 値 の 変 更 が 時 間 量 に ど の 程 度 影 響 を 与 え る か は カ ー ネ ル の バ ー ジ ョ ン に よ り 多 少 異 な る 。 時 間 量 を 調 整 す る こ の メ ソ ッ ド は Linux 2.6.24 以 降 で 削 除 さ れ た 。

Linux 3.9 で 、 SCHED_RR の 時 間 量 の 調 整 (と 参 照 ) を 行 う 新 し い 機 構 が 追 加 さ れ た 。 /proc/sys/kernel/sched_rr_timeslice_ms フ ァ イ ル で ミ リ 秒 単 位 の 時 間 量 の 値 が 参 照 で き 、 デ フ ォ ル ト 値 は 100 で あ る 。 こ の フ ァ イ ル に 0 を 書 き 込 む と 、 時 間 量 を デ フ ォ ル ト 値 に 戻 す こ と が で き る 。

関 連 項 目

sched(7)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。