共有メモリマッピングファイルと共有メモリ領域は互いに基づいて実装されていますか?

共有メモリマッピングファイルと共有メモリ領域は互いに基づいて実装されていますか?

共有メモリマッピングファイルと共有メモリ領域は互いに基づいて実装されていますか?次の二つの文章はこんな言葉をするようで、私が見るには鶏か卵かという質問のようです。

次のオペレーティングシステムの概念は、共有メモリマッピングファイルを紹介します。複数のプロセスがファイルの内容を保持する同じ物理メモリ領域を共有して、同じファイルを共有しますか?

複数のプロセスが同時に同じファイルをマップできます。、データ共有を許可します。すべてのプロセスの書き込みは仮想メモリ内のデータを変更し、ファイルの同じ部分をマップする他のすべてのプロセスで見ることができます。仮想メモリに関する以前の議論を考慮すると、メモリマッピングされた部分の共有を実装する方法が明らかになりました。 各共有プロセスの仮想メモリマップは、同じ物理メモリページ、つまりディスクブロックのコピーを保持するページを指します。このメモリ共有を図 9.22 に示します。

ここに画像の説明を入力してください。

以下では共有メモリについても紹介します。

  • 複数のプロセスがメモリマッピングファイルを共有してメモリ領域を共有しますか?

  • 「メモリマッピングファイル」はディスクまたはメインメモリにありますか?ディスクにあると思いましたが、「メモリマッピングファイルは通信プロセス間の共有メモリ領域として機能する」というのはメインメモリに常駐するという意味のようです。

ほとんどの場合、共有メモリは実際にはメモリマッピングファイルを介して実装されます。。この場合、プロセスは、通信プロセスメモリが同じファイルを仮想アドレス空間にマッピングすることを可能にし、共有メモリを使用して通信できます。メモリマップされたファイルは、通信プロセス間の共有メモリ領域として機能します(図9.23)。

ここに画像の説明を入力してください。

ありがとうございます。

ベストアンサー1

共有メモリマッピングファイルと共有メモリ領域は互いに基づいて実装されていますか?

結局のところ、それはほぼ/dev/shm 仮想ディスクです。

「メモリマッピングファイル」はディスクまたはメインメモリにありますか?

はい!

アクセスされるファイル部分は、(スイッチによって)バッファ、すなわちRAMにコピーされる。

このメモリへのすべての書き込みはファイルにすぐに表示されますが、バッファが同期またはフラッシュされるまで物理ディスクに書き込まれません。

おすすめ記事