LinuxとWindowsの場合、同じプロセスで、2つのページエントリが同じ物理ページを参照するようにするにはどうすればよいですか?
Windowsの場合、MSDNを読むと、ファイルに裏打ちされていないファイルマッピングを作成するためにCreateFileMapping
渡すことで呼び出すことができるように見えます。INVALID_HANDLE_VALUE
次にMapViewOfFileEx
、異なるで2回呼び出すことができますlpBaseAddress
。これにより、2つの異なるアドレスが同じ物理アドレスを参照するようになります。
私の質問は、Linuxでそれを行う方法ですか?のマニュアルを読みましmmap
たが、リージョンがファイル(フラグ付き)でバックアップされていない限り、それを行う方法がわかりませんでしたが、MAP_SHARED
このリージョンへの変更はファイルに書き込まれます。これは私が望むものではありません。誰かがこれを行うために何らかの方法で知っていますか?リージョンへの書き込みが実際にディスクに送信されない限り、ファイルによるバッキングに反対しません。ユーザーがマウントされtmpfs
ていることを保証できないため、使用することはできません。tmpfs
ちなみに、コードはカーネルモードではなくユーザーモードコードである必要があります。