diff options
Diffstat (limited to 'documentation/manual-pages/ja/man2/madvise.2')
-rw-r--r-- | documentation/manual-pages/ja/man2/madvise.2 | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man2/madvise.2 b/documentation/manual-pages/ja/man2/madvise.2 new file mode 100644 index 0000000000..ebb7be038b --- /dev/null +++ b/documentation/manual-pages/ja/man2/madvise.2 @@ -0,0 +1,180 @@ +.\" Copyright (c) 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)madvise.2 8.1 (Berkeley) 6/9/93 +.\" %FreeBSD: src/lib/libc/sys/madvise.2,v 1.31 2004/07/02 23:52:13 ru Exp % +.\" +.\" WORD: revert 書き戻す(dirty なページをファイルシステムに書き込む)[madvise.2] +.\" WORD: physically backing store 物理的バッキングストア +.\" (仮想記憶の裏にあるディスク領域、swap やファイルシステム?!) +.\" +.\" $FreeBSD$ +.Dd July 19, 1996 +.Dt MADVISE 2 +.Os +.Sh 名称 +.Nm madvise , posix_madvise +.Nd メモリの使用法について助言を与える +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/mman.h +.Ft int +.Fn madvise "void *addr" "size_t len" "int behav" +.Ft int +.Fn posix_madvise "void *addr" "size_t len" "int behav" +.Sh 解説 +.Fn madvise +システムコールによって、自身のメモリ利用の習性の知識があるプロセスは、それを +システムに説明できます。 +.Fn posix_madvise +インタフェースは同等で規格に適合するために提供されます。 +.Pp +知られた習性は以下のとおりです: +.Bl -tag -width MADV_SEQUENTIAL +.It Dv MADV_NORMAL +デフォルトのページング動作に戻るようにシステムに指示します。 +.It Dv MADV_RANDOM +ページがランダムにアクセスされ、プリフェッチが有利ではないと考えられるという +ヒントです。 +.It Dv MADV_SEQUENTIAL +指定のページがフォルトで読み取られたとき、そのページの直前のページの +優先順位を VM システムが下げるようにします。 +.It Dv MADV_WILLNEED +指定の仮想アドレス範囲内にあるページが一時的に高い優先順位を持つようにし、 +それらがメモリ内にある場合、解放される可能性を減少させます。 +さらに既にメモリ内にあるページはただちにプロセスにマップされ、 +それによってプロセス全体にわたるフォルトによる読取りによる +不要なオーバヘッドを除去します。 +これは、フォルトによるページのバッキングストアからの +読取りを生じさせるのではなく、 +メモリ内に既にあるページを呼び出し側のプロセスに素早くマップさせます。 +.It Dv MADV_DONTNEED +VM システムに、指定の範囲内のページのメモリ内優先順位の減少を許可します。 +今後、このアドレス範囲への参照はページフォルトを発生させるでしょう。 +.It Dv MADV_FREE +VM システムにページを解放する自由を与え、指定ページ範囲内の情報がもはや +重要でないことをシステムに通知します。 +これは、アドレス空間を有効にしたままで +.Xr malloc 3 +がアドレス空間内の任意の位置のページを解放できるようにする効率的な方法です。 +ページが次に参照される時には、そのページは要求時 0 クリアの対象に +なっている可能性もありますし、または +.Dv MADV_FREE +呼び出しの前にそこにあったデータが残っているかもしれません。 +ページが再び修正されるまで、そのアドレス空間範囲に対する参照だけでは、 +VM システムはバッキングストアから情報をページに読み取る動作を行わなくなります。 +.\" 訳追加 +.It Dv MADV_NOSYNC +このマップに関連づけられているデータを +物理的バッキングストアにフラッシュしないようにシステムに要求します。 +通常、これにより、ファイルシステムアップデートデーモンが +VM システムが汚したページを特に理由もないのに +物理ディスクに書き込む不要な動作を防止します。 +VM とファイルシステムの一貫性は常に維持されることに注意してください。 +この機能は、マップされたデータが必要なときだけ、 +(通常、システムページャにより) フラッシュされることを +保証しているに過ぎません。 +.Pp +この機能を使用する典型的な場合とは、 +ファイルを裏に持つ共有メモリ領域をプロセス (IPC) 間通信で使いたいとき、 +特に、その領域に格納されるデータを物理的ディスクに書き込む必要がない場合です。 +この機能は、SysV 共有メモリ呼び出しで得られる mmap 性能と +同等の性能を与えてくれますし、かつ、SysV 共有メモリ呼び出しを使うより、 +きめ細かい制御が可能でより制約が少ない方法でもあります。 +しかしこの機能は UNIX プラットホーム間で移植性がないことに注意してください +(いくつかのプラットホームではデフォルトで正しく振る舞うかも知れませんが)。 +詳しい情報に関しては、 +.Xr mmap 2 +の +MAP_NOSYNC セクションを参照してください。 +.It Dv MADV_AUTOSYNC +将来、アドレス範囲内のページが汚された場合のために +MADV_NOSYNC の効果を元に戻します。 +既に汚されているページについての効果は不定です。 +書き戻しするかもしれませんし、しないかもしれません。 +書き戻しを確実に行うには、 +.Xr msync 2 +または +.Xr fsync 2 +システムコールを使用します。 +.It Dv MADV_NOCORE +領域は、コアファイルに含まれません。 +.It Dv MADV_CORE +コアファイルの領域を含みます。 +.It Dv MADV_PROTECT +スワップ空間を使い果たした時に、 +このプロセスは終了させられるべきではないことを、VM システムに通知します。 +プロセスはスーパユーザの特権を持っていなければなりません。 +これは、システムが適切に機能するために実行され続けなければならない +プロセス群で、思慮分別を持って使用されるべきです。 +.El +.Pp +.Fn posix_madvise +インタフェースを呼び出す移植可能なプログラムは、上記のフラグではなく別名の +.Dv POSIX_MADV_NORMAL , POSIX_MADV_SEQUENTIAL , +.Dv POSIX_MADV_RANDOM , POSIX_MADV_WILLNEED +および +.Dv POSIX_MADV_DONTNEED +を使用するべきです。 +.Sh 戻り値 +.Rv -std madvise +.Sh エラー +.Fn madvise +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa behav +引数が有効ではありません。 +.It Bq Er ENOMEM +.Fa addr +引数と +.Fa len +引数で指定された仮想アドレス範囲が有効ではありません。 +.It Bq Er EPERM +.Dv MADV_PROTECT +が指定され、プロセスがスーパユーザの特権を持っていません。 +.El +.Sh 関連項目 +.Xr mincore 2 , +.Xr mprotect 2 , +.Xr msync 2 , +.Xr munmap 2 +.Sh 規格 +.Fn posix_madvise +インタフェースは +.St -p1003.1-2001 +に適合しています。 +.Sh 歴史 +.Fn madvise +システムコールは +.Bx 4.4 +ではじめて登場しました。 |