仮想メモリにより、システムはランダムアクセスメモリ(RAM)が不足することなく、より大規模なアプリケーションを実行したり、同時により多くのアプリケーションを実行したりできます。具体的には、物理RAMの容量と仮想RAMの容量を合計した量が、システムのRAM総容量であるかのように動作します。
仮想メモリは、中央処理装置(CPU)に高い処理能力が求められる重要なアプリケーションを利用する企業にとって重要なテクノロジーです。ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの大容量ストレージデバイスによって、業務向けアプリケーションに必要なパフォーマンスを実現できます。また、仮想メモリにストレージデバイスを使うほうが、大容量のCPUを用意するよりもコストが低いため、企業のコスト削減にもつながります。このガイドでは、仮想メモリの基礎と、ITチームに役立つ理由を詳しく解説します。
仮想メモリガイド
仮想メモリの仕組み
仮想メモリとは、コンピューターシステムの二次メモリストレージ領域の一部であり、HDDやSSDがシステムのRAM、つまり主記憶の一部であるかのように機能します。
理想的には、アプリケーションの実行に必要なデータはRAMに保存され、CPUがすばやくアクセスできる状態にします。しかし、大規模なアプリケーションを実行している場合や、多数のアプリケーションを同時に実行している場合、システムのRAMが完全に埋まってしまうことがあります。
この問題には回避策があります。RAMに保存されているものの現在使用されていないデータを、ハードドライブなどのストレージデバイス上に物理的に存在する仮想メモリへ一時的に移動するのです。これによりRAMの空き容量が増え、システムが直ちにアクセスする必要のあるデータを格納できるようになります。
不要なデータをRAMと仮想メモリの間で入れ替え、必要になったら仮想メモリからRAMへ戻すことで、システムは本来必要となる物理RAMよりはるかに少ない容量でも、スムーズに動作を続けられます。
次に学ぶメモリとストレージの違い。
仮想メモリを使うメリット
仮想メモリには、コンピューターシステムにとって次のようなメリットがあります。
- 同じシステム上で、より多くのアプリケーションを同時に実行できる
- 物理RAMだけでは実行に十分な容量がないシステムでも、より大規模なアプリケーションを実行できる
- 仮想メモリでメモリ容量を増やすほうが、RAMを追加購入するよりも低コストで済む
- ハードウェアとOSがサポートできる最大容量のRAMをすでに搭載しているシステムでも、メモリ容量を増やせる。
仮想メモリを使うデメリット
仮想メモリには、いくつかのデメリットもあります。
- RAMと同じパフォーマンスは得られない
- システム全体のパフォーマンスに悪影響を及ぼし、動作が遅くなることがある
- ストレージ容量を消費するため、本来なら長期的なデータ保存に使える容量が減る
仮想メモリと物理メモリの違い
仮想メモリは論理メモリの一種です。論理メモリはコンピューターによって主記憶として読み取られますが、ローカルドライブ上に存在し、CPUから直接アクセスされることはありません。コンピューターは、論理メモリのアドレスを、マザーボード上にあるかのように読み取ります。しかし、実際にはマザーボード上に存在しないため、このデータの取得には揮発性メモリからデータを取得する場合より時間がかかることがあります。
一方、物理メモリ、つまりコンピューターのマザーボード上でRAM専用に割り当てられた領域は揮発性です。この記憶領域はコンピューターの電源が入っている間だけ存在し、シャットダウンすると消去されます。
仮想メモリの2つの方式
メモリ管理システムでは、アプリケーションのパフォーマンスを向上させるために、仮想メモリを実現する2つの方式を使用します。
ページング
ページングを使用するシステムでは、RAMをページと呼ばれる複数のブロックに分割します。通常、1ページのサイズは4Kです。プロセスには、メモリ要件を満たすために必要な数のページだけが割り当てられます。そのため、プロセスがページの整数個分と完全に一致するメモリを必要とするというまれなケースを除き、常に少量のメモリが無駄になります。
通常の処理では、仮想メモリを表すページファイルとRAMの間でページが入れ替えられます。
セグメンテーション
セグメンテーションは、メモリ管理のもう1つの方式です。固定サイズのページを使う代わりに、メモリ管理システムはプロセスの要件に正確に合わせ、長さの異なるセグメントを割り当てます。ページングシステムとは異なり、セグメント内でメモリが無駄になることはありません。
またセグメンテーションでは、アプリケーションを論理的に独立したアドレス空間に分割できるため、共有が容易かつ安全になります。
セグメンテーションのデメリットの1つは、各セグメントの長さが異なるため、メモリの断片化を招く可能性があることです。セグメントの割り当てと解放が繰り返されると、メモリ空間内に小さなメモリ領域が散在します。これらは小さすぎて役に立ちません。
こうした小さな領域が増えるにつれ、実用的なサイズのセグメントを割り当てられる余地はどんどん少なくなります。OSがこれらすべてのセグメントを追跡するのは難しく、各プロセスは複数のセグメントを使用する必要があります。これは非効率的で、アプリケーション全体のパフォーマンスを低下させる可能性があります。
次に詳しく見るページングとセグメンテーション。
仮想メモリの利用例
あるITマネージャーが、macOSを搭載したAppleのノートパソコンを使用しています。GmailやSlackなど、普段使う業務アプリケーションをすべて起動していますが、人気のリモート監視・管理ソフトウェアであるAteraも使用しています。このプラットフォームにより、ITマネージャーは社内のすべてのデバイスと従業員の利用統計を監視できます。このプログラムは、ノートパソコンのRAMが一度に処理できる容量を超えるメモリを使用します。メモリ不足を補うため、コンピューターのメモリ管理ユニットが仮想メモリのデータをCPUへ移動します。
ITマネージャーのコンピューターで仮想メモリのパフォーマンスが低下した場合は、二次メモリの形式であるハードドライブをソリッドステートドライブに交換すると、パフォーマンスが向上する可能性があります。SSDはフラッシュメモリであり、全体としてハードドライブより高速にデータを読み取ります。
OSで仮想メモリを管理する方法
Windowsでは、スタートメニューから設定に移動した後、検索バーに「パフォーマンス」と入力します。「Windowsのデザインとパフォーマンスの調整」を選択します。表示されたウィンドウで「詳細設定」タブを選択します。「仮想メモリ」セクションで「変更」を選択します。「初期サイズ」と「最大サイズ」のボックスに希望するサイズを入力します。どちらの値もメガバイト単位です。
Macのオペレーティングシステムでは、仮想メモリの調整はやや複雑です。パフォーマンスを向上させる方法の1つは、コンピューターのRAMにストレージ容量を追加することです。しかし、これは高額です。より大容量のハードドライブを取り付けると、仮想メモリの容量を増やせます。ユーザーは、ランダムアクセスメモリ(PRAM)と不揮発性ランダムアクセスメモリ(NVRAM)のパラメーターをリセットすることもできます。
まとめ:仮想メモリの重要性
仮想メモリは、CPUの限られた容量とは別に追加の領域を提供することで、企業のコンピューターやサーバーの能力を高めます。仮想メモリはランダムアクセスメモリより低速ですが、オペレーティングシステム全体のパフォーマンスにとって不可欠です。
仮想メモリと物理メモリを組み合わせることで、コンピューターはより多くのアプリケーションをサポートし、ストレージリソースをより有効に割り当てられるようになります。二次ストレージが提供する仮想メモリは、より大量のデータを処理できるようコンピューターを整備するために組織で利用されています。
次に詳しく見るメモリ管理について。