KDOC 163: セグメンテーションとページングのユースケース
この文書のステータス
- 作成
- 2024-05-09 貴島
- レビュー
- 2024-05-09 貴島
最近はページングを使うことが多い
メモリのアドレス変換に2つの方式があることを学んだ。どう使い分けるのだろう、と疑問を持った。
調べてみて、使い分けというよりは、歴史的な2つの方式だと理解した。セグメンテーションはあまり使われなくなり、今はページングを使うことが多い。
セグメンテーションは連続化したメモリが必要で、解放されているメモリが小さな塊では使えない。そのためデフラグメンテーションという処理で移動が必要。デフラグメンテーションは大量のコピーが必要なので遅い。断片化しすぎる前に定期的に実行する必要がある。
x86の64bitモードではセグメンテーションをサポートしていない。ほとんどのシステムでセグメンテーションが用いられなくなった理由の1つに断片化の問題がある。ページングによって断片化の問題を回避できる。
関連
- KDOC 140: 『自作エミュレータで学ぶx86アーキテクチャ』。本を読んで考えたこと
- KDOC 162: セグメンテーションとページングの違い。まず違いを調べた