スラッシングとは、英語で書くと「Thrashing」となり、むち打ち、強く打つなどの意味があるようです。
IT用語でむち打ち!、と言われてもピンときませんが、今回はこのスラッシングに関して調べてみました。
仮想記憶システムに関係する
コンピュータの中にある仮想記憶システムにおいては、主記憶領域(物理メモリの領域)をページと呼ばれる区画で管理し、その内容を必要に応じて入れ替えることによって、物理的な容量以上の主記憶空間を実現します。
物理メモリの容量が足りない分は何で補うかと言うと、HDDで補填しています。
この補填しているHDDの領域を「スワップ領域」と呼んでいます。スワップ領域にプロセス(プログラム)を置いて(スワップアウト)、プロセス(プログラム)を実記憶領域に読み込む(スワップイン)ことを繰り返します。
これにより、メモリ領域を大きく使うソフトウェアを扱えることができますので、非常に便利な仕組みであります。
と、ここまで実はスワッピングの話をしておりました。
スラッシングの内容の前に、もう一つページングという言葉の説明をします。
ページングはプログラムを「ページ」という単位に分けます。このページはプログラムの中の機能単位に分けていると思って頂ければとおもいます。
そして、仮想記憶にページ単位でプログラムを割り当てます。仮想記憶に割り当てられたページはプログラムが実行される際に実記憶(主メモリ)に読み込まれます。仮想記憶と実記憶の対応は「ページテーブル」というテーブルで対応付けられます。この時にページテーブルへ変換する処理はメモリ変換ユニット(MMU:Memory Management Unit)という主にCPUに内臓されているハードウェアが担当することになります。
ページを仮想記憶から実記憶に読み込むことをページイン、実記憶から仮想記憶にページを追い出すことをページアウトと呼びます。
スワッピングとページングの違い
ここまでの説明でどちらも仮想記憶(HDDなど)と実記憶(メモリ)にプログラムを出し入れする仕組みのようですが、一体違いは何なのでしょうか?
広義の意味ではページングはスワッピングに含まれるようですが、大きな違いとしては、以下のようになると思います。
- スワッピング:プロセス(プログラム)単位で出し入れする
- ページング:ページ単位で出し入れする
では、いよいよスラッシングの説明に行きましょう!
スラッシングは仮想記憶領域を使うことによって発生する問題?
物理メモリが足りない分をHDDが補填してくれるのは非常にありがたいことなのですが、主記憶容量が十分でない(物理メモリが足りない)とページの入れ替え(ページイン、ページアウト)が頻繁に発生するため、処理速度が低下することがあります。
この現象をスラッシングと呼びます。
現在のPCには8GBや16GBのメモリが当たり前のように搭載されていますが、格安PCなどは2GBのメモリが標準となっていたりしますね。確かに安いので購入し易いのですが、いざ使い始めるとなんだがHDDがいつもガリガリ唸っています(汗)。これがスラッシングが発生している状態です。
まとめ
今回はスワッピングとページングと違いを調べ、そこで発生するスラッシングの問題に関して学びました。
PCでメールやインターネットだけの利用ならスラッシングが発生するケースも少ないのですが、いくつかのソフトウェアを同時に使う場合、メモリ容量が少ないとスラッシングが頻繁に起こることになってしまうので、やはりメモリは多めに搭載しておく方が良いですね!
詳しくはWikiの解説(スラッシング)をご参考にしてみてください!
以上、スラッシングの簡単な説明でした。