5

mmap()共有メモリ オブジェクトをプロセスにマップするために使用しています。私の質問には2つの部分があります:

mmap()1) Linux プロセスのサイズ制限は? (そんな制限ある?)

2)プロセスがしばらく実行された後、プロセスの仮想メモリアドレス空間が何らかの形で断片化されると思います。mmap()これは、このプロセスで実行できる最大サイズに影響しますか?

使用する Linux カーネルは2.6.27. 共有メモリ オブジェクトのサイズは約 32MB です。mmap()十分な仮想アドレス空間がないために、このような共有メモリ オブジェクトで失敗 する可能性があるものにアクセスしようとしています。

4

2 に答える 2

1

サイズに制限はありませんがmmap、特定のプロセスで使用される既存のアドレス空間に依存します。mmapただし、大規模な連続した仮想アドレス空間を使用しないことを強くお勧めします。もう1つの提案はmmap、特定の物理アドレス(またはデバイスアドレス)がアクセスされたときに「ジャストインタイム」を使用し、完了したらマップを解除することです

于 2013-08-21T15:01:11.183 に答える