仮想記憶とは?かそうきおく
仮想記憶とは、論理アドレスをMMUで物理アドレスへ変換し、主記憶の容量を超える記憶空間をプログラムに見せる仕組み。主記憶に無いページはページフォールトを契機に補助記憶から読み込む。プロセスごとに別の変換表を持たせれば空間が分離されるため、組込みでは容量の拡張よりむしろ保護と再配置の自由が採用理由になる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
プログラムを物理アドレス直書きで作っていた時代は、載せる番地が決まらないとリンクできず、同時に動く処理どうしが互いのメモリを踏んだ。番地の付け替えを表に任せてしまえば、各プログラムは自分専用の空間を持っているつもりのまま書ける。ただしページフォールトの遅延は締切と真っ向からぶつかるため、組込みでは採るかどうか自体が設計判断になる。
具体例
Linuxを載せるArm Cortex‑A系のゲートウェイ機器では、仮想記憶を前提にプロセスを分離する。一方Cortex‑M系のMCUはMMUを持たず、MPUの権限判定だけで済ませる。同じ製品の中で通信部はA系、制御部はM系と分けるヘテロ構成が採られる。
試験での引っ掛け
リアルタイム処理ではページフォールトの遅延が最悪応答時間を壊すため、該当領域はページロックで主記憶に固定する。MMUのアドレス変換とMPUの権限判定を混同しないこと——MPUは変換をしないので、断片化の解消も同一番地の多重マッピングもできない。
関連用語
出た過去問
出典:平成31年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10(IPA)
ページング方式の仮想記憶において、ページ置換えアルゴリズムにLRU方式を採用した場合、ページの参照順序が1, 2, 3, 2, 3, 1, 4, 2, 4, 3…
正解:7
要点:LRUは最も長く未参照のページを追い出して置き換える
LRUは最も長く参照されていないページを追い出す方式である。参照順に追っていくと、最初の1,2,3で3回の読込みが起き、続く2,3,1はいずれも主記憶上にあるためヒットする。その後の4で最古の2を、2で3を、3で1を、1で2を追い出す形になり、読込みは合計7回発生する。
出典:令和2年度 10月試験 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8(IPA)
ページング方式の仮想記憶において、あるプロセスが仮想アドレス空間全体に対応したページテーブルをもつ場合、ページテーブルに必要な領域の大きさを2^xバイトで表すと…
正解:L-N+E
要点:ページテーブル量はエントリ数×エントリサイズで決まる
ページテーブルのエントリ数は、仮想アドレス空間をページサイズで割った値、すなわち2^L÷2^N=2^(L-N)個である。1エントリの大きさが2^Eバイトなので、必要な領域は2^(L-N)×2^E=2^(L-N+E)バイトとなる。したがってxはL-N+Eである。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8(IPA)
セグメンテーションページング方式の仮想記憶において、セグメントテーブルに格納される情報はどれか。
正解:当該セグメントに含まれるページを管理するページテーブルの実アドレス
要点:セグメントテーブルはページテーブルの実アドレスを保持する
セグメンテーションページング方式では、プログラムをまずセグメントに分け、各セグメントをさらにページに分割して管理する。アドレス変換は2段階で行われ、セグメントテーブルの各エントリには、そのセグメントに対応するページテーブルが主記憶上のどこにあるかを示す実アドレスが格納される。次にそのページテーブルを引いてページの実アドレスを得る。
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問11(IPA)
主記憶管理に関する記述のうち、適切なものはどれか。
正解:仮想記憶とは、主記憶の容量以上の記憶空間を提供する機能である。
要点:仮想記憶は主記憶容量を超える記憶空間を見せる仕組み
仮想記憶は、主記憶と補助記憶を組み合わせて、実際に搭載された主記憶容量を超える大きさの論理アドレス空間をプログラムに見せる機能である。アドレス変換機構(MMU)が仮想アドレスを実アドレスへ写像し、主記憶にないページは補助記憶から読み込む。これによりプログラムは物理容量を意識せずに記述できる。
出典:令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7(IPA)
ページング方式の仮想記憶において、あるプロセスが仮想アドレス空間全体に対応したページテーブルをもつ場合、ページテーブルに必要な領域の大きさを2^xバイトで表すと…
正解:L-N+E
要点:ページテーブル量はエントリ数×エントリサイズ
ページテーブルのエントリ数は、仮想アドレス空間をページサイズで割った 2^L÷2^N=2^(L-N) 個である。各エントリの大きさが2^Eバイトなので、テーブル全体は 2^(L-N)×2^E=2^(L-N+E) バイトになる。したがってxはL-N+Eである。
出典・参考
高度試験 午前I(ITパスポート 相当)のシラバスの8 コンピュータシステム > 45. オペレーティングシステム > (2) OS の機能に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。