0

仮想メモリは実際にはコンピュータシステムのどこかに存在しますか(つまり、ハードディスク上)?

データがメインメモリにない場合、つまり(ページフォールトが発生した場合)、仮想メモリからハードディスク内の実データへのマッピングがどのように行われるかではない場合、仮想メモリからハードディスクデータへのマッピングを維持するテーブルはありますか。

4

5 に答える 5

2
  1. メモリは、プロセスがそのアドレス空間を使用可能なメモリの連続したチャンクとして認識し、基礎となるアドレスバス幅のすべての幅、たとえば 32 ビットシステムの場合は 4GB を使用するため、仮想と呼ばれます。したがって、すべてのプロセスには 4GB のアドレス空間がありますが、このメモリは物理メモリによって 1 対 1 で完全にサポートされているわけではありません。また、プロセスの 4GB のアドレス空間をバックアップするために 4GB の物理メモリがあるとしても、他のプロセスのカーネルはどこに行くのでしょうか? このメモリ仮想でなければなりません。
  2. はい、テーブルはプロセスのアドレス空間を維持します。簡単にするために、一部のページは現在揮発性物理メモリにマップされていますが、他のページはマップされていません。これらは、HDD 上のメモリ ファイルによってバックアップされます。ページ フォールトが発生すると、ページ フォールトはそのページが物理メモリにマップされているかどうかを確認し (通常は、ページの属性の少し内側にあります)、そうでない場合は、HDD 上のメモリ マップ ファイルからフェッチします。 、物理メモリにマップされた古いページに置き換えます。

この助けを願っています。

于 2013-01-29T08:35:12.587 に答える
1

はい、仮想メモリは実際に存在し、マッピングを維持するテーブルがあります。たとえば、ウィキペディアでページ テーブルを探します。実際、仮想メモリの記事のほとんどは、あなたの質問に完全に答えます。

于 2013-01-29T08:02:11.377 に答える
1

質問のほとんどはhttp://en.wikipedia.org/wiki/Virtual_memoryで回答されています。

  1. 仮想メモリ用のバッキング ストアが存在する必要があります。これは通常、ハードディスクです。基本的に、通常RAMよりも低速ですが、容量がはるかに大きい他のデバイスです。
  2. ページ フォールトが発生すると、バッキング ストアからページが取得されます。
  3. ページ テーブルには、バッキング ストア内でページが見つかる場所に関する情報が含まれています。
于 2013-01-29T08:02:27.973 に答える
0

短い答え、いいえ:) 仮想メモリは仮想です!特に、仮想メモリを「プロセスによってアドレス指定できるメモリ」と見なす場合。64 ビット システムでは、ディスク全体で仮想メモリ全体をバックアップすることはほとんどできませんでした。したがって、「実際には」、あなたが尋ねたように、私はノーと答えます。

長い (-ish) 回答: 仮想メモリは、カーネル内の一連のデータ構造として存在します。ほとんどの場合、どのページ/セグメントが現在予約、割り当て、ファイルにマップされているか、または物理メモリにマップされているかを追跡します。また、あなたが見ているのが「割り当てられた仮想メモリ」である場合、答えは異なります。これは常に何らかの形で存在します (通常は、ハードディスクのスワップ領域に支えられたページ)。

于 2013-01-29T08:02:03.813 に答える
0

はい、仮想メモリのほとんどの使用バイトはどこかに存在します。「ほとんど」と言ったのは、いくつかの特別なハードウェアのレジスタをマップするページに穴がある可能性があるためです。ただし、アプリによって割り当てられたすべてのメモリは、RAM またはハードディスクに存在します。

ウィキペディアの記事ですべての詳細が説明されています: http://en.wikipedia.org/wiki/Virtual_memory

于 2013-01-29T08:02:39.563 に答える