基本情報技術者 2014年 春期 午前(科目A) 問16
問題文
ページング方式の仮想記憶を用いることによる効果はどれか。
選択肢
ア:システムダウンから復旧するときに、補助記憶のページを用いることによって、主記憶の内容が再現できる。
イ:処理に必要なページを動的に主記憶に割り当てることによって、主記憶を効率的に使用できる。(正解)
ウ:頻繁に使用されるページを仮想記憶に置くことによって、アクセス速度を主記憶へのアクセスよりも速めることができる。
エ:プログラムの大きさに応じて大小のページを使い分けることによって、主記憶を無駄なく使用できる。
🔒 解説は解答すると表示されます
ページング方式の特徴【午前解説】
正解の理由
ページング方式の仮想記憶は、プログラムが必要とするページ(固定長のメモリブロック)を実行時に主記憶上の空きフレームへ動的に割り当てる仕組みです。このため主記憶を過不足なく効率的に使える利点があります。以上の性質を端的に示す選択肢が イ です。
補助記憶(ディスク等)はページの退避先(スワップ領域やページファイル)として使われ、ページの入れ替え(ページイン/ページアウト)を通じて仮想記憶を実現しますが、ページング自体を「システム復旧の手段」とみなすのは誤りです(後述参照)。
解法ステップ
- ページングの基本性質を整理する
- ページは固定長、主記憶はフレームに分割される。
- ページとフレームの対応は動的(オンデマンド)に行われる。
- ページの退避先は補助記憶(スワップ領域やページファイル)である。
- 各選択肢の文言と上記性質を照らし合わせる。
- 「動的に主記憶に割り当てる」→ ページングの本質に合致(正しい)。
- 「主記憶より速くする」「可変長ページ」などはページングの定義に反するか現実的でない点をチェック。
- 矛盾する点を指摘して唯一正しい選択肢を決定する。ここで該当するのが イ。
選択肢別の誤答解説
- ア: 「システムダウンから復旧するときに、補助記憶のページを用いることによって、主記憶の内容が再現できる。」
誤り。補助記憶はファイルやスワップ領域など永続的または半永続的な領域を含み、そこに保存されたデータは再起動後も利用できます。しかし、ページング機構そのものは主に実行時のメモリ管理(ページの入出力)を目的とし、システム復旧(クラッシュ後の状態復元)を保証する仕組みではありません。つまり「補助記憶があるために常に主記憶の内容が再現できる」とするのは誤解です。必要ならアプリケーションやOSが明示的にディスクへ書き出す(永続化)処理を行う必要があります。 - イ: 「処理に必要なページを動的に主記憶に割り当てることによって、主記憶を効率的に使用できる。」
正解。ページングは必要なページだけを主記憶に置き、残りは補助記憶に退避することで、主記憶の利用効率を高めます(オンデマンドページングや遅延割り当てなど)。 - ウ: 「頻繁に使用されるページを仮想記憶に置くことによって、アクセス速度を主記憶へのアクセスよりも速めることができる。」
誤り。仮想記憶はあくまでアドレス空間の概念であり、実際のアクセスは主記憶(RAM)や補助記憶(ディスク)で行われます。補助記憶は主記憶よりも遅いため、仮想領域(ディスク上)に置くことでアクセスが高速化することはありません。頻繁に使われるページは主記憶に残すべきで、そうしないとページフォールトが増え性能が低下します(スラッシング)。 - エ: 「プログラムの大きさに応じて大小のページを使い分けることによって、主記憶を無駄なく使用できる。」
誤り。ページングは一般に固定長のページを用いる方式です(ページサイズはシステムで決定)。プログラムの大小に応じて可変長の単位を使うのはセグメンテーションの考え方に近く、ページングの説明には当てはまりません。
よくある誤解
- 補助記憶=システム復旧手段と混同する
補助記憶は永続化やスワップの保存先になるが、ページングの仕組み自体がクラッシュから自動的にメモリ内容を復元するわけではありません。復元には明示的な保存処理やチェックポイント機構が必要です。 - 仮想記憶=高速化の手段と誤認する
仮想記憶はアドレス空間拡張とメモリ利用効率向上を目的としますが、補助記憶アクセスは遅いので「仮想記憶に置けば高速化する」は間違いです。頻繁アクセスは主記憶に残すべきです。 - ページとセグメントの混同
ページは固定長、セグメントは論理的な可変長単位。両者の違いを押さえないと選択肢の判定を誤ります。
補足コラム
- ページフォールトとスラッシング
ページが主記憶に存在しないとページフォールトが発生し、OSはディスクからページを読み込む処理を行います。ページフォールトが頻発するとCPU時間の大半が入出力待ちに回り、これをスラッシングと呼びます。 - ページテーブルとアドレス変換
仮想アドレスは一般に「ページ番号」と「オフセット」に分かれ、物理アドレスは対応するフレームの基底アドレスにオフセットを加えたものになります。式で表すと概念的に
です。多段ページングやTLB(Translation Lookaside Buffer)で高速化されます。 - ページサイズのトレードオフ
大きなページはページテーブルのエントリ数を減らし断片化を減少させる一方、内部断片化が増える。小さいページは細かい割り当てが可能だが管理オーバーヘッドが増える。
FAQ
Q: ページングとスワップの違いは何ですか?
A: ページングは仮想アドレスを固定長のページ単位で管理する方式の総称で、スワップ(スワップ領域/ページファイル)はページングで主記憶から退避したページを格納する補助記憶上の領域を指します。スワップはページングを支える実体の一つです。
A: ページングは仮想アドレスを固定長のページ単位で管理する方式の総称で、スワップ(スワップ領域/ページファイル)はページングで主記憶から退避したページを格納する補助記憶上の領域を指します。スワップはページングを支える実体の一つです。
Q: 再起動後に主記憶の内容が戻ることはありますか?
A: 基本的にRAMの内容は揮発性で再起動時には消失します。OSやアプリがディスクへ明示的に状態を保存していれば復元可能ですが、ページング機構そのものが自動で完全な「復旧」を保証するわけではありません。
A: 基本的にRAMの内容は揮発性で再起動時には消失します。OSやアプリがディスクへ明示的に状態を保存していれば復元可能ですが、ページング機構そのものが自動で完全な「復旧」を保証するわけではありません。
Q: ページングとセグメンテーション、どちらが優れている?
A: 用途による。ページングは実装が単純で外部断片化が少ない一方、セグメンテーションは論理的なプログラム構造(関数やデータ領域)に合わせた可変長割り当てが可能です。多くの現代OSでは両者を組み合わせた方式が使われることもあります。
A: 用途による。ページングは実装が単純で外部断片化が少ない一方、セグメンテーションは論理的なプログラム構造(関数やデータ領域)に合わせた可変長割り当てが可能です。多くの現代OSでは両者を組み合わせた方式が使われることもあります。
関連キーワード: 仮想記憶、ページング、スワップ、ページフォールト、ページテーブル、TLB、スラッシング、セグメンテーション

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

