mmapファイルとmallocのmmap

mmapファイルとmallocのmmap

少し混乱していますmmap

私たちが大きなメモリを使うときにメモリに領域を割り当てるmallocこの関数を呼び出すことを知っています。mmapこの場合、mmapプロセスにいくつかのメモリを割り当てることができます。

mmapしかし、これはハードドライブ上のファイルをメモリにマッピングし、通常のIO(読み取りと書き込み)よりも優れたパフォーマンスを得ることができる技術だと聞きました。

私にとって、上記の2つはまったく別の話です。 1つはメモリ割り当てに関するもので、もう1つはより良い方法でファイルを読み書きすることです。

しかし、なぜ両方とも呼ぶのですかmmap?これはただ偶然なのか、それとも実際に同じ技術なのでしょうか?

答え1

mmap方法を提供しますマップメモリ​​ページLinuxで(何よりも)これらのメモリページにはさまざまなバックアップデバイスがあります。特定のファイルには何もない(匿名マッピングの場合MAP_ANONYMOUS)、デバイスまたはファイルをスワップできます。

ユースケースはまったく異なりますが、共通のトピックはプロセスにアドレス空間を割り当て、そこにページがマッピングされる方法を定義することです。

mmap他のユースケース、特に共有メモリがあります。

関連情報