|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > m > madvise - システムコールの説明 madvise - システムコールの説明 - Linux コマンド集 一覧表名前madvise - メモリ利用に関するアドバイスを与える 書式
説明madvise ()システムコールは、アドレス start からはじまる length バイトのメモリブロックのページング入出力をどう扱えば良いか、 カーネルにアドバイスする。 これを用いると、 アプリケーションからカーネルに、 マップされたメモリや共有メモリをどのように扱ってほしいか伝えることができ、 カーネルはそれに応じて先読みやキャッシュなどの適切な手法を選択できる。 このコールはアプリケーションの動作そのものには影響しない ( MADV_DONTNEED の場合は別) が、 性能には影響しうる。 なおこのアドバイスを受け入れるかどうかはカーネルに任される。 アドバイスはパラメータ advice によって与える。以下のいずれかを指定できる。
返り値madvise ()は成功すると 0 を返す。 エラーが起こると -1 を返し、 errno を適切な値に設定する。 エラー
LINUX における注意現在の Linux の実装 (2.4.0) では、 このシステムコールをアドバイスというよりは命令と見ている。 したがってこのアドバイスに対して通常行われる動作が不可能な場合は、 エラーを返すことがある (上記の エラー の記述を見よ)。 この振舞いは標準とは異なる。 Linux の実装では start のアドレスはページ境界の値でなければならない。また length は 0 であっても構わない。 また Linux 版の madvise ()では、指定されたアドレス範囲にマップされていない部分があると、 これらを無視して残りの部分にアドバイスを適用する (しかしシステムコールに対してはちゃんと ENOMEM を返す)。 履歴madvise ()関数は 4.4BSD で最初に登場した。 準拠POSIX.1b. POSIX.1-2001 では、 posix_madvise ()を POSIX_MADV_NORMAL などの定数とともに記述していた (それぞれの振舞いはここで述べたものに近い)。 ファイルアクセスに対しても posix_fadvise ()という類似の関数が存在する。 関連項目
getrlimit
(2),
mincore
(2),
mmap
(2),
mprotect
(2),
msync
(2),
munmap
(2)
|
|