リソースモニターでは、プロセスごとにさらに詳しい表示が表示可能だ。なお、各プロセスに割り当てられた物理メモリー量は「ワーキングセット」と呼ばれる。
項目 | 意味 | |
---|---|---|
プロセス | ハードフォールト/秒 | スワップアウトまたは未割り当てのページの1秒間の発生回数 |
コミット | 仮想メモリーの割り当て量 | |
ワーキングセット | 仮想メモリーの割り当てのうち、物理メモリーが割り当てられている量 | |
共有可能 | ほかのプロセスと共有可能な物理メモリー量 | |
プライベート | ほかのプロセスと共有できない物理メモリー量 | |
物理メモリ | ハードウェア予約済み | ハードウェアで予約されていて利用できないメモリー(32bitのみ) |
使用中 | 何かに利用されている物理メモリー量 | |
変更済み | ファイルキャッシュなど、書き換えられて書き戻しが必要な量 | |
スタンバイ | 何かのデータがあるが、再利用可能なメモリー量 | |
空き | 何も使っていないメモリー量 | |
その他 | 利用可能 | スタンバイ+空きの合計量 |
キャッシュ済み | キャッシュとして使われている量 | |
合計 | 利用可能なメモリーの合計量(インストール済み-ハードウェア予約) | |
インストール済み | 搭載されたメモリーの総量 |
Windowsはページとして仮想メモリーに割り当てられていないメモリーを、ファイルキャッシュなどに使う。また終了したプログラムのコード領域やリソース領域などは、すぐにほかのプロセスに割り当てたりせずに、一旦は「キャッシュ済み」としておく。すぐに割り当てないのは、同じプログラムが短時間で起動~終了を繰り返すような場合を想定してのことだ。終了したのと同じプログラムの起動が指示された場合、キャッシュ済みの領域があれば、これを使ってプログラム(プロセス)の実行環境をつくる。
最近ではメモリーがかなり安くなり、4GB超のメモリーを生かせる64bit OSも普及してきたので、メモリー不足ということにはあまりならないだろう。しかし32bit OSはハードウェア的には4GBまで、実際には3GBちょっとしかメモリーが利用できないし、未だに1GB以下のメモリーで使われているマシンもある。
こうしたメモリー不足気味の環境で動かす場合、不要なプログラムを終了させてメモリーを解放し、すぐにほかのプロセスに割り当てる必要がある。だがメモリーに多少でも余裕があるなら、その解放を少し遅らせることで、プログラムを再度起動するときの時間を短縮できる。逆にプログラムが起動~終了を繰り返すと、メモリー割り当てに余裕はできるものの、起動のオーバーヘッドでCPU時間を消費してしまい、システムの負荷を上げてしまう可能性がある。
終了したプログラムのメモリーイメージのうち、コードやリソースなどの共有可能な部分をキャッシュ済みとして、解放を遅らせる機能を逆に利用したのが「Super Fetch」だ。これはユーザーのプログラム利用パターンを解析して、ユーザーが起動を指示する前にプログラムをメモリーへと読み込んでおき、一旦キャッシュ済み状態にしておくものだ。
プログラムはメモリーへ読み込まれるが、実行はユーザーが指示するまでしないわけだ。もしユーザーがそのプログラムを起動しなくても、メモリーが必要になればページとして割り当てられるし、CPUの処理に余裕があるならバックグラウンドで読み込んでおくことで、プログラムの起動時間を短縮できる可能性があるというわけだ。
しかし、この機能には問題点もある。Windows Vista以降のシステムでは、Windows XPなどに比べると空きメモリーが極端に減ってしまうことになった。システム上は再割り当てが可能なので問題はないが、ユーザーはXP時代まで、空きメモリー量を頼りにメモリーの利用状況を把握していたから、こうした使われ方とはかみ合わない。そのために作られたのが、タスクマネージャーやリソースモニターで示される「利用可能」という項目だ。
タスクマネージャーやリソースモニターでの表示を、わかりやすく図にしたものを図3に示す。この図と実際のタスクマネージャーなどの表示を見比べると、Windowsやアプリケーションがどれくらいメモリーを使っているのかが、理解しやすくなるだろう。
この連載の記事
-
第13回
PC
ARM版Windows 8実現の布石となったWindows 7の「MinWin」 -
第12回
PC
アプリがWindowsの機能を使うには? APIとDLLの仕組み -
第11回
PC
マルチコアCPUの消費電力はスケジューリングで変わる? -
第10回
PC
AMD FX向けにパッチで修正 スケジューラーが抱える難題 -
第9回
PC
マルチコアCPUを賢く使いこなす スケジューリングの秘密 -
第8回
PC
意味の違いがわかる? タスクとプロセスとスレッド -
第6回
PC
メモリー不足を根本的に解決する64bit OSの仕組み -
第5回
PC
Windows 8でMetro Styleアプリを動かす「WinRT」 -
第4回
PC
Windowsを動かすデバイスドライバーの仕組み 前編 -
第3回
PC
OSの仕事はハードウェアをアプリから「隠す」こと? - この連載の一覧へ