OSDN Git Service

Update drafts for LDP 3.67
[linuxjm/LDP_man-pages.git] / draft / man2 / sched_setaffinity.2
index 4545c6c..ce9915e 100644 (file)
@@ -1,8 +1,7 @@
-.\" man2/sched_setaffinity.2 - sched_setaffinity and sched_getaffinity man page
-.\"
 .\" Copyright (C) 2002 Robert Love
 .\" and Copyright (C) 2006 Michael Kerrisk
 .\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
 .\" This is free documentation; you can redistribute it and/or
 .\" modify it under the terms of the GNU General Public License as
 .\" published by the Free Software Foundation; either version 2 of
@@ -19,9 +18,9 @@
 .\" GNU General Public License for more details.
 .\"
 .\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
 .\"
 .\" 2002-11-19 Robert Love <rml@tech9.net> - initial version
 .\" 2004-04-20 mtk - fixed description of return value
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH SCHED_SETAFFINITY 2 2010\-11\-06 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 を返す。 エラーの場合は
@@ -80,7 +89,7 @@ CPU affinity マスクは「CPU の集合」を表す \fIcpu_set_t\fP 構造体
 指定されたメモリ番地が不正である。
 .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
@@ -88,12 +97,12 @@ CPU affinity マスクは「CPU の集合」を表す \fIcpu_set_t\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 引き数が入っていた。
@@ -101,15 +110,14 @@ glibc 2.3.3 では \fIcpusetsize\fP 引き数が削除されたが、glibc 2.3.4
 .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)
@@ -119,17 +127,19 @@ API を使用している場合、 \fBsched_setaffinity\fP()  の代わりに \f
 \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 関連項目
-\fBclone\fP(2), \fBgetcpu\fP(2), \fBgetpriority\fP(2), \fBgettid\fP(2), \fBnice\fP(2),
-\fBsched_get_priority_max\fP(2), \fBsched_get_priority_min\fP(2),
+.ad l
+.nh
+\fBtaskset\fP(1), \fBclone\fP(2), \fBgetcpu\fP(2), \fBgetpriority\fP(2), \fBgettid\fP(2),
+\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.41 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。