Manpages

名 前

pthread_attr_setscope, pthread_attr_getscope − ス レ ッ ド 属 性 オ ブ ジ ェ ク ト の contention scope 属 性 の 設 定 /取 得 を 行 う

書 式

#include <pthread.h>

int pthread_attr_setscope(pthread_attr_t *attr, int scope);
int pthread_attr_getscope(const pthread_attr_t *
attr, int *scope);

−pthread で コ ン パ イ ル し て リ ン ク す る 。

説 明

pthread_attr_setscope() 関 数 は 、 attr が 参 照 す る ス レ ッ ド 属 性 オ ブ ジ ェ ク ト の contention scope 属 性 を scope で 指 定 さ れ た 値 に 設 定 す る 。 contention scope 属 性 に よ り 、 ス レ ッ ド が CPU な ど の リ ソ ー ス を 取 り 合 う ス レ ッ ド 集 合 が 規 定 さ れ る 。 POSIX.1−2001 で は scope に 指 定 す る 値 と し て 2 つ の 値 が 規 定 さ れ て い る 。
PTHREAD_SCOPE_SYSTEM
ス レ ッ ド は 、 同 じ ス ケ ジ ュ ー リ ン グ 割 り 当 て ド メ イ ン (一 つ 以 上 の プ ロ セ ッ サ の グ ル ー プ ) に あ る 、 シ ス テ ム 上 の 全 て の プ ロ セ ス の 自 分 以 外 の 全 て の ス レ ッ ド と リ ソ ー ス を 取 り 合 う 。 PTHREAD_SCOPE_SYSTEM の ス レ ッ ド は 、 ス ケ ジ ュ ー リ ン グ ポ リ シ ー と 優 先 度 に 基 づ き 、 互 い に 相 対 的 に ス ケ ジ ュ ー リ ン グ さ れ る 。
PTHREAD_SCOPE_PROCESS
ス レ ッ ド は 、 contention scope が PTHREAD_SCOPE_PROCESS で 作 成 さ れ た 同 じ プ ロ セ ス の 自 分 以 外 の 全 て の ス レ ッ ド と リ ソ ー ス を 取 り 合 う 。 PTHREAD_SCOPE_PROCESS の ス レ ッ ド は 、 ス ケ ジ ュ ー リ ン グ ポ リ シ ー と 優 先 度 に 基 づ き 、 同 じ プ ロ セ ス の 他 の ス レ ッ ド と 相 対 的 に ス ケ ジ ュ ー リ ン グ さ れ る 。 POSIX.1−2001 で は 、 こ れ ら の ス レ ッ ド が シ ス テ ム 上 の 他 の プ ロ セ ス の ス レ ッ ド や 同 じ プ ロ セ ス 内 の contention scope が PTHREAD_SCOPE_SYSTEM で 作 成 さ れ た 他 の ス レ ッ ド と ど の よ う に リ ソ ー ス を 取 り 合 う か は 、 規 定 さ れ な い ま ま に な っ て い る 。

POSIX.1−2001 で 求 め ら れ て い る の は 、 ス レ ッ ド 実 装 が こ れ ら の contention scope の う ち 少 な く と も 1 つ を サ ポ ー ト す る こ と だ け で あ る 。 Linux は PTHREAD_SCOPE_SYSTEM を サ ポ ー ト し て い る が 、 PTHREAD_SCOPE_PROCESS は サ ポ ー ト し て い な い 。 複 数 の contention scope を サ ポ ー ト し て い る シ ス テ ム で 、 pthread_create(3) を 呼 び 出 し た 際 に pthread_attr_setscope() で 行 っ た パ ラ メ ー タ ー 設 定 を 有 効 に す る に は 、 呼 び 出 し 側 で pthread_attr_setinheritsched(3) を 使 っ て 属 性 オ ブ ジ ェ ク ト attr の inherit−scheduler 属 性 を PTHREAD_EXPLICIT_SCHED に 設 定 し て お か な け れ ば な ら な い 。

pthread_attr_getscope() は 、 ス レ ッ ド 属 性 オ ブ ジ ェ ク ト attr の contention scope 属 性 を scope が 指 す バ ッ フ ァ ー に 入 れ て 返 す 。

返 り 値

成 功 す る と 、 こ れ ら の 関 数 は 0 を 返 す 。 エ ラ ー の 場 合 、 0 以 外 の エ ラ ー 番 号 を 返 す 。

エ ラ ー

pthread_attr_setscope() は 以 下 の エ ラ ー で 失 敗 す る 場 合 が あ る 。

EINVAL

scope に 無 効 な 値 が 指 定 さ れ た 。

ENOTSUP

scope に 値 PTHREAD_SCOPE_PROCESS が 指 定 さ れ た 。 こ の 値 は Linux で サ ポ ー ト さ れ て い な い 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 pthread_attr_setscope() と pthread_attr_getscope() は ス レ ッ ド セ ー フ で あ る 。

準 拠

POSIX.1−2001.

注 意

PTHREAD_SCOPE_SYSTEM contention scope で は 、 通 常 は 、 一 つ の ユ ー ザ ー 空 間 ス レ ッ ド は 一 つ の カ ー ネ ル ス ケ ジ ュ ー リ ン グ エ ン テ ィ テ ィ に 直 接 結 び 付 け ら れ る 。 Linux で は 、 廃 止 予 定 の LinuxThreads 実 装 も 新 し い NPTL 実 装 も こ れ に 該 当 し 、 両 方 と も 1:1 で 結 び 付 け ら れ る ス レ ッ ド 実 装 と な っ て い る 。

POSIX.1−2001 で は 、 contention scope 属 性 の デ フ ォ ル ト 値 は 実 装 時 で 定 義 さ れ る も の と 規 定 さ れ て い る 。

関 連 項 目

pthread_attr_init(3), pthread_attr_setaffinity_np(3), pthread_attr_setinheritsched(3), pthread_attr_setschedparam(3), pthread_attr_setschedpolicy(3), pthread_create(3), pthreads(7)

こ の 文 書 に つ い て

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