平成26年度 秋期16テクノロジ系

基本情報 平成26年度 秋期 問16:テクノロジ系に関する問題

ページング方式の仮想記憶を用いることによる効果はどれか。

  • aシステムダウンから復旧するときに, 補助記憶のページを用いることによって, 主記憶の内容が再現できる。
  • b処理に必要なページを動的に主記憶に割り当てることによって, 主記憶を効率的 に使用できる。正答
  • c頻繁に使用されるページを仮想記憶に置くことによって, アクセス速度を主記億 へのアクセスよりやも速めることができる。
  • dプログラムの大きさに応じて大小のページを使い分けることによって, 主記憶を 無駄なく使用できる。
正答:B処理に必要なページを動的に主記憶に割り当てることによって, 主記憶を効率的 に使用できる。

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは b です。

「ページング方式の仮想記憶」とは、プログラムをページ(小さなブロック)に分けて、必要な分だけ主記憶(メモリ)に読み込む仕組み

例えば「100ページの本を全部広げず、今読んでいる1ページだけ机に置く」イメージ。これで小さな机(メモリ)でも大きな本(プログラム)が扱える=メモリを効率的に使える

👉 覚え方:「ページング=必要な分だけ読込み、メモリ節約」。

ほかの選択肢:a 復旧の話/c 仮想記憶は主記憶より遅い/d ページサイズは固定が一般的。

標準試験対策の基準レベル

なぜこれが正解か

正解は b。ページング方式の仮想記憶は、論理アドレス空間(仮想空間)をページ(通常4KB等の固定サイズ)に分割し、必要なページのみを物理的な主記憶に動的に割り当てる仕組み。これにより、主記憶容量を超えるプログラムも実行可能(補助記憶を仮想的なメモリとして利用)であり、また実行に必要なページのみメモリに置くため主記憶を効率的に使用できる。

各選択肢の解説

  • a「システムダウン復旧時に補助記憶のページで主記憶内容を再現」:チェックポイント/復旧の話で仮想記憶の主目的ではない。
  • b 必要なページを動的に主記憶に割当て効率的使用:ページング方式の主目的(正解)。
  • c「仮想記憶を頻繁ページ用にして主記憶より速く」:仮想記憶(補助記憶)は主記憶より遅いため誤り。
  • d「ページサイズを大小使い分け」:通常はページサイズ固定(4KB等)。

覚え方・ひっかけ注意

「仮想記憶=必要部分だけ主記憶に展開、不要部分は補助記憶に退避」。「ページイン/ページアウト」がこの入替え動作。頻繁なページ入替えで性能が劣化する現象がスラッシング(Thrashing)。CPUが実アドレスを生成する際はMMU(Memory Management Unit)ページテーブルを参照して論理→物理変換、高速化のためTLB(Translation Lookaside Buffer)でキャッシュする。

上級誤答論破・背景理論まで深掘り

理論的背景

仮想記憶(Virtual Memory)はFotheringham(1961、Atlas計算機)が考案、現代OSの中核機能。論理アドレス空間と物理アドレス空間を分離し、MMU(Memory Management Unit)がアドレス変換を担当。

ページング方式(Paging)は固定サイズページ(典型的に4KB、最近は2MB/1GBのHugePages/SuperPagesも)に分割。セグメント方式(Segmentation)は論理的単位(コード/データ/スタック等)で可変サイズ分割。現代OSはページング主体+セグメント補助(x86_64ではセグメンテーション機能はほぼ無視)。

アドレス変換: 論理アドレス = ページ番号 + ページ内オフセット → ページテーブル参照 → 物理アドレス = フレーム番号 + オフセット。多段ページテーブル(x86_64は4-5段)で巨大アドレス空間を効率的に管理。TLBがアドレス変換キャッシュ。

ページ置換アルゴリズム:

  • FIFO(First In First Out): 最古ページ追い出し、ベラディ異常(メモリ増加で性能低下)あり
  • LRU(Least Recently Used): 最近使われていないページ追い出し、近似実装(Clockアルゴリズム)
  • LFU(Least Frequently Used): 使用頻度最少を追い出し
  • 最適ページ置換(OPT): 将来最も遅く使われるページ追い出し、理論最適だが実装不可

実務での使われ方

Linuxメモリ管理:

  • Page Cache: ファイルI/Oをページ単位でキャッシュ、利用可能メモリの大部分を使用
  • Buddy System: 物理メモリ割当ての主要アルゴリズム
  • Slab Allocator: カーネルオブジェクト用の細粒度割当
  • Swap領域: ページアウト先の永続記憶領域
  • OOM Killer: メモリ枯渇時に犠牲プロセスを選択して終了

性能チューニング:

  • HugePages: 2MB/1GBの大ページでTLB効率向上(データベース・JVM等で有効)
  • NUMA awareness: マルチソケット環境でローカルノードメモリ優先割当
  • メモリオーバコミット: vm.overcommit_memory設定で過大割当許容
  • スワップ抑制: vm.swappiness=10程度に下げてスワップ最小化

スラッシング(Thrashing): ワーキングセット(活発に使用される頁集合)が主記憶容量を超えるとページ置換が頻発し、CPU利用率の大半がメモリ管理に費やされる。負荷管理(プロセス数制限、メモリ追加、メモリ最適化)で回避。

試験での位置づけ

FE/AP/ES/SAのテクノロジ系(OS、メモリ管理)で頻出。①仮想記憶の仕組み、②ページング/セグメンテーション、③ページ置換アルゴリズム、④TLB、⑤スラッシング、⑥仮想化技術(VMM、ハイパーバイザ、コンテナ)、が主要論点。

選択肢の発展補足

仮想化技術: 仮想記憶の概念を拡張し、OS全体を仮想化(VM)。Type 1(Bare-metal: VMware ESXi、Microsoft Hyper-V、KVM)/Type 2(Host OS上: VMware Workstation、VirtualBox)に分類。物理メモリの仮想化はシャドウページテーブルまたはEPT/NPT(ハードウェア支援)で効率的に実現。

コンテナ: VMより軽量で、OSカーネルを共有しnamespaceでリソース分離。Docker/containerd/Kubernetes等で標準化。メモリはcgroupsで制限・分離。

メモリ階層拡張:

  • CXL(Compute Express Link)メモリ: 分散メモリプール、ホットプラグ対応
  • 永続メモリ(PMEM、Intel Optane DC PMEM): DRAMライクアクセス+不揮発、データベースの新メモリ階層
  • GPU仮想記憶(CUDA Unified Memory): CPUとGPUのアドレス空間統合

生成AI時代の巨大モデル(GPT-4、Claude、Gemini等)は数百GB-TB規模パラメータを持ち、モデル並列・パイプライン並列・ZeRO・FlashAttention等の高度メモリ管理技法でGPUクラスタにフィット。これは古典的仮想記憶概念のAI/HPC領域への拡張で、メモリ管理理論の最前線。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成26年度 秋期16/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。