.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH SCHED_SETAFFINITY 2 2013\-02\-11 Linux "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 2003, 2005 Yuichi SATO
+.\" all rights reserved.
+.\" Translated 2003-01-23, Yuichi SATO <ysato444@yahoo.co.jp>
+.\" Updated & Modified 2003-09-23, Yuichi SATO
+.\" Updated & Modified 2005-01-03, Yuichi SATO
+.\" Updated & Modified 2005-09-13, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated & Modified 2006-07-14, Akihiro MOTOKI, LDP v2.34
+.\" Updated & Modified 2008-12-24, Akihiro MOTOKI, LDP v3.14
+.\"
+.TH SCHED_SETAFFINITY 2 2014\-05\-10 Linux "Linux Programmer's Manual"
.SH 名前
-sched_setaffinity, sched_getaffinity \- ã\83\97ã\83ã\82»ã\82¹の CPU affinity マスクを設定・取得する
+sched_setaffinity, sched_getaffinity \- ã\82¹ã\83¬ã\83\83ã\83\89の CPU affinity マスクを設定・取得する
.SH 書式
.nf
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
\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 説明
-ã\83\97ã\83ã\82»ã\82¹ã\81® CPU affinity (親å\92\8c度) ã\83\9eã\82¹ã\82¯ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹が 実行を許可されている 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ã\83\97ã\83ã\82»ã\82¹ã\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) による性能面の劣化を避けることもできる。
+ã\82¹ã\83¬ã\83\83ã\83\89ã\81® CPU affinity (親å\92\8c度) ã\83\9eã\82¹ã\82¯ã\81¯ã\80\81ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89が 実行を許可されている CPU の集合を決定する。
+ã\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) で記載されている。
-\fBsched_setaffinity\fP() ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹ID ã\81\8c \fIpid\fP ã\81®ã\83\97ã\83ã\82»ã\82¹の CPU affinity マスクを \fImask\fP
-ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\80¤ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 \fIpid\fP ã\81\8c 0 ã\81®å ´å\90\88ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹が使われる。 \fIcpusetsize\fP 引き数には \fImask\fP
+\fBsched_setaffinity\fP() ã\81¯ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89 ID ã\81\8c \fIpid\fP ã\81®ã\82¹ã\83¬ã\83\83ã\83\89の CPU affinity マスクを \fImask\fP
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\80¤ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 \fIpid\fP ã\81\8c 0 ã\81®å ´å\90\88ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\82¹ã\83¬ã\83\83ã\83\89が使われる。 \fIcpusetsize\fP 引き数には \fImask\fP
が指すデータの長さ (バイト単位) である。 通常は、この引き数には \fIsizeof(cpu_set_t)\fP を指定すればよい。
-\fIpid\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81\8c \fImask\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9f CPU ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81§ç\8f¾å\9c¨å®\9fè¡\8cã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81 ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹は \fImask\fP
+\fIpid\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¹ã\83¬ã\83\83ã\83\89ã\81\8c \fImask\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9f CPU ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81§ç\8f¾å\9c¨å®\9fè¡\8cã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81 ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89は \fImask\fP
で指定された CPU のいずれかに移動される。
-\fBsched_getaffinity\fP() ã\81¯ã\80\81 ã\83\97ã\83ã\82»ã\82¹ID ã\81\8c \fIpid\fP ã\81®ã\83\97ã\83ã\82»ã\82¹の affinity マスクを \fImask\fP が指す
+\fBsched_getaffinity\fP() ã\81¯ã\80\81 ã\82¹ã\83¬ã\83\83ã\83\89 ID ã\81\8c \fIpid\fP ã\81®ã\82¹ã\83¬ã\83\83ã\83\89の affinity マスクを \fImask\fP が指す
\fIcpu_set_t\fP 構造体に書き込む。 \fIcpusetsize\fP 引き数には \fImask\fP の (バイト単位の) 大きさを指定する。
.SH 返り値
成功した場合、 \fBsched_setaffinity\fP() と \fBsched_getaffinity\fP() は 0 を返す。 エラーの場合は
指定されたメモリ番地が不正である。
.TP
\fBEINVAL\fP
-ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81«ç\8f¾å\9c¨å®\9fé\9a\9bã\81«å\98å\9c¨ã\81\97ã\80\81ã\81\8bã\81¤ "cpuset" æ©\9fæ§\8bã\81\8c課ã\81\99å\88¶é\99\90ã\81«ã\81\8aã\81\84ã\81¦ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹に対して許可されている プロセッサが、 affinity
+ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81«ç\8f¾å\9c¨å®\9fé\9a\9bã\81«å\98å\9c¨ã\81\97ã\80\81ã\81\8bã\81¤ "cpuset" æ©\9fæ§\8bã\81\8c課ã\81\99å\88¶é\99\90ã\81«ã\81\8aã\81\84ã\81¦ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89に対して許可されている プロセッサが、 affinity
ビットマスク \fImask\fP に含まれていない。 "cpuset" 機構については \fBcpuset\fP(7) を参照。
.TP
\fBEINVAL\fP
\fIcpusetsize\fP がカーネルで使われている affinity マスクのサイズより小さい。
.TP
\fBEPERM\fP
-(\fBsched_setaffinity\fP()) å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹に適切な特権がなかった。 呼び出し元は、実効ユーザ ID が \fIpid\fP
-ã\81§è\98å\88¥ã\81\95ã\82\8cã\82\8bã\83\97ã\83ã\82»ã\82¹の実ユーザ ID または実効ユーザ ID と同じであるか、 \fBCAP_SYS_NICE\fP ケーパビリティ (capability)
+(\fBsched_setaffinity\fP()) å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\82¹ã\83¬ã\83\83ã\83\89に適切な特権がなかった。 呼び出し元は、実効ユーザ ID が \fIpid\fP
+ã\81§è\98å\88¥ã\81\95ã\82\8cã\82\8bã\82¹ã\83¬ã\83\83ã\83\89の実ユーザ ID または実効ユーザ ID と同じであるか、 \fBCAP_SYS_NICE\fP ケーパビリティ (capability)
を持たなければならない。
.TP
\fBESRCH\fP
-プロセス ID \fIpid\fP のプロセスが見つからなかった。
+ID が \fIpid\fP のスレッドが見つからなかった。
.SH バージョン
CPU affinity システムコールは Linux kernel 2.5.8 で導入された。 これらのシステムコールのラッパー関数は glibc
2.3 で導入された。 最初は、glibc のインタフェースには \fIunsigned int\fP 型の \fIcpusetsize\fP 引き数が入っていた。
.SH 準拠
これらのシステムコールは Linux 固有である。
.SH 注意
-\fBsched_setaffinity\fP() ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få¾\8cã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹が実際に実行される CPU の集合は、 \fImask\fP
+\fBsched_setaffinity\fP() ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få¾\8cã\81¯ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89が実際に実行される CPU の集合は、 \fImask\fP
引き数で指定された集合と、システム上に実際に存在する CPU の集合の 共通集合 (AND) となる。 "cpuset"
-æ©\9fæ§\8bã\81\8c使ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹が動作する CPU 集合 に対してシステムはさらに制限を加えるかもしれない ("cpuset" 機構については
-\fBcpuset\fP(7) ã\82\92å\8f\82ç\85§)ã\80\82 ã\83\97ã\83ã\82»ã\82¹が動作する実際の CPU 集合に対する制限はカーネルにより 暗黙のうちに適用される。
+æ©\9fæ§\8bã\81\8c使ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89が動作する CPU 集合 に対してシステムはさらに制限を加えるかもしれない ("cpuset" 機構については
+\fBcpuset\fP(7) ã\82\92å\8f\82ç\85§)ã\80\82 ã\82¹ã\83¬ã\83\83ã\83\89が動作する実際の CPU 集合に対する制限はカーネルにより 暗黙のうちに適用される。
-\fBsched_setscheduler\fP(2) に Linux のスケジューリング方式についての説明
-がある。
+\fBsched\fP(7) に Linux のスケジューリング方式についての説明がある。
.PP
-実際には affinity マスクはスレッド単位の属性で、スレッドグループの 各スレッド単位に独立して調整することができる。 \fBgettid\fP(2)
+affinity マスクはスレッド単位の属性で、スレッドグループの 各スレッド単位に独立して調整することができる。 \fBgettid\fP(2)
コールからの返り値をこのコールの \fIpid\fP 引き数として渡すことができる。 \fIpid\fP に 0 を指定すると呼び出し元のスレッドの属性が設定され、
\fBgetpid\fP(2) コールからの返り値を \fIpid\fP に指定するとスレッドグループのメインスレッドの属性が設定される (POSIX スレッド
API を使用している場合、 \fBsched_setaffinity\fP() の代わりに \fBpthread_setaffinity_np\fP(3)
\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
-\fImask\fP の型が \fIunsigned long *\fP となっている。 成功時には、生の \fBsched_getaffinity\fP()
+説明している。実際のシステムコールインタフェースは少し違っており、 実際の実装では CPU 集合は簡単なビットマスクであるという実状を反映し、
+\fImask\fP の型が \fIunsigned long\ *\fP となっている。 成功時には、生の \fBsched_getaffinity\fP()
システムコール自身は \fIcpumask_t\fP データ型の (バイト単位の) 大きさを返す。 \fIcpumask_t\fP はカーネル内部で CPU
集合のビットマスクを表現するのに 使われているデータ型である。
.SH 関連項目
\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.51 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。