.\" Updated & Modified 2006-07-14, Akihiro MOTOKI, LDP v2.34
.\" Updated & Modified 2008-12-24, Akihiro MOTOKI, LDP v3.14
.\"
-.TH SCHED_SETAFFINITY 2 2013\-09\-17 Linux "Linux Programmer's Manual"
+.TH SCHED_SETAFFINITY 2 2014\-05\-10 Linux "Linux Programmer's Manual"
.SH 名前
sched_setaffinity, sched_getaffinity \- スレッドの CPU affinity マスクを設定・取得する
.SH 書式
\fB#include <sched.h>\fP
.sp
\fBint sched_setaffinity(pid_t \fP\fIpid\fP\fB, size_t \fP\fIcpusetsize\fP\fB,\fP
-\fB cpu_set_t *\fP\fImask\fP\fB);\fP
+\fB const cpu_set_t *\fP\fImask\fP\fB);\fP
.sp
\fBint sched_getaffinity(pid_t \fP\fIpid\fP\fB, size_t \fP\fIcpusetsize\fP\fB,\fP
\fB cpu_set_t *\fP\fImask\fP\fB);\fP
.fi
.SH 説明
スレッドの CPU affinity (親和度) マスクは、そのスレッドが 実行を許可されている CPU の集合を決定する。
-ã\83\9eã\83«ã\83\81ã\83\97ã\83ã\82»ã\83\83ã\82µã\83»ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81CPU affinity ã\83\9eã\82¹ã\82¯ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ æ\80§è\83½ä¸\8aã\81®ã\83¡ã\83ªã\83\83ã\83\88ã\82\92å¾\97ã\82\89ã\82\8cã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82
-例えば、特定のスレッドを一つの CPU に括り付け (すなわち、そのスレッドの affinity マスクを一つの CPU に設定し)、
-他の全てのスレッドの affinity マスクからその CPU を除外することで、 確実にそのスレッドの実行速度を最大にすることができる。
-ã\81¾ã\81\9fã\80\81ã\81\82ã\82\8bã\82¹ã\83¬ã\83\83ã\83\89ã\81®å®\9fè¡\8cã\82\92ä¸\80ã\81¤ã\81® CPU ã\81«é\99\90å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81 ä¸\80ã\81¤ã\81® CPU ã\81§ã\81®å®\9fè¡\8cã\82\92å\81\9cæ¢ã\81\97ã\81¦ã\81\8bã\82\89å\88¥ã\81® CPU ã\81§å®\9fè¡\8cã\82\92å\86\8dé\96\8bã\81\99ã\82\8bã\81¨ã\81\8dã\81«ç\99ºç\94\9fã\81\99ã\82\8b
-キャッシュ無効化 (cache invalidation) による性能面の劣化を避けることもできる。
+ã\83\9eã\83«ã\83\81ã\83\97ã\83ã\82»ã\83\83ã\82µã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81CPU affinity ã\83\9eã\82¹ã\82¯ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ æ\80§è\83½ä¸\8aã\81®ã\83¡ã\83ªã\83\83ã\83\88ã\82\92å¾\97ã\82\89ã\82\8cã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ä¾\8bã\81\88ã\81°ã\80\81ç\89¹å®\9aã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\82\92ä¸\80ã\81¤ã\81®
+CPU に括り付け (すなわち、そのスレッドの affinity マスクを一つの CPU に設定し)、 他の全てのスレッドの affinity
+マスクからその CPU を除外することで、 確実にそのスレッドの実行速度を最大にすることができる。 また、あるスレッドの実行を一つの CPU
+ã\81«é\99\90å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81 ä¸\80ã\81¤ã\81® CPU ã\81§ã\81®å®\9fè¡\8cã\82\92å\81\9cæ¢ã\81\97ã\81¦ã\81\8bã\82\89å\88¥ã\81® CPU ã\81§å®\9fè¡\8cã\82\92å\86\8dé\96\8bã\81\99ã\82\8bã\81¨ã\81\8dã\81«ç\99ºç\94\9fã\81\99ã\82\8b ã\82ã\83£ã\83\83ã\82·ã\83¥ç\84¡å\8a¹å\8c\96 (cache
+invalidation) による性能面の劣化を避けることもできる。
CPU affinity マスクは「CPU の集合」を表す \fIcpu_set_t\fP 構造体で表現され、 \fIcpu_set_t\fP へのポインタ
\fImask\fP で指定される。 CPU 集合を操作するためのマクロ群については \fBCPU_SET\fP(3) で記載されている。
機構が使用されている場合には、スレッドが動作する CPU 集合 に対してシステムはさらに制限を加えるかもしれない ("cpuset" 機構については
\fBcpuset\fP(7) を参照)。 スレッドが動作する実際の CPU 集合に対する制限はカーネルにより 暗黙のうちに適用される。
-\fBsched_setscheduler\fP(2) に Linux のスケジューリング方式についての説明
-がある。
+\fBsched\fP(7) に Linux のスケジューリング方式についての説明がある。
.PP
affinity マスクはスレッド単位の属性で、スレッドグループの 各スレッド単位に独立して調整することができる。 \fBgettid\fP(2)
コールからの返り値をこのコールの \fIpid\fP 引き数として渡すことができる。 \fIpid\fP に 0 を指定すると呼び出し元のスレッドの属性が設定され、
\fBexecve\fP(2) の前後で保存される。
このマニュアルページでは CPU affinity コールの glibc インタフェースを
-説æ\98\8eã\81\97ã\81¦ã\81\84ã\82\8bã\80\82å®\9fé\9a\9bã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\83»ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81¯å°\91ã\81\97é\81\95ã\81£ã\81¦ã\81\8aã\82\8aã\80\81 å®\9fé\9a\9bã\81®å®\9fè£\85ã\81§ã\81¯ CPU é\9b\86å\90\88ã\81¯ç°¡å\8d\98ã\81ªã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\81§ã\81\82ã\82\8bã\81¨ã\81\84ã\81\86å®\9fç\8a¶ã\82\92å\8f\8dæ\98 ã\81\97ã\80\81
+説明している。実際のシステムコールインタフェースは少し違っており、 実際の実装では CPU 集合は簡単なビットマスクであるという実状を反映し、
\fImask\fP の型が \fIunsigned long\ *\fP となっている。 成功時には、生の \fBsched_getaffinity\fP()
システムコール自身は \fIcpumask_t\fP データ型の (バイト単位の) 大きさを返す。 \fIcpumask_t\fP はカーネル内部で CPU
集合のビットマスクを表現するのに 使われているデータ型である。
\fBnice\fP(2), \fBsched_get_priority_max\fP(2), \fBsched_get_priority_min\fP(2),
\fBsched_getscheduler\fP(2), \fBsched_setscheduler\fP(2), \fBsetpriority\fP(2),
\fBCPU_SET\fP(3), \fBpthread_setaffinity_np\fP(3), \fBsched_getcpu\fP(3),
-\fBcapabilities\fP(7), \fBcpuset\fP(7)
+\fBcapabilities\fP(7), \fBcpuset\fP(7), \fBsched\fP(7)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.63 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。