1

私は以下を理解しようとしていました:

  • ページテーブルは、ある時点で仮想メモリマネージャーによって仮想メモリと物理メモリの間の変換のために構築されることを知っています。システムには多くのプロセスが実行されているため、一度にアクティブなプロセスのみであっても、非アクティブなプロセスのページ テーブルがいつでもページ ファイルに移動されるかどうか疑問に思っていました。下位 2 GB の領域がウィンドウ用に予約されているという事実を考えると、ウィンドウがシステム上のすべてのプロセスのページ テーブルを保持することは理にかなっています。現在のプロセスが切り替えられた場合、ページファイルに移動することも理にかなっていますか?

  • 書き込み可能な (データ) ページについても同様です。ウィンドウは、すべてのプロセスのすべてのデータ ページをメモリ内に保持するか、ある時点でページ ファイルに移動します。私のマシンでは、タスク マネージャーは 1.5 GB の RAM が 3 GB のうち使用されており、1.5 は [パフォーマンス] タブのシステム キャッシュであるため、データはすべてのアプリケーションで物理メモリにとどまっていると理解しています。しかし、ページング ファイルに移動する必要がある場合はありますか?

4

2 に答える 2

1

非アクティブなプロセスのページ テーブルがいつでもページ ファイルに移動されるかどうか疑問に思っていましたか?

はい、ページ テーブルはページング可能です。

ウィンドウは、すべてのプロセスのすべてのデータ ページをメモリ内に保持するか、ある時点でページ ファイルに移動します。

Windows のページング ポリシーに関する限り、ページング可能なメモリとページングできないメモリの 2 種類があります。それがどのプロセスに属しているか、またはそれが O/S 自体に属していても、ページング可能な場合はページアウトされる可能性があります。したがって、はい、Windows は必要に応じてプロセス データ ページをページアウトします。

Windows Internals book のメモリ管理の章を読むことをお勧めします。これはすべてカバーされているはずです。

-スコット

于 2011-09-07T14:04:09.327 に答える
0

ここで実際に 2 つの質問をしています。

  1. ページ テーブルに関するページング ポリシーは何ですか。
  2. 「書き込み可能なデータ」ページ (つまり、R/W パーミッションを持つ仮想メモリ) のページング ポリシーは何ですか。

まず、少し訂正します。

下位 2 GB の領域がウィンドウ用に予約されているという事実を考えると、ウィンドウがシステム上のすべてのプロセスのページ テーブルを保持することは理にかなっています。

正確には、Windows 用に予約されている上位2GB です。より正確には、Windows カーネルとドライバーのみがカーネル モードでアクセスできます。

これには驚かれるかもしれませんが、カーネル メモリもページング可能である可能性があります。したがって、技術的には、32 ビット アドレス空間のどの部分がユーザー/カーネル モードで表示されるかはまったく重要ではありません。ページングとは関係ありません。

別の修正: 仮想メモリが物理メモリにあり、ページ ファイルに保存されている可能性があります。オンデマンドでページをページ ファイルに保存することで、OS が物理ストレージを解放するという一般的な考えがあります。違う。

実際、Windows はメモリ ページを解放する前にページ ファイルに保存します。実際、バックグラウンドですべてのメモリ ページをページ ファイルにダンプします (マップされたセクションなど、他のファイルに関連するものを除く)。これには 2 つの理由があります。

  • 負荷が高い場合、OS はメモリ ページをより速く解放します (メモリ ページは既に保存されているため)。
  • カーネル モードでは、ページングが常に可能であるとは限りません。高い IRQL で実行される (つまり、最もタイム クリティカルなイベントを処理する) ドライバーは、物理ストレージ ドライバーにアクセスできない可能性があるため、ページングは​​不可能です。

したがって、あなたの質問に対する答えは次のとおりです。

  1. 確かなことはわかりませんが、OS の実装の詳細に依存します。プロセスごとのページ テーブルがページ アウトされない理由はわかりません。コンテキストの切り替えとプロセスの仮想メモリの変更中に必要です。どちらの状況も、タイム クリティカルなイベントには属しません。
  2. 間違いなく「書き込み可能なデータ」メモリ ページはページ ファイルに保存されます。それらは物理メモリから削除されていますか? オンデマンドのみ、システムのロード中、使用頻度の低い順に。
于 2011-09-07T14:10:29.510 に答える