スワップがオフの場合、メインメモリの書き込み中にコピーは機能しますか?

スワップがオフの場合、メインメモリの書き込み中にコピーは機能しますか?

オーバーコミットがないと、ほとんどのページで書き込み中にコピーがまったく発生しなくても、各fork()にはアドレス空間をコピーするのに十分な空き容量が必要です。

上記の説明は、Robert Loveの著書(Linuxシステムプログラミング第2版、メモリ管理の章、オーバーコミット、およびOOMのトピック)から抜粋したものです。

スワップをオフにするとメインメモリをオーバーコミットできません。この場合、書き込み中のコピー(fork、malloc、mmapなど)はメインメモリで実行されますか、それとも遅延割り当てメカニズムなしでメモリにデータ全体を事前割り当てしようとしますか?

欠けている部分があれば修正してください。

更新:友達の皆さん、最初は取引所を閉じれば無理しないと思いました。以下の説明で述べたように、スワップを解除してもオーバーコミットできます。

ベストアンサー1

交換せずに過剰に使用できます。 Robert Loveの本では、「ストレージ」という言葉は、この文脈で物理的なRAMを表します。カーネルはまだ物理RAMへのマッピングまたは書き込み中のコピーの場合、共有ページフレームへのポインタを含まないプロセス用のメモリスペースを設定します。ページにアクセスすると、要求に応じてマッピングが生成されます。すべてのマッピングが同時に必要ではないと仮定するため、過剰なコミットは比較的安全です。

おすすめ記事