名 前
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/ に 書 か れ て い る 。