ICDロゴ

仮想メモリ (virtual memory)

【カソウ・メモリ】

別名
仮想記憶 (virtual memory/virtual storage) 【カソウ・キオク】

最終更新日: 2003/09/24

 ハードディスクなどの外部記憶装置の一部を、あたかも物理メモリの一部であるかのようにして提供される仮想的なメモリ領域。アプリケーションから見ると、単に大量の利用可能なメモリ領域が存在するように見える。これにより、コンピュータに実際に搭載されている物理メモリを大幅に超えたメモリを消費するアプリケーションを実行したり、大量のメモリを消費するアプリケーションを複数同時実行したりできるようになる。

 仮想メモリ領域は、アクセス速度は非常に高速だが、高価で、大量に実装することが困難な物理メモリと、アクセス速度は低速だが、大量の領域を確保できるハードディスクの一部の領域をひとまとめにし、物理メモリサイズを大幅に超える仮想メモリ空間を実現するものである。コンピュータで実行されるプログラムコードには局所性があり、ある瞬間をみると、コード全体の一部分だけがメモリ上に存在していればよい。このような特徴をうまく使って、アプリケーションに割り当てるメモリ空間(論理メモリ空間)の一部だけに物理メモリを割り当てるようにし、物理メモリサイズを大幅に超える論理メモリ空間を作り出したり、複数の論理メモリ空間をアプリケーションに割り当てたりする。メモリ管理ソフトウェアは、当面使いそうもないプログラムコードやデータは、必要になるまでメモリにロードしない。また空き物理メモリがなくなってしまったら、すでにメモリ上にロードされているコードやデータから、アクセス頻度の低いものを選び出し、これをハードディスク上に用意したファイルに一時的に待避して、それらが占有していたメモリ領域を解放する。こうして一時待避したデータが再度必要になった場合には、逆にディスクからメモリにロードし直す(このとき必要なら、別のメモリ領域をディスクに一時待避する)。この際の、物理メモリ←→ディスクのデータのやり取りは「スワップ(swap)」と呼ばれ、このうち物理メモリ→ディスクへのデータの書き出しはスワップアウト、これとは逆のディスク→物理メモリのデータの再ロードはスワップインと呼ばれる。また、このときメモリの内容を一時待避するディスク領域は「スワップファイル」と呼ばれる。

 WindowsやUNIXなど、複数のアプリケーションを同時実行できるマルチタスクOSでは、仮想メモリシステムがなければ、実質的に機能することはできない。仮想メモリシステムによるスワップ処理などは、アプリケーションからはまったく透過的に実行されるので、アプリケーションは大量のメモリがあるものとして振る舞うことが可能になる。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ