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

名称
ライブラリ
書式
解説
戻り値
エラー
関連項目
規格
歴史
バグ

jman



Time: 07:06:29 GMT, January 12, 2009