スラッシング(Thrashing)は、仮想記憶を使うシステムで「処理が重くなる原因」として基本情報・応用情報の午前問題に繰り返し登場する定番テーマです。
対象試験と出題頻度
スラッシングは、基本情報技術者・応用情報技術者で出題されるテーマです。
OS(オペレーティングシステム)の記憶管理に関する問題として定番化しており、「フラグメンテーション」「ページフォールト」「スワッピング」との違いを正確に区別できるかが問われます。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
スラッシングの定義
情報処理試験を勉強していると、「スラッシングって結局何が起きてるの?ページングとどう違うの?」と混乱しがちです。
スラッシング(Thrashing)とは、一言で言うと
「仮想記憶でページの入れ替えが多発し、CPU使用率が急落してシステム全体の処理能力が著しく低下する現象」
のことです。
イメージとしては、「狭いキッチンで大量注文をさばく料理人」です。
調理台(主記憶)が狭いのに注文(プログラム)が押し寄せると、食材を冷蔵庫(補助記憶)からの出し入れだけで手一杯になり、肝心の調理(CPU処理)がまったく進みません。
この「出し入れに忙殺されて本業が止まる」状態がスラッシングです。
📊 スラッシングの基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Thrashing |
| 分野 | 仮想記憶管理(ページング方式) |
| 発生条件 | 主記憶の空きが不足した状態で、プログラムの多重度が高い |
| 結果 | ページイン・ページアウトのオーバーヘッドが増大し、CPU使用率が急落する |
解説
仮想記憶は、主記憶の容量を超えるプログラムを動かすために補助記憶の一部を主記憶の延長として使う技術です。ページング方式では、プログラムを「ページ」という固定長の単位に分割し、必要なページだけを主記憶に読み込みます。
この仕組みのおかげで限られた主記憶でも複数のプログラムを並行実行できますが、同時に動かすプログラム数(多重度)を上げすぎると破綻します。
各プログラムに割り当てられる主記憶のページ枠が減り、必要なページが主記憶にない「ページフォールト」が頻発するためです。
多重度とCPU使用率の関係
多重度を上げるとCPU使用率は上昇しますが、ある地点を境に急激に下がります。
この急落ポイントがスラッシングの発生点です。以下のグラフでイメージをつかんでください。
多重度とCPU使用率の関係
| 多重度 | CPU使用率 | CPU使用率のイメージ | 状態 |
|---|---|---|---|
| 少ない | 30% | 余裕あり | |
| やや少ない | 60% | 正常 | |
| やや多い | 85% | 効率的 | |
| 適正値 | 95% | 🔴 最適点 | |
| 多い | 65% | 低下開始 | |
| かなり多い | 35% | 急落 | |
| 過剰 | 10% | スラッシング |
▲ 最適点を超えて多重度を上げると、ページ置換えのオーバーヘッドでCPU使用率が急落する
発生メカニズムの流れ
スラッシングがどのような手順で起きるのかを時系列で整理します。
主記憶割当てが減少
(ディスクI/O待ちが増大)
→ CPU使用率が急落
= スラッシング
対策
スラッシングを防ぐ方法は大きく3つあります。
| 対策 | 内容 |
|---|---|
| 主記憶の増設 | 物理メモリを追加し、各プログラムに十分なページ枠を確保する。最も直接的な対処法 |
| 多重度の制限 | 同時に実行するプログラム数を減らし、1つあたりの使用可能ページ枠を増やす |
| ページ置換アルゴリズムの改善 | LRU(最も長い間未使用のページを追い出す)などの効率的なアルゴリズムを採用し、不要なページ入替えを減らす |
混同しやすい用語との比較
スラッシングは、記憶管理に関する他の用語と混同されやすいため、ここで整理します。
| 用語 | 意味 | スラッシングとの違い |
|---|---|---|
| ページング | 仮想記憶をページ単位で管理する方式そのもの | ページングは「仕組み」であり、スラッシングはその仕組みが破綻した「結果の現象」 |
| ページフォールト | 要求ページが主記憶にないときに発生する割込み | ページフォールトの頻発がスラッシングの「原因」 |
| スワッピング | 長時間待ちのプログラムを丸ごと補助記憶に退避する操作 | スワッピングはプログラム単位の退避で、ページ単位の入替えとは粒度が異なる |
| フラグメンテーション | 記憶領域に未使用の断片が散らばる現象 | 領域の「断片化」であり、ページ置換えの多発とは無関係 |
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 スラッシングの核心を3行で
・仮想記憶でページ入替えが多発し、CPU使用率が急落する現象
・原因は「主記憶不足 × 多重度の上げすぎ」によるページフォールトの頻発
・対策は主記憶の増設、多重度の制限、ページ置換アルゴリズムの改善
試験ではこう出る!
スラッシングはFE・APの午前問題で定期的に出題されています。出題パターンは「現象の名称を選ばせる」形式がほぼ全てで、問題文のバリエーションだけが変わる構造です。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| AP R6秋 午前 問17 |
ページ置換え頻度が高くなり処理能力が急落する現象の名称を問う | ・正解は「スラッシング」 ・スワップアウト、フラグメンテーション、ページフォールトがひっかけ |
| FE H28秋 午前 問17 |
多重度増加でオーバーヘッドが増え、CPU使用率が減少する状態の名称を問う | ・正解は「スラッシング」 ・フラグメンテーション、ページング、ボトルネックがひっかけ |
| FE H27春 午前 問18 |
多重度を増やした結果、ページイン・ページアウトが多発し応答速度が急低下する現象の名称を問う | ・正解は「スラッシング」 ・オーバーレイ、メモリコンパクション、ロールアウトがひっかけ |
| FE H22秋 午前 問21 |
実記憶が小さいとページイン・ページアウトが頻発し処理能力が低下する現象の名称を問う | ・正解は「スラッシング」 ・スワッピング、フラグメンテーション、メモリリークがひっかけ |
📝 ひっかけパターンと対策
唯一の出題パターン:「この現象は何?」
問題文に「ページ置換えが多発」「CPU使用率が低下」「処理能力が急激に下がる」というキーワードが含まれていれば、答えはスラッシングです。ここだけは確実に押さえてください。
頻出のひっかけ選択肢:
「フラグメンテーション」は記憶領域の断片化であり、ページ置換えとは無関係。「スワッピング」はプログラム単位の退避操作であり、現象名ではない。「ページフォールト」は割込みの一種で、スラッシングの原因にはなるが現象そのものではない。
試験ではここまででOKです。ページ置換アルゴリズム(LRU、FIFO等)の詳細まで問われることはこの用語の問題ではないため、深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. 仮想記憶システムにおいて、主記憶の容量が十分でない状態で多重度を上げた結果、ページイン・ページアウトが多発しCPU使用率が極端に低下する現象はどれか。
- A. スラッシング — ページ置換えの多発によりシステムのオーバーヘッドが増大し、CPUが本来の処理に使われなくなる現象。
- B. フラグメンテーション — 記憶領域の割当てと解放を繰り返すことで未使用領域が断片化し、連続した領域を確保しにくくなる現象。
- C. スワッピング — 長時間待ち状態のプログラムを補助記憶に退避し、他のプログラムに主記憶を明け渡す操作。
正解と解説を見る
正解:A
解説:
スラッシングは、仮想記憶でページ置換え処理が多発し、CPUがディスクI/O待ちに占有されてアプリケーション処理が進まなくなる現象です。問題文の「多重度を上げた結果、ページイン・ページアウトが多発しCPU使用率が急落」がそのまま該当します。
選択肢Bのフラグメンテーションは記憶領域の断片化であり、ページ置換えの頻発とは関係ありません。選択肢Cのスワッピングはプログラム全体を補助記憶に退避する操作であり、「現象」ではなくOSが行う「制御動作」です。
よくある質問(FAQ)
Q. スラッシングが起きているかどうかは、実務でどう判断しますか?
OSのパフォーマンスモニタでページフォールト率(ページ/秒)とCPU使用率を同時に監視します。ページフォールト率が急上昇しているにもかかわらずCPU使用率が下がっている場合は、スラッシングが発生していると判断できます。Linuxなら vmstat コマンドの「si(swap in)」「so(swap out)」列が高い値を示し続けていることが目安になります。
Q. メモリリークとスラッシングは何が違いますか?
メモリリークは、プログラムが確保したメモリを解放し忘れることで使用可能な主記憶が徐々に減っていくバグです。一方、スラッシングは主記憶の物理的な不足や多重度の過剰が原因で起きる「システム全体の性能低下現象」です。メモリリークが蓄積した結果として主記憶が不足し、スラッシングを引き起こすケースもあるため、因果関係としてはメモリリークが「遠因」、スラッシングが「結果」の関係になります。
Q. ワーキングセットとは何ですか?スラッシングとの関係を教えてください。
ワーキングセットとは、ある時点でプログラムが実際に参照しているページの集合のことです。デニング(Peter Denning)が1968年に提唱した概念で、各プログラムのワーキングセットを主記憶上に確保できていればページフォールトは抑えられます。逆に、主記憶がワーキングセットの総量を下回ると、ページ置換えが一気に増えてスラッシングに陥ります。IPA試験の範囲では「ワーキングセット」という用語自体はほぼ出題されないため、参考知識として押さえておけば十分です。
Q. SSDを使えばスラッシングは起きなくなりますか?
起きにくくはなりますが、完全には防げません。SSDはHDDと比べてランダムアクセスが圧倒的に速いため、ページイン・ページアウトの1回あたりの所要時間は大幅に短縮されます。ただし、ページ置換えの回数自体が減るわけではないため、極端に主記憶が不足すれば処理能力の低下は発生します。根本的な解決策はあくまで主記憶の増設か多重度の制限です。