OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / release / man2 / madvise.2
index c8212ff..b3b1be2 100644 (file)
@@ -47,7 +47,7 @@
 .\"
 .TH MADVISE 2 2014\-12\-31 Linux "Linux Programmer's Manual"
 .SH 名前
-madvise \- メモリ利用に関するアドバイスを与える
+madvise \- メモリ利用に関するアドバイスを与える
 .SH 書式
 \fB#include <sys/mman.h>\fP
 .sp
@@ -60,8 +60,8 @@ glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参
 \fBmadvise\fP(): _BSD_SOURCE
 .SH 説明
 \fBmadvise\fP()  システムコールは、アドレス \fIaddr\fP からはじまる \fIlength\fP
-バイトのメモリブロックのページング入出力をどう扱えば良いか、 カーネルにアドバイスする。 これを用いると、 アプリケーションからカーネルに、
\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\82\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªをどのように扱ってほしいか伝えることができ、 カーネルはそれに応じて先読みやキャッシュなどの適切な手法を選択できる。
\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83­ã\83\83ã\82¯ã\81®ã\83\9aã\83¼ã\82¸ã\83³ã\82°å\85¥å\87ºå\8a\9bã\82\92ã\81©ã\81\86æ\89±ã\81\88ã\81°è\89¯ã\81\84ã\81\8bã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82¢ã\83\89ã\83\90ã\82¤ã\82¹ã\81\99ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\92ç\94¨ã\81\84ã\82\8bã\81¨ã\80\81 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8bã\82\89ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\80\81
\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼をどのように扱ってほしいか伝えることができ、 カーネルはそれに応じて先読みやキャッシュなどの適切な手法を選択できる。
 このコールはアプリケーションの動作そのものには影響しない (\fBMADV_DONTNEED\fP の場合は別) が、 性能には影響しうる。
 なおこのアドバイスを受け入れるかどうかはカーネルに任される。
 .LP
@@ -82,7 +82,7 @@ glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参
 .TP 
 \fBMADV_DONTNEED\fP
 しばらくアクセスはなさそうだ。 (現時点でアプリケーションは与えた範囲の処理を終えている。 したがってカーネルはこれに関連するリソースを解放して良い。)
-これ以降この範囲のページへのアクセスがあると、 成功はするが、メモリの内容をマップ元のファイルからロードし直すことになる (\fBmmap\fP(2)
\81\93ã\82\8c以é\99\8dã\81\93ã\81®ç¯\84å\9b²ã\81®ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81\8cã\81\82ã\82\8bã\81¨ã\80\81 æ\88\90å\8a\9fã\81¯ã\81\99ã\82\8bã\81\8cã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\86\85容ã\82\92ã\83\9eã\83\83ã\83\97å\85\83ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89ã\83­ã\83¼ã\83\89ã\81\97ç\9b´ã\81\99ã\81\93ã\81¨ã\81«ã\81ªã\82\8b (\fBmmap\fP(2)
 を見よ) か、 または元ファイルがないマップページでは アクセスがあったときに 0 埋めが行われることになる。
 .TP 
 \fBMADV_REMOVE\fP (Linux 2.6.16 以降)
@@ -127,21 +127,21 @@ glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参
 の前後でマッピングは継承されるようになる。
 .TP 
 \fBMADV_HWPOISON\fP (Linux 2.6.32 以降)
-ページに毒入れを行い、ハードウェアメモリの破損のようにそのページを取り扱う。 この操作は特権 (\fBCAP_SYS_ADMIN\fP を持った)
\83\9aã\83¼ã\82¸ã\81«æ¯\92å\85¥ã\82\8cã\82\92è¡\8cã\81\84ã\80\81ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\83¡ã\83¢ã\83ªã\83¼ã\81®ç ´æ\90\8dã\81®ã\82\88ã\81\86ã\81«ã\81\9dã\81®ã\83\9aã\83¼ã\82¸ã\82\92å\8f\96ã\82\8aæ\89±ã\81\86ã\80\82 ã\81\93ã\81®æ\93\8dä½\9cã\81¯ç\89¹æ¨© (\fBCAP_SYS_ADMIN\fP ã\82\92æ\8c\81ã\81£ã\81\9f)
 プロセスだけが利用できる。 この操作の結果、呼び出したプロセスは \fBSIGBUS\fP を受け取り、そのページはアンマップされる。
-この機能はメモリのエラー処理コードをテストするためのものである。 カーネルで \fBCONFIG_MEMORY_FAILURE\fP
\81\93ã\81®æ©\9fè\83½ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¨ã\83©ã\83¼å\87¦ç\90\86ã\82³ã\83¼ã\83\89ã\82\92ã\83\86ã\82¹ã\83\88ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81§ \fBCONFIG_MEMORY_FAILURE\fP
 が有効になっている場合にのみ利用可能である。
 .TP 
 \fBMADV_SOFT_OFFLINE\fP (Linux 2.6.33 以降)
-\fIaddr\fP と \fIlength\fP で指定された範囲のページをソフトオフラインにする。 指定された範囲の各ページのメモリの内容は保持され
+\fIaddr\fP ã\81¨ \fIlength\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fç¯\84å\9b²ã\81®ã\83\9aã\83¼ã\82¸ã\82\92ã\82½ã\83\95ã\83\88ã\82ªã\83\95ã\83©ã\82¤ã\83³ã\81«ã\81\99ã\82\8bã\80\82 æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fç¯\84å\9b²ã\81®å\90\84ã\83\9aã\83¼ã\82¸ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\86\85容ã\81¯ä¿\9dæ\8c\81ã\81\95ã\82\8c
 (すなわち、次にアクセスされた際に、同じ内容が見えるが、新しい物理ページフレームになる)、 元のフレームはオフラインになる (すなわち、
-そのフレームは使用される、通常のメモリ管理からは取り除かれる)。 \fBMADV_SOFT_OFFLINE\fP 操作の影響は呼び出したプロセスには見えない
-(つまり呼び出したプロセスの動作は変化しない)。 この機能はメモリのエラー処理コードをテストすることを目的に作られた。 カーネルで
+そのフレームは使用される、通常のメモリ管理からは取り除かれる)。 \fBMADV_SOFT_OFFLINE\fP 操作の影響は呼び出したプロセスには見えない
+(ã\81¤ã\81¾ã\82\8aå\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83­ã\82»ã\82¹ã\81®å\8b\95ä½\9cã\81¯å¤\89å\8c\96ã\81\97ã\81ªã\81\84\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¨ã\83©ã\83¼å\87¦ç\90\86ã\82³ã\83¼ã\83\89ã\82\92ã\83\86ã\82¹ã\83\88ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92ç\9b®ç\9a\84ã\81«ä½\9cã\82\89ã\82\8cã\81\9fã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81§
 \fBCONFIG_MEMORY_FAILURE\fP が有効になっている場合にのみ利用可能である。
 .TP 
 \fBMADV_MERGEABLE\fP (Linux 2.6.32 以降)
 Kernel Samepage Merging (KSM; カーネルによる同じページの統合) を \fIaddr\fP と \fIlength\fP
-で指定された領域に対して有効にする。 カーネルは、 統合可能の印がついたユーザーメモリの領域を定期的にスキャンし、内容が全く同じページを探す。
\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fé \98å\9f\9fã\81«å¯¾ã\81\97ã\81¦æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\80\81 çµ±å\90\88å\8f¯è\83½ã\81®å\8d°ã\81\8cã\81¤ã\81\84ã\81\9fã\83¦ã\83¼ã\82¶ã\83¼ã\83¡ã\83¢ã\83ªã\83¼ã\81®é \98å\9f\9fã\82\92å®\9aæ\9c\9fç\9a\84ã\81«ã\82¹ã\82­ã\83£ã\83³ã\81\97ã\80\81å\86\85容ã\81\8cå\85¨ã\81\8få\90\8cã\81\98ã\83\9aã\83¼ã\82¸ã\82\92æ\8e¢ã\81\99ã\80\82
 内容が全く同じページがあれば、それらのページは書き込み保護 (write\-protected) がかかった一つのページで置き換えられる
 (プロセスが後でページの内容を更新しようとした際には自動的にページのコピーが行われる)。 KSM はプライベートな無名ページ (anonymous
 pages) だけを統合する (\fBmmap\fP(2) 参照)。 KSM 機能は、 同じデータのインスタンスを大量に生成するアプリケーション (KVM
@@ -160,18 +160,18 @@ Transparent Huge Pages (THP) を \fIaddr\fP と \fIlength\fP で指定された
 現在のところ、Transparent Huge Pages はプライベートな無名ページ (anonymous pages) についてのみ機能する。
 カーネルは定期的にヒュージページ (huge page) 候補の印がついたページをスキャンし、ヒュージページと置き換える。
 また、カーネルはその領域がヒュージページのサイズに合っている場合、ヒュージページを直接割り当てる (\fBposix_memalign\fP(2) 参照)。
-この機能は、大きなデータマッピングを使用し、一度にそのメモリの大きな範囲にアクセスするようなアプリケーション (例えば QEMU
\81®ã\82\88ã\81\86ã\81ªä»®æ\83³å\8c\96ã\82·ã\82¹ã\83\86ã\83 ) ã\81§ä½¿ã\81\86ã\81\93ã\81¨ã\82\92主ã\81«æ\83³å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯é\9d\9e常ã\81«ç°¡å\8d\98ã\81«ã\83¡ã\83¢ã\83ªã\82\92浪費ã\81\97ã\81¦ã\81\97ã\81¾ã\81\86 (ä¾\8bã\81\88ã\81°ã\80\811 ã\83\90ã\82¤ã\83\88ã\81\97ã\81\8bã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81ªã\81\84 2MB
-のマッピングが、 4KB ページではなく 2MB の実際のメモリを使ってしまう)。 詳細は Linux カーネルソースファイル
\81\93ã\81®æ©\9fè\83½ã\81¯ã\80\81大ã\81\8dã\81ªã\83\87ã\83¼ã\82¿ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92使ç\94¨ã\81\97ã\80\81ä¸\80度ã\81«ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81®å¤§ã\81\8dã\81ªç¯\84å\9b²ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\82\88ã\81\86ã\81ªã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ (ä¾\8bã\81\88ã\81° QEMU
\81®ã\82\88ã\81\86ã\81ªä»®æ\83³å\8c\96ã\82·ã\82¹ã\83\86ã\83 ) ã\81§ä½¿ã\81\86ã\81\93ã\81¨ã\82\92主ã\81«æ\83³å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯é\9d\9e常ã\81«ç°¡å\8d\98ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92浪費ã\81\97ã\81¦ã\81\97ã\81¾ã\81\86 (ä¾\8bã\81\88ã\81°ã\80\811 ã\83\90ã\82¤ã\83\88ã\81\97ã\81\8bã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81ªã\81\84
+2MB のマッピングが、 4KB ページではなく 2MB の実際のメモリーを使ってしまう)。 詳細は Linux カーネルソースファイル
 \fIDocumentation/vm/transhuge.txt\fP を参照。 \fBMADV_HUGEPAGE\fP と \fBMADV_NOHUGEPAGE\fP
 は、 カーネルで \fBCONFIG_TRANSPARENT_HUGEPAGE\fP オプションを有効になっている場合にのみ利用できる。
 .TP 
 \fBMADV_NOHUGEPAGE\fP (Linux 2.6.38 以降)
-\fIaddr\fP と \fIlength\fP で指定されたアドレス範囲のメモリがヒュージページに組み込まれないようにする。
+\fIaddr\fP ã\81¨ \fIlength\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ç¯\84å\9b²ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\81«çµ\84ã\81¿è¾¼ã\81¾ã\82\8cã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\80\82
 .TP 
 \fBMADV_DONTDUMP\fP (Linux 3.4 以降)
 コアダンプから \fIaddr\fP と \fIlength\fP で指定された範囲のページを除外する。 これは、
-コアダンプに含めても役に立たないことが分かっている大きなメモリ領域があるアプリケーションで有用である。 \fBMADV_DONTDUMP\fP の効果は
+コアダンプに含めても役に立たないことが分かっている大きなメモリ領域があるアプリケーションで有用である。 \fBMADV_DONTDUMP\fP の効果は
 \fI/proc/PID/coredump_filter\fP ファイル経由で設定されたビットマスクよりも優先される (\fBcore\fP(5) 参照)。
 .TP 
 \fBMADV_DODUMP\fP (Linux 3.4 以降)
@@ -210,7 +210,7 @@ Transparent Huge Pages (THP) を \fIaddr\fP と \fIlength\fP で指定された
 の最大値を越えてしまう。
 .TP 
 \fBENOMEM\fP
-(\fBMADV_WILLNEED\fP の場合) メモリが足りず、ページングに失敗した。
+(\fBMADV_WILLNEED\fP ã\81®å ´å\90\88) ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81\9aã\80\81ã\83\9aã\83¼ã\82¸ã\83³ã\82°ã\81«å¤±æ\95\97ã\81\97ã\81\9fã\80\82
 .TP 
 \fBENOMEM\fP
 指定した範囲のアドレスが、現在マップされていない。 あるいはプロセスのアドレス空間の内部にない。
@@ -244,6 +244,6 @@ Linux 版の \fBmadvise\fP()  では、指定されたアドレス範囲にマ
 \fBgetrlimit\fP(2), \fBmincore\fP(2), \fBmmap\fP(2), \fBmprotect\fP(2), \fBmsync\fP(2),
 \fBmunmap\fP(2), \fBprctl\fP(2), \fBcore\fP(5)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.76 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。