仮想メモリとは:動作原理・メモリマップ・スワップ

仮想メモリとは RAM

仮想メモリとは

仮想メモリ RAM CPU

仮想メモリ(virtual memory)とは「物理メモリ(RAM)が不足したときに、ストレージ(SSDやHDD)の一部を一時的にメモリとして使用する技術のこと」です。仮想メモリを使用することで、メモリ(RAM)の容量を超えるアプリケーションの実行が可能になります。

通常、実行中のプログラムやそのデータはメインメモリ(RAM)に保存されます。しかし、複数のプログラムを同時に動かしたり、大きなデータを扱ったりすると、メインメモリだけでは足りなくなることがあります。そこで仮想メモリを使うことで、メインメモリの容量を超えるデータも処理できるようになります。

仮想メモリでは、メインメモリの中でも頻度が低いデータをストレージ(HDDやSSD)に移行することで、メインメモリの容量を確保し、全体の処理効率を向上させることができます。

メモリ(RAM)とは:PCでの役割

仮想メモリの動作原理

メモリ ページ分割 スワップ

仮想メモリ(virtual memory)では、データを「ページ」という小さなブロックに分けて管理します。

仮想メモリのページとは、OSがメモリ管理を効率化するために、プログラムやデータを固定サイズの小さなブロック(ページ)に分割したものです。必要に応じて、これらのページをRAMとHDD/SSD間で移動させることで、実際のメモリ容量以上のデータを扱えるようにします。

仮想メモリの動作順序は以下の通りです。

  1. プログラムを起動
  2. OSがプログラムを「ページ」という小さな単位に分割

  3. 必要なページをメモリに読み込む
  4. よく使うデータを優先してRAM(物理メモリ)に配置

  5. RAMが不足した場合
  6. 使っていないページをストレージに移動(スワップアウト)

  7. 必要になったら再びメモリへ
  8. ストレージからRAMに戻す(スワップイン)。ただし、HDD/SSDはRAMよりも遅いため、頻繁な入れ替え(スワップ)が発生するとPCの動作が遅くなる(スラッシング)

メモリーマップ

仮想メモリは、物理メモリの容量を「仮想的に」拡張した概念です。CPUがデータの読み書きをする際、メモリ上のデータの位置を特定するためにアドレスという情報が必要です。

物理メモリのアドレスは実アドレス(物理アドレス)と呼ばれ、そのアドレス空間を実メモリ空間と言います。一方、仮想メモリのアドレスは仮想アドレス(論理アドレス)と呼ばれ、その空間を仮想メモリ空間と言います。

仮想メモリ空間と実メモリ空間を正しく対応させるためには、実アドレスと仮想アドレスを紐づける必要があります。

メモリマップ 仮想メモリ 物理メモリ

実アドレスと仮想アドレスは「メモリマップ」によって紐づけられています。

メモリマップにより、CPUは仮想アドレスを物理アドレスに変換し、物理メモリのどこにデータを読み書きするかを決定します。これにより、プログラムは物理メモリの配置を意識せず、仮想メモリを使うことができるのです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です