辞書へ戻る概念の一覧

仮想記憶

かそうきおく概念

物理メモリより大きな記憶空間があるように見せる仕組み。各プログラムに独立した広いアドレス空間を与える。

年表

1962英マンチェスター大学とフェランティ社のAtlasコンピュータで、トム・キルバーンらが仮想記憶(当時の呼称「ワンレベルストア」)を発明

概要

物理的なメインメモリよりも大きな記憶空間があるかのように見せかける仕組み。プログラムはコンピュータの実際のメモリ容量を意識せず、あたかも広大な専用メモリを持っているかのように振る舞える。各プログラムに独立したアドレス空間を与えることで、複数のプログラムを安全に同時実行できるようにもする、現代のOSの根幹をなす技術。

時代背景

1962年、英マンチェスター大学とフェランティ社の共同チームが開発したAtlasコンピュータで発明された。当時は「ワンレベルストア」と呼ばれ、速度も容量も異なる複数の記憶装置(高速だが小容量の主記憶と、低速だが大容量の補助記憶)を、プログラマからは単一の高速で大容量なメモリであるかのように見せる仕組みとして考案された。開発チームを率いたトム・キルバーンは、この発明に関する特許を5件取得しており、その中核となるページング機構と、主記憶と補助記憶の間でブロックを自動転送する仕組み、ページ置き換えアルゴリズムを考案した。1970年代にはICLとの特許を巡る訴訟があり、大学側が勝訴して8万ポンドの支払いを得たことが、キルバーンの発明としての正統性を裏付けている。

現在

仮想記憶は今日ほぼすべての汎用コンピュータの標準機能となっている。プログラムごとに独立したアドレス空間を与える仕組みは、プロセス間の安全な分離やメモリ保護の基盤にもなっており、現代のOSの設計から切り離せないものになっている。

関連項目

  • メモリアドレスメモリ上のどこにデータがあるかを示す「番地」。CPUはこの番地を指定してデータを読み書きする。番地を表す数の桁数(ビット幅)が、そのコンピュータが直接扱えるメモリの広さを決める。32bitで約4GBまで、というのはこの仕組みによる。
  • レジスタCPUのすぐ内側にある、ごく小さく非常に高速な記憶場所。計算の途中の値や、いま扱っているデータを一時的に置く「作業机の上」にあたる。レジスタのサイズ(ビット幅)が、CPUが一度に処理できる情報量の目安になる。
  • キャッシュメモリCPUのそばに置かれる、小容量だが非常に高速な記憶装置。よく使うデータを手元に置いておくことで、遅いメインメモリへのアクセスを減らし処理を速める。容量と速度のバランスを取る、コンピュータ高速化の重要な工夫の一つ。
  • 割り込み実行中の処理を一時中断し、緊急の事象に対応する仕組み。入出力やリアルタイム処理を成り立たせる基礎概念。

関連技術

出典