仮想記憶
仮想メモリとは、最近コンピュータで使われている技術の一つであるメモリの管理方法のことです。ハードウェア(CPUやグラフィックカードなどのコンピュータの物理的な部分)は、ソフトウェアを実行します。このソフトウェアは、実行するためにコンピュータのメモリを必要とし、それが行う必要があることを行います。今日使用されているほとんどのコンピュータは、一度に複数のことを行うことができ、複数のアプリケーションを実行します。これはマルチプロセッシングとして知られています。
この場合、一度にコンピュータ上で実行されているすべてのプログラムやアプリケーションが、そのリソースを共有します。コンピュータ上で実行するプログラムが増えたからといって、プロセッサやメインメモリ(RAM)が増えるわけではありません。
仮想メモリは、アプリケーションが指定されたサイズのメモリのブロックを見るという考え方です。アプリケーションは、このメモリを好きなように使うことができます。このメモリのブロックは、異なる部分から来るという意味で仮想的です。その一部はコンピュータのメインメモリにあるかもしれませんが、一部はディスク上にあるかもしれません。CPUには算術論理ユニットと呼ばれる特別な部分があり、アプリケーションメモリとシステムリソース間の変換の一部を行います。最近のオペレーティングシステムもこの作業の一部を行っています。
プログラムがシステムメモリにないメモリのブロックにアクセスしようとすると、そのプログラムは停止し、そのブロックはシステムメモリに読み込まれます。システムメモリのその部分にあったものがディスクに書き込まれます。これは通常、ページングと呼ばれています。
組込みシステムのような特定のコンピュータシステムでは、非常に高速な応答時間、つまり常に同じままの応答時間を必要とするため、仮想メモリを使用していません。問題の一つは、仮想メモリでは応答時間を予測することが難しいということです。ディスクからロードする必要があるメモリの一部を使用するアプリケーションは、そうでないアプリケーションとは異なる応答時間を持つことになります。そのため、組込みシステムでは仮想メモリの概念は使われていません。
プログラムは、広い範囲の連続したアドレスを持っていると思っていますが、実際には、現在使用している部分はメインメモリに散らばっていて、非アクティブな部分はディスクファイルに保存されています。
質問と回答
Q:仮想メモリとは何ですか?
A:仮想メモリとは、コンピュータのメモリを管理する方法の一つで、アプリケーションが所定の大きさのメモリブロックにアクセスすることを可能にします。このメモリブロックは、メインメモリやディスクなど、異なる部分から来ることができます。
Q:仮想メモリはどのように機能するのですか?
A:仮想メモリは、CPUのArithmetic Logic Unitがアプリケーションとシステムリソースの間の変換を行うことで機能します。また、最新のオペレーティングシステムもこの作業の一部を担っています。アプリケーションがシステムメモリにないメモリブロックにアクセスしようとすると、そのアプリケーションは停止し、そのブロックがシステムメモリにロードされます。
Q:仮想メモリを使用しないコンピュータの例を教えてください。
A:組込みシステムは、高速な応答時間や常に同じ応答時間を必要とするため、仮想メモリを使用しないコンピュータの一例です。仮想メモリは応答時間を予測することが難しいため、組み込みシステムでは使用されません。
Q:マルチプロセッシングとは何ですか?
A:マルチプロセッシングとは、コンピュータが一度に複数のことを行うことができ、リソースを共有する複数のアプリケーションを同時に実行することを指します。
Q: アプリケーションがシステムメモリにないメモリブロックにアクセスしようとするとどうなりますか?
A: アプリケーションがシステムメモリにないメモリブロックにアクセスしようとすると、そのアプリケーションは停止し、そのブロックはシステムメモリにロードされます。
Q: ページングとは何ですか?
A: ページングとは、アプリケーションがシステムメモリに保存されていない別の部分にアクセスするために、システムメモリのその部分にあったものをディスクに書き戻す必要があるときに起こることを指します。