ハードディスクの一部をメモリーとして使うことで,メモリー(物理メモリー)の不足を補う仕組みです。仮想メモリーの仕組みは,OSが提供してくれます。したがって,私たちがプログラムを作るときには,仮想メモリーを意識したコードを記述する必要はほとんどありません。メモリーが足りなくなったら,Windowsがメモリーの一部をハードディスクに移して,メモリー空間を空けてくれるからです。お礼を言って終わりでは,ちょっともの足りない気がします。仮想メモリーが実際にどんなものか,一度は見ておきたいですね。今回は,仮想メモリーに関する実験をやってみましょう。実験を行う前に,仮想メモリーの勉強をしておきましょう。仮想メモリーには,大きく分けて二つの方式があります。「セグメント方式」と「ページング方式」です。メモリーが不足したときには,メモリー(物理メモリー)上のプログラム全体がまるごとハードディスク(仮想メモリー)に移されるわけではありません。プログラムをいくつかの部分に分割して,部分ごとに移します。プログラムを,処理やデータに都合のよい区切りで分割するのが「セグメント方式」で,内容にかかわらず固定サイズで分割するのが「ページング方式」です。セグメント方式は,効率が良いのですが,仕組みは複雑になります。逆に,ページング方式は,効率は悪いのですが,仕組みは単純になります。それぞれに一長一短があり,どちらがよいとは一概には言い切れません。Windowsは,ページング方式を採用しています。一つのページのサイズは,4Kバイトです。ここでは,Windowsが採用しているページング方式を見ていきます。実験の前に,仮想メモリーに関する専門用語を覚えておきましょう。プログラムを固定サイズで分割した部分を「ページ」と呼びます。メモリーとハードディスクの間でページを入れ替えることを「ページング」または「スワップ(swap)」と呼びます。メモリーからハードディスクにページを移すことを「ページアウト」または「スワップアウト」と呼びます。ハードディスクからメモリーにページを戻すことを「ページイン」または「スワップイン」と呼びます(図1)。図1●ページング方式の仮想メモリーの仕組み実行しようとしたページがメモリー上にないときは,現在使われていないページをページアウトして,必要なページをページインすることになります。OSがこの処理をしている間は,プログラムの実行がいったん中断されます。実行しようとしたページがメモリー上にないことを「ページフォルト」と呼びます。ページフォルトが起きると,ページングのための割り込み処理プログラムが起動するので,アプリケーション・プログラムの動作が一時停止します。頻繁にページフォルトが起きると,アプリケーション・プログラムが円滑に動作しない状態になります。これを「スラッシング(Thrashing)」と呼びます。皆さんにもきっと経験があると思います。ハードディスクのアクセス・ランプが激しく点滅し,プログラムの応答が遅くなることがあります。その場合,たいてい,スラッシングが起きています。あまりにもスラッシングが頻繁に起きるようなら,お財布と相談して,メモリー容量を増やすことを検討しなければなりません。仮想メモリーの実体は「pagefile.sys」というファイルお勉強が済んだところで,最初の実験です。仮想メモリーの実体を見てみましょう。XPを使います)の仮想メモリーの実体は,ハードディスクのルートディレクトリにあるpagefile.sysというファイルです。これを「ページング・ファイル」と呼びます。ページアウトされた個々のページが,一つのページング・ファイルの中に収まっているのです。ページング・ファイルを複数のディスクに分割して,アクセス効率を向上させることもできますが,一般には一つのファイルとなっています。エクスプローラを起動して,pagefile.sysを見てみましょう。Windowsは,デフォルトでpagefile.sysのようなシステムファイル(OSの動作に関する重要なファイル)を隠しファイルとしているので,そのままでは画面にファイル名が表示されません。あやまって削除されると困るからです。見るだけなら何も問題ありません。エクスプローラの「ツール」メニューから「フォルダオプション」を選択し,表示されるウィンドウの「表示」タブのリストにある「すべてのファイルとフォルダを表示する」をオンにして[OK]ボタンをクリックしてください。実験が終わったら,「隠しファイルおよび隠しフォルダを表示しない」に戻しておくことをお勧めします(図2)。図2●「すべてのファイルとフォルダを表示する」をオンにするエクスプローラで,ハードディスク(ここでは,Cドライブ)のルートディレクトリを見てください。今まで表示されなかったファイルが,いくつか表示されているはずです。その中に仮想メモリーの実体であるページング・ファイルpagefile.sysがあるはすです。筆者のマシンでは,ファイルのサイズが1,572,864Kバイト(約1.5Gバイト)になっていました(図3)。現場の負担軽減を!医療界でのAWS活用法500万社が導入。き》データサイエンティスト育成で定評のある大阪ガスと、データ分析の専門家が共同で開発した特別プログラ...SEのための「システム営業力」養成講座SEとして仕事をする方が、顧客や経営層に対する提案力や会話力を身につけるための講座です。情報銀行の成り立ち、事例、現状課題やその行方を網羅。経営戦略である以上、「会計」の知識やスキルが欠かせません。