

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
論理アドレス空間とは?
この言葉は、コンピュータの中で「プログラムが見る住所の世界」を指します。論理アドレス空間とは、実際のRAMの場所ではなく、プログラムが仮想的に扱う住所の集合を表します。言い換えると、プログラムが書くコードの中で現れる数字は「論理的な住所」であり、実際にデータがどこに格納されているかを直接示すわけではありません。
一方で、物理アドレス空間は実際にRAMのどこを指すかという「現実の場所」です。CPUが命令を実行するときには、各論理アドレスを物理アドレスに変換して、RAMの正しい場所を探します。この変換をOSとハードウェアが協力して行うのが「アドレス変換」です。
論理アドレス空間と物理アドレス空間の違い
まず、論理アドレス空間は「プログラムが見る住所の集合」であり、物理アドレス空間は「実際のRAMの住所の集合」です。二つの世界は別々ですが、アドレス変換という仕組みでつながっています。
この仕組みがあるおかげで、同じ物理メモリを複数のプログラムが同時に使っても干渉を避けられます。OSがプログラムごとに独立した空間を割り当て、他のプログラムのデータを勝手に見られないように守っています。
代表的なアドレス変換の技術
アドレス変換にはいくつかの有名な技術がありますが、ここでは代表的なものを二つだけ紹介します。
・ページング:論理アドレスを「ページ」と「オフセット」に分け、ページごとに物理メモリの「フレーム」に対応づけます。必要なページだけをRAMに読み込むことで、効率的に記憶を使えます。
・セグメンテーション:論理空間を意味のある「セグメント」に分け、それぞれを独立した領域として扱います。大きなデータ構造を扱うときに便利です。
加えて、TLB(Translation Lookaside Buffer)という小さな高速メモリがあり、最近使われた変換情報をすばやく提供します。これにより、アドレス変換のスピードが大幅に上がります。
身近な例え
学校の座席表を想像してください。論理アドレス空間は「あなたの名前と科目ごとに割り当てられた机の番号」のようなもの、物理アドレス空間は実際の教室の「部屋番号」と考えると分かりやすいです。授業中にあなたの机の場所を探すには、学校の席順表(OSの管理する変換表)を見て、部屋(RAMの場所)へ案内してもらう必要があります。
このように、論理アドレス空間と物理アドレス空間を分けて考えることで、複数のプログラムが同時に動作しても干渉を避けられます。OSは各プログラムに独立した空間を割り当て、他のプログラムのデータを見られないように守っています。
アドレス変換の実際の仕組みを一言で
論理アドレス空間はプログラムが見る住所、物理アドレス空間はRAMの実際の住所。二つを結ぶのがアドレス変換で、ページングやセグメンテーション、そしてTLBがその速度を支えます。
表で見るポイント
| 説明 | |
|---|---|
| 論理アドレス空間 | プログラムが扱う仮想の住所空間 |
| 物理アドレス空間 | 実際のRAMの場所を指す住所空間 |
| アドレス変換 | OSとCPUが論理アドレスを物理アドレスへ結びつける仕組み |
| ページング | 論理アドレスをページとオフセットに分ける手法 |
| セグメンテーション | 論理空間を意味のあるセグメントに分ける手法 |
| TLB | 高速化のための変換キャッシュ |
まとめとして、論理アドレス空間はプログラム側の住所の世界、物理アドレス空間はRAMの実体の住所。アドレス変換と、それを支える技術が、現代の安全で効率的なコンピュータを可能にしています。
論理アドレス空間の同意語
- 仮想アドレス空間
- プロセスが参照する仮想的なアドレスの集合。OSはページングやセグメンテーションでこの空間を物理メモリへ結び付け、実際のRAMの位置を直接見せません。容量はOSとCPUの仕様で決まります。
- 仮想メモリ空間
- 同じく、ソフトウェアから見える仮想的なメモリの総称。実メモリだけでなくディスク上のスワップ領域を使って拡張され、プログラムごとに独立した空間を提供します。
- 論理的アドレス空間
- アプリケーションが操作する『論理的な』アドレスの集合。実アドレスへの変換はOSが行い、保護と分離を実現します(論理アドレスと仮想アドレスは文脈によって同義で使われることが多いです)。
- プロセス仮想アドレス空間
- 各プロセスが持つ独立した仮想空間。プロセス間でアドレスが衝突しないよう分離され、OSがそれを管理します。
- 仮想アドレス領域
- 仮想アドレス空間の中で、現在利用可能として割り当てられている範囲を指す用語です。実際の利用はページ割り当てや保護属性に依存します。
論理アドレス空間の対義語・反対語
- 物理アドレス空間
- 論理アドレス空間の対義語としてよく使われる概念。実際のハードウェア上で割り当てられるアドレスの集合で、CPUが直接参照する対象ではなく、MMU(メモリ管理ユニット)によって論理アドレスがこの空間のアドレスへ変換されます。
- 実アドレス空間
- 物理アドレス空間とほぼ同義で使われる表現。実際に機器が利用できるアドレスの範囲を指し、論理アドレス空間と対比して説明されることが多いです。
- ハードウェアアドレス空間
- ハードウェア(メモリチップ、バス、コントローラなど)が直接扱うアドレスの空間。ソフトウェアが操作するのは通常、まず論理/仮想アドレスで、最終的にこの空間へ変換・参照します。
- 現実のアドレス空間
- 日常的には現実世界の“実アドレス空間”を指す意味合いで使われることもある表現。教科書的には物理/実アドレス空間を指すことが多いですが、文脈によっては意味が異なることがあります。
論理アドレス空間の共起語
- 仮想アドレス空間
- 論理アドレス空間とも呼ばれ、各プロセスにOSが割り当てる仮想的なアドレスの集合。実メモリへの直接参照を隠蔽し、独立性と保護を提供する。
- 仮想メモリ
- 実物理メモリの容量を超える規模のメモリ空間を仮想的に提供する概念。ページングやスワップで実現することが多い。
- 物理アドレス空間
- 実際のRAMなど物理的なアドレス空間。論理アドレス空間と対応づけられて実体のメモリへ変換される。
- アドレス変換
- 論理アドレスと物理アドレスを対応づける処理。MMUが中心的役割を果たす。
- ページング
- 仮想アドレス空間をページ単位で分割し、ページと物理フレームを対応づける管理方式。
- セグメンテーション
- アドレス空間をセグメントという単位で区切って管理する方式。サイズや保護属性を柔軟に設定可能。
- ページテーブル
- 仮想ページと物理フレームの対応を記録するデータ構造。MMUが参照する。
- TLB
- Translation Lookaside Buffer。頻繁なアドレス変換を高速化するキャッシュ。サイズが小さいがヒット率で性能が決まる。
- MMU
- Memory Management Unit。アドレス変換とアクセス保護をハードウェアレベルで実装する部品。
- 仮想化
- 複数の仮想マシンや仮想的なアドレス空間を同時に提供する技術。リソースの分離と安全性を高める。
- プロセス空間
- 各プロセスが独立して利用する論理アドレス空間の集合。プロセス間の干渉を防ぐ役割。
- オペレーティングシステム
- OSが仮想メモリの割り当て・保護・管理を行うソフトウェア層。
- ASLR
- アドレス空間レイアウトランダム化。実行時のアドレス配置をランダム化してセキュリティを向上させる機構。
- 64ビット仮想アドレス空間
- 64ビット長の論理アドレス空間を意味し、巨大な仮想空間を提供する設計。実際には物理メモリやページサイズで制約を受ける。
- ページサイズ
- 仮想アドレス空間を分割する基本単位。4KBや2MBなど、システムによって異なる。
- アドレス空間のサイズ
- 論理アドレス空間の総ビット長に基づく容量。例: 32ビットで4GB、64ビットで理論上は大容量。
論理アドレス空間の関連用語
- 論理アドレス空間
- プロセスが利用する仮想的なアドレス空間で、ソフトウェアが参照するアドレス空間。実際の物理メモリの配置は隠蔽され、OSとMMUが対応づけます。
- 仮想アドレス空間
- 論理アドレス空間と同義で、プログラムが見ているアドレス空間。通常はプロセスごとに分離されます。
- 物理アドレス空間
- 実際のRAM上のアドレス空間。ハードウェアが管理する実アドレス空間で、OSが仮想アドレスと対応づけます。
- アドレス変換
- 仮想アドレスを物理アドレスへ変換する処理。MMUが担当します。
- MMU
- メモリ管理ユニット。仮想アドレスと物理アドレスの変換とアクセス保護を担当するハードウェア部品。
- ページング
- 仮想アドレス空間を固定長のページに分割し、ページ単位で物理メモリへ対応づける方式。
- セグメンテーション
- 仮想アドレス空間を可変長のセグメントに分割して管理する方式。多くはページングと組み合わせて使用されます。
- ページテーブル
- 仮想ページと物理フレームの対応表。OSはこのテーブルを参照して実アドレスを決定します。
- PTE
- ページテーブルエントリ。各仮想ページと対応する物理フレーム情報や保護ビットを含む情報の1つ。
- TLB
- Translation Lookaside Buffer。アドレス翻訳を高速化するキャッシュ。TLBがミスするとページテーブルを参照します。
- ページディレクトリ
- 階層型ページテーブルの上位層を担うディレクトリ。複数のPTEをまとめて管理します。
- ページフォールト
- 参照しようとした仮想ページが物理メモリに存在しない時に発生する例外。OSが必要なページをディスクから読み込みます。
- スワップ
- 物理メモリが不足した際にページをディスクへ退避させ、再利用可能にする仕組み。
- 仮想メモリ
- 実メモリが不足していても仮想的に大きな連続空間を見せる仕組み。ページングとASLRなどを含みます。
- ユーザー空間
- アプリケーションが使う仮想アドレス空間のうち、OSのカーネル空間と分離された部分。
- カーネル空間
- OSが使用する仮想アドレス空間の領域。通常はユーザー空間とは別に保護されています。
- ASLR
- Address Space Layout Randomization。実行時のアドレス配置をランダム化してセキュリティを高めます。
- アドレス空間のビット幅
- 論理アドレス空間と物理アドレス空間の最大容量を決定するビット数。例: 32ビット、64ビット。
- 巨大ページ
- Huge Page。通常より大きいページサイズを選択してTLBの効率を上げる技術。
- ページ置換アルゴリズム
- RAMが不足したときにどのページを置換するか決めるアルゴリズム。例: LRU、FIFO、Clock。
- アドレス空間の階層化
- ページテーブルの階層構成(例: 2段、4段構成)を指し、アドレス翻訳を分割して管理します。
論理アドレス空間のおすすめ参考サイト
- 仮想アドレス(論理アドレス)とは - IT用語辞典 e-Words
- 論理アドレス空間(ろんりあどれすくうかん)とは? 意味や使い方
- アドレスとは? 物理アドレスと論理アドレスの違いを分かりやすく解説
- 【基礎】仮想記憶とは | 若手エンジニアのブログ



















