セグメンテーションとは?せぐめんてーしょん
セグメンテーションとは、プログラムをコード・データ・スタックといった論理的なまとまり単位(可変長のセグメント)に分けて管理する記憶管理方式。セグメントテーブルが各セグメントの先頭アドレス・長さ・保護属性を持ち、長さを超えるアクセスはその場で例外として捕まえられる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
固定長の区画で機械的に切ると、プログラム上の意味の切れ目と区画の境界が一致せず、保護属性を意味ごとに変えられない。コードは実行可能だが書込み禁止、スタックは書込み可だが実行禁止、というように役割ごとに属性を分けたいという要求に応えるのが、可変長で意味の単位に切るこの方式である。
具体例
ページングと併用する構成では、セグメントテーブルの各エントリが対応するページテーブルの実アドレスを持ち、論理アドレスをセグメント→ページ→物理の順に2段で変換する。x86の保護モードがこの形をとった。
試験での引っ掛け
生じる断片化の種類を逆にする出題が定番。可変長で詰めていくセグメンテーションでは、使えない小さな隙間が領域の間に散る外部断片化が起きる。固定長で切るページングで起きるのは、割り当てた最後のページに残る使い残し、すなわち内部断片化である。
関連用語
出た過去問
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8(IPA)
セグメンテーションページング方式の仮想記憶において、セグメントテーブルに格納される情報はどれか。
正解:当該セグメントに含まれるページを管理するページテーブルの実アドレス
要点:セグメントテーブルはページテーブルの実アドレスを保持する
セグメンテーションページング方式では、プログラムをまずセグメントに分け、各セグメントをさらにページに分割して管理する。アドレス変換は2段階で行われ、セグメントテーブルの各エントリには、そのセグメントに対応するページテーブルが主記憶上のどこにあるかを示す実アドレスが格納される。次にそのページテーブルを引いてページの実アドレスを得る。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。