MLOCKALL
Section: System Calls (2)
索引
jman
BSD mandoc
索引
名称
mlockall
munlockall
- プロセスのアドレス空間のロック (アンロック)
索引
ライブラリ
Lb libc
索引
書式
In sys/mman.h
Ft int
Fn mlockall int flags
Ft int
Fn munlockall void
索引
解説
Fn mlockall
システムコールはプロセスのアドレス空間に関連付けられた物理ページを、
そのアドレス空間がアンロックされるまで、またはプロセスが終了するまで、
または他のプログラムイメージを exec するまでの間、メモリ内にロックします。
以下のフラグは
Fn mlockall
の振舞いに影響します:
- MCL_CURRENT
-
プロセスのアドレス空間に現在マップされている全てのページをロックします。
- MCL_FUTURE
-
将来プロセスのアドレス空間にマップされる全てのページを、
マッピングが確立する時点でロックします。
これらのマッピングがリソースの制限の超過を引き起こす場合には、
将来のマッピングの失敗を引き起こすかもしれないことに、注意してください。
物理メモリは潜在的に欠乏しているリソースであるため、プロセスは
どのくらいの量をロックできるのかを制限されています。
1 つのプロセスは最低でもシステム全体に渡る
``wired pages''
リミットをロック可能で、プロセス当たりの
RLIMIT_MEMLOCK
リソース制限をロック可能です。
Fn munlockall
呼び出しはプロセスのアドレス空間の中の全てのロックされたメモリ領域を
アンロックします。
Fn munlockall
呼び出し後にマップされる全ての領域は、ロックされません。
索引
戻り値
戻り値 0 は、呼び出しが成功し、その範囲内の全てのページが
ロックまたはアンロックされたことを示します。
戻り値 -1 は、エラーが発生し、その範囲内の全てのページのロック状態が
変更されないまま残されていることを示します。
この場合、グローバル変数
errno
がそのエラーを示すために設定されます。
索引
エラー
Fn mlockall
は以下の場合に失敗します:
- Bq Er EINVAL
-
Fa flags
引数が 0 であるか、または実装されていないフラグを含んでいます。
- Bq Er ENOMEM
-
指定された範囲のロックが、システムまたはプロセス当たりのロック可能な
メモリの制限を越えます。
- Bq Er EAGAIN
-
プロセスのアドレス空間にマップされたメモリの一部または全てが、
呼び出しが実行された時にロックできませんでした。
- Bq Er EPERM
-
呼び出し側のプログラムが、要求された操作を行なうための適切な
権限を持っていません。
索引
関連項目
mincore(2),
mlock(2),
mmap(2),
munmap(2),
setrlimit(2)
索引
規格
Fn mlockall
および
Fn munlockall
関数は
St -p1003.1-2001
に適合していると思われます。
索引
歴史
Fn mlockall
および
Fn munlockall
関数は
Fx 5.1
ではじめて登場しました。
Fx 5.1 .
索引
バグ
プロセス当たりのリソースの制限は、ロックされた仮想メモリの量について
制限されます。
その一方、システム全体での制限はロックされた物理ページの
数についての制限です。
そのために、同一の物理ページに対する 2 つの別個のロックされた
マッピングを持つプロセスは、プロセス当たりの制限に対しては 2 ページとして
カウントし、システム制限ではただ 1 つのページとしてカウントします。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- エラー
-
- 関連項目
-
- 規格
-
- 歴史
-
- バグ
-
Time: 07:06:29 GMT, January 12, 2009