(57)【要約】【課題】記憶媒体に対する処理の実行速度の低下を抑制しながらガベージコレクションを行うことができる記憶媒体の制御装置、制御プログラム、及び制御方法を提供する。【解決手段】制御装置は、記憶媒体に対する処理を実行する演算装置の負荷を計測する負荷計測部１１０を備える。また、制御装置は、演算装置が記憶媒体に対するガベージコレクションを実行するのに必要な所要期間において、演算装置の負荷が所定の閾値よりも低いか否かを、計測された負荷に基づいて予測する負荷予測部１７０を備える。さらに、制御装置は、所要期間において負荷が低いと予測された場合に、記憶媒体に対するガベージコレクションを行うＧＣ部１８９を備える。【選択図】図４
2011227835.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体に対する処理を実行する演算装置の負荷を計測する負荷計測手段と、
前記演算装置が前記記憶媒体に対するガベージコレクションを実行するのに必要な所要期間において、前記演算装置の負荷が所定の閾値よりも低いか否かを、前記負荷計測手段で計測された負荷に基づいて予測する負荷予測手段と、
前記所要期間において負荷が低いと前記負荷予測手段で予測された場合に、前記記憶媒体に対するガベージコレクションを行うガベージコレクション手段と、
を備えることを特徴とする記憶媒体の制御装置。
【請求項２】
前記所定の閾値は、前記演算装置がガベージコレクションを実行すると、前記記憶媒体に対する処理の実行速度が低下する場合に計測される負荷の大きさを表す、
ことを特徴とする請求項１に記載の記憶媒体の制御装置。
【請求項３】
前記負荷予測手段は、前記負荷計測手段で今回に計測された負荷が前記所定の閾値よりも低く、かつ今回の負荷が前回に計測された負荷よりも低い場合に、前記所要期間における前記演算装置の負荷が低いと予測する、
ことを特徴とする請求項１又は２に記載の記憶媒体の制御装置。
【請求項４】
前記負荷予測手段は、前記負荷計測手段で今回から所定回数前までに計測された負荷が前記所定の閾値よりも低い場合に、前記所要期間における前記演算装置の負荷が低いと予測する、
ことを特徴とする請求項３に記載の記憶媒体の制御装置。
【請求項５】
前記負荷計測手段で計測された負荷が前記所定の閾値を上回った後から前記所定の閾値を下回るまでの負荷ピークが有するピーク幅を算出するピーク幅算出手段、をさらに備え、
前記負荷予測手段は、前記ピーク幅算出手段で算出されたピーク幅であって、前記負荷計測手段による今回の計測前において最後に現れた負荷ピークである直前ピークのピーク幅に基づいて、前記所要期間における前記演算装置の負荷が低いか否かを予測する、
ことを特徴とする請求項１又は２に記載の記憶媒体の制御装置。
【請求項６】
前記負荷計測手段で計測された負荷が前記所定の閾値を下回った後から前記所定の閾値を上回るまでのピーク間隔を算出するピーク間隔算出手段、をさらに備え、
前記負荷予測手段は、前記ピーク間隔算出手段で算出された前記ピーク間隔と、前記ピーク間隔で隔てられた負荷ピークのピーク幅とが相関関係を有する場合に、前記直前ピークのピーク幅に基づいて、前記直前ピークが終了した後の前記所要期間における前記演算装置の負荷が低いか否かを予測する、
ことを特徴とする請求項５に記載の記憶媒体の制御装置。
【請求項７】
前記負荷予測手段は、前記ピーク幅と前記ピーク間隔との相関と、前記直前ピークが有するピーク幅とに基づいて、前記負荷計測手段による今回の計測後において最初に現れる負荷ピークである直後ピークのピーク間隔を推測すると共に、推測された前記直後ピークのピーク間隔が前記所要期間よりも長い場合に、前記所要期間における前記演算装置の負荷が低いと予測する、
ことを特徴とする請求項６に記載の記憶媒体の制御装置。
【請求項８】
前記負荷計測手段で計測された負荷で表される負荷ピークの有するピーク高を算出するピーク高算出手段、をさらに備え、
前記負荷予測手段は、前記ピーク高算出手段で算出された前記直前ピークのピーク高に基づいて、前記所要期間における前記演算装置の負荷が低いか否かを予測する、
ことを特徴とする請求項１又は２に記載の記憶媒体の制御装置。
【請求項９】
前記ピーク高算出手段で算出されたピーク高の分布に基づいて、ピーク高が低い負荷ピークが属する第１分類と、前記第１分類よりも高いピーク高を有する負荷ピークが属する第２分類とに、前記直前ピークを分類するピーク分類手段、をさらに備え、
前記負荷予測手段は、前記ピーク分類手段で前記直前ピークが前記第２分類に分類された場合に、前記所要期間における前記演算装置の負荷が低いと予測する、
ことを特徴とする請求項８に記載の記憶媒体の制御装置。
【請求項１０】
前記ピーク分類手段で前記第２分類に分類された負荷ピークが終了してから、前記負荷計測手段で計測された負荷が前記所定の閾値よりも低い他の閾値を下回る値へ移行するまでの低負荷移行時間を算出する低負荷移行時間算出手段、をさらに備え、
前記負荷予測手段は、前記負荷計測手段で計測された負荷が前記所定の閾値を下回ってから、前記低負荷移行時間算出手段で算出された低負荷移行時間の平均時間を経過した後に、前記平均時間を経過した後における前記所要期間において前記演算装置の負荷が低いと予測する、
ことを特徴とする請求項９に記載の記憶媒体の制御装置。
【請求項１１】
コンピュータを、
記憶媒体に対する処理を実行する演算装置の負荷を計測する負荷計測手段と、
前記演算装置が前記記憶媒体に対するガベージコレクションを実行するのに必要な所要期間において、前記演算装置の負荷が所定の閾値よりも低いか否かを、前記負荷計測手段で計測された負荷に基づいて予測する負荷予測手段と、
前記所要期間において負荷が低いと前記負荷予測手段で予測された場合に、前記記憶媒体に対するガベージコレクションを行うガベージコレクション手段と、
して機能させることを特徴とする記憶媒体の制御プログラム。
【請求項１２】
記憶媒体に対する処理を実行する演算装置の負荷を計測する負荷計測ステップと、
前記演算装置が前記記憶媒体に対するガベージコレクションを実行するのに必要な所要期間において、前記演算装置の負荷が所定の閾値よりも低いか否かを、前記負荷計測ステップで計測された負荷に基づいて予測する負荷予測ステップと、
前記所要期間において負荷が低いと前記負荷予測ステップで予測された場合に、前記記憶媒体に対するガベージコレクションを行うガベージコレクションステップと、
を有することを特徴とする記憶媒体の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶した記憶媒体の制御装置、制御プログラム、及び制御方法に関する。
【背景技術】
【０００２】
記憶媒体に記憶されたデータを管理するファイルシステムは、記憶媒体のセクタのうちで、ファイル等のデータを未だ記憶していないセクタの利用状況を「Free」（未使用）とし、データを記憶したセクタの利用状況を「Use」（使用中）とし、かつデータを削除されたセクタの利用状況を「Del」（削除）として、セクタの利用状況を管理している。この利用状況が「Del」であるセクタの数が増加すると、記憶媒体の空き容量が減少するため、セクタの利用状況を「Del」から「Free」に戻して、記憶媒体の空き容量を増加させるガベージコレクション（Garbage Collection）を行う技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−９９７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された技術では、例えば、記憶媒体に対するデータの入出力処理などの処理を実行していても、記憶媒体の空き容量が減少するれば、ガベージコレクション（以下単に、ＧＣという）を実行してしまう。このため、ＣＰＵ（Central Processing Unit）の負荷がガベージコレクションを行うのに十分に低くない場合にＧＣを実行することで、記憶媒体に対する処理の実行速度が大幅に低下してしまうという問題があった。
【０００５】
本発明は、上記実情に鑑みてなされたものであり、その目的とするところは、記憶媒体に対する処理の実行速度の低下を抑制しながらＧＣを行うことができる記憶媒体の制御装置、制御プログラム、及び制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の観点に係る記憶媒体の制御装置は、
記憶媒体に対する処理を実行する演算装置の負荷を計測する負荷計測手段と、
前記演算装置が前記記憶媒体に対するガベージコレクションを実行するのに必要な所要期間において、前記演算装置の負荷が所定の閾値よりも低いか否かを、前記負荷計測手段で計測された負荷に基づいて予測する負荷予測手段と、
前記所要期間において負荷が低いと前記負荷予測手段で予測された場合に、前記記憶媒体に対するガベージコレクションを行うガベージコレクション手段と、
を備えることを特徴とする。
【０００７】
上記目的を達成するため、本発明の第２の観点に係る記憶媒体の制御プログラムは、
コンピュータを、
記憶媒体に対する処理を実行する演算装置の負荷を計測する負荷計測手段と、
前記演算装置が前記記憶媒体に対するガベージコレクションを実行するのに必要な所要期間において、前記演算装置の負荷が所定の閾値よりも低いか否かを、前記負荷計測手段で計測された負荷に基づいて予測する負荷予測手段と、
前記所要期間において負荷が低いと前記負荷予測手段で予測された場合に、前記記憶媒体に対するガベージコレクションを行うガベージコレクション手段と、
して機能させることを特徴とする。
【０００８】
上記目的を達成するため、本発明の第３の観点に係る記憶媒体の制御方法は、
記憶媒体に対する処理を実行する演算装置の負荷を計測する負荷計測ステップと、
前記演算装置が前記記憶媒体に対するガベージコレクションを実行するのに必要な所要期間において、前記演算装置の負荷が所定の閾値よりも低いか否かを、前記負荷計測ステップで計測された負荷に基づいて予測する負荷予測ステップと、
前記所要期間において負荷が低いと前記負荷予測ステップで予測された場合に、前記記憶媒体に対するガベージコレクションを行うガベージコレクションステップと、
を有することを特徴とする。
【発明の効果】
【０００９】
本発明に係る記憶媒体の制御装置、制御プログラム、及び制御方法によれば、記憶媒体に対する処理の実行速度の低下を抑制しながらＧＣを行うことができる。
【図面の簡単な説明】
【００１０】
【図１】図１（ａ）は、本発明の第１実施形態に係る記憶媒体の制御装置の一例を表すハードウェア構成図である。図１（ｂ）は、本発明の第１実施形態に係る記憶媒体の制御装置が有する機能の一例を表す機能ブロック図である。
【図２】図２（ａ）は、フラッシュメモリの一構成例を表す図である。図２（ｂ）は、フラッシュメモリが有するセクタの一構成例を表す図である。
【図３】図３（ａ）は、情報算出部が実行する情報算出処理の一例を表すフローチャートである。図３（ｂ）は、負荷統計情報算出部が実行する負荷統計情報算出処理の一例を表すフローチャートである。図３（ｃ）は、負荷関連情報算出部が実行する負荷関連情報算出処理開始の一例を表すフローチャートである。
【図４】図４（ａ）は、ファイルシステム制御部の一構成例を表す図である。図４（ｂ）は、第１実施形態の負荷統計情報算出部の一構成例を表す図である。図４（ｃ）は、第１実施形態の負荷関連情報算出部の一構成例を表す図である。
【図５】第１実施形態において計測される負荷の時間推移の一例を表すグラフである。
【図６】図６（ａ）は、ファイルシステム制御部（ＦＳ制御部）が実行するファイルシステム制御処理（ＦＳ制御処理）の一例を表すフローチャートである。図６（ｂ）は、第１実施形態の負荷予測部が実行する負荷予測処理の一例を表すフローチャートである。
【図７】実行条件判定部が実行する実行条件判定処理の一例を表すフローチャートである。
【図８】図８（ａ）は、第２実施形態の負荷統計情報算出部の一構成例を表す図である。図８（ｂ）は、第２実施形態の負荷関連情報算出部の一構成例を表す図である。図８（ｃ）は、相関係数算出部が実行する相関係数算出処理の一例を表すフローチャートである。
【図９】図９（ａ）は、第２実施形態において計測される負荷に対して算出される移動平均値の時間推移の一例を表すグラフである。図９（ｂ）は、ピーク幅とピーク間隔との相関関係を表すグラフである。
【図１０】第２実施形態の負荷予測部が実行する負荷予測処理の一例を表すフローチャートである。
【図１１】図１１（ａ）は、第３実施形態の負荷統計情報算出部の一構成例を表す図である。図１１（ｂ）は、第３実施形態の負荷関連情報算出部の一構成例を表す図である。図１１（ｃ）は、第３実施形態の負荷関連情報算出部が実行する負荷関連情報算出処理の一例を表すフローチャートである。
【図１２】第３実施形態の負荷予測部が実行する負荷予測処理の一例を表すフローチャートである。
【図１３】第３実施形態において計測される負荷に対して算出される移動平均値の時間推移の一例を表すグラフである。
【発明を実施するための形態】
【００１１】
以下、本発明の最良の実施形態について添付図面を参照しつつ説明する。
【００１２】
＜第１実施形態＞
本発明の第１実施形態に係る制御装置１０は、各種のアプリケーションを実行することで、図１（ａ）に示すような記憶媒体であるフラッシュメモリ（以下単に、メモリという）２０へ各種のデータを保存する。また、制御装置１０は、メモリ２０の空き容量が減少すると、空き容量を増加させるために、メモリ２０に対してＧＣ（ガベージコレクション）を実行する。尚、制御装置１０は、メモリ２０の代わりにハードディスクへデータを保存しても良い。
【００１３】
制御装置１０は、図１（ａ）に示すように、ＣＰＵ（Central Processing Unit）１０ａ、ＲＯＭ（Read Only Memory）１０ｂ、ＲＡＭ（Random Access Memory）１０ｃ、ハードディスク１０ｄ、メディアコントローラ１０ｅ、ＵＳＢ（Universal Serial Bus）バス１０ｆ、ＬＡＮカード（Local Area Network）１０ｇ、ビデオカード１０ｈ、ＬＣＤ（Liquid Crystal Display）１０ｉ、キーボード１０ｊ、及びポインティングデバイス（以下単に、マウスという）１０ｋを含んで構成される。
【００１４】
ＣＰＵ１０ａは、ＲＯＭ１０ｂ又はハードディスク１０ｄに保存されたプログラムに従ってソフトウェア処理を実行することで、制御装置１０の全体制御を行う演算装置である。ＲＡＭ１０ｃは、ＣＰＵ１０ａによるプログラムの実行時において、処理対象とするデータを一時的に記憶する。
【００１５】
ハードディスク１０ｄは、各種のアプリケーションプログラム（以下単に、アプリという）及びアプリで使用される各種のデータを記憶する。メディアコントローラ１０ｅは、メモリ２０に対して各種のデータを入出力する。ＬＡＮカード１０ｇは、例えば、インタネットなどのコンピュータ通信網を介して接続する装置との間でデータを送受信する。
【００１６】
ビデオカード１０ｈは、ＣＰＵ１０ａから出力されたデジタル信号に基づいて画像信号を出力する。ＬＣＤ１０ｉは、ビデオカード１０ｈから出力された画像信号に従って画像を表示する。尚、制御装置１０は、ＬＣＤ１０ｉの代わりに、ＰＤＰ（Plasma Display Panel）又はＥＬ（Electro Luminescence）ディスプレイを備えても良い。
【００１７】
キーボード１０ｊ及びマウスｋは、ユーザの操作に応じた信号を入力する。尚、ウェブ制御装置１０は、キーボード１０ｊ及びマウスｋの代わりにタッチパネルを備えても良い。
【００１８】
制御装置１０が有するＣＰＵ１０ａは、ハードディスク１０ｄに記憶されたアプリを実行することで、図１（ｂ）のアプリケーション実行部（以下単位、アプリ実行部）１１として機能する。また、ＣＰＵ１０ａは、メモリ２０が記憶する、例えば、電子ファイル（以下単に、ファイルという）などのデータの管理に用いられるファイルステム（以下単に、ＦＳという）を制御する処理を実行することで、ファイルシステム制御部（以下単に、ＦＳ制御部という）１００として機能する。
【００１９】
図１（ｂ）のアプリ実行部１１は、ＦＳ制御部１００を介して、メモリ２０に保存されたファイルの開閉、書き込み、上書き、及び削除を行う。
【００２０】
次に、ＦＳ制御部１００について説明する前に、ＦＳ制御部１００によって制御されるメモリ２０について一旦説明する。
メモリ２０は、図２（ａ）に示すようなブロック２１及び２２を含む複数のブロックを有する。これらのブロックは、例えば、ブロック２１のように複数のセクタを有する。図２に示されたブロック２１が有するセクタｓｃ１は、図２（ｂ）に示すように、セクタｓｃ１の利用状況、セクタｓｃ１を識別する論理番号、及びデータを記憶する。
【００２１】
ここで、ＦＳ制御部１００がメモリ２０にファイルを書き込む場合を説明する。
先ず、ＦＳ制御部１００は、ファイルサイズに応じて、データを未だ記憶していない（つまり、利用状況が「Free」（未使用））のセクタを複数確保すると共に、確保したセクタに対してファイルデータを書き込む。その後、制御装置１０は、データを書き込んだセクタの利用状況を「Use」（使用中）に変更する。
【００２２】
次に、ＦＳ制御部１００がメモリ２０にファイルを上書きする場合を説明する。
ＦＳ制御部１００は、更新前のファイルデータなどが書き込まれた（つまり、利用状況が「Use」の）セクタとは別の利用状況が「Free」のセクタに対して、更新後のファイルデータを書き込む。次に、ＦＳ制御部１００は、更新後のファイルデータを記憶するセクタと、更新前のファイルデータを記憶するセクタとを関連付けた後に、更新前のファイルデータを記憶するセクタの利用状況を「Del」（削除）に変更する。必要に応じて更新前のファイルデータを復旧させることができるようにするためである。
【００２３】
一方で、ＦＳ制御部１００は、メモリ２０からデータを削除する場合には、セクタ単位で利用状況を「Free」とするのではなく、ブロック単位でセクタの利用状況を「Free」とすることで（つまり、あるブロックが有する全セクタの利用状況を一括して「Free」とすることで）、メモリ２０が記憶するデータを削除する。
【００２４】
このため、ＦＳ制御部１００によって、メモリ２０が記憶するデータの書き換えが繰り返し行われると、利用状況が「Del」であるセクタが増加し、利用状況が「Free」であるセクタが枯渇する。よって、ＦＳ制御部１００は、適当な時期において、セクタの利用状況「Del」を「Free」に戻すＧＣを実行する。
【００２５】
このため、Ｆｓ制御部１００は、ＧＣを実行するのに適当な時期に成立するＧＣ実行条件の成否を判断するために用いられる情報を算出する、図３（ａ）に示すような情報算出処理を実行する。
【００２６】
尚、ＦＳ制御部１００は、図４（ａ）に示すような負荷計測部１１０、負荷情報データベース（以下、負荷情報ＤＢという）１２０、情報算出部１３０、統計情報データベース（以下、統計情報ＤＢという）１４０を用いて、例えば、数日に１回、図３（ａ）の情報算出処理を実行する。
【００２７】
図３（ａ）の情報算出処理の実行を開始すると、図４（ａ）の情報算出部１３０は、負荷情報ＤＢ１２０が記憶する負荷情報を読み出す（ステップＳ０１）。この負荷情報ＤＢ１２０が記憶する負荷情報は、図１（ａ）に示したＣＰＵ１０ａの負荷（以下、ＣＰＵ負荷という）を表す情報である。尚、負荷情報は、負荷情報で表される負荷を負荷計測部１１０が計測した時刻を表す計測時刻情報と対応付けられて負荷情報ＤＢ１２０に保存されている。
【００２８】
ここで、制御装置１０は、例えば、日々の業務に用いられる装置であるため、１日を単位とした所定の処理をアプリの実行によって行う。このため、図１（ａ）のＣＰＵ１０ａは、メモリ２０に保存されたデータに対して定期的に加工を行うため、メモリ２０に保存されたファイルを管理するＦＳ（ファイルシステム）に対して定期的にアクセスを行って、メモリ２０に対する入出力処理を定期的に行う。よって、ＣＰＵ負荷は、ほぼ定期的に高負荷状態と低負荷状態とを、１日の間に何度も繰り返す。
【００２９】
よって、ＦＳ制御部１００は、ステップＳ０１の実行時刻から数日前までの時刻に計測された負荷を表す負荷情報を読み出す。尚、負荷は、例えば、ＯＳ（Operating System）が計測するＣＰＵ使用率で表されても良い。
【００３０】
ステップＳ０１が実行された後に、情報算出部１３０は、実行履歴ＤＢ１９０からＧＣの実行履歴を表す情報（以下、実行履歴情報という）を読み出す（ステップＳ０２）。尚、実行履歴情報は、ＧＣが開始された時刻を表す情報及び終了された時刻を表す情報を複数含む。
【００３１】
その後、情報算出部１３０は、実行履歴情報で表されるＧＣの実行時刻において計測された負荷から、ＧＣの実行により発生した負荷を差し引くことで、負荷情報の値を補正する（ステップＳ０３）。尚、ＧＣの実行により発生した負荷は、図１（ａ）に示したＣＰＵ１０ａの演算処理能力とＧＣに要する演算量とに基づいて予め設定されている値として良い。
【００３２】
次に、情報算出部１３０が有する負荷統計情報算出部１３１は、負荷統計情報を算出する、図３（ｂ）のような負荷統計情報算出処理を実行する（ステップＳ０４）。尚、負荷統計情報とは、各計測時刻において計測された負荷を表す負荷情報に対して各種の統計処理を施して算出される情報をいう。本実施形態において、負荷統計情報算出部１３１は、負荷情報で表される負荷の相加平均値（つまり、算術平均値）を表す負荷統計情報及び負荷の加重平均値を表す負荷統計情報を算出する。尚、負荷統計情報算出部１３１は、図４（ｂ）に示すように、平均値算出部１３１ａ及び移動平均値算出部１３１ｂを有する。
【００３３】
図３（ｂ）に示す負荷統計情報の実行が開始されると、図４（ｂ）の平均値算出部１３１ａは、図３（ａ）のステップＳ０３で補正された負荷情報によって表される負荷の相加平均値を算出する（ステップＳ１１）。次に、負荷統計情報算出部１３１は、算出した負荷の平均値を、負荷関連情報算出部１３２が用いる閾値Ｔｈとする（ステップＳ１２）。尚、閾値Ｔｈについては後述する。
【００３４】
次に、図４（ｂ）の平均値算出部１３１ｂは、図３（ａ）のステップＳ０３で補正された負荷情報のそれぞれについて、当該負荷情報で表される負荷を計測した計測時刻より所定時間前の時刻から当該計測時刻より所定時間後の時刻までの区間（以下、移動平均区間という）において計測された負荷を表す他の複数の負荷情報と、当該負荷情報との移動平均値を算出する（ステップＳ１３）。これは、図５のような、負荷を表すＬ軸と、負荷の計測時刻を表すＴ軸とを有する座標空間に表された負荷の推移を表す曲線Ｐにおいて、短期的に発生する高周波成分を平滑化し、主要成分である低周波成分を表す曲線ＭＡを取り出すためである。
【００３５】
次に、負荷統計情報算出部１３１は、ステップＳ１１及びステップＳ１３で算出された負荷統計情報を統計情報ＤＢ１４０へ保存する（ステップＳ１４）。その後、負荷統計情報算出部１３１は、負荷統計情報算出処理の実行を終了する。
【００３６】
図３（ａ）のステップＳ０４が終了した後に、図４（ａ）の情報算出部１３０が有する負荷関連情報算出部１３２は、図３（ｃ）に示すような、負荷関連情報を算出する負荷関連情報算出処理を実行する。尚、負荷関連情報とは、負荷統計情報を用いて検出される負荷ピークに関連した情報をいう。本実施形態では、負荷関連情報算出部１３２は、負荷ピークの幅（以下、ピーク幅という）を表す負荷関連情報を算出する。
【００３７】
ここで、負荷ピークとは、図５のような曲線ＭＡにおいて、平滑化された負荷（つまり、負荷の移動平均値）が所定の閾値Ｔｈよりも大きい部分ＰＫをいい、部分ＰＫの頂点のみをいうのではない。また、ピーク幅とは、平滑化された負荷が閾値Ｔｈを上回った時刻ｔ１２から負荷が閾値Ｔｈを下回る時刻ｔ１４までの時間をいう。尚、閾値Ｔｈは、この値以上にＣＰＵ負荷が増加した状態でＧＣが実行されると、メモリ２０に対する処理の実行速度が低下することを表す。
【００３８】
図３（ｃ）の負荷関連情報算出処理の実行が開始されると、図４（ｃ）の負荷関連情報算出部１３２が有するピーク検出部１３２ａは、図３（ｂ）のステップＳ１３で算出された負荷の移動平均値の推移を表す曲線ＭＡが、ステップＳ１２で定められた閾値Ｔｈを超える部分を負荷ピークとして検出する（ステップＳ２１）。次に、ピーク幅算出部１３２ｂは、検出された負荷ピークのピーク幅を算出する（ステップＳ２２）。次に、負荷関連情報算出部１３２は、ステップＳ２２で算出された負荷関連情報を統計情報ＤＢ１４０へ保存する（ステップＳ２３）。その後、負荷関連情報算出部１３２は、負荷関連情報算出処理の実行を終了する。
【００３９】
次に、図４（ａ）のＦＳ制御部１００は、算出された負荷統計情報及び負荷関連情報（以下単に、統計情報という）を用いて、上記のファイルシステムを制御する、図６に示すようなＦＳ制御処理を実行する。
【００４０】
尚、ＦＳ制御部１００は、上記の負荷計測部１１０、負荷情報ＤＢ１２０、情報算出部１３０、及び統計情報ＤＢ１４０だけでなく、図４（ａ）の利用セクタ情報取得部１５０、負荷予測部１７０、実行条件判定部１８０、ＧＣスケジュール部１８５、ガベージコレクション部（以下、ＧＣ部という）１８９、及び実行履歴データベース（以下、実行履歴ＤＢという）１９０を用いて、例えば、数分に１回、図６（ａ）のＦＳ制御処理を実行する。
【００４１】
図６（ａ）のＦＳ制御処理の実行が開始されると、図４（ａ）の負荷予測部１７０は、統計情報ＤＢ１４０に保存された閾値Ｔｈを含む統計情報を読み出す（ステップＳ３１）。次に、負荷計測部１１０は、現時点（つまり、ステップＳ３２の実行時点）におけるＣＰＵ１０ａの負荷を計測し、計測した負荷を表す負荷情報を負荷情報ＤＢ１２０に保存する（ステップＳ３２）。
【００４２】
その後、負荷統計情報算出部１３１は、図３（ｃ）のステップＳ２２で算出された（過去数日において現れたピークの）ピーク幅の平均値を算出し、算出したピーク幅の平均値（以下、平均ピーク幅という）を移動平均区間とする。次に、負荷統計情報算出部１３１は、現時点から移動平均区間前までにおいて計測された負荷の移動平均値を算出する（ステップＳ３３）。これらの構成によれば、例えば、メモリ２０及びメモリ２０のユーザのいずれか１つ以上が変化して負荷ピークが有するピーク幅の大きさが変化しても、平均ピーク幅より大きい幅のピーク（つまり、低周波成分）を強調して検出できる。
【００４３】
次に、負荷関連情報算出部１３２は、ステップＳ３３で算出された移動平均値の時間推移を表す曲線から、ステップＳ３１で読み出された閾値Ｔｈを超える負荷ピークを検出する（ステップＳ３４）。その後、負荷予測部１７０は、現時点よりも後の時点における負荷を予測する、図６（ｂ）に示すような負荷予測処理を実行する。
【００４４】
ここで、図５に示した時刻ｔ１１を例に挙げ、この時刻に実行される負荷予測処理について説明する。
図６（ｂ）の負荷予測処理の実行が開始されると、負荷予測部１７０は、時刻ｔ１１に計測された負荷の移動平均値が負荷ピークを形成する（つまり、閾値Ｔｈより大きい）か否かを判断し（ステップＳ４１）、負荷ピークを形成しないと判断する（ステップＳ４１；Ｎｏ）。
【００４５】
次に、負荷予測部１７０は、時刻ｔ１１において、時刻ｔ１１に計測された負荷の移動平均値は、前回（つまり、時刻ｔ１１よりも前の時刻ｔ１０）に計測された負荷の移動平均値よりも大きいため、負荷の移動平均値が減少中でない（つまり、増加中である）と判断する（ステップＳ４２；Ｎｏ）。次に、負荷予測部１７０は、現在の時刻ｔ１１から、ＧＣの実行に要する所要時間を経過するまでにおいて、ＧＣを実行するＣＰＵ１０ａの負荷が高負荷であると予測する（ステップＳ４５）。現在、負荷の移動平均値が増加中だからである。その後、負荷予測部１７０は、負荷予測処理の実行を終了する。
【００４６】
尚、ＣＰＵ１０ａの負荷が高負荷（低負荷）であるとは、ＣＰＵ１０ａがメモリ２０に対してＧＣを実行した場合に、ＣＰＵ１０ａによるメモリ２０に対する入出力処理の実行速度が所定値よりも低下する程に（低下しない程に）、ＣＰＵ１０ａの負荷が高い（低い）ことをいう。
【００４７】
次に、図５の時刻ｔ１３を例に挙げて、この時刻において実行される負荷予測処理について説明する。
図６（ｂ）の負荷予測処理の実行が開始されると、負荷予測部１７０は、時刻ｔ１３に計測された負荷の移動平均値が負荷ピークを形成すると判断する（ステップＳ４１；Ｙｅｓ）。次に、負荷予測部１７０は、現在の時刻ｔ１３から上記の所要時間を経過するまでにおいて、ＣＰＵ負荷が高負荷であると予測し（ステップＳ４５）、負荷予測処理の実行を終了する。
【００４８】
次に、図５の時刻ｔ１５を例に挙げて、この時刻において実行される負荷予測処理について説明する。
図６（ｂ）の負荷予測処理の実行が開始されると、ステップＳ４１の処理を実行した後に、負荷予測部１７０は、負荷の移動平均値が減少中であると判断する（ステップＳ４２；Ｙｅｓ）。次に、負荷予測部１７０は、現在の時刻ｔ１５から時間Ｔｃ前の時刻まで、負荷の移動平均値が閾値Ｔｈを常に下回った訳ではないと判断する（ステップＳ４３；Ｎｏ）。その後、負荷予測部１７０は、現在時刻ｔ１５から所要時間を経過するまで、ＣＰＵ負荷が高負荷であると予測し（ステップＳ４５）、負荷予測処理の実行を終了する。ＣＰＵ負荷の低下が一時的であるか否かが未確定だからである。
【００４９】
次に、図５の時刻ｔ１６を例に挙げて、この時刻において実行される負荷予測処理について説明する。
図６（ｂ）の負荷予測処理の実行が開始されると、負荷予測部１７０は、ステップＳ４１及びステップＳ４２の処理を実行した後に、現在の時刻ｔ１５から時間Ｔｃ前の時刻まで、負荷の移動平均値が閾値Ｔｈを常に下回ったと判断する（ステップＳ４３；Ｙｅｓ）。その後、負荷予測部１７０は、現在時刻ｔ１６から所要時間を経過するまで、ＣＰＵ負荷が低負荷であると予測し（ステップＳ４４）、負荷予測処理の実行を終了する。ＣＰＵ負荷が時間Ｔｃに渡って閾値Ｔｈを下回ったため、負荷の低下が一時的でない確率が高いと判断されるためである。
【００５０】
これらの構成によれば、負荷の移動平均値が所定の閾値Ｔｈよりも低く低下する場合にＣＰＵ負荷が低いと判断するため、ＧＣの所要期間においてＣＰＵ負荷が低いか否かを精度良く予測できる。
【００５１】
またこれらの構成によれば、所定回数（つまり、所定時間Ｔｃ）に渡って所定の閾値Ｔｈよりも低い値であった負荷の移動平均値がさらに低下する場合に、ＣＰＵ負荷が低いと判断するため、ＧＣの所要期間においてＣＰＵ負荷が低いか否かをより精度良く予測できる。
【００５２】
図６（ａ）のステップＳ３５で負荷予測処理の実行が終了した後に、図４（ａ）の利用セクタ情報取得部１５０は、メモリ２０が有するセクタの利用状況を表す利用セクタ情報を、上記のファイルシステム（ＦＳ）から取得する（ステップＳ３６）。また、利用セクタ情報取得部１５０は、取得した利用セクタ情報に基づいて、利用状況が「Free」（空き）のセクタ数（以下単に、空きセクタ数という）「NumFreeSec」及びメモリ２０のブロックが有するセクタの数「NumEBSec」を取得する。
【００５３】
次に、実行条件判定部１８０は、ＧＣ実行条件が成立したか否かを判定する、図７に示すような実行条件判定処理を実行する（ステップＳ３７）。
【００５４】
先ず、メモリ２０に十分な空きセクタがある場合に実行される実行条件判定処理について説明する。
【００５５】
図７に示す実行条件判定処理の実行が開始されると、実行条件判定部１８０は、以下の式（１）で表される第１条件が成立したか否かを判断する（ステップＳ５１）。
【００５６】
NumEBSec * C > NumFreeSec > NumEBSec・・・（１）
但し、C = 2
【００５７】
ここで、メモリ２０が有するセクタは、ブロック単位で利用状況を「Free」（未使用）に戻される。このため、図２（ａ）に示すように、ＧＣの実行において、利用状況が「Del」（削除）のセクタを最も多く有するブロック「EBDelMax」を検索した後に、検索されたブロック「EBDelMax」の有するセクタを「Free」に戻す前に、ブロック「EBDelMax」が有する利用状況が「Use」（使用中）のセクタに記憶されたデータを、一旦他の消去ブロックが有する利用状況が「Free」のセクタへ退避（コピー）させる必要がある。このため、空きセクタ数「NumFreeSec」がブロックの有するセクタ数「NumEBSec」を下回ると、ＧＣの実行が不能になってしまう。尚、利用状況「Mov」（移動中）は、セクタに対するデータ書き込み中を表し、「Err」（エラー）は、セクタが利用不能になったことを表す。
【００５８】
よって、第１条件の成立は、メモリ２０の空きセクタ数「NumFreeSec」が、ＧＣの実行に最低限必要な数「NumEBSec」よりは多いため、直ちにＧＣを実行する必要はないが、あと「NumEBSec」個だけ空きセクタが減少するよりも前に、ＧＣの実行をする必要があることを表す。尚、本実施形態では、変数Cが値「2」である場合について説明したが、これに限定される訳ではなく、当業者は最適な値を決定できる。
【００５９】
ステップＳ５１において、実行条件判定部１８０は、メモリ２０に十分な空きセクタがあるため、第１条件が成立しないと判断する（ステップＳ５１；Ｎｏ）。次に、実行条件判定部１８０は、以下の式（２）で表される第２条件が成立したか否かを判断する（ステップＳ５２）。
【００６０】
NumFreeSec = NumEBSec・・・（２）
【００６１】
尚、第２条件の成立は、メモリ２０の空きセクタ数「NumFreeSec」が、ＧＣの実行に最低限必要な数「NumEBSec」に等しいため、直ちにＧＣを実行する必要あることを表す。
【００６２】
ステップＳ５２において、実行条件判定部１８０は、第２条件が成立しなかったと判断し（ステップＳ５２；Ｎｏ）、ＧＣ実行条件が不成立と判定する（ステップＳ５３）。ＧＣを実行する必要がない程、メモリ２０に空きセクタが多いためである。その後、実行条件判定部１８０は、実行条件判定処理の実行を終了する。
【００６３】
次に、メモリ２０に対するファイルの上書きを繰り返し、空きセクタが減少した場合に実行される実行条件判定処理について説明する。
【００６４】
実行条件判定部１８０は、空きセクタの減少により、第１条件が成立したと判断する（ステップＳ５１；Ｙｅｓ）。次に、実行条件判定部１８０は、図６（ａ）のステップＳ３５で予測されたＣＰＵ負荷が低負荷であるか否かを判断する（ステップＳ５４）。
【００６５】
ステップＳ５４において、実行条件判定部１８０は、予測された負荷が低負荷でないと判断した場合に（ステップＳ５４；Ｎｏ）、ＧＣ実行条件が成立しないと判定する（ステップＳ５５）。直ちにＧＣを実行する必要はないだけでなく、ＧＣを実行すると、メモリ２０に対する入出力処理の実行速度が著しく（つまり、所定値より）低下するおそれがあるためである。その後、実行条件判定部１８０は、実行条件判定処理の実行を終了する。
【００６６】
逆に、ステップＳ５４において、実行条件判定部１８０は、予測された低負荷であると判断した場合に（ステップＳ５４；Ｙｅｓ）、ＧＣ実行条件が成立したと判定する（ステップＳ５６）。あと「NumEBSec」個だけ空きセクタが減少するよりも前に、ＧＣを実行する必要があるだけでなく、ＧＣを実行しても、メモリ２０に対する入出力処理の実行速度が著しく（つまり、所定値より）低下する可能性が低いためである。その後、実行条件判定部１８０は、実行条件判定処理の実行を終了する。
【００６７】
次に、メモリ２０に対するファイルの上書きをさらに繰り返し、空きセクタが枯渇した場合に実行される実行条件判定処理について説明する。
【００６８】
実行条件判定部１８０は、空きセクタの数「NumFreeSec」が減少を続け、１つのブロックが有するセクタ数「NumEBSec」と同じ数になったと判断し、第１条件が成立しないが第２条件が成立すると判断する（ステップＳ５１；Ｎｏ及びステップＳ５２；Ｙｅｓ）。次に、実行条件判定部１８０は、予測されたＣＰＵ負荷の高低を判断せずに、ＧＣ実行条件が成立したと判定する（ステップＳ５６）。ＣＰＵ負荷が高負荷であろうが否が、ＧＣを実行できなくなる前に、ＧＣを実行する必要があるためである。その後、実行条件判定部１８０は、実行条件判定処理の実行を終了する。
【００６９】
図６（ａ）のステップＳ３７において実行条件判定処理の実行が終了すると、ＧＣスケジュール部１８５は、ＧＣ実行条件が成立したと判定されたか否かを判断する（ステップＳ３８）。
【００７０】
ＧＣ実行条件が成立しなかったと判断されると（ステップＳ３８；Ｎｏ）、ＦＳ制御部１００は、ステップＳ３２に戻り、上記処理を繰り返す。
【００７１】
ＧＣ実行条件が成立したと判断すると（ステップＳ３８；Ｙｅｓ）、ＧＣスケジュール部１８５は、ＧＣ部１８９が直ちにＧＣを行うようにスケジューリングする（ステップＳ３９）。その後、ＦＳ制御部１００は、ステップＳ３２に戻り、上記処理を繰り返す。また、図４（ａ）のＧＣ部１８９は、ＧＣスケジュール部１８５によって変更されたスケジュールに従って、直ちにＧＣを実行すると共に、ＧＣの実行履歴情報を、実行履歴ＤＢ１９０に保存する。
【００７２】
これらの構成によれば、ＣＰＵ負荷が低いと予測された時期にメモリ２０のＧＣを行うため、メモリ２０に対して図１（ａ）のＣＰＵ１０ａが実行する処理の実行速度が低下することを防止できる。
【００７３】
＜変形例１＞
本実施形態において、図４（ａ）の負荷予測部１７０は、図６（ｂ）に示すように、計測時刻に負荷ピークでなく（ステップＳ４１；Ｎｏ）、負荷が減少中であり（ステップＳ４２；Ｙｅｓ）、計測時刻から所定時間Ｔｃ前までにおいて、ＣＰＵ負荷の移動平均値が閾値Ｔｈを下回った場合に（ステップＳ４３；Ｙｅｓ）、ＣＰＵ負荷は低負荷であると予測する（ステップＳ４４）として説明した。
【００７４】
しかし、変形例において、負荷予測部１７０は、計測時刻に負荷ピークでなく、負荷が減少中であれば、計測時刻から所定時間Ｔｃ前までにおけるＣＰＵ負荷について判断することなく、ＣＰＵ負荷は低負荷であると予測する。
【００７５】
この構成によれば、ＧＣに必要な所要時間において、ＣＰＵ負荷が十分に低いか否かを少ない計算量かつ短時間で予測できる。
【００７６】
＜変形例２＞
本実施形態において、制御装置１０は、メモリ２０に対してＧＣを実行するとして説明したが、これに限定される訳ではなく、例えば、図１（ａ）のハードディスク１０ｄのように、制御装置１０が有する記憶媒体に対してＧＣを実行しても良い。
【００７７】
＜第２実施形態＞
次に、第２実施形態について説明を行う。
第２実施形態に係る制御装置は、ピーク幅とピーク間隔との相関に基づいて、負荷の計測時刻後（以下単に、計測後という）に生じるピーク間隔を予測すると共に、予測したピーク間隔がＧＣの所要時間よりも長い場合に、計測時刻から所要時間を経過するまでにおいて、ＣＰＵ負荷が低負荷であると予測する。尚、第１実施形態と共通する部分については詳細な説明を省略する。
【００７８】
第２実施形態に係る制御装置は、第１実施形態に係る制御装置１０とほぼ同様の構成を有するが、図８（ａ）に示す負荷情報算出部２３１及び図８（ｂ）に示す負荷関連情報算出部２３２の構成が異なる。
【００７９】
負荷統計情報算出部２３１について説明する前に、負荷関連情報算出部２３２について説明する。
負荷関連情報算出部２３２は、図８（ｂ）のピーク検出部２３２ａ及びピーク幅算出部２３２ｂの他に、ピーク間隔算出部２３２ｃを有する。本実施形態では、負荷関連情報算出部２３２は、ピーク幅を表す負荷関連情報の他に、ピーク間隔を表す負荷関連情報をも算出する。
【００８０】
ここで、ピーク間隔とは、図９に示すような、ピークＰＫ１とピークＰＫ２との間隔ＷＬをいい、負荷の移動平均値が閾値Ｔｈを下回った時刻ｔ２２から負荷の移動平均値が閾値Ｔｈを次に上回る時刻ｔ２３までの時間をいう。
【００８１】
図８（ａ）の負荷統計情報算出部２３１は、平均値算出部２３１ａ及び移動平均値算出部２３１ｂの他に、相関係数算出部２３１ｃを有する。
【００８２】
負荷統計情報算出部２３１は、図３（ｂ）の負荷統計情報算出処理を実行した後に、負荷関連情報算出部２３２が、上記の負荷関連情報を算出する負荷関連情報算出処理を実行すると、ピーク幅とピーク間隔との相関を表す相関係数を算出する、図８（ｃ）に示すような相関係数算出処理の実行を開始する。
【００８３】
図８（ｃ）に示す相関係数算出処理の実行を開始すると、相関係数算出部２３１ｃは、図９（ｂ）に示すような、負荷関連情報算出部２３２で算出されたピーク幅と、ピーク間隔との回帰直線ＲＬを算出する（ステップＳ６１）。尚、図９（ｂ）は、横軸でピーク幅を表し、縦軸でピーク間隔を表す座標系に対して、ピーク幅及びピーク間隔を、計測された負荷ピーク毎にプロットした図である。
【００８４】
次に、相関係数算出部２３１ｃは、回帰直線ＲＬに用いられる相関係数の値に基づいて、ピーク幅とピーク間隔とが正の相関を有するか否かを判断する（ステップＳ６２）。具体例としては、相関係数算出部２３１ｃは、相関係数が以下の式（３）を満足する場合に、正の相関があると判断する。
【００８５】
0.5 < 相関係数< 1.0・・・（３）
【００８６】
ステップＳ６２において、相関係数算出部２３１ｃは、正の相関があると判断した場合には（ステップＳ６２；Ｙｅｓ）、相関係数算出部２３１ｃは、例えば、制御装置が有する実行履歴ＤＢからＧＣの実行履歴情報を取得すると共に、実行履歴情報が表すＧＣの実行時間の平均値を算出し、算出した平均値をＧＣの実行に必要な所要時間Ｇｔとする。
【００８７】
その後、相関係数算出部２３１ｃは、図９（ｂ）に示すように、ＧＣの所要時間Ｇｔの２倍の長さを有するピーク間隔と対応したピーク幅を、回帰直線ＲＬを用いて算出すると共に、算出したピーク幅をピーク幅の閾値Ｔｗとする（ステップＳ６２）。ピーク間隔とピーク幅とが正の相関を有するので、負荷の計測前において最後に現れた負荷ピーク（以下、直前ピークという）のピーク幅が閾値Ｔｗを超えると、直前ピークと計測後において最初に現れる負荷ピーク（以下、直後ピークという）とのピーク間隔は、ＧＣの所要時間よりも長く（約２倍に）なる確率が高いためである。
【００８８】
尚、本実施形態において、ＧＣの所要時間Ｇｔの２倍の長さを有するピーク間隔と対応したピーク幅を閾値Ｔｗとして説明したが、この値「2」に限定される訳ではない。また、ＧＣの所要時間Ｇｔの長さ（つまり、１倍の長さ）を有するピーク間隔と対応したピーク幅を閾値Ｔｗとするのではなく、ＧＣの所要時間Ｇｔの２倍の長さを有するピーク間隔と対応したピーク幅を閾値Ｔｗとすることで、ＧＣの実行直後に次のピークが発生するような、ＣＰＵ負荷が高い状態が続くことを防止できる。
【００８９】
ステップＳ６２において、相関係数算出部２３１ｃは、正の相関がないと判断した場合には（ステップＳ６２；Ｎｏ）、ピーク幅の閾値Ｔｗを所定値に設定する（ステップＳ６４）。
【００９０】
ステップＳ６３及びＳ６４を実行した後に、相関係数算出部２３１ｃは、算出又は設定されたピーク幅の閾値Ｔｗを統計情報として、制御装置が有する統計情報ＤＢに保存する（ステップＳ６５）。その後、相関係数算出部２３１ｃは、相関係数算出処理の実行を終了する。
【００９１】
本実施形態に係る制御装置は、上記のステップＳ６５などで保存された統計情報を用いて、図６（ａ）のＦＳ制御処理を実行するが、ステップＳ３５において、図１０に示すような負荷予測処理を実行する点で、第１実施形態と異なる。
よって、以下、図９（ａ）に示す時刻ｔ２２を例に挙げて、この時刻において実行される負荷予測処理について説明する。
【００９２】
図１０の負荷予測処理の実行が開始されると、制御装置が有する負荷予測部は、図６（ｂ）のステップＳ４１及びＳ４２と同様の処理を実行する（ステップＳ７１及びＳ７２）。次に、負荷予測部は、現在時刻ｔ２２において負荷の移動平均値が減少中であると判断した後に（ステップＳ７２；Ｙｅｓ）、現在の時刻ｔ２２の直前ピークＰＫ１のピーク幅Ｗ１が、図８（ｃ）のステップＳ６３で算出又はステップＳ６４で設定された閾値Ｔｗよりも大きいか否かを判断する（ステップＳ７３）。
【００９３】
ステップＳ７３において、負荷予測部は、負荷ピークＰＫ１のピーク幅Ｗ１が閾値Ｔｗよりも大きいと判断すると（ステップＳ７３；Ｙｅｓ）、直前ピークＰＫ１と直後ピークＰＫ２とのピーク間隔ＷＬは、ＧＣの所要時間よりも長いと推測する。その後、負荷予測部は、負荷の計測後からＧＣの所要時間を経過するまでの間、ＣＰＵ負荷が低負荷であると予測し（ステップＳ７４）、負荷予測処理の実行を終了する。
【００９４】
ステップＳ７３において、負荷予測部は、負荷ピークＰＫ１のピーク幅Ｗ１が閾値Ｔｗ以下であると判断すると（ステップＳ７３；Ｎｏ）、直前ピークＰＫ１と直後ピークＰＫ２とのピーク間隔ＷＬは、ＧＣの所要時間よりも短いと推測する。その後、負荷予測部は、負荷の計測後からＧＣの所要時間を経過するまでの間、ＣＰＵ負荷が高負荷であると予測し（ステップＳ７５）、負荷予測処理の実行を終了する。
【００９５】
通常、ピーク幅が長いピークが終了した後には、長いピーク間隔が訪れる傾向にあるので、これらの構成によれば、直前ピークのピーク幅に基づいて、計測後のＧＣの所要期間においてＣＰＵ負荷が低負荷か否かを精度良く予測できる。
【００９６】
また、これらの構成によれば、ピーク幅とピーク間隔とが相関関係を有する場合に、直前ピークが有するピーク幅に基づいて、ＣＰＵ負荷が低負荷か否かを予測するため、より精度良く負荷の高低を予測できる。
【００９７】
これらの構成によれば、ピーク幅と相関係数とに基づいて推測されたピーク間隔がＧＣに要する所要時間よりも長い場合に、ＣＰＵ負荷が低負荷であると予測するため、さらに精度良く負荷の高低を予測できる。
【００９８】
＜第３実施形態＞
次に、第３実施形態について説明を行う。
第３実施形態に係る制御装置は、直前ピークのピーク高に基づいてＣＰＵ負荷が十分に低いか否かを予測する。尚、第１実施形態と共通する部分については詳細な説明を省略する。
【００９９】
第３実施形態に係る制御装置は、第１実施形態に係る制御装置１０とほぼ同様の構成を有するが、図１１（ａ）に示す負荷情報算出部３３１及び図１１（ｂ）に示す負荷関連情報算出部３３２の構成が異なる。
【０１００】
図１１（ａ）の負荷情報算出部３３１は、平均値算出部３３１ａ及び移動平均値算出部３３１ｂの他に、非ピーク平均値算出部３３１ｃを有する。非ピーク平均値算出部３３１ｃは、図１１（ｂ）の負荷関連情報算出部３３２で検出された負荷ピークを表さず、ピーク間隔を表す負荷の移動平均値に対して相加平均値を算出し、算出した平均値を後述する閾値Ｔｌに設定する。この閾値Ｔｌは、負荷の平均値である閾値Ｔｈより低いか又は等しい。
【０１０１】
図１１（ｂ）の負荷関連情報算出部３３２は、図１１（ａ）のピーク検出部３３２ａ及びピーク高算出部３３２ｂの他に、ピーク分類部３３２ｃ及び低負荷移行時間算出部３３２ｄを有する。本実施形態では、負荷関連情報算出部３３２は、図１１（ｃ）に示すような、負荷ピークの高さ（以下、ピーク高という）を表す負荷関連情報の他に、低負荷移行時間を表す負荷関連情報を算出する負荷関連情報算出処理を実行する。
【０１０２】
ここで、低負荷移行時間とは、図１３に示すような、負荷の移動平均値が閾値Ｔｈを下回った時刻ｔ３１（つまり、負荷ピークが終了した時刻）から、閾値Ｔｈよりも低い閾値Ｔｌを最初に下回る時刻ｔ３２までの時間をいう。この閾値Ｔｌは、十分に低い値でＣＰＵ負荷が安定する場合に計測される値を表し、上記のように非ピーク平均値算出部３３１ｃで算出された値に設定される。また、ピーク高は、ピークにおける負荷の移動平均値の最大値で表される。
【０１０３】
図１１（ｃ）の負荷関連情報算出処理が開始されると、図１１（ｂ）のピーク検出部３３２ａは、図３（ｃ）のステップＳ２１と同様の処理を実行する（ステップＳ８１）。次に、ピーク高算出部３３２ｂは、ステップＳ８１で検出された負荷ピークのピーク高を算出する（ステップＳ８２）。
【０１０４】
次に、ピーク分類部３３２ｃは、ステップＳ８１で検出された（つまり、過去数日に現れた）負荷ピークが有するピーク高の分布を算出する（ステップＳ８３）。次に、ピーク分類部３３２ｃは、算出された分布の下位５０％を低レベルのピーク高とし、上位５０％を高レベルのピーク高としてレベル分けする（ステップＳ８４）。その後、ピーク分類部３３２ｃは、低レベルのピーク高を有する負荷ピークが属する分類を第１分類とし、高レベルのピーク高を有する負荷ピークが属する分類を第２分類とする（ステップＳ８５）。
【０１０５】
その後、低負荷移行時間算出部３３２ｄは、第２分類に属する負荷ピークの低負荷移行時間を算出する（ステップＳ８６）。次に、低負荷移行時間算出部３３２ｄは、図３（ｃ）のステップＳ２３と同様の処理を実行する（ステップＳ８７）。その後、負荷関連情報算出処理の実行が終了される。
【０１０６】
本実施形態に係る制御装置は、上記のステップＳ８７で保存された負荷関連情報などを用いて、図６（ａ）のＦＳ制御処理を実行するが、ステップＳ３５において、図１２に示すような負荷予測処理を実行する点で、第１実施形態と異なる。
よって、以下、図１３に示す時刻ｔ３０を例に挙げて、この時刻において実行される負荷予測処理について説明する。
【０１０７】
図１２の負荷予測処理の実行が開始されると、制御装置が有する負荷予測部は、図６（ｂ）のステップＳ４１及びＳ４２と同様の処理を実行する（ステップＳ９１及びＳ９２）。負荷予測部は、図１３の時刻ｔ３０において、負荷の移動平均値が減少中であると判断する（ステップＳ９２；Ｙｅｓ）と、現在の時刻ｔ３０の直前ピークＰＫ１のピーク高ｈ１が、図１１（ｃ）のステップＳ９４で分類された上位５０％の高レベルであるか否かを判断する（ステップＳ９３）。
【０１０８】
負荷予測部は、図１３に示す直前ピークＰＫ１のピーク高ｈ１が高レベルではない（つまり、低レベル）と判断し（ステップＳ９３；Ｎｏ）、時刻ｔ３０より後のＧＣの所要期間において、ＣＰＵ負荷が低負荷であると判断する（ステップＳ９５）。通常、低レベルのピークが終了すると、ＧＣを開始するまでに要する時間よりも短い時間で、ＣＰＵ負荷が安定して低負荷になることが多いためである。その後、負荷予測部は、負荷予測処理の実行を終了する。
【０１０９】
次に、図１３に示す時刻ｔ３１を例に挙げて、この時刻において実行される負荷予測処理について説明する。
図１２の負荷予測処理の実行が開始されると、制御装置が有する負荷予測部は、ステップＳ９１及びＳ９２の処理を実行した後に、現在の時刻ｔ３１の直前ピークＰＫ１のピーク高ｈ１が上位５０％の高レベルであると判断する（ステップＳ９３；Ｙｅｓ）。
【０１１０】
その後、負荷予測部は、直前ピークＰＫ１が終了した時刻ｔ３１から、図１１（ｃ）のステップＳ８６で算出された、第２分類に属する負荷ピーク（つまり、高レベルのピーク高を有する負荷ピーク）の低負荷移行時間の平均時間Ｔｔを経過したか否かを判断する（ステップＳ９４）。
【０１１１】
負荷予測部は、現在時刻がｔ３１であるので、上記の平均時間Ｔｔを経過していないと判断し（ステップＳ９４；Ｎｏ）、現在時刻ｔ３０より後のＧＣの所要期間において、ＣＰＵ負荷が高負荷であると判断する（ステップＳ９６）。通常、高レベルのピークが終了すると、ＣＰＵ負荷が安定して低負荷になるために、ＧＣを開始するまでに要する時間よりも長い時間かかるためである。その後、負荷予測部は、負荷予測処理の実行を終了する。
【０１１２】
次に、図１３に示す時刻ｔ３２を例に挙げて、この時刻において実行される負荷予測処理について説明する。
図１２の負荷予測処理の実行が開始されると、制御装置が有する負荷予測部は、ステップＳ９１からＳ９３の処理を実行した後に、現在時刻ｔ３２は、直前ピークＰＫ１が終了した時刻ｔ３１から低負荷移行時間の平均時間Ｔｔを経過していると判断する（ステップＳ９４；Ｙｅｓ）。
【０１１３】
次に、負荷予測部は、現在時刻ｔ３２より後のＧＣの所要期間において、ＣＰＵ負荷が低負荷であると判断する（ステップＳ９５）。通常、高レベルのピークが終了した後に、低負荷移行時間の平均時間Ｔｔだけ経過すれば、ＣＰＵ負荷が安定して低負荷になるためである。その後、負荷予測部は、負荷予測処理の実行を終了する。
【０１１４】
これらの構成によれば、ピーク高が高い負荷ピークが終了した後には、長いピーク間隔が訪れる傾向にあるので、ピーク高に基づいてＣＰＵ負荷が低負荷か否かを精度良く予測できる。
【０１１５】
またこれらの構成によれば、ピーク高の分布に基づいて直前ピークが有するピーク高の高低を判断するため、例えば、メモリ２０及びメモリ２０のユーザのいずれか１つ以上が変化して負荷ピークが有するピーク高の傾向が変化しても、ピーク高に基づいてＣＰＵ負荷が低負荷か否かを精度良く予測できる。
【０１１６】
また通常、負荷ピークが終了してから、ＣＰＵ負荷が低い値で安定するまで時間の経過を要する。よって、これらの構成によれば、負荷ピークが終了してから低負荷移行時間を経過した後に、ＣＰＵ負荷が低負荷であると判断するため、負荷の高低を精度良く予測できる。
【０１１７】
尚、本発明に係る機能を実現するための構成を予め備えた記憶媒体の制御装置として提供できることはもとより、プログラムの適用により、既存の制御装置を本発明に係る記憶媒体の制御装置として機能させることもできる。すなわち、上記実施形態で例示した制御装置１０による各機能構成を実現させるための制御プログラムを、既存の制御装置を制御するコンピューター（ＣＰＵなど）が実行できるように適用することで、本発明に係る制御装置１０として機能させることができる。
【０１１８】
このようなプログラムの配布方法は任意であり、例えば、メモリカード、ＣＤ−ＲＯＭ、又はＤＶＤ−ＲＯＭなどの記憶媒体に格納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。
【０１１９】
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【０１２０】
本発明は、記憶媒体に対して電子ファイルの書き換えを行う制御装置において、記憶媒体に記憶された電子ファイルを管理するファイルシステムの制御を行う制御装置に適する。
【符号の説明】
【０１２１】
１０      制御装置
１０ａ    ＣＰＵ
１０ｂ    ＲＯＭ
１０ｃ    ＲＡＭ
１０ｄ    ハードディスク
１０ｅ    メディアコントローラ
１０ｆ    ＵＳＢバス
１０ｇ    ＬＡＮカード
１０ｈ    ビデオカード
１０ｉ    ＬＣＤ
１０ｊ    キーボード
１０ｋ    マウス
１１      アプリケーション実行部
２０      フラッシュメモリ
１００    ファイルシステム制御部
１１０    負荷計測部
１２０    負荷情報ＤＢ
１３０    情報算出部
１３１，２３１，３３１  負荷統計情報算出部
１３１ａ，２３１ａ，３３１ａ  平均値算出部
１３１ｂ，２３１ｂ，３３１ｂ  移動平均値算出部
１３２，２３２，３３２  負荷関連情報算出部
１３２ａ，２３２ａ，３３２ａ  ピーク検出部
１３２ｂ，２３２ｂ  ピーク幅算出部
１４０    統計情報ＤＢ
１５０    利用セクタ情報取得部
１７０    負荷予測部
１８０    実行条件判定部
１８５    ＧＣスケジュール部
１８９    ＧＣ部
１９０    実行履歴ＤＢ      
２３１ｃ  相関係数算出部
２３２ｃ  ピーク間隔算出部
３３１ｃ  非ピーク平均値算出部
３３３ｂ  ピーク高算出部
３３３ｃ  ピーク分類部
３３３ｃ  低負荷移行時間算出部
ＰＫ，ＰＫ１，ＰＫ２  負荷ピーク
【図１】
2011227835.tif 000003
【図２】
2011227835.tif 000004
【図３】
2011227835.tif 000005
【図４】
2011227835.tif 000006
【図５】
2011227835.tif 000007
【図６】
2011227835.tif 000008
【図７】
2011227835.tif 000009
【図８】
2011227835.tif 000010
【図９】
2011227835.tif 000011
【図１０】
2011227835.tif 000012
【図１１】
2011227835.tif 000013
【図１２】
2011227835.tif 000014
【図１３】
2011227835.tif 000015