仮想メモリは実際にはコンピュータシステムのどこかに存在しますか(つまり、ハードディスク上)?
データがメインメモリにない場合、つまり(ページフォールトが発生した場合)、仮想メモリからハードディスク内の実データへのマッピングがどのように行われるかではない場合、仮想メモリからハードディスクデータへのマッピングを維持するテーブルはありますか。
仮想メモリは実際にはコンピュータシステムのどこかに存在しますか(つまり、ハードディスク上)?
データがメインメモリにない場合、つまり(ページフォールトが発生した場合)、仮想メモリからハードディスク内の実データへのマッピングがどのように行われるかではない場合、仮想メモリからハードディスクデータへのマッピングを維持するテーブルはありますか。
この助けを願っています。
はい、仮想メモリは実際に存在し、マッピングを維持するテーブルがあります。たとえば、ウィキペディアでページ テーブルを探します。実際、仮想メモリの記事のほとんどは、あなたの質問に完全に答えます。
質問のほとんどはhttp://en.wikipedia.org/wiki/Virtual_memoryで回答されています。
短い答え、いいえ:) 仮想メモリは仮想です!特に、仮想メモリを「プロセスによってアドレス指定できるメモリ」と見なす場合。64 ビット システムでは、ディスク全体で仮想メモリ全体をバックアップすることはほとんどできませんでした。したがって、「実際には」、あなたが尋ねたように、私はノーと答えます。
長い (-ish) 回答: 仮想メモリは、カーネル内の一連のデータ構造として存在します。ほとんどの場合、どのページ/セグメントが現在予約、割り当て、ファイルにマップされているか、または物理メモリにマップされているかを追跡します。また、あなたが見ているのが「割り当てられた仮想メモリ」である場合、答えは異なります。これは常に何らかの形で存在します (通常は、ハードディスクのスワップ領域に支えられたページ)。
はい、仮想メモリのほとんどの使用バイトはどこかに存在します。「ほとんど」と言ったのは、いくつかの特別なハードウェアのレジスタをマップするページに穴がある可能性があるためです。ただし、アプリによって割り当てられたすべてのメモリは、RAM またはハードディスクに存在します。
ウィキペディアの記事ですべての詳細が説明されています: http://en.wikipedia.org/wiki/Virtual_memory