【システム構成】メモリ不足でCPUがサボる?恐怖の「スラッシング」|情報処理問題1000本ノック
仮想記憶は便利な仕組みですが、物理メモリが限界を迎えると、システム全体の動きがカクつく致命的な状態に陥ります。そのメカニズムを攻略しましょう。
1. 【 問題 】:仮想記憶システムの管理現象
【 問題 】 仮想記憶システムにおいて、主記憶(実記憶)の容量が不十分なために、ページインおよびページアウト(データの入れ替え処理)が頻発し、プロセッサ(CPU)の処理時間の大部分がこの入れ替え処理に費やされ、結果としてアプリケーションの処理効率やCPU使用率が著しく減少する現象はどれでしょうか?
(ア)デフラグ
(イ)スラッシング
(ウ)セグメンテーション
(エ)オーバーフロー
2. 正解:
正解: (イ)スラッシング(Thrashing)
3. 解説:片付けに追われて仕事が進まないCPU
仮想記憶は、実記憶(本物のメモリ)に入り切らないデータを、ハードディスクやSSDなどの「補助記憶(スワップ領域)」に一時的に退避させることで、実際のメモリ以上の大きなプログラムを動かす技術です。
1. 物理メモリの容量が全然足りない状態で、たくさんのアプリを動かそうとします。
2. CPUが「次のデータを読もう」としたら、メモリにないので補助記憶から読み込む(ページイン)必要があります。
3. しかしメモリが満杯なので、今あるデータをどれか補助記憶へ追い出す(ページアウト)しかありません。
4. この「データの出し入れ」は、CPUの計算スピードに比べて圧倒的に遅い(ディスクアクセスの壁)です。
5. 結果として、CPUは「アプリの計算」をする暇がなくなり、データの出し入れの待ち時間ばかりが増えてサボる形になり、CPU使用率がガクンと下がります。これがスラッシングです。
★ (ア)デフラグ:ハードディスクなどの断片化(バラバラに記録された状態)を綺麗に並べ直して、読み込みを速くする最適化操作です。
★ (ウ)セグメンテーション:仮想記憶において、データを「プログラムの意味のあるまとまり(可変長)」ごとに区切って管理する方式です(固定長で区切る方式はページング方式)。
★ (エ)オーバーフロー:計算結果が、あらかじめ用意された変数の型や桁数の上限を超えてしまい、正しく表現できなくなる現象(桁あふれ)です。
1. 理解のコツ: 「狭すぎる勉強机」をイメージしてください。机(実記憶)が狭すぎて教科書が1冊しか置けません。数学の問題を1問解くたびに、数学の教科書をカバン(補助記憶)に片付けて、次は英語の教科書をカバンから引っ張り出して……という作業を毎回やっていたら、「勉強している時間」よりも「教科書を出し入れしている時間」のほうが遥かに長くなってしまいますよね。この、出し入れでパニックになっている状態がスラッシングです。
2. 試験対策の視点: 「実記憶(主記憶)の容量が不十分」「データの入れ替えが頻発(多発)」「プロセッサ(CPU)の使用率が減少(低下)」という3つの条件が揃ったら100%スラッシングです。根本的な解決策は「物理メモリを増設する」か「同時に立ち上げるアプリを減らす」ことになります。
4. まとめ
「メモリ不足が原因で、データの入れ替え処理ばかりに追われてシステムがほぼフリーズしてしまう現象」。これがスラッシングです。実務でも、古いPCで重い作業をしたときにハードディスクのアクセスランプが点っぱなしになり、マウスカーソルすら動かなくなるあの現象の正体が、まさにこのスラッシングです。