今回のテーマは、「仮想記憶方式のコンピュータシステム」である。
令和8年度 基本情報技術者試験 科目 A 公開問題
問5 仮想記憶方式のコンピュータシステムにおいて,処理の多重度を増やしたところ,ページイン,ページアウトが多発して,システムの応答速度が急激に遅くなった。このような現象を何というか。
ア オーバレイ
イ スラッシング
ウ メモリコンパクション
エ ロールアウト
答えを確認する
正解は イ です。
【前提知識】
・ オーバレイ
・ スラッシング
・ メモリコンパクション
・ ロールアウト
仮想記憶方式のコンピュータシステムでは、主記憶装置(メモリ)よりも大きなプログラムを実行できる仕組みが用意されている。
しかし、同時に実行するプログラムの数を増やしすぎると、ページインやページアウトが頻繁に発生し、システムの応答速度が急激に低下することがある。
このような現象を「スラッシング(Thrashing)」という。
今回は、この問題を例にして、スラッシングについて分かりやすく解説しよう。
まず「仮想記憶」とは?
スラッシングを理解するには、まず仮想記憶の仕組みを知っておく必要がある。
コンピュータには、プログラムを実行するための主記憶(メモリ)がある。
しかし、主記憶の容量には限りがある。
そこで仮想記憶では、主記憶だけでは入りきらないプログラムやデータの一部を、補助記憶装置(SSDやHDDなど)に一時的に置いておくことで、実際の主記憶容量よりも大きな記憶領域を扱えるようにしている。
イメージとしては、
主記憶(メモリ) ⇔ 補助記憶装置(SSD・HDD)
の間で、必要なデータを入れ替えながら処理する仕組みである。
「ページイン」と「ページアウト」とは?
仮想記憶では、プログラムやデータを「ページ」という単位に分けて管理する。
必要なページが主記憶にない場合は、補助記憶装置から主記憶へ読み込む。
これをページインという。
一方、主記憶の空き容量を確保するために、主記憶上のページを補助記憶装置へ移すことをページアウトという。
つまり、次のように覚えるとよい。
- ページイン:補助記憶 → 主記憶
- ページアウト:主記憶 → 補助記憶
ページインとページアウトは、仮想記憶におけるデータの入れ替え処理である。
処理の多重度を増やすと何が起こるのか?
ここが今回の問題のポイントである。
「処理の多重度」とは、簡単にいえば、同時に実行するプログラム(プロセス)の数のことである。
例えば、主記憶の容量に十分な余裕がある状態で、3つのプログラムを実行しているとする。
この状態であれば、それぞれのプログラムが必要とするページを主記憶に置いておくことができる。ところが、同時に実行するプログラムを増やしていくと、主記憶の容量が不足してくる。
すると、
「このページを使いたいが、主記憶に存在しない」
という状況が頻繁に発生する。
そのたびに、
補助記憶 → 主記憶(ページイン)
を行う必要がある。
しかし、ページインを行うには主記憶に空きが必要である。
そこで、別のページを、
主記憶 → 補助記憶(ページアウト)
して空き領域を確保する。
すると今度は別のページが必要になり、再びページインが発生する。
このように、ページインとページアウトばかりが繰り返される状態になってしまうのである。
これが「スラッシング」である
ページイン・ページアウトが頻繁に発生すると、CPUは本来のプログラム処理よりも、ページの入れ替え処理に多くの時間を使うことになる。
その結果、
処理能力が低下する
↓
応答速度が遅くなる
↓
システム全体の性能が大幅に低下する
という状態になる。この現象をスラッシング(Thrashing)という。
今回の問題では、
- 処理の多重度を増やした
- ページイン・ページアウトが多発した
- システムの応答速度が急激に遅くなった
という3つのポイントが示されている。
この組み合わせが出てきた場合、スラッシングと判断すればよい。
なぜ「処理を増やしたのに遅くなる」のか?
ここは少し直感に反するポイントである。
一般的には、
同時にたくさんの処理ができれば、システムの性能も向上するのではないか
と考えやすい。
実際、ある程度までは処理の多重度を増やすことで、CPUを効率よく利用できる。
しかし、処理を増やしすぎると主記憶が不足する。
すると、
プログラムを処理する時間よりも、ページを入れ替える時間のほうが長くなる
という状態が発生することがある。
つまり、仕事を増やしすぎた結果、仕事そのものよりも準備ばかりしている状態である。
これがスラッシングのイメージである。
他の選択肢を確認しよう
今回の問題では、スラッシング以外にも紛らわしい用語が選択肢に含まれている。
ア.オーバレイ
オーバレイ(Overlay)とは、プログラムを複数の部分に分割し、必要な部分を主記憶に読み込んで使用する方式である。主記憶の容量が小さい場合などに利用される。
今回のような、「ページイン・ページアウトが多発してシステムが急激に遅くなる現象」を指す言葉ではない。
ウ.メモリコンパクション
メモリコンパクションとは、主記憶上に発生した空き領域をまとめる処理である。メモリ上に細かい空き領域がバラバラに存在する「外部フラグメンテーション」への対策として利用される。
ページイン・ページアウトの多発による性能低下とは異なる現象である。
エ.ロールアウト
ロールアウト(Roll-out)とは、主記憶上のプログラムを一時的に補助記憶装置へ退避させ、主記憶の空き領域を確保する処理である。
多重プログラミング環境などで、別のプログラムを実行するために行われる。
「主記憶からプログラムを退避させる」という点ではページアウトと似ているが、今回問われているページイン・ページアウトの多発による性能低下はスラッシングである。
試験ではこのキーワードに注目しよう
スラッシングは、次のキーワードとセットで覚えておくとよい。
| キーワード | 説明 |
|---|---|
| 処理の多重度を増やす | 同時に動かすプログラムを増やす |
| 主記憶不足 | メモリが足りない |
| ページイン多発 | ページをメモリに何度も読み込む |
| ページアウト多発 | ページをメモリから何度も追い出す |
| 応答速度低下 | システムが急激に遅くなる |
| スラッシング | ページの入れ替えばかりになる現象 |
特に、
「ページイン・ページアウトが頻発」+「処理速度が低下」
という文を見つけたら、スラッシングだと判断できる。
スラッシングのイメージとしては、
処理する
↓
メモリが足りない
↓
ページアウト
↓
必要なページをページイン
↓
またメモリが足りない
↓
ページアウト
↓
またページイン……
という悪循環となり、その結果、システムの応答速度が急激に低下する。
解法のポイント
- 仮想記憶では、主記憶と補助記憶の間でページを入れ替える
- 処理の多重度を増やしすぎると、主記憶が不足してページイン・ページアウトが頻発する
- その結果、システムの性能が急激に低下する現象を「スラッシング」という
「ページイン・ページアウトが多発して処理が遅い」=スラッシング


コメント