KDOC 162: セグメンテーションとページングの違い
この文書のステータス
- 作成
- 2024-05-09 貴島
- レビュー
- 2024-05-11 貴島
概要
メモリのアドレス変換方式に、セグメンテーションとページングがある。2つの違いについてまとめる。
- セグメンテーションは物理メモリをいくつかのセグメントに分け、1つのプログラムを1つのセグメントに格納する
- プログラムのサイズでセグメントサイズが決まる。なので、配置状態によっては、空きメモリ自体はあるのに大きなサイズのデータを配置できなくなることがある(フラグメンテーション)
- 物理アドレスを使う
- ページングは論理アドレス空間を小さな同じ大きさのページ(区画)に分け、ページ単位で物理メモリを割り当てる。プログラムは論理アドレス空間の中でも一部しか使わないので、いくつかのページに物理メモリを割り当てておけば事足りる
- すべて一定サイズなので、フラグメンテーションが起こりにくい
- 論理アドレスを使う
関連
- KDOC 140: 『自作エミュレータで学ぶx86アーキテクチャ』。読んで考えたこと