仮想記憶

読み:かそうきおく / 英語表記:virtual memory

プログラムが使う仮想アドレスと主記憶の実アドレスを分け、対応を管理するメモリ管理の仕組み。ディスクなどの外部記憶装置も補助に使うことで、主記憶の容量を超えるメモリ空間を利用できる。

イマシルちゃんの解説

仮想記憶は、プログラムから見えるメモリと、実際の主記憶を分けて管理する仕組みだよ。
プログラムが使う仮想アドレスを、OSとハードウェアが主記憶上の実アドレスへ対応付けるんだ。
よく使われる方式では、メモリをページという一定の大きさに区切って管理するよ。
今すぐ使わない部分をディスクなどへ移し、必要になったときに主記憶へ読み込むこともできるの。
これならプログラム自身がデータの出し入れを細かく管理しなくても、主記憶に一度に収まらない量を扱えるんだ。

より深い解説

定義

仮想記憶は、プログラムが使うアドレス(仮想アドレス、論理アドレス)と、主記憶の実際のアドレス(実アドレス)を分け、OSとハードウェア(MMU:メモリ管理ユニット)がその対応を管理する仕組みである。主記憶に入りきらない部分は、ディスク上の領域(スワップ領域、ページファイル)に置いておき、必要になったときに主記憶へ読み込む。

ページング方式

現在の多くのOSは、メモリを固定長のページ(4Kバイトなど)に区切って管理するページング方式を使う。

用語内容
ページテーブル仮想アドレスのページと、実アドレスのページの対応表
ページフォールトアクセスしたページが主記憶にないときに起こる割込み。OSがディスクからページを読み込む(ページイン)
ページアウト主記憶の空きを作るため、ページをディスクに書き出す
TLBページテーブルの対応を一時的に保存する高速なキャッシュ

ページ置換えのアルゴリズム

主記憶に空きがないとき、どのページを追い出すかを決める方式である。

方式追い出すページ
FIFO最も古く読み込んだページ
LRU(Least Recently Used)最後に参照されてから、最も長い時間が経ったページ
LFU(Least Frequently Used)参照された回数が最も少ないページ

スラッシング

主記憶の容量に対して、同時に実行するプログラムが多すぎたりすると、ページフォールトが頻発し、ページの入れ替えの処理(ディスクへのアクセス)ばかりに時間が使われて、システムの処理能力が極端に低下する。これをスラッシングという。主記憶の増設や、同時に実行するプログラム数(多重度)を減らすことで対処する。

仮想記憶の利点

利点内容
大きなメモリ空間主記憶の容量を超える大きさのプログラムを実行できる
メモリの保護プログラムごとに別の仮想アドレス空間を持つため、ほかのプログラムのメモリを壊さない
効率的な利用実際に使っているページだけを主記憶に置ける

似た仕組みとの区別

仕組み内容
仮想記憶外部記憶装置を使い、主記憶の容量を超えるメモリ空間を使えるようにする
メモリインタリーブ主記憶を複数のバンクに分け、アクセスを並列化する
ディスクキャッシュ主記憶と磁気ディスクの間にバッファを置き、速度差を補う
DMACPUを介さずに、主記憶と入出力装置の間でデータを転送する

実際の試験ではここに出る!全2問

ネットワークスペシャリスト

午前Ⅱ

この用語が出てくる記事

↑