メモリ マップド IO について読み始めましたが、概念を理解するのに苦労しています。
これは私がこれまでに理解したことです:
各プロセスには仮想アドレス空間があります。メモリ マップ ファイルには、仮想アドレス空間内の特定のアドレス範囲が割り当てられ、物理メモリ上の同じアドレスにマップされます。このようにして、メモリ上のディスクコントローラーによって (DMA を介して) 行われるすべての書き込みは、
追加のコピーなしでプロセスに反映されます。(メモリ マップされていないファイルの場合、CPU はその内容をプロセスのバッファにコピーする必要があります)。
私の疑問:
私の理解は正しいですか?
複数のプロセスがファイルを mmap しようとしていて、直接マッピングできるメモリの連続ブロックがない場合はどうなりますか?