---
title: "スラッシングとは？ページ交換で処理性能が低下する仕組み【基本情報技術者試験】"
description: "スラッシングを、仮想記憶でページイン・ページアウトが頻発し、CPUが本来の処理に使える時間が減って性能が急低下する現象として整理します。局所参照性、ワーキングセット、ページフォールトとの違いも科目Aの判断軸で解説します。"
last_modified_at: "2026-07-18"
canonical_url: "https://stemtazoo.github.io/fe/thrashing/"
section: "fe"
---

## まず結論

**スラッシングとは、仮想記憶でページ交換が頻発し、本来の処理よりもページイン・ページアウトに時間を使ってしまうため、性能が大きく低下する現象です。**

基本情報技術者試験では、次の組合せで判断します。

```text
多重度を上げる
＋
主記憶が不足する
＋
ページフォールトが急増する
＋
ページ交換ばかりになる
→ スラッシング
```

ページフォールトが1回発生しただけでは、スラッシングとは限りません。**ページ交換が繰り返され、本来の処理が進まない状態か**を確認します。

## 直感的な説明

机の上で複数の資料を使う場面を考えます。

机が十分に広ければ、よく使う資料を机に置いたまま作業できます。しかし、机が狭いのに多くの作業を同時に進めると、必要な資料を棚から出し、別の資料を棚へ戻す作業ばかりになります。

```text
資料を探す
↓
机に出す
↓
別の資料を棚へ戻す
↓
すぐまた必要になる
```

資料の入替えが続き、肝心の作業が進まない状態がスラッシングです。

## 定義・仕組み

仮想記憶方式では、プログラムを一定の大きさの**ページ**に分け、必要なページだけを主記憶へ読み込みます。

- 補助記憶装置から主記憶へ読み込む：**ページイン**
- 主記憶から補助記憶装置へ追い出す：**ページアウト**
- 必要なページが主記憶にない：**ページフォールト**

ページフォールト自体は、仮想記憶では通常起こり得ます。問題は、短い間隔で何度も発生することです。

```text
多重度が上がる
↓
各プログラムへ割り当てられる主記憶が減る
↓
必要なページを保持できない
↓
ページフォールトが増える
↓
ページ交換が頻発する
↓
応答時間が長くなり、スループットが低下する
```

### 局所参照性

プログラムは一般に、直前に使った命令やデータ、その周辺を繰り返し使う傾向があります。これを**局所参照性**といいます。

よく使うページを主記憶に残せれば、ページフォールトは減ります。反対に、それらを保持できないほど主記憶が不足すると、ページ交換が増えます。

### ワーキングセット

ある時間帯に、プログラムが頻繁に使うページの集合を**ワーキングセット**と考えます。

各プログラムのワーキングセットを主記憶に置けない状態になると、追い出したページをすぐ読み戻すようになり、スラッシングが起こりやすくなります。

### ページ置換方式との関係

LRUなどのページ置換方式は、どのページを追い出すかを決めます。適切な方式はページフォールトを減らす助けになります。

ただし、主記憶そのものが極端に不足している場合は、置換方式だけで解決できないことがあります。

## 科目Aでどう出る？

スラッシングを示す主な表現は次のとおりです。

- 仮想記憶方式
- 多重度を上げた
- ページフォールトが急増した
- ページイン・ページアウトが多発した
- CPU利用率やスループットが低下した
- 応答時間が急激に長くなった

判断するときは、次の順番で確認します。

```text
1. 仮想記憶の話か
2. ページ交換が多発しているか
3. その結果、性能が急低下しているか
```

単に「処理が遅い」「CPU使用率が高い」だけなら、スラッシングとは決められません。

## どんな場面で使う？

スラッシングは、次のような場面で問題になります。

- メモリの少ないPCで多くのアプリを同時実行する
- サーバで多くのプロセスを動かす
- 仮想マシンへ十分なメモリを割り当てていない
- 多重度を上げすぎる

主な対策は次のとおりです。

- 同時実行するプログラム数を減らす
- 各プログラムへ割り当てる主記憶を増やす
- 物理メモリを増設する
- ページ置換方式やメモリ割当てを見直す

多重度を上げると、最初はCPUを有効利用でき、スループットが上がることがあります。しかし、主記憶の限界を超えるとページ交換が急増し、逆にスループットが低下します。

## よくある誤解・混同

### ページフォールトが発生したら、すべてスラッシング

誤りです。

ページフォールトは、必要なページが主記憶にないときに起こる通常の処理です。スラッシングは、**ページフォールトとページ交換が頻発し、性能が大幅に低下する状態**です。

### CPU負荷が高い状態と同じ

同じではありません。

- CPU負荷が高い：計算処理を多く実行している可能性がある
- スラッシング：ページ交換の待ち時間が増え、本来の処理が進まない

### メモリリークと同じ

メモリリークは、不要になったメモリが解放されず、使用量が増え続ける問題です。メモリリークが主記憶不足を招き、結果としてスラッシングにつながることはありますが、同じ現象ではありません。

### オーバーレイとの違い

- スラッシング：ページ交換の頻発による性能低下
- オーバーレイ：プログラムを分割し、必要な部分だけを読み込む方式

### メモリコンパクションとの違い

- スラッシング：ページ交換が多発する
- メモリコンパクション：分散した空き領域を一つにまとめる

## まとめ（試験直前用）

- スラッシングは、ページ交換が頻発して性能が大きく低下する現象
- ページフォールトが1回起きただけではスラッシングではない
- 多重度を上げすぎると、各プログラムのワーキングセットを保持できなくなる
- 局所参照性を生かせず、追い出したページをすぐ読み戻す状態になる
- ページ交換の多発と急激な性能低下がそろったらスラッシング
