OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / draft / man2 / sched_setaffinity.2
diff --git a/draft/man2/sched_setaffinity.2 b/draft/man2/sched_setaffinity.2
deleted file mode 100644 (file)
index 0b1080c..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-.\" 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
-.\" the License, or (at your option) any later version.
-.\"
-.\" The GNU General Public License's references to "object code"
-.\" and "executables" are to be interpreted as the output of any
-.\" document formatting or typesetting system, including
-.\" intermediate and printed output.
-.\"
-.\" This manual is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-.\" 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, 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
-.\" 2004-04-22 aeb - added glibc prototype history
-.\" 2005-05-03 mtk - noted that sched_setaffinity may cause thread
-.\"    migration and that CPU affinity is a per-thread attribute.
-.\" 2006-02-03 mtk -- Major rewrite
-.\" 2008-11-12, mtk, removed CPU_*() macro descriptions to a
-.\" separate CPU_SET(3) page.
-.\"
-.\"*******************************************************************
-.\"
-.\" This file was generated with po4a. Translate the source file.
-.\"
-.\"*******************************************************************
-.\"
-.\" 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\-12\-31 Linux "Linux Programmer's Manual"
-.SH 名前
-sched_setaffinity, sched_getaffinity \- スレッドの 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                      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 の集合を決定する。
-マルチプロセッサシステムでは、CPU affinity マスクを設定することで 性能上のメリットを得られる可能性がある。 例えば、特定のスレッドを一つの
-CPU に括り付け (すなわち、そのスレッドの affinity マスクを一つの CPU に設定し)、 他の全てのスレッドの affinity
-マスクからその CPU を除外することで、 確実にそのスレッドの実行速度を最大にすることができる。 また、あるスレッドの実行を一つの CPU
-に限定することで、 一つの CPU での実行を停止してから別の CPU で実行を再開するときに発生する キャッシュ無効化 (cache
-invalidation) による性能面の劣化を避けることもできる。
-
-CPU affinity マスクは「CPU の集合」を表す \fIcpu_set_t\fP 構造体で表現され、 \fIcpu_set_t\fP へのポインター
-\fImask\fP で指定される。 CPU 集合を操作するためのマクロ群については \fBCPU_SET\fP(3)  で記載されている。
-
-\fBsched_setaffinity\fP()  は、スレッド ID が \fIpid\fP のスレッドの CPU affinity マスクを \fImask\fP
-で指定された値に設定する。 \fIpid\fP が 0 の場合、呼び出し元スレッドが使われる。 \fIcpusetsize\fP 引き数には \fImask\fP
-が指すデータの長さ (バイト単位) である。 通常は、この引き数には \fIsizeof(cpu_set_t)\fP を指定すればよい。
-
-\fIpid\fP で指定されたスレッドが \fImask\fP で指定された CPU のいずれかで現在実行されていない場合、 そのスレッドは \fImask\fP
-で指定された CPU のいずれかに移動される。
-
-\fBsched_getaffinity\fP()  は、 スレッド ID が \fIpid\fP のスレッドの affinity マスクを \fImask\fP が指す
-\fIcpu_set_t\fP 構造体に書き込む。 \fIcpusetsize\fP 引き数には \fImask\fP の (バイト単位の) 大きさを指定する。
-.SH 返り値
-成功した場合、 \fBsched_setaffinity\fP()  と \fBsched_getaffinity\fP()  は 0 を返す。 エラーの場合は
-\-1 を返し、 \fIerrno\fP を適切に設定する。
-.SH エラー
-.TP 
-\fBEFAULT\fP
-指定されたメモリー番地が不正である。
-.TP 
-\fBEINVAL\fP
-システム上に現在実際に存在し、かつ "cpuset" 機構が課す制限においてそのスレッドに対して許可されている プロセッサが、 affinity
-ビットマスク \fImask\fP に含まれていない。 "cpuset" 機構については \fBcpuset\fP(7)  を参照。
-.TP 
-\fBEINVAL\fP
-(\fBsched_getaffinity\fP()  と、カーネル 2.6.9 以前の \fBsched_setaffinity\fP())
-\fIcpusetsize\fP がカーネルで使われている affinity マスクのサイズより小さい。
-.TP 
-\fBEPERM\fP
-(\fBsched_setaffinity\fP())  呼び出し元のスレッドに適切な特権がなかった。 呼び出し元は、実効ユーザー ID が \fIpid\fP
-で識別されるスレッドの実ユーザー ID または実効ユーザー ID と同じであるか、 \fBCAP_SYS_NICE\fP ケーパビリティ
-(capability) を持たなければならない。
-.TP 
-\fBESRCH\fP
-ID が \fIpid\fP のスレッドが見つからなかった。
-.SH バージョン
-CPU affinity システムコールは Linux kernel 2.5.8 で導入された。 これらのシステムコールのラッパー関数は glibc
-2.3 で導入された。 最初は、glibc のインターフェースには \fIunsigned int\fP 型の \fIcpusetsize\fP
-引き数が入っていた。 glibc 2.3.3 では \fIcpusetsize\fP 引き数が削除されたが、glibc 2.3.4 で \fIsize_t\fP
-型で復活した。
-.SH 準拠
-これらのシステムコールは Linux 固有である。
-.SH 注意
-\fBsched_setaffinity\fP()  を呼び出した後は、スレッドが実際に実行される CPU の集合は、 \fImask\fP
-引き数で指定された集合と、システム上に実際に存在する CPU の集合の 共通集合 (AND) となる。 "cpuset"
-機構が使用されている場合には、スレッドが動作する CPU 集合 に対してシステムはさらに制限を加えるかもしれない ("cpuset" 機構については
-\fBcpuset\fP(7)  を参照)。 スレッドが動作する実際の CPU 集合に対する制限はカーネルにより 暗黙のうちに適用される。
-
-システムで利用可能な CPU 数を判定する方法はいくつかある。 \fI/proc/cpuinfo\fP の内容を調べる、 \fBsysconf\fP(3) を使って
-\fB_SC_NPROCESSORS_CONF\fP と \fB_SC_NPROCESSORS_ONLN\fP の値を取得する、
-\fI/sys/devices/system/cpu/\fP の CPU ディレクトリの一覧を調べる、などがある。
-
-\fBsched\fP(7) に Linux のスケジューリング方式についての説明がある。
-.PP
-affinity マスクはスレッド単位の属性で、スレッドグループの 各スレッド単位に独立して調整することができる。 \fBgettid\fP(2)
-コールからの返り値をこのコールの \fIpid\fP 引き数として渡すことができる。 \fIpid\fP に 0 を指定すると呼び出し元のスレッドの属性が設定され、
-\fBgetpid\fP(2)  コールからの返り値を \fIpid\fP に指定するとスレッドグループのメインスレッドの属性が設定される (POSIX スレッド
-API を使用している場合、 \fBsched_setaffinity\fP()  の代わりに \fBpthread_setaffinity_np\fP(3)
-を使用すること)。
-
-\fBfork\fP(2)  経由で生成された子プロセスは親プロセスの CPU affinity マスクを継承する。 affinity マスクは
-\fBexecve\fP(2)  の前後で保存される。
-.SS "C ライブラリとカーネル ABI の違い"
-このマニュアルページでは CPU affinity コールの glibc インターフェースを
-説明している。実際のシステムコールインターフェースは少し違っており、 実際の実装では CPU 集合は簡単なビットマスクであるという実状を反映し、
-\fImask\fP の型が \fIunsigned long\ *\fP となっている。 成功時には、生の \fBsched_getaffinity\fP()
-システムコール自身は \fIcpumask_t\fP データ型の (バイト単位の) 大きさを返す。 \fIcpumask_t\fP はカーネル内部で CPU
-集合のビットマスクを表現するのに 使われているデータ型である。
-.SH 関連項目
-.ad l
-.nh
-\fBlscpu\fP(1), \fBnproc\fP(1), \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), \fBsched\fP(7)
-.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
-である。プロジェクトの説明とバグ報告に関する情報は
-http://www.kernel.org/doc/man\-pages/ に書かれている。