Windowsのメモリ管理について何かがあり、それはTaskManagerとの関係ですが、私には理解できません。誰かに教えてもらえればと思っています。
仮想マシンを実行していて(Virtual PC 2007、Virtual Server 2005、VirtualBoxのどちらでも同じように動作するため、どちらでもかまいません)、タスクマネージャーを起動すると、プロセスタブでVMですが、メモリ値はかなり小さい(約30 MB)。明らかに、実際にVM自体によって消費されているメモリは含まれていません。表示を変更できるメモリ関連のさまざまな列はどれも、動作が異なるようには見えません。 [パフォーマンス]タブのメモリ使用量は、VMを含む合計メモリ使用量に対して正しいようです。
だから私の質問は、なぜVMのメモリ使用量(100 MBになる)が[プロセス]タブに表示されないのですか?
VirtualPC、HyperV、およびおそらく類似の製品では、ドライバーロックメモリと呼ばれるものを使用します。これは、プロセスエクスプローラー、タスクマネージャーなどでは表示されません。 RAMMap は、プロセスで使用されるドライバーロックメモリを示します。
リストしたもののようなホストされた仮想化システムには、ホストOSのカーネル内で実行されるデバイスドライバーが含まれます。これは、ユーザーモードプログラムが仮想マシンの作成に必要な命令を発行できないために必要です。
タスクマネージャーにメモリが表示されないのは、仮想マシンに関連付けられているユーザーモードプログラムのメモリを表示しているためであり、実際にVMにメモリを割り当てているカーネルモードデバイスドライバーを表示しているわけではありません。
VMで使用されているメモリの量を表示するには、タスクマネージャーに[作業セット]列が表示されていることを確認する必要があります。多くの場合、プライベートセットのみが表示されます。
この列を有効にするには:
1)タスクマネージャを起動します
2)[プロセス]タブに移動します
3)表示>列の選択
4)「メモリ-ワーキングセット」がチェックされていることを確認します
たとえば、VM私が現在実行しているプライベートセットは43MBですが、ワーキングセットは2.3Gbです。