基本情報技術者 2012年 春期 午前(科目A) 問21
問題文
仮想記憶システムにおいて主記憶の容量が十分でない場合、プログラムの多重度を増加させるとシステムのオーバヘッドが増加し、アプリケーションのプロセッサ使用率が減少する状態を表すものはどれか。
選択肢
ア:スラッシング(正解)
イ:フラグメンテーション
ウ:ページング
エ:ボトルネック
🔒 解説は解答すると表示されます
スラッシング現象【午前解説】
正解の理由
正解は ア の「スラッシング」です。
スラッシング(thrashing)は、プロセスが必要とするページ数に対して主記憶が不足し、ページフォルトが頻発してページイン/ページアウトに時間を取られ、結果として CPU の有効な処理が著しく減少する現象を指します。問題文で述べる「主記憶の容量が十分でない」「多重度を増加させる」「オーバヘッドが増加しプロセッサ使用率が減少する」という状況はスラッシングの典型的な記述です。
スラッシング(thrashing)は、プロセスが必要とするページ数に対して主記憶が不足し、ページフォルトが頻発してページイン/ページアウトに時間を取られ、結果として CPU の有効な処理が著しく減少する現象を指します。問題文で述べる「主記憶の容量が十分でない」「多重度を増加させる」「オーバヘッドが増加しプロセッサ使用率が減少する」という状況はスラッシングの典型的な記述です。
解法ステップ
- 問題文からキーワードを抽出する:「主記憶の容量が十分でない」「多重度を増加」「オーバヘッドが増加」「プロセッサ使用率が減少」。
- 各選択肢の定義を即座に思い出す:スラッシング、フラグメンテーション、ページング、ボトルネック。
- キーワードと定義を突き合わせ、ページフォルトの頻発による CPU 利用率低下を直接説明するものを選ぶ。
- 残りの選択肢は範囲や影響が異なるため逐次除外する(ページングは機能、フラグメンテーションは空間の無駄、ボトルネックは一般論)。
選択肢別の誤答解説
- ア: スラッシング — 正解。主記憶不足でページ置換が頻発し CPU がページフォルト処理に占有される現象。
- イ: フラグメンテーション — 誤り。主にメモリ割当の断片化(内部・外部)による空間の無駄を指し、ページフォルト頻発による CPU 低下とは異なる問題です。
- ウ: ページング — 誤り。仮想記憶管理手法の一つで、ページ単位で主記憶と補助記憶をやり取りする仕組み。ページング自体は設計された機能であり、必ずしも CPU 利用率の低下を意味しません。
- エ: ボトルネック — 誤り。性能低下を引き起こす要因全般を指す一般用語で、本問のようにページフォルトの急増で CPU 利用率が下がる特定現象を特定していません。
よくある誤解
- 「ページング=スラッシング」と混同する誤解:ページングは仮想記憶の機能で、必ずしもスラッシングを伴いません。ページングは正常動作、スラッシングは性能劣化です。
- 「フラグメンテーションで CPU 利用率が下がる」と考える誤り:フラグメンテーションは主にメモリ割当の無駄(連続領域不足)であり、CPU 使用率低下の直接原因ではありません。
- 「ボトルネックなら同じ」とする誤解:ボトルネックは性能低下の一般用語で、問題文の特定の原因(ページフォルト頻発)を示していない点が異なります。
補足コラム
スラッシング対策としては代表的に以下があります。
- ワーキングセット管理:各プロセスの「現在必要なページ集合(ワーキングセット)」を維持し、それを下回る場合は新規プロセスの実行を抑える(負荷制御)。
- ページ置換アルゴリズムの改善:LRU や近似 LRU(CLOCK など)で実際の参照局所性を考慮して置換を減らす。
- 主記憶の増設やページサイズ調整:物理メモリ増強でページフォルトを削減。ページサイズ変更はトレードオフあり。
- スワップ/ロード制御:多重度(同時実行プロセス数)を管理して、同時にメモリ競合しないようにする。
歴史的には Denning のワーキングセット理論がスラッシングの理解に大きく貢献しています。
FAQ
Q1: ページングとスラッシングはどう違いますか?
A1: ページングは仮想記憶の機構(ページ単位で管理・入出力)で、スラッシングはその結果としてページフォルトが過剰に起きてシステム性能が落ちる現象です。
A1: ページングは仮想記憶の機構(ページ単位で管理・入出力)で、スラッシングはその結果としてページフォルトが過剰に起きてシステム性能が落ちる現象です。
Q2: スラッシングの診断方法は?
A2: CPU 利用率が低く I/O(ディスク)待ちやページフォルト率が極端に高い場合に疑います。vmstat や sar、perf 等でページフォルト・ディスク I/O を監視します。
A2: CPU 利用率が低く I/O(ディスク)待ちやページフォルト率が極端に高い場合に疑います。vmstat や sar、perf 等でページフォルト・ディスク I/O を監視します。
Q3: フラグメンテーションはスラッシングを引き起こすか?
A3: 直接的には異なりますが、極端な断片化で適切なページ配置が困難になれば間接的にオーバーヘッド増大を招くことはあり得ます。
A3: 直接的には異なりますが、極端な断片化で適切なページ配置が困難になれば間接的にオーバーヘッド増大を招くことはあり得ます。
Q4: スラッシングを一時的に止める簡単な方法は?
A4: 多重度を減らして同時実行プロセス数を抑えるか、メモリ使用の高いプロセスを一時停止または優先度を下げると短期的に改善します。
A4: 多重度を減らして同時実行プロセス数を抑えるか、メモリ使用の高いプロセスを一時停止または優先度を下げると短期的に改善します。
関連キーワード: 仮想記憶、スラッシング、ページフォルト、ワーキングセット、ページ置換、主記憶、スワップ、ページング、LRU、負荷制御

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

