(57)【特許請求の範囲】
【請求項１】
ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、
前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測部と、
前記ジョブを前記スケジュールに基づいて実行するジョブ実行部と、
前記ジョブ実行部による前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得部と、
前記ジョブ実行部によって記憶装置から読み込まれるデータを保持するキャッシュと、
前記キャッシュに保持されるデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に格納した優先度算出アルゴリズム格納部と、
前記実行状況取得部によって取得された実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与部と、
前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御部と、を備えた情報処理装置。
【請求項２】
前記実行状況取得部は、前記ジョブの進度の前記スケジュールに対する差異を表すスケジュール差異情報を前記実行状況情報として取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記将来使用時期予測部によって予測された前記データの将来の使用時期を、前記スケジュール差異情報に基づいて修正する将来使用時期修正部をさらに備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記実行状況取得部は、前記スケジュール格納部にあらかじめ格納された前記ジョブの終了期限までの残り時間を前記実行状況情報として取得することを特徴とする請求項１から請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記実行状況取得部は、前記ジョブが実行中であるか、中断された状態であるか、終了済みであるかを表す情報を前記実行状況情報として取得することを特徴とする請求項１から請求項４のいずれかに記載の情報処理装置。
【請求項６】
前記優先度付与部は、将来において複数回に渡って使用されるデータに関して、最も早い将来の使用時期を用いて前記優先度算出アルゴリズムによって算出した優先度を該データに付与することを特徴とする請求項１から請求項５のいずれかに記載の情報処理装置。
【請求項７】
前記優先度算出アルゴリズム格納部は、将来において複数回に渡って使用されるデータに関して、複数の将来の使用時期に基づいて１つの優先度を算出する優先度算出アルゴリズムを格納することを特徴とする請求項１から請求項５のいずれかに記載の情報処理装置。
【請求項８】
前記優先度付与部は、前記キャッシュの状況が所定の条件を満たした場合に、前記キャッシュ内のデータの前記優先度を算出して付与することを特徴とする請求項１から請求項７のいずれかに記載の情報処理装置。
【請求項９】
前記優先度付与部は、前記実行状況情報が所定の条件を満たした場合に、前記キャッシュ内のデータの前記優先度を算出して付与することを特徴とする請求項１から請求項８のいずれかに記載の情報処理装置。
【請求項１０】
前記ジョブ実行部によって前記ジョブが過去に実行された際の実行履歴を表す情報を格納したジョブ実行履歴格納部をさらに備え、
前記将来使用時期予測部は、前記ジョブ実行履歴格納部をさらに参照して前記将来の使用時期を予測することを特徴とする請求項１から請求項９のいずれかに記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュに保持するデータを管理する情報処理装置に関する。
【背景技術】
【０００２】
一般に、情報処理装置は、処理を行う際に使用するデータを、該データの格納元の記憶装置から読み出した際に、より高速な記憶装置であるキャッシュにも保持しておく。これにより、情報処理装置は、次回に同じデータを読み出す処理の高速化を図っている。通常、キャッシュは、格納元の記憶装置より小容量である。このため、情報処理装置は、キャッシュが一杯になると、新たなデータを保持する領域を確保するため、既にキャッシュに保持しているデータの一部を選択して削除する。なお、キャッシュに保持しているデータの一部を選択して削除することを、以降、キャッシュ削除という。
【０００３】
キャッシュ削除のアルゴリズムとして代表的なものに、最近最も使われていないデータを最初に削除するLeast Recently Used（以降、ＬＲＵと記載する）や、頻繁には使われていないデータを最初に削除するLeast Frequently Used（以降、ＬＦＵと記載する）等がある。これらのアルゴリズムは、キャッシュ内のデータの過去の使用状況に基づいてキャッシュ削除を行うものである。
【０００４】
このようなキャッシュ削除を行う情報処理装置として、キャッシュ内のデータの将来の使用時期に基づいてキャッシュ削除を行うものがある（例えば、特許文献１参照）。
【０００５】
この特許文献１に記載された情報処理装置は、複数のデータブロックからなるフェッチ単位を１度に読み出してキャッシュに保持する。また、この情報処理装置は、プログラムの実行中に必要なデータブロックの使用時期を予測する。そして、この情報処理装置は、同一のフェッチ単位に含まれる第１のデータブロックおよび第２のデータブロックについて、第１のデータブロックの次回の使用時期より第２のデータブロックの次回の使用時期が早ければ、第１のデータブロックをキャッシュから削除する。
【０００６】
このように、データの将来の使用時期に基づいてキャッシュ削除を行う情報処理装置は、スケジューリングされたジョブの実行に適している。なぜなら、スケジューリングされたジョブで用いられるデータは、ジョブのスケジュールに基づいて将来の使用時期を予測可能だからである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００７−５３５０５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載された情報処理装置は、あるジョブがスケジュールどおりに実行されず遅延している場合でも、そのジョブで用いられるデータの将来の使用時期より他のジョブで用いられるデータの将来の使用時期が早ければ、遅延しているジョブのデータをキャッシュから削除してしまうことがある。
【０００９】
また、特許文献１に記載された情報処理装置は、あるジョブがスケジュールより早く進捗しておりスケジュールに余裕がある場合でも、そのジョブに用いられるデータの将来の使用時期より他のジョブで用いられるデータの将来の使用時期が後であれば、他のジョブのデータをキャッシュから削除してしまうことがある。すなわち、この情報処理装置は、スケジュールに余裕があるジョブのデータを優先的にキャッシュから削除することができない。
【００１０】
同様に、ＬＲＵやＬＦＵなどのアルゴリズムを採用して過去のデータ使用状況に基づいてキャッシュ削除を行う情報処理装置も、遅延しているジョブで用いられるデータが最近使われていないか最近の使用頻度が低ければ、そのデータをキャッシュから削除してしまうことがある。また、このような情報処理装置は、スケジュールに余裕があるジョブで用いられるデータを優先的にキャッシュから削除することができない。
【００１１】
このように、特許文献１に記載された情報処理装置、および、過去のデータ使用状況に基づいてキャッシュ削除を行う情報処理装置は、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行うことができないという課題があった。
【００１２】
本発明は、上述の課題を解決するためになされたもので、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行う情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の情報処理装置は、ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測部と、前記ジョブを前記スケジュールに基づいて実行するジョブ実行部と、前記ジョブ実行部による前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得部と、前記ジョブ実行部によって記憶装置から読み込まれるデータを保持するキャッシュと、前記キャッシュに保持されるデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に格納した優先度算出アルゴリズム格納部と、前記実行状況取得部によって取得された実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与部と、前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御部と、を備える。
【００１４】
また、本発明の情報処理方法は、ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブが実行される際に記憶装置から読み込まれるデータを保持するキャッシュと、を備えた情報処理装置を用いて、前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測し、前記キャッシュ内のデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に優先度算出アルゴリズム格納部に格納しておき、前記ジョブを前記スケジュールに基づいて実行し、前記ジョブの実行状況を表す実行状況情報を取得し、前記実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与し、前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除する。
【００１５】
また、本発明のコンピュータ・プログラムは、ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブが実行される際に記憶装置から読み込まれるデータを保持するキャッシュと、を備えた情報処理装置に、前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測ステップと、前記キャッシュ内のデータの優先度を、前記各データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に優先度算出アルゴリズム格納部に格納しておく優先度算出アルゴリズム格納ステップと、前記ジョブを前記スケジュールに基づいて実行するジョブ実行ステップと、前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得ステップと、前記実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与ステップと、前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御ステップと、を実行させる。
【発明の効果】
【００１６】
本発明は、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行う情報処理装置を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施の形態としての情報処理装置のハードウェア構成図である。
【図２】本発明の第１の実施の形態としての情報処理装置の機能ブロック図である。
【図３】本発明の第１の実施の形態におけるデータの将来の使用時期の一例を示す図である。
【図４】本発明の第１の実施の形態におけるキャッシュ内のデータに付与される優先度の一例を示す図である。
【図５】本発明の第１の実施の形態においてジョブ毎の実行状況に対して設定された優先度算出アルゴリズムの一例を示す図である。
【図６】本発明の第１の実施の形態における優先度算出アルゴリズムの一例を示すグラフである。
【図７】本発明の第１の実施の形態としての情報処理装置が各データの将来の使用時期を予測する動作を説明するフローチャートである。
【図８】本発明の第１の実施の形態としての情報処理装置がキャッシュ内のデータに優先度を付与する動作を説明するフローチャートである。
【図９】本発明の第１の実施の形態としての情報処理装置がキャッシュ内のデータを削除する動作を説明するフローチャートである。
【図１０】本発明の第１の実施の形態としての情報処理装置を用いてキャッシュ削除回数を測定した際の各ジョブで用いられるデータを説明する図である。
【図１１】本発明の第１の実施の形態としての情報処理装置を用いてキャッシュ削除回数を測定した際に各ジョブに適用した優先度算出アルゴリズムを説明するグラフである。
【図１２】本発明の第１の実施の形態としての情報処理装置を用いてキャッシュ削除回数を測定した際に各ジョブに適用した他の優先度算出アルゴリズムを説明するグラフである。
【図１３】本発明の第１の実施の形態としての情報処理装置において図１１および図１２に示した優先度算出アルゴリズムを各ジョブにそれぞれ適用した際の各キャッシュ削除回数を比較した表である。
【図１４】本発明の第２の実施の形態としての情報処理装置の機能ブロック図である。
【図１５】本発明の第２の実施の形態としての情報処理装置が各データの将来の使用時期を予測する動作を説明するフローチャートである。
【図１６】本発明の第２の実施の形態としての情報処理装置がキャッシュ内のデータに優先度を付与する動作を説明するフローチャートである。
【図１７】本発明の第３の実施の形態としての情報処理装置の機能ブロック図である。
【図１８】本発明の第３の実施の形態において実行状況取得部によって取得される実行状況情報の一例を示す図である。
【図１９】本発明の第３の実施の形態としての情報処理装置がキャッシュ内のデータに優先度を付与する動作を説明するフローチャートである。
【図２０】本発明の各実施の形態において、スケジュールされていないジョブに適用される優先度算出アルゴリズムの一例を示すグラフである。
【発明を実施するための形態】
【００１８】
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
【００１９】
（第１の実施の形態）
本発明の第１の実施の形態としての情報処理装置１のハードウェア構成を図１に示す。図１において、情報処理装置１は、ＣＰＵ（Central Processing Unit）１００１と、ＲＡＭ（Random Access Memory）１００２と、ＲＯＭ（Read Only Memory）１００３と、ハードディスク等の記憶装置１００４と、を備えたコンピュータ装置によって構成されている。
【００２０】
次に、情報処理装置１の機能ブロック構成を図２に示す。図２において、情報処理装置１は、ジョブ格納部１０１と、スケジュール格納部１０２と、将来使用時期予測部１０３と、ジョブ実行部１０４と、実行状況取得部１０５と、キャッシュ１０６と、優先度算出アルゴリズム格納部１０７と、優先度付与部１０８と、キャッシュ制御部１０９とを備えている。また、情報処理装置１は、データ格納部９に接続されている。
【００２１】
ここで、ジョブ格納部１０１と、スケジュール格納部１０２と、優先度算出アルゴリズム格納部１０７とは、記憶装置１００４によって構成されている。また、ジョブ実行部１０４と、実行状況取得部１０５と、優先度付与部１０８と、キャッシュ制御部１０９とは、ＲＯＭ１００３または記憶装置１００４に記憶されたコンピュータ・プログラムをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１によって構成されている。また、将来使用時期予測部１０３は、ＲＯＭ１００３または記憶装置１００４に記憶されたコンピュータ・プログラムをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１、および、記憶装置１００４によって構成されている。また、キャッシュ１０６は、ＲＡＭ１００２によって構成されている。ただし、情報処理装置１の各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
【００２２】
なお、データ格納部９は、記憶装置１００４によって構成されていてもよいし、情報処理装置１を構成するコンピュータ装置に接続された外部の記憶装置によって構成されていてもよい。
【００２３】
ジョブ格納部１０１は、ジョブを表す情報を格納している。ここで、ジョブとは、ＣＰＵ１００１によって実行される一連の処理を表す。ジョブを表す情報は、ジョブ実行部１０４によって実行される。なお、ジョブ格納部１０１は、本発明におけるジョブ実行部の一部の一実施形態を構成する。
【００２４】
スケジュール格納部１０２は、ジョブ格納部１０１に格納されたジョブを実行するスケジュールを表す情報を格納している。例えば、スケジュール格納部１０２は、複数のジョブの実行順序、ならびに、各ジョブの開始時刻および終了期限等からなるバッチ処理情報を、スケジュールを表す情報として格納していてもよい。なお、スケジュール格納部１０２に格納される情報は、例えば、図示しないジョブスケジューラによって生成されたものであってもよい。
【００２５】
将来使用時期予測部１０３は、ジョブで用いられる各データの将来の使用時期を、スケジュール格納部１０２およびジョブ格納部１０１に基づいて予測する。
【００２６】
例えば、ジョブＡの開始時刻が毎日０時０分０秒にスケジュールされており、ジョブＡが実行開始時点から１秒後にａ１というデータを用いるよう構成されている場合を想定する。この場合、将来使用時期予測部１０３は、データａ１の将来の使用時期は翌０時０分１秒であると予測する。また、ジョブＢの開始時刻が毎日０時０分０秒にスケジュールされており、ジョブＢが実行開始時点から２秒後にデータａ１を用いるよう構成されている場合を想定する。この場合、将来使用時期予測部１０３は、データａ１の将来の使用時期として、翌０時０分２秒をさらに予測する。
【００２７】
また、将来使用時期予測部１０３は、予測した各データの将来の使用時期を将来使用時期テーブル１１３として記憶装置１００４に記憶しておく。記憶装置１００４に記憶された将来使用時期テーブル１１３の一例を図３に示す。図３は、上述のデータａ１に関する将来の使用時期を表している。図３において、データａ１は、翌０時０分１秒にジョブＡによって使用され、翌０時０分２秒にジョブＢによって使用されると予測されている。
【００２８】
なお、図３の例では、スケジュール格納部１０２が、毎日定刻にジョブＡおよびジョブＢを開始するスケジュールを格納していることを想定している。このため、開始時刻および将来の使用時期は、時刻のみで表現されているが、これらの情報は、日時によって表されていてもよい。また、スケジュール格納部１０２は、毎日実行されるジョブのスケジュールに限らず、その他の所定間隔で繰り返されるジョブのスケジュールや、指定された日時に１度だけ実行されるジョブのスケジュールを含んでいてもよい。
【００２９】
ジョブ実行部１０４は、スケジュール格納部１０２に格納されたスケジュールに基づいて、ジョブ格納部１０１に格納されたジョブを実行する。また、ジョブ実行部１０４は、ジョブで用いるデータを、データ格納部９から読み込んでキャッシュ１０６に保持する。また、ジョブ実行部１０４は、ジョブで用いるデータが既にキャッシュ１０６に保持されていれば、データ格納部９にアクセスすることなくキャッシュ１０６から読み込む。
【００３０】
実行状況取得部１０５は、ジョブ実行部１０４によるジョブの実行状況を表す実行状況情報を取得する。例えば、実行状況取得部１０５は、各ジョブの終了期限と現在時刻との差分を計算することにより、終了期限までの残り時間を実行状況情報として取得してもよい。あるいは、実行状況取得部１０５は、各ジョブに設定された開始時刻と、実際にそのジョブが開始された時刻との差分を実行状況情報として取得してもよい。
【００３１】
キャッシュ１０６は、ジョブ実行部１０４によってデータ格納部９から読み込まれたデータを保持する。キャッシュ１０６は、データ格納部９よりも高速なＲＡＭ１００２によって構成される。これにより、ジョブ実行部１０４は、いったんデータ格納部９から読み込んだデータを再度利用する際の処理を高速化する。
【００３２】
また、キャッシュ１０６は、保持可能なデータ量に制限を有している。すなわち、キャッシュ１０６は、ジョブ実行部１０４によって用いられる全てのデータを保持する容量を有していない場合がある。そこで、キャッシュ１０６が一杯になると、キャッシュ１０６内の一部のデータは、後述のキャッシュ制御部１０９によって選択されて削除される。
【００３３】
また、図４に一例を示すように、キャッシュ１０６は、データと、優先度とを対応付けて保持可能である。この優先度は、後述の優先度付与部１０８によってデータ毎に付与される。また、この優先度は、後述のキャッシュ制御部１０９によって、キャッシュ１０６から削除対象のデータが選択される際に指標として用いられるものである。本実施例では、優先度が低いほど、削除対象として選択されやすいことを表している。
【００３４】
優先度算出アルゴリズム格納部１０７は、キャッシュ１０６内のデータに付与する優先度をそのデータの将来の使用時期に基づいて算出する優先度算出アルゴリズムと、実行状況情報に対する条件とを対応付けた情報を、ジョブ毎に格納している。
【００３５】
例えば、図５は、ジョブＡに関する優先度算出アルゴリズムの一例を示している。図５において、ジョブＡでは、終了期限までの残り時間が３０分以上という条件に対して、ｆ（ｔ）＝−ｔ＋１０という関数が優先度算出アルゴリズムとして設定されている。また、ジョブＡでは、終了期限までの残り時間が３０分未満という条件に対して、ｆ（ｔ）＝−ｔ＋１１という関数が優先度算出アルゴリズムとして設定されている。ここで、ｔは、優先度を算出する時点の時刻Ｔｎｏｗから、データｉの将来の使用時期Ｔｉまでの時間を表している。すなわち、ｔ＝Ｔｉ−Ｔｎｏｗである。
【００３６】
図６に、優先度算出アルゴリズムの一例である「ｆ（ｔ）＝−ｔ＋１０」という関数のグラフを示す。図６において、縦軸は優先度ｆ（ｔ）、横軸は時間ｔ＝Ｔｉ−Ｔｎｏｗである。図６の優先度算出アルゴリズムによれば、データは、将来の使用時期が後であるほど（すなわち、ｔが大きいほど）優先度が低くなり、キャッシュ１０６から削除されやすくなることがわかる。
【００３７】
なお、優先度算出アルゴリズム格納部１０７は、実行状況情報に対する条件および優先度算出アルゴリズムを入力装置を介して取得してもよい。これにより、優先度算出アルゴリズム格納部１０７は、システム管理者等によって設定された内容を格納することができる。
【００３８】
優先度付与部１０８は、実行状況取得部１０５によって取得された各ジョブの実行状況が満たす条件に対応付けられた優先度算出アルゴリズムを取得する。そして、優先度付与部１０８は、ジョブ毎に取得した優先度算出アルゴリズムを用いて、キャッシュ１０６に保持されたデータの優先度を算出して付与する。
【００３９】
具体的には、優先度付与部１０８は、キャッシュ１０６に保持されたデータの将来の使用時期と現在時刻との差分時間を計算する。そして、優先度付与部１０８は、そのデータが用いられるジョブについて取得した優先度算出アルゴリズムに、差分時間を適用することにより、そのデータの優先度を算出する。
【００４０】
なお、優先度付与部１０８は、将来の複数回に渡って使用されることが予測されるデータに対しては、最も早い将来の使用時期に基づいて優先度を算出してもよい。
【００４１】
キャッシュ制御部１０９は、キャッシュ１０６から削除するデータを優先度に基づいて選択し、選択したデータをキャッシュ１０６から削除する。例えば、キャッシュ制御部１０９は、キャッシュ１０６内のデータの容量が閾値以上である場合に、優先度が最も低いデータを削除するようにしてもよい。
【００４２】
以上のように構成された情報処理装置１の動作について、図７〜図９を参照して説明する。
【００４３】
まず、情報処理装置１の将来使用時期予測動作を図７に示す。なお、図７において、ジョブ格納部１０１および優先度算出アルゴリズム格納部１０７には、既に情報が格納されているものとする。
【００４４】
ここでは、まず、スケジュール格納部１０２は、ジョブのスケジュールを表す情報を格納する（ステップＳ１）。
【００４５】
例えば、スケジュール格納部１０２は、ジョブスケジューラによってスケジューリングされた、ジョブの実行順序、各ジョブの開始時刻、終了期限などを格納する。
【００４６】
次に、将来使用時期予測部１０３は、スケジュール格納部１０２に格納されたスケジュールに含まれる各ジョブで用いられるデータの将来の使用時期を、ジョブ格納部１０１およびスケジュール格納部１０２に基づいて、予測する（ステップＳ２）。
【００４７】
例えば、将来使用時期予測部１０３は、ジョブ格納部１０１に格納されたジョブＡの内容に基づいて、ジョブＡで用いられるデータａがジョブＡの実行開始時点から１秒後に使用されるという情報を得る。また、将来使用時期予測部１０３は、スケジュール格納部１０２に格納されたジョブＡのスケジュールに基づいて、ジョブＡの開始時刻として毎日０時０分０秒を得る。そして、将来使用時期予測部１０３は、データａがジョブＡで用いられる将来の使用時期を、翌０時０分１秒と予測する。
【００４８】
次に、将来使用時期予測部１０３は、各データについて予測した将来の使用時期を将来使用時期テーブル１１３として記憶しておく（ステップＳ３）。
【００４９】
スケジュール格納部１０２に格納されているスケジュールに含まれる全てのジョブの各データについてステップＳ２〜Ｓ３を終了すると、情報処理装置１は、将来使用時期予測動作を終了する。
【００５０】
なお、情報処理装置１は、このような将来使用時期予測動作を、スケジュール格納部１０２に格納されたスケジュールに基づく処理を開始する前に実行しておくことが望ましい。
【００５１】
次に、情報処理装置１の優先度付与動作を図８に示す。ここで、優先度付与動作は、スケジュールに基づくジョブの実行開始後に実行されるものとする。また、優先度付与動作開始時点において、各ジョブには、スケジュールに基づくジョブの実行開始直後の実行状況情報に基づく優先度算出アルゴリズムが既に設定されているものとする。
【００５２】
また、キャッシュ１０６には、ジョブ実行部１０４によるジョブの実行に伴い、ジョブ実行部１０４がデータ格納部９から読み込んだデータが保持されていくものとする。
【００５３】
ここでは、まず、実行状況取得部１０５は、実行中のジョブの実行状況情報を取得する（ステップＳ１１）。
【００５４】
例えば、実行状況取得部１０５は、現在時刻と、このジョブの終了期限との差分である残り時間を実行状況情報として取得してもよい。
【００５５】
次に、優先度付与部１０８は、取得した実行状況情報が、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられている条件を満たすか否かを、優先度算出アルゴリズム格納部１０７を参照することにより判断する（ステップＳ１２）。
【００５６】
例えば、優先度付与部１０８は、このジョブの終了期限まで残り時間４０分である場合、この時点でこのジョブに設定されている優先度算出アルゴリズム「ｆ（ｔ）＝−ｔ＋１０」に対応付けられている条件「残り時間３０分以上」を満たしていると判断する。
【００５７】
ステップＳ１２で、実行状況情報が、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられている条件を満たしていると判断された場合、情報処理装置１の処理は、ステップＳ１４に進む。
【００５８】
一方、ステップＳ１２で、実行状況情報が、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられている条件を満たしていないと判断された場合、優先度付与部１０８は、優先度算出アルゴリズム格納部１０７を参照することにより、このジョブに適用する優先度算出アルゴリズムを変更する（ステップＳ１３）。
【００５９】
例えば、優先度付与部１０８は、取得した実行状況情報「残り時間２９分」が満たす条件「残り時間３０分未満」に対応付けられた「ｆ（ｔ）＝−ｔ＋１１」を、このジョブの優先度算出アルゴリズムとして設定する。
【００６０】
次に、優先度付与部１０８は、将来使用時期予測部１０３が保持している将来使用時期テーブル１１３を参照することにより、キャッシュ１０６内に保持されているデータのうち、このジョブで用いられる各データについて、現在時刻から将来の使用時期までの差分時間を算出する。そして、優先度付与部１０８は、このジョブに設定した優先度算出アルゴリズムに、算出した差分時間を適用することにより、このジョブで用いられるキャッシュ１０６内の各データの優先度を算出する（ステップＳ１４）。
【００６１】
次に、優先度付与部１０８は、このジョブで用いられるキャッシュ１０６内の各データに、ステップ１４で算出した優先度を付与する（ステップＳ１５）。
【００６２】
実行中の各ジョブについてステップＳ１１〜ステップＳ１５までの処理を終了すると、優先度付与部１０８は、実行中のジョブが残っているか否かを判断する（ステップＳ１６）。
【００６３】
ここで、実行中のジョブが残っていれば、情報処理装置１は、ステップＳ１１からの処理を、所定の時間経過後に再度実行する。
【００６４】
一方、実行中のジョブが残っていなければ、情報処理装置１は、優先度付与動作を終了する。
【００６５】
なお、情報処理装置１は、一定間隔で各ジョブについてステップＳ１１〜Ｓ１５を実行する他、キャッシュ１０６に新たなデータが追加されるタイミングで各ジョブについてステップＳ１１〜Ｓ１５を実行するようにしてもよい。
【００６６】
次に、情報処理装置１の、キャッシュ制御動作について図９を参照して説明する。
【００６７】
ここでは、まず、キャッシュ制御部１０９は、キャッシュ１０６の使用状況が所定の条件を満たすか否かを判断する（ステップＳ２１）。
【００６８】
例えば、キャッシュ制御部１０９は、キャッシュ１０６に格納されたデータの容量が閾値以上であるか否かを判断してもよい。
【００６９】
ここで、キャッシュ１０６の使用状況が所定の条件を満たさないと判断した場合、キャッシュ制御部１０９は、ステップＳ２１を再度実行する。
【００７０】
一方、キャッシュ１０６の使用状況が所定の条件を満たすと判断した場合、キャッシュ制御部１０９は、キャッシュ１０６内のデータに付与された優先度に基づいて一部のデータを選択し、選択したデータを削除する（ステップＳ２２）。
【００７１】
例えば、キャッシュ１０６は、キャッシュ１０６内のデータのうち、最も低い優先度が付与されたデータを削除してもよい。
【００７２】
キャッシュ制御部１０９は、ステップＳ２１からの処理を再度実行する。
【００７３】
以上で、情報処理装置１の動作の説明を終了する。
【００７４】
次に、本発明の第１の実施の形態としての情報処理装置１を用いた実験について説明する。実験では、あるジョブで用いられるデータがキャッシュ１０６から削除される回数を、そのジョブに設定される優先度算出アルゴリズムの変更前と変更後とで比較する実験を行った。
【００７５】
まず、第１の実験として、ジョブＡ、ＢおよびＣに同一の優先度算出アルゴリズムを設定して一定期間これらのジョブを実行した。そして、第１の実験において、ジョブＡで用いられるデータがキャッシュ１０６から削除される回数を測定した。
【００７６】
次に、第２の実験として、第１の実験に対してジョブＡに設定する優先度算出アルゴリズムのみを変更し、同様に一定期間ジョブＡ、ＢおよびＣを実行した。そして、第２の実験において、ジョブＡで用いられるデータがキャッシュ１０６から削除される回数を測定した。
【００７７】
なお、第１の実験および第２の実験のそれぞれにおいて、ジョブの実行状況に基づく優先度算出アルゴリズムの変更はないものと仮定した。
【００７８】
まず、第１および第２の実験で用いたジョブＡ、ＢおよびＣについて説明する。
【００７９】
第１および第２の実験では、ジョブ格納部１０１は、ジョブＡ、ジョブＢおよびジョブＣを表す情報を格納した。図１０に示すように、ジョブＡは、データａ１、ａ２、ａ３を用いる処理である。また、ジョブＢは、データｂ１、ｂ２、ｂ３を用いる処理である。また、ジョブＣは、データｃ１、ｃ２、ｃ３を用いる処理である。
【００８０】
また、ジョブＡは、処理開始後１秒後にａ１にアクセスし、４秒後にａ２にアクセスし、７秒後にａ３にアクセスする。このように、ジョブＡは、処理開始後３ｎ＋１（ｎは０以上の整数）秒ごとにａ１、ａ２、ａ３に順次アクセスする。また、ジョブＢは、２秒後、５秒後、８秒後といったように、処理開始後３ｎ＋２秒ごとにｂ１、ｂ２、ｂ３に順次アクセスする。また、ジョブＣは３秒後、６秒後、９秒後といったように、処理開始後３ｎ＋３秒ごとにｃ１、ｃ２、ｃ３に順次アクセスする。すなわち、ジョブＡ、ジョブＢおよびジョブＣを同時に開始すると、ジョブ実行部１０４は、１秒ごとに、ａ１、ｂ１、ｃ１、ａ２、ｂ２、ｃ２、ａ３、ｂ３、ｃ３という順にデータにアクセスする。
【００８１】
次に、第１および第２の実験におけるジョブＡ、ＢおよびＣのスケジュールについて説明する。
【００８２】
第１および第２の実験では、スケジュール格納部１０２は、上述のジョブＡ、ジョブＢおよびジョブＣを所定時刻に同時に開始し、１０００秒間繰り返し実行するスケジュールを格納しているものとした。
【００８３】
次に、第１および第２の実験におけるデータの格納場所について説明する。
【００８４】
第１および第２の実験では、データａ１、ｂ１、ｃ１、ａ２、ｂ２、ｃ２、ａ３、ｂ３、ｃ３は、データ格納部９としての記憶装置１００４に格納した。
【００８５】
次に、第１および第２の実験におけるジョブ実行部１０４について説明する。
【００８６】
ジョブ実行部１０４は、データ格納部９から一旦読み込んだデータをキャッシュ１０６に格納する。そして、ジョブ実行部１０４は、次回そのデータにアクセスする際、該データがキャッシュ１０６に存在すれば、データ格納部９からではなくキャッシュ１０６から読み込みを行うものとする。
【００８７】
次に、第１および第２の実験において使用したキャッシュ１０６の制限について説明する。
【００８８】
第１および第２の実験では、キャッシュ１０６は、５個までのデータを格納可能とした。また、キャッシュ制御部１０９は、キャッシュ１０６内のデータ個数が５に達していたら、優先度の最も低いデータをキャッシュ１０６から削除するようにした。
【００８９】
なお、第１および第２の実験において、将来使用時期予測部１０３は、既に各データの将来使用時期を予測し、将来使用時期テーブル１１３を保持しているものとした。
【００９０】
また、第１および第２の実験において、優先度付与部１０８は、キャッシュ１０６が一杯になったタイミングで優先度の付与を行った。詳細には、優先度付与部１０８は、ジョブ実行部１０４によってキャッシュ１０６に新たにデータが追加されようとしたとき、既にキャッシュ１０６が一杯であった場合に、優先度付与動作を行った。
【００９１】
次に、第１の実験における優先度付与動作およびキャッシュ制御動作について説明する。
【００９２】
図１１に示すように、第１の実験では、ジョブＡ、ジョブＢ、ジョブＣには、それぞれ同一の優先度算出アルゴリズムｆ（ｔ）＝−ｔ＋１０が設定されているものとした。ここで、図１１において、グラフの横軸ｔは、優先度を算出する時点の時刻から将来の使用時期までの差分時間を表している。
【００９３】
図１１（ａ）は、実験開始から９ｎ＋９（ｎは０以上の整数）秒後において、ジョブＡで用いられるａ１、ａ２、ａ３の各データについて算出される優先度を表している。図１１（ａ）において、データａ１、ａ２、ａ３の各将来の使用時期までの差分時間は、それぞれ１秒後、４秒後、７秒後である。したがって、優先度付与部１０８は、ａ１、ａ２、ａ３の各優先度として、９、６、３をそれぞれ算出する。
【００９４】
図１１（ｂ）は、実験開始から９ｎ＋９秒後において、ジョブＢで用いられるｂ１、ｂ２、ｂ３の各データについて算出される優先度を表している。図１１（ｂ）において、データｂ１、ｂ２、ｂ３の各将来の使用時期までの差分時間は、それぞれ２秒後、５秒後、８秒後である。したがって、優先度付与部１０８は、ｂ１、ｂ２、ｂ３の各優先度として、８、５、２をそれぞれ算出する。
【００９５】
図１１（ｃ）は、実験開始から９ｎ＋９秒後において、ジョブＣで用いられるｃ１、ｃ２、ｃ３の各データについて算出される優先度を表している。図１１（ｃ）において、データｃ１、ｃ２、ｃ３の各将来の使用時期までの差分時間は、それぞれ３秒後、６秒後、９秒後である。したがって、優先度付与部１０８は、ｃ１、ｃ２、ｃ３の各優先度として、７、４、１をそれぞれ算出する。
【００９６】
例えば、実験開始から８秒後の処理終了時点では、キャッシュ１０６は、ａ１、ｂ１、ｃ１、ａ２およびｂ３の５つのデータを保持している。
【００９７】
次に、実験開始から９秒後、ジョブ実行部１０４は、データ格納部９から読み込んだデータｃ３をキャッシュ１０６に格納しようとするが、キャッシュ１０６に空き領域を確保できない。
【００９８】
そこで、優先度付与部１０８は、キャッシュ１０６内の５つのデータａ１、ｂ１、ｃ１、ａ２およびｂ３の優先度として９、８、７、６および２を算出する。
【００９９】
そして、キャッシュ制御部１０９は、優先度が最も低いデータｂ３をキャッシュ１０６から削除する。ジョブ実行部１０４は、新たなデータｃ３をキャッシュ１０６に保持する。
【０１００】
このような第１の実験において、ジョブＡで用いられるデータａ１、ａ２およびａ３がキャッシュ１０６から削除された回数は、１６６回であった。
【０１０１】
次に、第２の実験における優先度付与動作およびキャッシュ制御動作について説明する。
【０１０２】
図１２に示すように、第２の実験では、ジョブＡには、第１の実験より優先度がより高く算出されるｆ（ｔ）＝−ｔ＋１１が設定されているものとした。また、ジョブＢおよびジョブＣには、第１の実験と同様にｆ（ｔ）＝−ｔ＋１０が設定されているものとした。
【０１０３】
なお、第２の実験は、例えば、ジョブＡの終了期限までの残り時間が少なくなり、ジョブＢおよびジョブＣの残り時間には余裕がある場合に、情報処理装置１が、ジョブＡに適用する優先度算出アルゴリズムを変更した状態に相当する。
【０１０４】
図１２（ａ）は、実験開始から９ｎ＋９秒後において、ジョブＡで使用される各データについて算出される優先度を表している。図１２（ａ）において、データａ１、ａ２、ａ３の各将来の使用時期までの差分時間は、それぞれ１秒後、４秒後、７秒後である。したがって、優先度付与部１０８は、ａ１、ａ２、ａ３の各優先度として、１０、７、４をそれぞれ算出する。
【０１０５】
図１２（ｂ）および（ｃ）については、図１１（ｂ）および（ｃ）と同様であるため、説明を省略する。
【０１０６】
このような第２の実験において、ジョブＡで用いられるデータａ１、ａ２およびａ３がキャッシュ１０６から削除された回数は、７４回であった。
【０１０７】
ここで、第１および第２の実験におけるデータａ１、ａ２およびａ３のキャッシュ削除回数を比較した表を図１３に示す。
【０１０８】
図１３において、全てのジョブに同一の優先度算出アルゴリズムを適用した第１の実験に比べて、ジョブＡの優先度算出アルゴリズムを変更した第２の実験におけるａ１、ａ２およびａ３のキャッシュ削除回数は、１６６回から７４回に減っていることがわかる。すなわち、第２の実験では、第１の実験に対して優先度算出アルゴリズムを変更したジョブのデータがキャッシュに残りやすくなったことがわかる。
【０１０９】
したがって、第２の実験では、第１の実験に対してジョブＡのキャッシュミス率が低下することになる。それゆえ、第２の実験において、情報処理装置１は、ジョブＡを実行する際のデータアクセス時間を大幅に減らすことができ、ジョブＡの実行時間を短縮することが可能となる。
【０１１０】
これらの実験からわかるように、情報処理装置１は、例えば、ジョブＡの終了期限までの残り時間が迫っているといった実行状況に応じて、ジョブＡの優先度算出アルゴリズムを変更することにより、ジョブＡの実行時間を短縮することができる。
【０１１１】
次に、本発明の第１の実施の形態の効果について述べる。
【０１１２】
本発明の第１の実施の形態としての情報処理装置は、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行うことができる。
その理由は、ジョブの実行によりキャッシュに保持されるデータの優先度を、将来使用時期予測部で予測された該データの将来の使用時期に基づいて算出する、優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、ジョブ毎に優先度算出アルゴリズム格納部に格納し、優先度付与部がそれを参照し、実行状況取得部によって取得された実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、キャッシュに保持されたデータに優先度を算出して付与するからである。
【０１１３】
すなわち、本実施の形態では、ジョブで用いられるキャッシュ内のデータに付与する優先度を算出する優先度算出アルゴリズムを、スケジュールされたジョブの実行状況に応じて変更することができるからである。
【０１１４】
したがって、本発明の第１の実施の形態としての情報処理装置は、例えば終了期限までの残り時間が迫っているジョブで用いられるデータの優先度を、残り時間に余裕があるジョブで用いられるデータの優先度より高く設定することができる。その結果、残り時間が迫っているジョブで用いられるデータをキャッシュから削除されにくくすることができる。
【０１１５】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【０１１６】
まず、本発明の第２の実施の形態としての情報処理装置２の機能ブロック構成を図１４に示す。図１４において、情報処理装置２は、本発明の第１の実施の形態としての情報処理装置１に対して、将来使用時期予測部１０３に替えて将来使用時期予測部２０３と、実行状況取得部１０５に替えて実行状況取得部２０５と、優先度算出アルゴリズム格納部１０７に替えて優先度算出アルゴリズム格納部２０７と、優先度付与部１０８に替えて優先度付与部２０８とを備え、さらにジョブ実行履歴格納部２１１と、将来使用時期修正部２１２とを備えている。
【０１１７】
ここで、ジョブ実行履歴格納部２１１は、ＲＯＭ１００３または記憶装置１００４に記憶されたコンピュータ・プログラムをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１、および、記憶装置１００４によって構成されている。また、将来使用時期修正部２１２は、ＲＯＭ１００３または記憶装置１００４に記憶されたコンピュータ・プログラムをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１によって構成されている。
【０１１８】
ジョブ実行履歴格納部２１１は、ジョブ格納部１０１に格納されたジョブの過去の実行履歴を表す情報を格納している。例えば、ジョブ実行履歴格納部２１１は、ジョブの過去の実行開始時刻、実行終了時刻、そのジョブにおいて用いられるデータが使用された使用履歴等を、実行履歴を表す情報として格納していてもよい。
【０１１９】
また、ジョブ実行履歴格納部２１１は、ジョブ実行部１０４によって実行されるジョブを監視してこれらの情報を取得するようにしてもよい。
【０１２０】
将来使用時期予測部２０３は、本発明の第１の実施の形態における将来使用時期予測部１０３と同様にジョブ格納部１０１およびスケジュール格納部１０２を参照するのに加えて、さらにジョブ実行履歴格納部２１１を参照することにより、各データの将来の使用時期を予測する。例えば、将来使用時期予測部２０３は、ジョブ実行履歴格納部２１１を参照することにより、あるジョブの過去の実行開始時刻から、あるデータが使用された時刻までの経過時間を求めてもよい。そして、将来使用時期予測部２０３は、スケジュール格納部１０２に格納された開始時刻に、算出した経過時間を加算することにより、そのデータの将来の使用時期を算出してもよい。
【０１２１】
実行状況取得部２０５は、実行中のジョブの進度のスケジュールに対する差異を表すスケジュール差異情報を実行状況情報として取得する。
【０１２２】
例えば、ジョブ格納部１０１に格納されたジョブが、そのデータ処理量によって進度を算出可能に構成されており、スケジュール格納部１０２にそのジョブの当初の終了予定時刻があらかじめ格納されている場合を想定する。この場合、実行状況取得部２０５は、実行中のジョブの進度に基づいてその時点での終了予定時刻を再計算し、再計算した終了予定時刻と当初の終了予定時刻との差分を、スケジュール差異情報として算出してもよい。
【０１２３】
あるいは、例えば、実行状況取得部２０５は、実行中のジョブの実際の開始時刻と、スケジュールされた開始時刻との差分を、スケジュール差異情報として取得してもよい。
【０１２４】
将来使用時期修正部２１２は、実行状況取得部２０５によって取得されたスケジュール差異情報に基づいて、将来使用時期予測部２０３によって算出された将来使用時期テーブル１１３を修正する。
【０１２５】
例えば、将来使用時期修正部２１２は、あるジョブがスケジュールより３００秒遅れているというスケジュール差異情報が取得されている場合、そのジョブで用いられるデータの各将来の使用時期を、既に算出されている時期より３００秒後に修正する。
【０１２６】
優先度算出アルゴリズム格納部２０７は、スケジュール差異情報に対する条件と、優先度算出アルゴリズムとを対応付けた情報を、ジョブ毎に格納している。
【０１２７】
例えば、優先度算出アルゴリズム格納部２０７は、スケジュール差異情報が±１０分未満の場合の優先度算出アルゴリズムとして、ｆ（ｔ）＝−ｔ＋１０を格納してもよい。また、例えば、優先度算出アルゴリズム格納部２０７は、スケジュール差異情報が１０分を超えた（すなわち、スケジュールより１０分以上遅れている）場合の優先度算出アルゴリズムとして、ｆ（ｔ）＝−ｔ＋２０を格納してもよい。また、例えば、優先度算出アルゴリズム格納部２０７は、スケジュール差異情報が−１０分より小さい（すなわち、スケジュールより１０分以上早く進んでいる）場合の優先度算出アルゴリズムとして、ｆ（ｔ）＝−ｔ＋５を格納するようにしてもよい。
【０１２８】
優先度付与部２０８は、実行状況取得部２０５によって取得された各ジョブのスケジュール差異情報が満たす条件に対応付けられた優先度算出アルゴリズムを取得する。そして、優先度付与部２０８は、取得した各ジョブの優先度算出アルゴリズムを用いて、各ジョブで用いられるデータに優先度を算出して付与する。
【０１２９】
以上のように構成された情報処理装置２の動作について、図１５〜図１６を用いて説明する。なお、情報処理装置２のキャッシュ制御動作については図９を用いて説明した本発明の第１の実施の形態としての情報処理装置１と同様であるため、本実施の形態における詳細な説明を省略する。
【０１３０】
まず、情報処理装置２の将来使用時期予測動作を図１５に示す。
【０１３１】
ここでは、まず、スケジュール格納部１０２がスケジュールを表す情報を格納した後（ステップＳ１）、将来使用時期予測部２０３は、スケジュール格納部１０２に格納されているジョブに関する実行履歴を表す情報を、ジョブ実行履歴格納部２１１から取得する（ステップＳ３１）。
【０１３２】
次に、将来使用時期予測部２０３は、ステップＳ３１で取得した実行履歴を表す情報、ジョブ格納部１０１およびスケジュール格納部１０２に格納された情報に基づいて、このジョブで使用される各データの将来の使用時期を予測する（ステップＳ３２）。
【０１３３】
例えば、将来使用時期予測部２０３は、上述のように、あるジョブの過去の実行開始時刻、そのジョブであるデータが使用された過去の使用時刻、および、そのジョブのスケジュールされた開始時刻に基づいて、将来の使用時期を予測するようにしてもよい。
【０１３４】
その後、将来使用時期予測部２０３は、本発明の第１の実施の形態における使用時期予測部１０３と同様にステップＳ３を実行し、各データの将来の使用時期を将来の使用時期テーブルとして記憶する。
【０１３５】
将来使用時期予測部２０３は、ステップＳ３１〜ステップＳ３２およびステップＳ３の動作を、スケジュール格納部１０２に格納されている各ジョブについて実行する。
【０１３６】
以上で、情報処理装置２は、将来使用時期予測動作を終了する。
【０１３７】
次に、情報処理装置２の優先度付与動作を図１６に示す。ここで、優先度付与動作は、スケジュールに基づくジョブの実行開始後に実行されるものとする。また、優先度付与動作開始時点において、各ジョブには、スケジュールに基づくジョブの実行開始直後の実行状況情報に基づく優先度算出アルゴリズムが既に設定されているものとする。
【０１３８】
ここでは、まず、実行状況取得部２０５は、スケジュールに基づいて実行中のジョブについて、スケジュール差異情報を取得する（ステップＳ４１）。
【０１３９】
次に、将来使用時期修正部２１２は、スケジュール差異情報に基づいて、将来使用時期テーブル１１３に記憶された将来の使用時期のうち、該当するジョブで用いられるデータの将来の使用時期を修正する（ステップＳ４２）。
【０１４０】
次に、優先度付与部２０８は、実行状況取得部２０５によって取得されたスケジュール差異情報が、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられた条件を満たすか否かを、優先度算出アルゴリズム格納部２０７を参照することにより判断する（ステップＳ４３）。
【０１４１】
例えば、優先度付与部２０８は、このジョブのスケジュール差異情報が５分遅れであることを示していれば、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられた条件「スケジュール差異情報±１０分以内」を満たすと判断する。
【０１４２】
ステップＳ４３で、このジョブのスケジュール差異情報が、既に設定されている優先度算出アルゴリズムに対応付けられた条件を満たすと判断された場合、情報処理装置２の処理はステップＳ１４に進む。
【０１４３】
一方、ステップＳ４３で、このジョブのスケジュール差異情報が、既に設定されている優先度算出アルゴリズムに対応付けられた条件を満たさないと判断された場合、優先度付与部２０８は、優先度算出アルゴリズム格納部２０７を参照することにより、このジョブに設定する優先度算出アルゴリズムを変更する（ステップＳ４４）。
【０１４４】
例えば、優先度付与部２０８は、スケジュール差異情報が１５分遅れであることを示していれば、「スケジュール差異情報１０分以上」に対応付けられた優先度算出アルゴリズム「ｆ（ｔ）＝−ｔ＋２０」に、このジョブの優先度算出アルゴリズムを変更する。
【０１４５】
以降、情報処理装置２は、ステップＳ１４〜ステップＳ１５まで本発明の第１の実施の形態としての情報処理装置１と同様に動作することにより、このジョブのスケジュール差異情報に応じて変更した優先度算出アルゴリズムを用いて、このジョブで用いられるキャッシュ１０６内の各データに優先度を付与する。
【０１４６】
そして、情報処理装置２は、実行中のジョブが全て終了するまで、実行中の各ジョブについてステップＳ４１〜Ｓ４４およびステップＳ１４〜Ｓ１５を実行する。
【０１４７】
以上で、情報処理装置２は、優先度付与動作を終了する。
【０１４８】
次に、本発明の第２の実施の形態の効果について述べる。
【０１４９】
本発明の第２の実施の形態としての情報処理装置は、スケジュールされたジョブの実行状況に応じてさらに柔軟なキャッシュ管理を行うことができる。
【０１５０】
その理由は、ジョブがスケジュール通りに実行されているか、スケジュールより遅れているか、スケジュールより早く進んでいるかに応じて優先度算出アルゴリズムを変更するからである。これにより、スケジュールより遅れているジョブで用いるデータの優先度を高くしてキャッシュから削除されにくくすることができるからである。また、スケジュールより早く進んでいるジョブで用いられるデータの優先度を低くしてキャッシュから削除されやすくすることにより、他のジョブのためのキャッシュ領域を確保することができるからである。
【０１５１】
また、本発明の第２の実施の形態としての情報処理装置は、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行う際の、データの将来の使用時期の予測精度を向上させることができる。
【０１５２】
その理由は、将来使用時期予測部が、過去のジョブの実行履歴に基づいて各データの将来の使用時期を予測するからである。さらなる理由は、将来使用時期修正部が、ジョブの実行中にそのスケジュール差異情報に応じて、各データの将来の使用時期を修正するからである。
【０１５３】
これにより、本発明の第２の実施の形態としての情報処理装置は、より高精度に予測された将来の使用時期を用いて、より適切にキャッシュから削除するデータを選択することができる。
【０１５４】
（第３の実施の形態）
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【０１５５】
まず、本発明の第３の実施の形態としての情報処理装置３の機能ブロック構成を図１７に示す。図１７において、情報処理装置３は、本発明の第１の実施の形態としての情報処理装置１に対して、実行状況取得部１０５に替えて実行状況取得部３０５と、優先度算出アルゴリズム格納部１０７に替えて優先度算出アルゴリズム格納部３０７と、優先度付与部１０８に替えて優先度付与部３０８とを備えている。
【０１５６】
実行状況取得部３０５は、ジョブ実行部１０４によって実行中のジョブに関して、中断、実行中および終了済みのいずれかを表す情報を実行状況情報として取得する。図１８は、実行状況取得部３０５によって取得される実行状況情報の一例である。
【０１５７】
優先度算出アルゴリズム格納部３０７は、中断、実行中および終了済みのいずれかの状態と、優先度算出アルゴリズムとを対応付けた情報を、ジョブ毎に格納している。
【０１５８】
例えば、優先度算出アルゴリズム格納部３０７は、あるジョブが中断されている場合の優先度算出アルゴリズムとしてｆ（ｔ）＝−１０を格納してもよい。また、例えば、優先度算出アルゴリズム格納部３０７は、そのジョブが終了済みの場合の優先度算出アルゴリズムとしてｆ（ｔ）＝−１００を格納してもよい。また、例えば、優先度算出アルゴリズム格納部３０７は、そのジョブが実行中の場合の優先度算出アルゴリズムとしてｆ（ｔ）＝−ｔ＋１０を格納してもよい。
【０１５９】
優先度付与部３０８は、実行状況取得部３０５によって取得された各ジョブの状況に対応付けられた優先度算出アルゴリズムを取得する。そして、優先度付与部３０８は、取得した各ジョブの優先度算出アルゴリズムを用いて、各ジョブで用いられるデータに優先度を算出して付与する。
【０１６０】
以上のように構成された情報処理装置３の優先度付与動作について、図１９を用いて説明する。なお、情報処理装置３の将来使用時期予測動作およびキャッシュ制御動作については図７および図９を用いて説明した本発明の第１の実施の形態としての情報処理装置１と同様であるため、本実施の形態における詳細な説明を省略する。
【０１６１】
また、この優先度付与動作は、スケジュールに基づくジョブの実行開始後に実行されるものとする。また、優先度付与動作開始時点において、各ジョブには、スケジュールに基づくジョブの実行開始直後の実行状況情報に基づく優先度算出アルゴリズムが既に設定されているものとする。
【０１６２】
ここでは、まず、実行状況取得部３０５は、スケジュールされた各ジョブについて、中断、実行中および終了済みのいずれかを表す実行状況情報を取得する（ステップＳ５１）。
【０１６３】
ここで、終了済みであることを表す実行状況情報が取得された場合（ステップＳ５２でＹｅｓ）、優先度付与部３０８は、優先度算出アルゴリズム格納部３０７を参照して、このジョブに設定する優先度算出アルゴリズムを、終了済みの場合のものに変更する（ステップＳ５４）。
【０１６４】
一方、中断されていることを表す実行状況情報が取得された場合（ステップＳ５２でＮｏ、ステップＳ５３でＹｅｓ）、優先度付与部３０８は、優先度算出アルゴリズム格納部３０７を参照して、このジョブに設定する優先度算出アルゴリズムを、中断された場合のものに変更する（ステップＳ５５）。
【０１６５】
また、実行中であることを表す実行状況情報が取得された場合（ステップＳ５２でＮｏ、ステップＳ５３でＮｏ）、優先度付与部３０８は、優先度算出アルゴリズム格納部３０７を参照して、このジョブに設定する優先度算出アルゴリズムを、実行中の場合のものに変更する（ステップＳ５６）。
【０１６６】
以降、情報処理装置３は、ステップＳ１４〜ステップＳ１５まで本発明の第１の実施の形態としての情報処理装置１と同様に動作することにより、中断または実行中の実行状況に応じて取得した優先度算出アルゴリズムを用いて、このジョブで使用するキャッシュ１０６内の各データに優先度を付与する。
【０１６７】
そして、情報処理装置３は、実行中のジョブが全て終了するまで、実行中の各ジョブについてステップＳ５１〜Ｓ５６およびステップＳ１４〜Ｓ１５を実行する。
【０１６８】
以上で、情報処理装置３は、優先度付与動作を終了する。
【０１６９】
次に、本発明の第３の実施の形態の効果について述べる。
【０１７０】
本発明の第３の実施の形態としての情報処理装置は、スケジュールされたジョブの実行状況に応じてさらに柔軟なキャッシュ管理を行うことができる。
【０１７１】
その理由は、中断、終了済み、および、実行中のいずれかを表すジョブの実行状況に応じて、優先度算出アルゴリズムを変更するからである。これにより、中断されているジョブや終了済みのジョブで用いられていたデータの優先度を低くしてキャッシュから優先的に削除することができる。そして、他のジョブのためのキャッシュ領域を確保することができるからである。
【０１７２】
なお、上述の各実施の形態において、各優先度算出アルゴリズム格納部は、スケジュールされていないジョブに対する優先度算出アルゴリズムとして、過去のデータの使用履歴に基づく優先度算出アルゴリズムを格納していてもよい。
【０１７３】
この場合、上述の各実施の形態における各将来使用時期予測部は、スケジュールされていないジョブで用いられるデータに対しては、将来の使用時期を予測できない。そこで、上述の各実施の形態における各優先度付与部は、スケジュールされていないジョブで用いられるキャッシュ内のデータに対しては、過去のデータの使用履歴に基づく優先度算出アルゴリズムを適用して優先度を付与する。
【０１７４】
これにより、上述の各実施の形態としての情報処理装置は、スケジュールされていないジョブで用いられるデータをさらに対象として柔軟なキャッシュ管理を行うことができる。
【０１７５】
例えば、図２０に、過去のデータの使用履歴に基づく優先度算出アルゴリズムの一例としてｆ（ｔ）＝ｔ＋１０を示す。図２０において、縦軸は優先度ｆ（ｔ）、横軸は時間ｔである。ここで、ｔは、優先度を算出する時点の時刻Ｔｎｏｗから、データｉの過去の使用時刻Ｔｉまでの時間を表している。すなわち、ｔ＝Ｔｉ−Ｔｎｏｗは負の値となる。図２０に示すｆ（ｔ）＝ｔ＋１０は、最も過去に使われたデータの優先度を低くするため、ＬＲＵであるといえる。
【０１７６】
この場合、上述の各実施の形態における各優先度付与部は、キャッシュ１０６内のデータの将来の使用時期が取得できない場合、過去のデータの使用履歴に基づく優先度算出アルゴリズムを適用して優先度を付与するようにする。
【０１７７】
また、上述の各実施の形態において、各実行状況取得部は、それぞれ１種類の情報を実行状況情報として取得するものとして説明したが、各実行状況取得部は、複数の種類の情報を実行状況情報として取得してもよい。この場合、各実施の形態における優先度算出アルゴリズム格納部は、複数の実行状況情報を組み合わせた条件と、優先度算出アルゴリズムとを対応付けて格納してもよい。
【０１７８】
また、上述の各実施の形態において、各優先度算出アルゴリズム格納部は、入力装置を介してシステム管理者等による設定を格納するものとして説明した。さらに、各優先度算出アルゴリズム格納部は、入力装置を介して設定が取得されなかったジョブに対して適用する条件および優先度算出アルゴリズムをあらかじめ格納しておくようにしてもよい。これにより、各実施の形態としての情報処理装置は、システム管理者等の負担を軽減しながらも、ジョブの実行状況に応じた柔軟なキャッシュ管理を行うことができる。
【０１７９】
また、上述の各実施の形態において、各優先度算出アルゴリズム格納部は、優先度算出アルゴリズムとして、１つのデータについて予測される複数の将来の使用時期に基づいて１つの優先度を算出する優先度算出アルゴリズムを格納しておいてもよい。このような優先度算出アルゴリズムとしては、例えばΣｆ（ｔ）がある。ここで、Σｆ（ｔ）は、あるデータについて複数の将来の使用時期ｔ１〜ｔｍが予測されているとき、ｆ（ｔ１）〜ｆ（ｔｍ）の和を表す。これにより、各実施の形態における各優先度付与部は、将来使用される回数がより多いデータの優先度をより高くしてキャッシュ１０６から削除されにくくすることができる。
【０１８０】
また、上述の各実施の形態において、各情報処理装置は、優先度付与動作を所定の間隔またはキャッシュが所定の条件を満たしたタイミングで実行するものとして説明したが、各情報処理装置は、優先度付与動作を、実行状況情報が所定の条件を満たす場合に実行するようにしてもよい。
【０１８１】
例えば、上述の各実施の形態の各情報処理装置は、あるジョブの実行状況が残り時間が３０分を切った場合にのみ上述の優先度付与動作を行い、各ジョブの残り時間が３０分以上ある場合には、ＬＲＵ等の一般的なキャッシュ削除アルゴリズムを用いてキャッシュ管理を行うようにしてもよい。
【０１８２】
これにより、上述の各実施の形態の各情報処理装置は、本発明の優先度付与動作による負荷の増大を抑制することができる。
【０１８３】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した情報処理装置の動作を、本発明のコンピュータ・プログラムとして情報処理装置の記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【０１８４】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０１８５】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【０１８６】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、
前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測部と、
前記ジョブを前記スケジュールに基づいて実行するジョブ実行部と、
前記ジョブ実行部による前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得部と、
前記ジョブ実行部によって記憶装置から読み込まれるデータを保持するキャッシュと、
前記キャッシュに保持されるデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に格納した優先度算出アルゴリズム格納部と、
前記実行状況取得部によって取得された実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与部と、
前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御部と、を備えた情報処理装置。
（付記２）
前記実行状況取得部は、前記ジョブの進度の前記スケジュールに対する差異を表すスケジュール差異情報を前記実行状況情報として取得することを特徴とする付記１に記載の情報処理装置。
（付記３）
前記将来使用時期予測部によって予測された前記データの将来の使用時期を、前記スケジュール差異情報に基づいて修正する将来使用時期修正部をさらに備えることを特徴とする付記２に記載の情報処理装置。
（付記４）
前記実行状況取得部は、前記スケジュール格納部にあらかじめ格納された前記ジョブの終了期限までの残り時間を前記実行状況情報として取得することを特徴とする付記１から付記３のいずれかに記載の情報処理装置。
（付記５）
前記実行状況取得部は、前記ジョブが実行中であるか、中断された状態であるか、終了済みであるかを表す情報を前記実行状況情報として取得することを特徴とする付記１から付記４のいずれかに記載の情報処理装置。
（付記６）
前記優先度付与部は、将来において複数回に渡って使用されるデータに関して、最も早い将来の使用時期を用いて前記優先度算出アルゴリズムによって算出した優先度を該データに付与することを特徴とする付記１から付記５のいずれかに記載の情報処理装置。
（付記７）
前記優先度算出アルゴリズム格納部は、将来において複数回に渡って使用されるデータに関して、複数の将来の使用時期に基づいて１つの優先度を算出する優先度算出アルゴリズムを格納することを特徴とする付記１から付記５のいずれかに記載の情報処理装置。
（付記８）
前記優先度付与部は、前記キャッシュの状況が所定の条件を満たした場合に、前記キャッシュ内のデータの前記優先度を算出して付与することを特徴とする付記１から付記７のいずれかに記載の情報処理装置。
（付記９）
前記優先度付与部は、前記実行状況情報が所定の条件を満たした場合に、前記キャッシュ内のデータの前記優先度を算出して付与することを特徴とする付記１から付記８のいずれかに記載の情報処理装置。
（付記１０）
前記ジョブ実行部によって前記ジョブが過去に実行された際の実行履歴を表す情報を格納したジョブ実行履歴格納部をさらに備え、
前記将来使用時期予測部は、前記ジョブ実行履歴格納部をさらに参照して前記将来の使用時期を予測することを特徴とする付記１から付記９のいずれかに記載の情報処理装置。
（付記１１）
ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブが実行される際に記憶装置から読み込まれるデータを保持するキャッシュと、を備えた情報処理装置を用いて、
前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測し、
前記キャッシュ内のデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に優先度算出アルゴリズム格納部に格納しておき、
前記ジョブを前記スケジュールに基づいて実行し、
前記ジョブの実行状況を表す実行状況情報を取得し、
前記実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与し、
前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除する、情報処理方法。
（付記１２）
前記ジョブで用いられる各データの将来の使用時期を、前記実行状況情報に基づいて修正することを特徴とする付記１１に記載の情報処理方法。
（付記１３）
ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブが実行される際に記憶装置から読み込まれるデータを保持するキャッシュと、を備えた情報処理装置に、
前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測ステップと、
前記キャッシュ内のデータの優先度を、前記各データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に優先度算出アルゴリズム格納部に格納しておく優先度算出アルゴリズム格納ステップと、
前記ジョブを前記スケジュールに基づいて実行するジョブ実行ステップと、
前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得ステップと、
前記実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与ステップと、
前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御ステップと、
を実行させるコンピュータ・プログラム。
（付記１４）
前記将来使用時期予測ステップで予測された前記データの将来の使用時期を、前記実行状況情報に基づいて修正する将来使用時期修正ステップを、前記情報処理装置にさらに実行させることを特徴とする付記１３に記載のコンピュータ・プログラム。
【符号の説明】
【０１８７】
１、２、３    情報処理装置
９    データ格納部
１０１    ジョブ格納部
１０２    スケジュール格納部
１０３、２０３    将来使用時期予測部
１０４    ジョブ実行部
１０５、２０５、３０５    実行状況取得部
１０６    キャッシュ
１０７、２０７、３０７    優先度算出アルゴリズム格納部
１０８、２０８、３０８    優先度付与部
１０９    キャッシュ制御部
１１３    将来使用時期テーブル
２０７    優先度算出アルゴリズム格納部
２１１    ジョブ実行履歴格納部
２１２    将来使用時期修正部
１００１    ＣＰＵ
１００２    ＲＡＭ
１００３    ＲＯＭ
１００４    記憶装置
【図１】
0005585330.tif 000002
【図２】
0005585330.tif 000003
【図３】
0005585330.tif 000004
【図４】
0005585330.tif 000005
【図５】
0005585330.tif 000006
【図６】
0005585330.tif 000007
【図７】
0005585330.tif 000008
【図８】
0005585330.tif 000009
【図９】
0005585330.tif 000010
【図１０】
0005585330.tif 000011
【図１１】
0005585330.tif 000012
【図１２】
0005585330.tif 000013
【図１３】
0005585330.tif 000014
【図１４】
0005585330.tif 000015
【図１５】
0005585330.tif 000016
【図１６】
0005585330.tif 000017
【図１７】
0005585330.tif 000018
【図１８】
0005585330.tif 000019
【図１９】
0005585330.tif 000020
【図２０】
0005585330.tif 000021