Virtual memoryは、プロセス間でメモリを分離し、各プロセスに独自のアドレス空間を与える便利な方法です。これは、仮想アドレスを物理アドレスに変換することによって機能します。ダイレクトマップメモリに比べて仮想メモリのパフォーマンスへの影響は?
私は既に仮想メモリがどのように動作し実装されているかに非常に精通しています。私が気づいていないのは、仮想メモリーがダイレクト・マップ・メモリーに比べてパフォーマンスに与える影響です。
オーバーヘッドがないと言ってください。ページテーブルを走査するにはいくつかのメモリアクセスが必要なので、これは明らかに誤りです。しかし、TLBミスがパフォーマンスの影響を無視できる程度に少なくなる可能性がありますが、その場合は、その証拠があるはずです。
私は現代のOSが提供する多くの機能に仮想メモリの重要性を認識しているので、この質問は仮想メモリが良いか悪い(ほとんどの使用例では明らかに良いことですか)純粋に仮想メモリのパフォーマンスの影響について質問しています。
私が探している答えは、理想的には次のようなものです:仮想メモリは、直接マッピングに比べてx%のオーバーヘッドを課しています。私はそのような結果を持つ論文を探すことを試みたが、何も見つけることができなかった。仮想メモリが仮想メモリをサポートするように設計されている最近のシステムの不可欠な部分であり、ほとんどのソフトウェアが書かれており、仮想メモリを備えたシステムを使用して最適化されているため
あなたの質問の問題は、このようなオーバーヘッドは非線形で、使用状況によって異なることです。さらに、VM実装のタイプによって異なります。論理メモリの変換や仮想メモリの完全なオーバーヘッドについて話していますか? VMは1970年代に始まり、1980年代にはマルチユーザーシステムのために引き継がれました。したがって、オーバーヘッドは十分に低く、それについては誰もそれがありません。 – user3344003
Mill CPUは、64ビットで十分に大きい単一のグローバルアドレス空間のみを使用します.http://millcomputing.com/topic/memory/プロセス間のメモリ保護は行いますが、仮想アドレスマッピングは必要ありません。 – Thilo
@ user3344003ほとんどの費用が出てくるのは私にとっては現実的なアドレス変換を意味していました。 –