スワップ・スラッシングとは?メモリが足りないとき一部をディスクへ一時的に逃がすしくみ

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

スワップ・スラッシングとは(全体像)

メモリ(物理メモリ)が足りなくなったとき、OSは今すぐ使わないデータをディスクへ一時的に逃がして空きを作る。これがスワップだ。

身近にたとえると、机の上(メモリ)と引き出し(ディスク)の関係。机が狭くなったら、当面使わない書類を引き出しにしまって作業スペースを空ける——これがスワップアウト。また使うときに引き出しから出すのがスワップイン。

ただし、引き出しの出し入れは机に置くより時間がかかる。これが頻発すると、出し入ればかりで仕事が進まなくなる。この状態がスラッシングだ。

押さえるのは、スワップはあくまで緊急避難で、ディスク経由なので遅いということ。


詳しく:スワップの動きとスラッシングだけ覚えれば戦える

ここが記事の心臓部。まずスワップの2つの動きを見ましょう。

スワップの2つの動き

動き意味
スワップアウト使っていないデータをメモリからディスクへ逃がす
スワップイン必要になったデータをディスクからメモリへ戻す

ここで一番のひっかけが「スワップは高速」という誤解。スワップはディスクを使うので、メモリより桁違いに遅い。だから多用すると性能が落ちる。

次に、それが行きすぎた状態がスラッシング

スラッシングのしくみ

段階起きること
① メモリ不足データをディスクへ逃がし始める(スワップアウト)
② すぐ必要に逃がしたデータをまた戻す(スワップイン)
③ 悪循環出し入ればかりでCPUが待たされ、全体が急に重くなる

これを防ぐ考え方がワーキングセット。プロセスが今よく使うデータのまとまりのことで、これが物理メモリに収まっている間は快適。収まらなくなった瞬間にスラッシングが起きる。

スラッシングはバグではなく、メモリ不足という資源の問題。だから根本対策はメモリの増設。ほかに、不要なプロセスを止める、メモリリークを直す、といった対処がある。

わかりやすく言い換えると

要するに、机と引き出しでイメージするとラクです。

スワップアウト … 当面使わない書類を引き出しにしまう(机を空ける)

スワップイン … また使う書類を引き出しから出す

スラッシング … 机が狭すぎて、出し入ればかりで仕事が進まない状態

つまり、「スワップは遅い緊急避難」「出し入れ地獄がスラッシング」、この2点が試験の急所です。


試験のツボ

🔴 一番出る:スワップアウトとスワップイン

①スワップアウト=メモリからディスクへ逃がす

②スワップイン=ディスクからメモリへ戻す

🔴 次に出る:スラッシング

①スワップが過度に頻発して性能が急落する状態

②原因はメモリ不足(バグではない)・根本対策はメモリ増設

🟡 押さえると安定:スワップの速さとワーキングセット

①スワップはディスク経由なのでメモリより桁違いに遅い

②ワーキングセット(今よく使うデータ)がメモリに収まれば快適


よくある間違い

「スワップは高速だから多用してよい」→ ✗  スワップはディスク経由でメモリより桁違いに遅い。多用は性能低下を招く。

「スラッシングはプログラムのバグである」→ ✗  原因はメモリ不足という資源の問題。根本対策はメモリ増設。

「スワップアウトはディスクからメモリへ戻すことである」→ ✗  逆。逃がすのがスワップアウト、戻すのがスワップイン。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(スワップアウトとスワップイン)

📝 オリジナル問題 1 スワップアウトとスワップイン

スワップに関する次の記述のうち、正しいものはどれか。

  1. スワップアウトもスワップインも、どちらもメモリからCPUへ命令を送る操作のことだとされている
  2. スワップアウトは画面を消すこと、スワップインは画面を点けることだとされているものである
  3. スワップアウトはメモリからディスクへ逃がし、スワップインはディスクからメモリへ戻すことだ
  4. スワップアウトはデータを完全に削除することで、二度と戻せないものだとされているものである
テクマスター
テクマスター 解答・解説

解答は 3 ですよ。

スワップアウトは、使っていないデータをメモリからディスクへ逃がすことスワップインは、必要になったデータをディスクからメモリへ戻すことですね。逃がす・戻すの方向をセットで押さえましょう。

選択肢1の「CPUへ命令」、選択肢2の「画面の消灯・点灯」、選択肢4の「完全に削除」はどれも誤りですよ。

選択肢判定理由
1CPUへの命令送信ではない
2画面の操作ではない
3アウトは逃がす・インは戻す
4削除ではなく一時退避

オリジナル問題2(スラッシング)

📝 オリジナル問題 2 スラッシング

スラッシングに関する次の記述のうち、正しいものはどれか。

  1. スラッシングはスワップが過度に頻発し、ディスクの出し入れ待ちで性能が急落する状態である
  2. スラッシングはメモリが余っているときに必ず起きる、メモリ過剰の症状だとされているものだ
  3. スラッシングはプログラムのバグが原因で、コードを直せば必ず消える現象だとされているものだ
  4. スラッシングは処理がいつもより速くなる状態のことで、歓迎すべきものだとされているものである
テクマスター
テクマスター 解答・解説

解答は 1 ですよ。

スラッシングは、スワップが過度に頻発して、ディスクの出し入れ待ちで性能が急落する状態ですね。原因はメモリ不足という資源の問題なので、根本対策はメモリの増設です。

選択肢2の「メモリ過剰」、選択肢3の「バグが原因」、選択肢4の「速くなる」はどれも誤りですよ。

選択肢判定理由
1過度なスワップで性能が急落する
2メモリ不足で起きる
3バグではなく資源不足
4速くならず急落する

オリジナル問題3(スワップの速さ)

📝 オリジナル問題 3 スワップの速さ

スワップの速さに関する次の記述のうち、正しいものはどれか。

  1. スワップはメモリより高速なので、できるだけ多く使うのがよいものだとされているものである
  2. スワップはディスクを使うため、メモリより桁違いに遅く、多用すると性能が落ちるものである
  3. スワップはメモリとまったく同じ速さで、使っても性能には影響しないものだとされている
  4. スワップは音を鳴らす機能のことで、メモリの速さとは関係がないものだとされているものだ
テクマスター
テクマスター 解答・解説

解答は 2 ですよ。

スワップはディスクを使うので、メモリより桁違いに遅いですね。だからスワップはあくまで緊急避難で、多用すると性能が落ちます。

選択肢1の「高速だから多用」、選択肢3の「メモリと同じ速さ」、選択肢4の「音を鳴らす機能」はどれも誤りですよ。

選択肢判定理由
1速くないので多用は不可
2ディスク経由でメモリより遅い
3メモリと同じ速さではない
4音を鳴らす機能ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る