JP2012059204A - 情報処理装置、情報処理方法およびコンピュータ・プログラム - Google Patents

情報処理装置、情報処理方法およびコンピュータ・プログラム Download PDF

Info

Publication number
JP2012059204A
JP2012059204A JP2010204441A JP2010204441A JP2012059204A JP 2012059204 A JP2012059204 A JP 2012059204A JP 2010204441 A JP2010204441 A JP 2010204441A JP 2010204441 A JP2010204441 A JP 2010204441A JP 2012059204 A JP2012059204 A JP 2012059204A
Authority
JP
Japan
Prior art keywords
job
priority
data
cache
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010204441A
Other languages
English (en)
Other versions
JP5585330B2 (ja
Inventor
Takehiro Watanabe
岳大 渡邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010204441A priority Critical patent/JP5585330B2/ja
Publication of JP2012059204A publication Critical patent/JP2012059204A/ja
Application granted granted Critical
Publication of JP5585330B2 publication Critical patent/JP5585330B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行う情報処理装置を提供すること。
【解決手段】ジョブ格納部101に格納されたジョブのスケジュール格納部102と、ジョブで用いられる各データの将来の使用時期を予測する将来使用時期予測部103と、ジョブを実行するジョブ実行部104と、ジョブの実行状況を取得する実行状況取得部105と、キャッシュ106と、キャッシュ106内の各データの将来の使用時期に基づいて優先度を算出する優先度算出アルゴリズムと実行状況に対する条件とを対応付けた情報を、ジョブ毎に格納した優先度算出アルゴリズム格納部107と、実行状況が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、キャッシュ106内のデータに優先度を算出する優先度付与部108と、キャッシュ106内のデータを優先度に基づいて選択して削除するキャッシュ制御部109とを備える。
【選択図】 図2

Description

本発明は、キャッシュに保持するデータを管理する情報処理装置に関する。
一般に、情報処理装置は、処理を行う際に使用するデータを、該データの格納元の記憶装置から読み出した際に、より高速な記憶装置であるキャッシュにも保持しておく。これにより、情報処理装置は、次回に同じデータを読み出す処理の高速化を図っている。通常、キャッシュは、格納元の記憶装置より小容量である。このため、情報処理装置は、キャッシュが一杯になると、新たなデータを保持する領域を確保するため、既にキャッシュに保持しているデータの一部を選択して削除する。なお、キャッシュに保持しているデータの一部を選択して削除することを、以降、キャッシュ削除という。
キャッシュ削除のアルゴリズムとして代表的なものに、最近最も使われていないデータを最初に削除するLeast Recently Used(以降、LRUと記載する)や、頻繁には使われていないデータを最初に削除するLeast Frequently Used(以降、LFUと記載する)等がある。これらのアルゴリズムは、キャッシュ内のデータの過去の使用状況に基づいてキャッシュ削除を行うものである。
このようなキャッシュ削除を行う情報処理装置として、キャッシュ内のデータの将来の使用時期に基づいてキャッシュ削除を行うものがある(例えば、特許文献1参照)。
この特許文献1に記載された情報処理装置は、複数のデータブロックからなるフェッチ単位を1度に読み出してキャッシュに保持する。また、この情報処理装置は、プログラムの実行中に必要なデータブロックの使用時期を予測する。そして、この情報処理装置は、同一のフェッチ単位に含まれる第1のデータブロックおよび第2のデータブロックについて、第1のデータブロックの次回の使用時期より第2のデータブロックの次回の使用時期が早ければ、第1のデータブロックをキャッシュから削除する。
このように、データの将来の使用時期に基づいてキャッシュ削除を行う情報処理装置は、スケジューリングされたジョブの実行に適している。なぜなら、スケジューリングされたジョブで用いられるデータは、ジョブのスケジュールに基づいて将来の使用時期を予測可能だからである。
特表2007−535058号公報
しかしながら、特許文献1に記載された情報処理装置は、あるジョブがスケジュールどおりに実行されず遅延している場合でも、そのジョブで用いられるデータの将来の使用時期より他のジョブで用いられるデータの将来の使用時期が早ければ、遅延しているジョブのデータをキャッシュから削除してしまうことがある。
また、特許文献1に記載された情報処理装置は、あるジョブがスケジュールより早く進捗しておりスケジュールに余裕がある場合でも、そのジョブに用いられるデータの将来の使用時期より他のジョブで用いられるデータの将来の使用時期が後であれば、他のジョブのデータをキャッシュから削除してしまうことがある。すなわち、この情報処理装置は、スケジュールに余裕があるジョブのデータを優先的にキャッシュから削除することができない。
同様に、LRUやLFUなどのアルゴリズムを採用して過去のデータ使用状況に基づいてキャッシュ削除を行う情報処理装置も、遅延しているジョブで用いられるデータが最近使われていないか最近の使用頻度が低ければ、そのデータをキャッシュから削除してしまうことがある。また、このような情報処理装置は、スケジュールに余裕があるジョブで用いられるデータを優先的にキャッシュから削除することができない。
このように、特許文献1に記載された情報処理装置、および、過去のデータ使用状況に基づいてキャッシュ削除を行う情報処理装置は、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行うことができないという課題があった。
本発明は、上述の課題を解決するためになされたもので、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行う情報処理装置を提供することを目的とする。
本発明の情報処理装置は、ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測部と、前記ジョブを前記スケジュールに基づいて実行するジョブ実行部と、前記ジョブ実行部による前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得部と、前記ジョブ実行部によって記憶装置から読み込まれるデータを保持するキャッシュと、前記キャッシュに保持されるデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に格納した優先度算出アルゴリズム格納部と、前記実行状況取得部によって取得された実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与部と、前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御部と、を備える。
また、本発明の情報処理方法は、ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブが実行される際に記憶装置から読み込まれるデータを保持するキャッシュと、を備えた情報処理装置を用いて、前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測し、前記キャッシュ内のデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に優先度算出アルゴリズム格納部に格納しておき、前記ジョブを前記スケジュールに基づいて実行し、前記ジョブの実行状況を表す実行状況情報を取得し、前記実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与し、前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除する。
また、本発明のコンピュータ・プログラムは、ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブが実行される際に記憶装置から読み込まれるデータを保持するキャッシュと、を備えた情報処理装置に、前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測ステップと、前記キャッシュ内のデータの優先度を、前記各データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に優先度算出アルゴリズム格納部に格納しておく優先度算出アルゴリズム格納ステップと、前記ジョブを前記スケジュールに基づいて実行するジョブ実行ステップと、前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得ステップと、前記実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与ステップと、前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御ステップと、を実行させる。
本発明は、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行う情報処理装置を提供することができる。
本発明の第1の実施の形態としての情報処理装置のハードウェア構成図である。 本発明の第1の実施の形態としての情報処理装置の機能ブロック図である。 本発明の第1の実施の形態におけるデータの将来の使用時期の一例を示す図である。 本発明の第1の実施の形態におけるキャッシュ内のデータに付与される優先度の一例を示す図である。 本発明の第1の実施の形態においてジョブ毎の実行状況に対して設定された優先度算出アルゴリズムの一例を示す図である。 本発明の第1の実施の形態における優先度算出アルゴリズムの一例を示すグラフである。 本発明の第1の実施の形態としての情報処理装置が各データの将来の使用時期を予測する動作を説明するフローチャートである。 本発明の第1の実施の形態としての情報処理装置がキャッシュ内のデータに優先度を付与する動作を説明するフローチャートである。 本発明の第1の実施の形態としての情報処理装置がキャッシュ内のデータを削除する動作を説明するフローチャートである。 本発明の第1の実施の形態としての情報処理装置を用いてキャッシュ削除回数を測定した際の各ジョブで用いられるデータを説明する図である。 本発明の第1の実施の形態としての情報処理装置を用いてキャッシュ削除回数を測定した際に各ジョブに適用した優先度算出アルゴリズムを説明するグラフである。 本発明の第1の実施の形態としての情報処理装置を用いてキャッシュ削除回数を測定した際に各ジョブに適用した他の優先度算出アルゴリズムを説明するグラフである。 本発明の第1の実施の形態としての情報処理装置において図11および図12に示した優先度算出アルゴリズムを各ジョブにそれぞれ適用した際の各キャッシュ削除回数を比較した表である。 本発明の第2の実施の形態としての情報処理装置の機能ブロック図である。 本発明の第2の実施の形態としての情報処理装置が各データの将来の使用時期を予測する動作を説明するフローチャートである。 本発明の第2の実施の形態としての情報処理装置がキャッシュ内のデータに優先度を付与する動作を説明するフローチャートである。 本発明の第3の実施の形態としての情報処理装置の機能ブロック図である。 本発明の第3の実施の形態において実行状況取得部によって取得される実行状況情報の一例を示す図である。 本発明の第3の実施の形態としての情報処理装置がキャッシュ内のデータに優先度を付与する動作を説明するフローチャートである。 本発明の各実施の形態において、スケジュールされていないジョブに適用される優先度算出アルゴリズムの一例を示すグラフである。
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としての情報処理装置1のハードウェア構成を図1に示す。図1において、情報処理装置1は、CPU(Central Processing Unit)1001と、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003と、ハードディスク等の記憶装置1004と、を備えたコンピュータ装置によって構成されている。
次に、情報処理装置1の機能ブロック構成を図2に示す。図2において、情報処理装置1は、ジョブ格納部101と、スケジュール格納部102と、将来使用時期予測部103と、ジョブ実行部104と、実行状況取得部105と、キャッシュ106と、優先度算出アルゴリズム格納部107と、優先度付与部108と、キャッシュ制御部109とを備えている。また、情報処理装置1は、データ格納部9に接続されている。
ここで、ジョブ格納部101と、スケジュール格納部102と、優先度算出アルゴリズム格納部107とは、記憶装置1004によって構成されている。また、ジョブ実行部104と、実行状況取得部105と、優先度付与部108と、キャッシュ制御部109とは、ROM1003または記憶装置1004に記憶されたコンピュータ・プログラムをRAM1002に読み込んで実行するCPU1001によって構成されている。また、将来使用時期予測部103は、ROM1003または記憶装置1004に記憶されたコンピュータ・プログラムをRAM1002に読み込んで実行するCPU1001、および、記憶装置1004によって構成されている。また、キャッシュ106は、RAM1002によって構成されている。ただし、情報処理装置1の各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
なお、データ格納部9は、記憶装置1004によって構成されていてもよいし、情報処理装置1を構成するコンピュータ装置に接続された外部の記憶装置によって構成されていてもよい。
ジョブ格納部101は、ジョブを表す情報を格納している。ここで、ジョブとは、CPU1001によって実行される一連の処理を表す。ジョブを表す情報は、ジョブ実行部104によって実行される。なお、ジョブ格納部101は、本発明におけるジョブ実行部の一部の一実施形態を構成する。
スケジュール格納部102は、ジョブ格納部101に格納されたジョブを実行するスケジュールを表す情報を格納している。例えば、スケジュール格納部102は、複数のジョブの実行順序、ならびに、各ジョブの開始時刻および終了期限等からなるバッチ処理情報を、スケジュールを表す情報として格納していてもよい。なお、スケジュール格納部102に格納される情報は、例えば、図示しないジョブスケジューラによって生成されたものであってもよい。
将来使用時期予測部103は、ジョブで用いられる各データの将来の使用時期を、スケジュール格納部102およびジョブ格納部101に基づいて予測する。
例えば、ジョブAの開始時刻が毎日0時0分0秒にスケジュールされており、ジョブAが実行開始時点から1秒後にa1というデータを用いるよう構成されている場合を想定する。この場合、将来使用時期予測部103は、データa1の将来の使用時期は翌0時0分1秒であると予測する。また、ジョブBの開始時刻が毎日0時0分0秒にスケジュールされており、ジョブBが実行開始時点から2秒後にデータa1を用いるよう構成されている場合を想定する。この場合、将来使用時期予測部103は、データa1の将来の使用時期として、翌0時0分2秒をさらに予測する。
また、将来使用時期予測部103は、予測した各データの将来の使用時期を将来使用時期テーブル113として記憶装置1004に記憶しておく。記憶装置1004に記憶された将来使用時期テーブル113の一例を図3に示す。図3は、上述のデータa1に関する将来の使用時期を表している。図3において、データa1は、翌0時0分1秒にジョブAによって使用され、翌0時0分2秒にジョブBによって使用されると予測されている。
なお、図3の例では、スケジュール格納部102が、毎日定刻にジョブAおよびジョブBを開始するスケジュールを格納していることを想定している。このため、開始時刻および将来の使用時期は、時刻のみで表現されているが、これらの情報は、日時によって表されていてもよい。また、スケジュール格納部102は、毎日実行されるジョブのスケジュールに限らず、その他の所定間隔で繰り返されるジョブのスケジュールや、指定された日時に1度だけ実行されるジョブのスケジュールを含んでいてもよい。
ジョブ実行部104は、スケジュール格納部102に格納されたスケジュールに基づいて、ジョブ格納部101に格納されたジョブを実行する。また、ジョブ実行部104は、ジョブで用いるデータを、データ格納部9から読み込んでキャッシュ106に保持する。また、ジョブ実行部104は、ジョブで用いるデータが既にキャッシュ106に保持されていれば、データ格納部9にアクセスすることなくキャッシュ106から読み込む。
実行状況取得部105は、ジョブ実行部104によるジョブの実行状況を表す実行状況情報を取得する。例えば、実行状況取得部105は、各ジョブの終了期限と現在時刻との差分を計算することにより、終了期限までの残り時間を実行状況情報として取得してもよい。あるいは、実行状況取得部105は、各ジョブに設定された開始時刻と、実際にそのジョブが開始された時刻との差分を実行状況情報として取得してもよい。
キャッシュ106は、ジョブ実行部104によってデータ格納部9から読み込まれたデータを保持する。キャッシュ106は、データ格納部9よりも高速なRAM1002によって構成される。これにより、ジョブ実行部104は、いったんデータ格納部9から読み込んだデータを再度利用する際の処理を高速化する。
また、キャッシュ106は、保持可能なデータ量に制限を有している。すなわち、キャッシュ106は、ジョブ実行部104によって用いられる全てのデータを保持する容量を有していない場合がある。そこで、キャッシュ106が一杯になると、キャッシュ106内の一部のデータは、後述のキャッシュ制御部109によって選択されて削除される。
また、図4に一例を示すように、キャッシュ106は、データと、優先度とを対応付けて保持可能である。この優先度は、後述の優先度付与部108によってデータ毎に付与される。また、この優先度は、後述のキャッシュ制御部109によって、キャッシュ106から削除対象のデータが選択される際に指標として用いられるものである。本実施例では、優先度が低いほど、削除対象として選択されやすいことを表している。
優先度算出アルゴリズム格納部107は、キャッシュ106内のデータに付与する優先度をそのデータの将来の使用時期に基づいて算出する優先度算出アルゴリズムと、実行状況情報に対する条件とを対応付けた情報を、ジョブ毎に格納している。
例えば、図5は、ジョブAに関する優先度算出アルゴリズムの一例を示している。図5において、ジョブAでは、終了期限までの残り時間が30分以上という条件に対して、f(t)=−t+10という関数が優先度算出アルゴリズムとして設定されている。また、ジョブAでは、終了期限までの残り時間が30分未満という条件に対して、f(t)=−t+11という関数が優先度算出アルゴリズムとして設定されている。ここで、tは、優先度を算出する時点の時刻Tnowから、データiの将来の使用時期Tiまでの時間を表している。すなわち、t=Ti−Tnowである。
図6に、優先度算出アルゴリズムの一例である「f(t)=−t+10」という関数のグラフを示す。図6において、縦軸は優先度f(t)、横軸は時間t=Ti−Tnowである。図6の優先度算出アルゴリズムによれば、データは、将来の使用時期が後であるほど(すなわち、tが大きいほど)優先度が低くなり、キャッシュ106から削除されやすくなることがわかる。
なお、優先度算出アルゴリズム格納部107は、実行状況情報に対する条件および優先度算出アルゴリズムを入力装置を介して取得してもよい。これにより、優先度算出アルゴリズム格納部107は、システム管理者等によって設定された内容を格納することができる。
優先度付与部108は、実行状況取得部105によって取得された各ジョブの実行状況が満たす条件に対応付けられた優先度算出アルゴリズムを取得する。そして、優先度付与部108は、ジョブ毎に取得した優先度算出アルゴリズムを用いて、キャッシュ106に保持されたデータの優先度を算出して付与する。
具体的には、優先度付与部108は、キャッシュ106に保持されたデータの将来の使用時期と現在時刻との差分時間を計算する。そして、優先度付与部108は、そのデータが用いられるジョブについて取得した優先度算出アルゴリズムに、差分時間を適用することにより、そのデータの優先度を算出する。
なお、優先度付与部108は、将来の複数回に渡って使用されることが予測されるデータに対しては、最も早い将来の使用時期に基づいて優先度を算出してもよい。
キャッシュ制御部109は、キャッシュ106から削除するデータを優先度に基づいて選択し、選択したデータをキャッシュ106から削除する。例えば、キャッシュ制御部109は、キャッシュ106内のデータの容量が閾値以上である場合に、優先度が最も低いデータを削除するようにしてもよい。
以上のように構成された情報処理装置1の動作について、図7〜図9を参照して説明する。
まず、情報処理装置1の将来使用時期予測動作を図7に示す。なお、図7において、ジョブ格納部101および優先度算出アルゴリズム格納部107には、既に情報が格納されているものとする。
ここでは、まず、スケジュール格納部102は、ジョブのスケジュールを表す情報を格納する(ステップS1)。
例えば、スケジュール格納部102は、ジョブスケジューラによってスケジューリングされた、ジョブの実行順序、各ジョブの開始時刻、終了期限などを格納する。
次に、将来使用時期予測部103は、スケジュール格納部102に格納されたスケジュールに含まれる各ジョブで用いられるデータの将来の使用時期を、ジョブ格納部101およびスケジュール格納部102に基づいて、予測する(ステップS2)。
例えば、将来使用時期予測部103は、ジョブ格納部101に格納されたジョブAの内容に基づいて、ジョブAで用いられるデータaがジョブAの実行開始時点から1秒後に使用されるという情報を得る。また、将来使用時期予測部103は、スケジュール格納部102に格納されたジョブAのスケジュールに基づいて、ジョブAの開始時刻として毎日0時0分0秒を得る。そして、将来使用時期予測部103は、データaがジョブAで用いられる将来の使用時期を、翌0時0分1秒と予測する。
次に、将来使用時期予測部103は、各データについて予測した将来の使用時期を将来使用時期テーブル113として記憶しておく(ステップS3)。
スケジュール格納部102に格納されているスケジュールに含まれる全てのジョブの各データについてステップS2〜S3を終了すると、情報処理装置1は、将来使用時期予測動作を終了する。
なお、情報処理装置1は、このような将来使用時期予測動作を、スケジュール格納部102に格納されたスケジュールに基づく処理を開始する前に実行しておくことが望ましい。
次に、情報処理装置1の優先度付与動作を図8に示す。ここで、優先度付与動作は、スケジュールに基づくジョブの実行開始後に実行されるものとする。また、優先度付与動作開始時点において、各ジョブには、スケジュールに基づくジョブの実行開始直後の実行状況情報に基づく優先度算出アルゴリズムが既に設定されているものとする。
また、キャッシュ106には、ジョブ実行部104によるジョブの実行に伴い、ジョブ実行部104がデータ格納部9から読み込んだデータが保持されていくものとする。
ここでは、まず、実行状況取得部105は、実行中のジョブの実行状況情報を取得する(ステップS11)。
例えば、実行状況取得部105は、現在時刻と、このジョブの終了期限との差分である残り時間を実行状況情報として取得してもよい。
次に、優先度付与部108は、取得した実行状況情報が、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられている条件を満たすか否かを、優先度算出アルゴリズム格納部107を参照することにより判断する(ステップS12)。
例えば、優先度付与部108は、このジョブの終了期限まで残り時間40分である場合、この時点でこのジョブに設定されている優先度算出アルゴリズム「f(t)=−t+10」に対応付けられている条件「残り時間30分以上」を満たしていると判断する。
ステップS12で、実行状況情報が、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられている条件を満たしていると判断された場合、情報処理装置1の処理は、ステップS14に進む。
一方、ステップS12で、実行状況情報が、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられている条件を満たしていないと判断された場合、優先度付与部108は、優先度算出アルゴリズム格納部107を参照することにより、このジョブに適用する優先度算出アルゴリズムを変更する(ステップS13)。
例えば、優先度付与部108は、取得した実行状況情報「残り時間29分」が満たす条件「残り時間30分未満」に対応付けられた「f(t)=−t+11」を、このジョブの優先度算出アルゴリズムとして設定する。
次に、優先度付与部108は、将来使用時期予測部103が保持している将来使用時期テーブル113を参照することにより、キャッシュ106内に保持されているデータのうち、このジョブで用いられる各データについて、現在時刻から将来の使用時期までの差分時間を算出する。そして、優先度付与部108は、このジョブに設定した優先度算出アルゴリズムに、算出した差分時間を適用することにより、このジョブで用いられるキャッシュ106内の各データの優先度を算出する(ステップS14)。
次に、優先度付与部108は、このジョブで用いられるキャッシュ106内の各データに、ステップ14で算出した優先度を付与する(ステップS15)。
実行中の各ジョブについてステップS11〜ステップS15までの処理を終了すると、優先度付与部108は、実行中のジョブが残っているか否かを判断する(ステップS16)。
ここで、実行中のジョブが残っていれば、情報処理装置1は、ステップS11からの処理を、所定の時間経過後に再度実行する。
一方、実行中のジョブが残っていなければ、情報処理装置1は、優先度付与動作を終了する。
なお、情報処理装置1は、一定間隔で各ジョブについてステップS11〜S15を実行する他、キャッシュ106に新たなデータが追加されるタイミングで各ジョブについてステップS11〜S15を実行するようにしてもよい。
次に、情報処理装置1の、キャッシュ制御動作について図9を参照して説明する。
ここでは、まず、キャッシュ制御部109は、キャッシュ106の使用状況が所定の条件を満たすか否かを判断する(ステップS21)。
例えば、キャッシュ制御部109は、キャッシュ106に格納されたデータの容量が閾値以上であるか否かを判断してもよい。
ここで、キャッシュ106の使用状況が所定の条件を満たさないと判断した場合、キャッシュ制御部109は、ステップS21を再度実行する。
一方、キャッシュ106の使用状況が所定の条件を満たすと判断した場合、キャッシュ制御部109は、キャッシュ106内のデータに付与された優先度に基づいて一部のデータを選択し、選択したデータを削除する(ステップS22)。
例えば、キャッシュ106は、キャッシュ106内のデータのうち、最も低い優先度が付与されたデータを削除してもよい。
キャッシュ制御部109は、ステップS21からの処理を再度実行する。
以上で、情報処理装置1の動作の説明を終了する。
次に、本発明の第1の実施の形態としての情報処理装置1を用いた実験について説明する。実験では、あるジョブで用いられるデータがキャッシュ106から削除される回数を、そのジョブに設定される優先度算出アルゴリズムの変更前と変更後とで比較する実験を行った。
まず、第1の実験として、ジョブA、BおよびCに同一の優先度算出アルゴリズムを設定して一定期間これらのジョブを実行した。そして、第1の実験において、ジョブAで用いられるデータがキャッシュ106から削除される回数を測定した。
次に、第2の実験として、第1の実験に対してジョブAに設定する優先度算出アルゴリズムのみを変更し、同様に一定期間ジョブA、BおよびCを実行した。そして、第2の実験において、ジョブAで用いられるデータがキャッシュ106から削除される回数を測定した。
なお、第1の実験および第2の実験のそれぞれにおいて、ジョブの実行状況に基づく優先度算出アルゴリズムの変更はないものと仮定した。
まず、第1および第2の実験で用いたジョブA、BおよびCについて説明する。
第1および第2の実験では、ジョブ格納部101は、ジョブA、ジョブBおよびジョブCを表す情報を格納した。図10に示すように、ジョブAは、データa1、a2、a3を用いる処理である。また、ジョブBは、データb1、b2、b3を用いる処理である。また、ジョブCは、データc1、c2、c3を用いる処理である。
また、ジョブAは、処理開始後1秒後にa1にアクセスし、4秒後にa2にアクセスし、7秒後にa3にアクセスする。このように、ジョブAは、処理開始後3n+1(nは0以上の整数)秒ごとにa1、a2、a3に順次アクセスする。また、ジョブBは、2秒後、5秒後、8秒後といったように、処理開始後3n+2秒ごとにb1、b2、b3に順次アクセスする。また、ジョブCは3秒後、6秒後、9秒後といったように、処理開始後3n+3秒ごとにc1、c2、c3に順次アクセスする。すなわち、ジョブA、ジョブBおよびジョブCを同時に開始すると、ジョブ実行部104は、1秒ごとに、a1、b1、c1、a2、b2、c2、a3、b3、c3という順にデータにアクセスする。
次に、第1および第2の実験におけるジョブA、BおよびCのスケジュールについて説明する。
第1および第2の実験では、スケジュール格納部102は、上述のジョブA、ジョブBおよびジョブCを所定時刻に同時に開始し、1000秒間繰り返し実行するスケジュールを格納しているものとした。
次に、第1および第2の実験におけるデータの格納場所について説明する。
第1および第2の実験では、データa1、b1、c1、a2、b2、c2、a3、b3、c3は、データ格納部9としての記憶装置1004に格納した。
次に、第1および第2の実験におけるジョブ実行部104について説明する。
ジョブ実行部104は、データ格納部9から一旦読み込んだデータをキャッシュ106に格納する。そして、ジョブ実行部104は、次回そのデータにアクセスする際、該データがキャッシュ106に存在すれば、データ格納部9からではなくキャッシュ106から読み込みを行うものとする。
次に、第1および第2の実験において使用したキャッシュ106の制限について説明する。
第1および第2の実験では、キャッシュ106は、5個までのデータを格納可能とした。また、キャッシュ制御部109は、キャッシュ106内のデータ個数が5に達していたら、優先度の最も低いデータをキャッシュ106から削除するようにした。
なお、第1および第2の実験において、将来使用時期予測部103は、既に各データの将来使用時期を予測し、将来使用時期テーブル113を保持しているものとした。
また、第1および第2の実験において、優先度付与部108は、キャッシュ106が一杯になったタイミングで優先度の付与を行った。詳細には、優先度付与部108は、ジョブ実行部104によってキャッシュ106に新たにデータが追加されようとしたとき、既にキャッシュ106が一杯であった場合に、優先度付与動作を行った。
次に、第1の実験における優先度付与動作およびキャッシュ制御動作について説明する。
図11に示すように、第1の実験では、ジョブA、ジョブB、ジョブCには、それぞれ同一の優先度算出アルゴリズムf(t)=−t+10が設定されているものとした。ここで、図11において、グラフの横軸tは、優先度を算出する時点の時刻から将来の使用時期までの差分時間を表している。
図11(a)は、実験開始から9n+9(nは0以上の整数)秒後において、ジョブAで用いられるa1、a2、a3の各データについて算出される優先度を表している。図11(a)において、データa1、a2、a3の各将来の使用時期までの差分時間は、それぞれ1秒後、4秒後、7秒後である。したがって、優先度付与部108は、a1、a2、a3の各優先度として、9、6、3をそれぞれ算出する。
図11(b)は、実験開始から9n+9秒後において、ジョブBで用いられるb1、b2、b3の各データについて算出される優先度を表している。図11(b)において、データb1、b2、b3の各将来の使用時期までの差分時間は、それぞれ2秒後、5秒後、8秒後である。したがって、優先度付与部108は、b1、b2、b3の各優先度として、8、5、2をそれぞれ算出する。
図11(c)は、実験開始から9n+9秒後において、ジョブCで用いられるc1、c2、c3の各データについて算出される優先度を表している。図11(c)において、データc1、c2、c3の各将来の使用時期までの差分時間は、それぞれ3秒後、6秒後、9秒後である。したがって、優先度付与部108は、c1、c2、c3の各優先度として、7、4、1をそれぞれ算出する。
例えば、実験開始から8秒後の処理終了時点では、キャッシュ106は、a1、b1、c1、a2およびb3の5つのデータを保持している。
次に、実験開始から9秒後、ジョブ実行部104は、データ格納部9から読み込んだデータc3をキャッシュ106に格納しようとするが、キャッシュ106に空き領域を確保できない。
そこで、優先度付与部108は、キャッシュ106内の5つのデータa1、b1、c1、a2およびb3の優先度として9、8、7、6および2を算出する。
そして、キャッシュ制御部109は、優先度が最も低いデータb3をキャッシュ106から削除する。ジョブ実行部104は、新たなデータc3をキャッシュ106に保持する。
このような第1の実験において、ジョブAで用いられるデータa1、a2およびa3がキャッシュ106から削除された回数は、166回であった。
次に、第2の実験における優先度付与動作およびキャッシュ制御動作について説明する。
図12に示すように、第2の実験では、ジョブAには、第1の実験より優先度がより高く算出されるf(t)=−t+11が設定されているものとした。また、ジョブBおよびジョブCには、第1の実験と同様にf(t)=−t+10が設定されているものとした。
なお、第2の実験は、例えば、ジョブAの終了期限までの残り時間が少なくなり、ジョブBおよびジョブCの残り時間には余裕がある場合に、情報処理装置1が、ジョブAに適用する優先度算出アルゴリズムを変更した状態に相当する。
図12(a)は、実験開始から9n+9秒後において、ジョブAで使用される各データについて算出される優先度を表している。図12(a)において、データa1、a2、a3の各将来の使用時期までの差分時間は、それぞれ1秒後、4秒後、7秒後である。したがって、優先度付与部108は、a1、a2、a3の各優先度として、10、7、4をそれぞれ算出する。
図12(b)および(c)については、図11(b)および(c)と同様であるため、説明を省略する。
このような第2の実験において、ジョブAで用いられるデータa1、a2およびa3がキャッシュ106から削除された回数は、74回であった。
ここで、第1および第2の実験におけるデータa1、a2およびa3のキャッシュ削除回数を比較した表を図13に示す。
図13において、全てのジョブに同一の優先度算出アルゴリズムを適用した第1の実験に比べて、ジョブAの優先度算出アルゴリズムを変更した第2の実験におけるa1、a2およびa3のキャッシュ削除回数は、166回から74回に減っていることがわかる。すなわち、第2の実験では、第1の実験に対して優先度算出アルゴリズムを変更したジョブのデータがキャッシュに残りやすくなったことがわかる。
したがって、第2の実験では、第1の実験に対してジョブAのキャッシュミス率が低下することになる。それゆえ、第2の実験において、情報処理装置1は、ジョブAを実行する際のデータアクセス時間を大幅に減らすことができ、ジョブAの実行時間を短縮することが可能となる。
これらの実験からわかるように、情報処理装置1は、例えば、ジョブAの終了期限までの残り時間が迫っているといった実行状況に応じて、ジョブAの優先度算出アルゴリズムを変更することにより、ジョブAの実行時間を短縮することができる。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としての情報処理装置は、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行うことができる。
その理由は、ジョブの実行によりキャッシュに保持されるデータの優先度を、将来使用時期予測部で予測された該データの将来の使用時期に基づいて算出する、優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、ジョブ毎に優先度算出アルゴリズム格納部に格納し、優先度付与部がそれを参照し、実行状況取得部によって取得された実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、キャッシュに保持されたデータに優先度を算出して付与するからである。
すなわち、本実施の形態では、ジョブで用いられるキャッシュ内のデータに付与する優先度を算出する優先度算出アルゴリズムを、スケジュールされたジョブの実行状況に応じて変更することができるからである。
したがって、本発明の第1の実施の形態としての情報処理装置は、例えば終了期限までの残り時間が迫っているジョブで用いられるデータの優先度を、残り時間に余裕があるジョブで用いられるデータの優先度より高く設定することができる。その結果、残り時間が迫っているジョブで用いられるデータをキャッシュから削除されにくくすることができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第2の実施の形態としての情報処理装置2の機能ブロック構成を図14に示す。図14において、情報処理装置2は、本発明の第1の実施の形態としての情報処理装置1に対して、将来使用時期予測部103に替えて将来使用時期予測部203と、実行状況取得部105に替えて実行状況取得部205と、優先度算出アルゴリズム格納部107に替えて優先度算出アルゴリズム格納部207と、優先度付与部108に替えて優先度付与部208とを備え、さらにジョブ実行履歴格納部211と、将来使用時期修正部212とを備えている。
ここで、ジョブ実行履歴格納部211は、ROM1003または記憶装置1004に記憶されたコンピュータ・プログラムをRAM1002に読み込んで実行するCPU1001、および、記憶装置1004によって構成されている。また、将来使用時期修正部212は、ROM1003または記憶装置1004に記憶されたコンピュータ・プログラムをRAM1002に読み込んで実行するCPU1001によって構成されている。
ジョブ実行履歴格納部211は、ジョブ格納部101に格納されたジョブの過去の実行履歴を表す情報を格納している。例えば、ジョブ実行履歴格納部211は、ジョブの過去の実行開始時刻、実行終了時刻、そのジョブにおいて用いられるデータが使用された使用履歴等を、実行履歴を表す情報として格納していてもよい。
また、ジョブ実行履歴格納部211は、ジョブ実行部104によって実行されるジョブを監視してこれらの情報を取得するようにしてもよい。
将来使用時期予測部203は、本発明の第1の実施の形態における将来使用時期予測部103と同様にジョブ格納部101およびスケジュール格納部102を参照するのに加えて、さらにジョブ実行履歴格納部211を参照することにより、各データの将来の使用時期を予測する。例えば、将来使用時期予測部203は、ジョブ実行履歴格納部211を参照することにより、あるジョブの過去の実行開始時刻から、あるデータが使用された時刻までの経過時間を求めてもよい。そして、将来使用時期予測部203は、スケジュール格納部102に格納された開始時刻に、算出した経過時間を加算することにより、そのデータの将来の使用時期を算出してもよい。
実行状況取得部205は、実行中のジョブの進度のスケジュールに対する差異を表すスケジュール差異情報を実行状況情報として取得する。
例えば、ジョブ格納部101に格納されたジョブが、そのデータ処理量によって進度を算出可能に構成されており、スケジュール格納部102にそのジョブの当初の終了予定時刻があらかじめ格納されている場合を想定する。この場合、実行状況取得部205は、実行中のジョブの進度に基づいてその時点での終了予定時刻を再計算し、再計算した終了予定時刻と当初の終了予定時刻との差分を、スケジュール差異情報として算出してもよい。
あるいは、例えば、実行状況取得部205は、実行中のジョブの実際の開始時刻と、スケジュールされた開始時刻との差分を、スケジュール差異情報として取得してもよい。
将来使用時期修正部212は、実行状況取得部205によって取得されたスケジュール差異情報に基づいて、将来使用時期予測部203によって算出された将来使用時期テーブル113を修正する。
例えば、将来使用時期修正部212は、あるジョブがスケジュールより300秒遅れているというスケジュール差異情報が取得されている場合、そのジョブで用いられるデータの各将来の使用時期を、既に算出されている時期より300秒後に修正する。
優先度算出アルゴリズム格納部207は、スケジュール差異情報に対する条件と、優先度算出アルゴリズムとを対応付けた情報を、ジョブ毎に格納している。
例えば、優先度算出アルゴリズム格納部207は、スケジュール差異情報が±10分未満の場合の優先度算出アルゴリズムとして、f(t)=−t+10を格納してもよい。また、例えば、優先度算出アルゴリズム格納部207は、スケジュール差異情報が10分を超えた(すなわち、スケジュールより10分以上遅れている)場合の優先度算出アルゴリズムとして、f(t)=−t+20を格納してもよい。また、例えば、優先度算出アルゴリズム格納部207は、スケジュール差異情報が−10分より小さい(すなわち、スケジュールより10分以上早く進んでいる)場合の優先度算出アルゴリズムとして、f(t)=−t+5を格納するようにしてもよい。
優先度付与部208は、実行状況取得部205によって取得された各ジョブのスケジュール差異情報が満たす条件に対応付けられた優先度算出アルゴリズムを取得する。そして、優先度付与部208は、取得した各ジョブの優先度算出アルゴリズムを用いて、各ジョブで用いられるデータに優先度を算出して付与する。
以上のように構成された情報処理装置2の動作について、図15〜図16を用いて説明する。なお、情報処理装置2のキャッシュ制御動作については図9を用いて説明した本発明の第1の実施の形態としての情報処理装置1と同様であるため、本実施の形態における詳細な説明を省略する。
まず、情報処理装置2の将来使用時期予測動作を図15に示す。
ここでは、まず、スケジュール格納部102がスケジュールを表す情報を格納した後(ステップS1)、将来使用時期予測部203は、スケジュール格納部102に格納されているジョブに関する実行履歴を表す情報を、ジョブ実行履歴格納部211から取得する(ステップS31)。
次に、将来使用時期予測部203は、ステップS31で取得した実行履歴を表す情報、ジョブ格納部101およびスケジュール格納部102に格納された情報に基づいて、このジョブで使用される各データの将来の使用時期を予測する(ステップS32)。
例えば、将来使用時期予測部203は、上述のように、あるジョブの過去の実行開始時刻、そのジョブであるデータが使用された過去の使用時刻、および、そのジョブのスケジュールされた開始時刻に基づいて、将来の使用時期を予測するようにしてもよい。
その後、将来使用時期予測部203は、本発明の第1の実施の形態における使用時期予測部103と同様にステップS3を実行し、各データの将来の使用時期を将来の使用時期テーブルとして記憶する。
将来使用時期予測部203は、ステップS31〜ステップS32およびステップS3の動作を、スケジュール格納部102に格納されている各ジョブについて実行する。
以上で、情報処理装置2は、将来使用時期予測動作を終了する。
次に、情報処理装置2の優先度付与動作を図16に示す。ここで、優先度付与動作は、スケジュールに基づくジョブの実行開始後に実行されるものとする。また、優先度付与動作開始時点において、各ジョブには、スケジュールに基づくジョブの実行開始直後の実行状況情報に基づく優先度算出アルゴリズムが既に設定されているものとする。
ここでは、まず、実行状況取得部205は、スケジュールに基づいて実行中のジョブについて、スケジュール差異情報を取得する(ステップS41)。
次に、将来使用時期修正部212は、スケジュール差異情報に基づいて、将来使用時期テーブル113に記憶された将来の使用時期のうち、該当するジョブで用いられるデータの将来の使用時期を修正する(ステップS42)。
次に、優先度付与部208は、実行状況取得部205によって取得されたスケジュール差異情報が、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられた条件を満たすか否かを、優先度算出アルゴリズム格納部207を参照することにより判断する(ステップS43)。
例えば、優先度付与部208は、このジョブのスケジュール差異情報が5分遅れであることを示していれば、この時点でこのジョブに設定されている優先度算出アルゴリズムに対応付けられた条件「スケジュール差異情報±10分以内」を満たすと判断する。
ステップS43で、このジョブのスケジュール差異情報が、既に設定されている優先度算出アルゴリズムに対応付けられた条件を満たすと判断された場合、情報処理装置2の処理はステップS14に進む。
一方、ステップS43で、このジョブのスケジュール差異情報が、既に設定されている優先度算出アルゴリズムに対応付けられた条件を満たさないと判断された場合、優先度付与部208は、優先度算出アルゴリズム格納部207を参照することにより、このジョブに設定する優先度算出アルゴリズムを変更する(ステップS44)。
例えば、優先度付与部208は、スケジュール差異情報が15分遅れであることを示していれば、「スケジュール差異情報10分以上」に対応付けられた優先度算出アルゴリズム「f(t)=−t+20」に、このジョブの優先度算出アルゴリズムを変更する。
以降、情報処理装置2は、ステップS14〜ステップS15まで本発明の第1の実施の形態としての情報処理装置1と同様に動作することにより、このジョブのスケジュール差異情報に応じて変更した優先度算出アルゴリズムを用いて、このジョブで用いられるキャッシュ106内の各データに優先度を付与する。
そして、情報処理装置2は、実行中のジョブが全て終了するまで、実行中の各ジョブについてステップS41〜S44およびステップS14〜S15を実行する。
以上で、情報処理装置2は、優先度付与動作を終了する。
次に、本発明の第2の実施の形態の効果について述べる。
本発明の第2の実施の形態としての情報処理装置は、スケジュールされたジョブの実行状況に応じてさらに柔軟なキャッシュ管理を行うことができる。
その理由は、ジョブがスケジュール通りに実行されているか、スケジュールより遅れているか、スケジュールより早く進んでいるかに応じて優先度算出アルゴリズムを変更するからである。これにより、スケジュールより遅れているジョブで用いるデータの優先度を高くしてキャッシュから削除されにくくすることができるからである。また、スケジュールより早く進んでいるジョブで用いられるデータの優先度を低くしてキャッシュから削除されやすくすることにより、他のジョブのためのキャッシュ領域を確保することができるからである。
また、本発明の第2の実施の形態としての情報処理装置は、スケジュールされたジョブの実行状況に応じた柔軟なキャッシュ管理を行う際の、データの将来の使用時期の予測精度を向上させることができる。
その理由は、将来使用時期予測部が、過去のジョブの実行履歴に基づいて各データの将来の使用時期を予測するからである。さらなる理由は、将来使用時期修正部が、ジョブの実行中にそのスケジュール差異情報に応じて、各データの将来の使用時期を修正するからである。
これにより、本発明の第2の実施の形態としての情報処理装置は、より高精度に予測された将来の使用時期を用いて、より適切にキャッシュから削除するデータを選択することができる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第3の実施の形態としての情報処理装置3の機能ブロック構成を図17に示す。図17において、情報処理装置3は、本発明の第1の実施の形態としての情報処理装置1に対して、実行状況取得部105に替えて実行状況取得部305と、優先度算出アルゴリズム格納部107に替えて優先度算出アルゴリズム格納部307と、優先度付与部108に替えて優先度付与部308とを備えている。
実行状況取得部305は、ジョブ実行部104によって実行中のジョブに関して、中断、実行中および終了済みのいずれかを表す情報を実行状況情報として取得する。図18は、実行状況取得部305によって取得される実行状況情報の一例である。
優先度算出アルゴリズム格納部307は、中断、実行中および終了済みのいずれかの状態と、優先度算出アルゴリズムとを対応付けた情報を、ジョブ毎に格納している。
例えば、優先度算出アルゴリズム格納部307は、あるジョブが中断されている場合の優先度算出アルゴリズムとしてf(t)=−10を格納してもよい。また、例えば、優先度算出アルゴリズム格納部307は、そのジョブが終了済みの場合の優先度算出アルゴリズムとしてf(t)=−100を格納してもよい。また、例えば、優先度算出アルゴリズム格納部307は、そのジョブが実行中の場合の優先度算出アルゴリズムとしてf(t)=−t+10を格納してもよい。
優先度付与部308は、実行状況取得部305によって取得された各ジョブの状況に対応付けられた優先度算出アルゴリズムを取得する。そして、優先度付与部308は、取得した各ジョブの優先度算出アルゴリズムを用いて、各ジョブで用いられるデータに優先度を算出して付与する。
以上のように構成された情報処理装置3の優先度付与動作について、図19を用いて説明する。なお、情報処理装置3の将来使用時期予測動作およびキャッシュ制御動作については図7および図9を用いて説明した本発明の第1の実施の形態としての情報処理装置1と同様であるため、本実施の形態における詳細な説明を省略する。
また、この優先度付与動作は、スケジュールに基づくジョブの実行開始後に実行されるものとする。また、優先度付与動作開始時点において、各ジョブには、スケジュールに基づくジョブの実行開始直後の実行状況情報に基づく優先度算出アルゴリズムが既に設定されているものとする。
ここでは、まず、実行状況取得部305は、スケジュールされた各ジョブについて、中断、実行中および終了済みのいずれかを表す実行状況情報を取得する(ステップS51)。
ここで、終了済みであることを表す実行状況情報が取得された場合(ステップS52でYes)、優先度付与部308は、優先度算出アルゴリズム格納部307を参照して、このジョブに設定する優先度算出アルゴリズムを、終了済みの場合のものに変更する(ステップS54)。
一方、中断されていることを表す実行状況情報が取得された場合(ステップS52でNo、ステップS53でYes)、優先度付与部308は、優先度算出アルゴリズム格納部307を参照して、このジョブに設定する優先度算出アルゴリズムを、中断された場合のものに変更する(ステップS55)。
また、実行中であることを表す実行状況情報が取得された場合(ステップS52でNo、ステップS53でNo)、優先度付与部308は、優先度算出アルゴリズム格納部307を参照して、このジョブに設定する優先度算出アルゴリズムを、実行中の場合のものに変更する(ステップS56)。
以降、情報処理装置3は、ステップS14〜ステップS15まで本発明の第1の実施の形態としての情報処理装置1と同様に動作することにより、中断または実行中の実行状況に応じて取得した優先度算出アルゴリズムを用いて、このジョブで使用するキャッシュ106内の各データに優先度を付与する。
そして、情報処理装置3は、実行中のジョブが全て終了するまで、実行中の各ジョブについてステップS51〜S56およびステップS14〜S15を実行する。
以上で、情報処理装置3は、優先度付与動作を終了する。
次に、本発明の第3の実施の形態の効果について述べる。
本発明の第3の実施の形態としての情報処理装置は、スケジュールされたジョブの実行状況に応じてさらに柔軟なキャッシュ管理を行うことができる。
その理由は、中断、終了済み、および、実行中のいずれかを表すジョブの実行状況に応じて、優先度算出アルゴリズムを変更するからである。これにより、中断されているジョブや終了済みのジョブで用いられていたデータの優先度を低くしてキャッシュから優先的に削除することができる。そして、他のジョブのためのキャッシュ領域を確保することができるからである。
なお、上述の各実施の形態において、各優先度算出アルゴリズム格納部は、スケジュールされていないジョブに対する優先度算出アルゴリズムとして、過去のデータの使用履歴に基づく優先度算出アルゴリズムを格納していてもよい。
この場合、上述の各実施の形態における各将来使用時期予測部は、スケジュールされていないジョブで用いられるデータに対しては、将来の使用時期を予測できない。そこで、上述の各実施の形態における各優先度付与部は、スケジュールされていないジョブで用いられるキャッシュ内のデータに対しては、過去のデータの使用履歴に基づく優先度算出アルゴリズムを適用して優先度を付与する。
これにより、上述の各実施の形態としての情報処理装置は、スケジュールされていないジョブで用いられるデータをさらに対象として柔軟なキャッシュ管理を行うことができる。
例えば、図20に、過去のデータの使用履歴に基づく優先度算出アルゴリズムの一例としてf(t)=t+10を示す。図20において、縦軸は優先度f(t)、横軸は時間tである。ここで、tは、優先度を算出する時点の時刻Tnowから、データiの過去の使用時刻Tiまでの時間を表している。すなわち、t=Ti−Tnowは負の値となる。図20に示すf(t)=t+10は、最も過去に使われたデータの優先度を低くするため、LRUであるといえる。
この場合、上述の各実施の形態における各優先度付与部は、キャッシュ106内のデータの将来の使用時期が取得できない場合、過去のデータの使用履歴に基づく優先度算出アルゴリズムを適用して優先度を付与するようにする。
また、上述の各実施の形態において、各実行状況取得部は、それぞれ1種類の情報を実行状況情報として取得するものとして説明したが、各実行状況取得部は、複数の種類の情報を実行状況情報として取得してもよい。この場合、各実施の形態における優先度算出アルゴリズム格納部は、複数の実行状況情報を組み合わせた条件と、優先度算出アルゴリズムとを対応付けて格納してもよい。
また、上述の各実施の形態において、各優先度算出アルゴリズム格納部は、入力装置を介してシステム管理者等による設定を格納するものとして説明した。さらに、各優先度算出アルゴリズム格納部は、入力装置を介して設定が取得されなかったジョブに対して適用する条件および優先度算出アルゴリズムをあらかじめ格納しておくようにしてもよい。これにより、各実施の形態としての情報処理装置は、システム管理者等の負担を軽減しながらも、ジョブの実行状況に応じた柔軟なキャッシュ管理を行うことができる。
また、上述の各実施の形態において、各優先度算出アルゴリズム格納部は、優先度算出アルゴリズムとして、1つのデータについて予測される複数の将来の使用時期に基づいて1つの優先度を算出する優先度算出アルゴリズムを格納しておいてもよい。このような優先度算出アルゴリズムとしては、例えばΣf(t)がある。ここで、Σf(t)は、あるデータについて複数の将来の使用時期t〜tが予測されているとき、f(t)〜f(t)の和を表す。これにより、各実施の形態における各優先度付与部は、将来使用される回数がより多いデータの優先度をより高くしてキャッシュ106から削除されにくくすることができる。
また、上述の各実施の形態において、各情報処理装置は、優先度付与動作を所定の間隔またはキャッシュが所定の条件を満たしたタイミングで実行するものとして説明したが、各情報処理装置は、優先度付与動作を、実行状況情報が所定の条件を満たす場合に実行するようにしてもよい。
例えば、上述の各実施の形態の各情報処理装置は、あるジョブの実行状況が残り時間が30分を切った場合にのみ上述の優先度付与動作を行い、各ジョブの残り時間が30分以上ある場合には、LRU等の一般的なキャッシュ削除アルゴリズムを用いてキャッシュ管理を行うようにしてもよい。
これにより、上述の各実施の形態の各情報処理装置は、本発明の優先度付与動作による負荷の増大を抑制することができる。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した情報処理装置の動作を、本発明のコンピュータ・プログラムとして情報処理装置の記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、
前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測部と、
前記ジョブを前記スケジュールに基づいて実行するジョブ実行部と、
前記ジョブ実行部による前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得部と、
前記ジョブ実行部によって記憶装置から読み込まれるデータを保持するキャッシュと、
前記キャッシュに保持されるデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に格納した優先度算出アルゴリズム格納部と、
前記実行状況取得部によって取得された実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与部と、
前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御部と、を備えた情報処理装置。
(付記2)
前記実行状況取得部は、前記ジョブの進度の前記スケジュールに対する差異を表すスケジュール差異情報を前記実行状況情報として取得することを特徴とする付記1に記載の情報処理装置。
(付記3)
前記将来使用時期予測部によって予測された前記データの将来の使用時期を、前記スケジュール差異情報に基づいて修正する将来使用時期修正部をさらに備えることを特徴とする付記2に記載の情報処理装置。
(付記4)
前記実行状況取得部は、前記スケジュール格納部にあらかじめ格納された前記ジョブの終了期限までの残り時間を前記実行状況情報として取得することを特徴とする付記1から付記3のいずれかに記載の情報処理装置。
(付記5)
前記実行状況取得部は、前記ジョブが実行中であるか、中断された状態であるか、終了済みであるかを表す情報を前記実行状況情報として取得することを特徴とする付記1から付記4のいずれかに記載の情報処理装置。
(付記6)
前記優先度付与部は、将来において複数回に渡って使用されるデータに関して、最も早い将来の使用時期を用いて前記優先度算出アルゴリズムによって算出した優先度を該データに付与することを特徴とする付記1から付記5のいずれかに記載の情報処理装置。
(付記7)
前記優先度算出アルゴリズム格納部は、将来において複数回に渡って使用されるデータに関して、複数の将来の使用時期に基づいて1つの優先度を算出する優先度算出アルゴリズムを格納することを特徴とする付記1から付記5のいずれかに記載の情報処理装置。
(付記8)
前記優先度付与部は、前記キャッシュの状況が所定の条件を満たした場合に、前記キャッシュ内のデータの前記優先度を算出して付与することを特徴とする付記1から付記7のいずれかに記載の情報処理装置。
(付記9)
前記優先度付与部は、前記実行状況情報が所定の条件を満たした場合に、前記キャッシュ内のデータの前記優先度を算出して付与することを特徴とする付記1から付記8のいずれかに記載の情報処理装置。
(付記10)
前記ジョブ実行部によって前記ジョブが過去に実行された際の実行履歴を表す情報を格納したジョブ実行履歴格納部をさらに備え、
前記将来使用時期予測部は、前記ジョブ実行履歴格納部をさらに参照して前記将来の使用時期を予測することを特徴とする付記1から付記9のいずれかに記載の情報処理装置。
(付記11)
ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブが実行される際に記憶装置から読み込まれるデータを保持するキャッシュと、を備えた情報処理装置を用いて、
前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測し、
前記キャッシュ内のデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に優先度算出アルゴリズム格納部に格納しておき、
前記ジョブを前記スケジュールに基づいて実行し、
前記ジョブの実行状況を表す実行状況情報を取得し、
前記実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与し、
前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除する、情報処理方法。
(付記12)
前記ジョブで用いられる各データの将来の使用時期を、前記実行状況情報に基づいて修正することを特徴とする付記11に記載の情報処理方法。
(付記13)
ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、前記ジョブが実行される際に記憶装置から読み込まれるデータを保持するキャッシュと、を備えた情報処理装置に、
前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測ステップと、
前記キャッシュ内のデータの優先度を、前記各データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に優先度算出アルゴリズム格納部に格納しておく優先度算出アルゴリズム格納ステップと、
前記ジョブを前記スケジュールに基づいて実行するジョブ実行ステップと、
前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得ステップと、
前記実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与ステップと、
前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御ステップと、
を実行させるコンピュータ・プログラム。
(付記14)
前記将来使用時期予測ステップで予測された前記データの将来の使用時期を、前記実行状況情報に基づいて修正する将来使用時期修正ステップを、前記情報処理装置にさらに実行させることを特徴とする付記13に記載のコンピュータ・プログラム。
1、2、3 情報処理装置
9 データ格納部
101 ジョブ格納部
102 スケジュール格納部
103、203 将来使用時期予測部
104 ジョブ実行部
105、205、305 実行状況取得部
106 キャッシュ
107、207、307 優先度算出アルゴリズム格納部
108、208、308 優先度付与部
109 キャッシュ制御部
113 将来使用時期テーブル
207 優先度算出アルゴリズム格納部
211 ジョブ実行履歴格納部
212 将来使用時期修正部
1001 CPU
1002 RAM
1003 ROM
1004 記憶装置

Claims (10)

  1. ジョブを実行するスケジュールを表す情報を格納したスケジュール格納部と、
    前記ジョブで用いられる各データの将来の使用時期を前記スケジュールに基づいてそれぞれ予測する将来使用時期予測部と、
    前記ジョブを前記スケジュールに基づいて実行するジョブ実行部と、
    前記ジョブ実行部による前記ジョブの実行状況を表す実行状況情報を取得する実行状況取得部と、
    前記ジョブ実行部によって記憶装置から読み込まれるデータを保持するキャッシュと、
    前記キャッシュに保持されるデータの優先度を、該データの前記将来の使用時期に基づいて算出する優先度算出アルゴリズムと、前記実行状況情報に対する条件と、を対応付けた情報を、前記ジョブ毎に格納した優先度算出アルゴリズム格納部と、
    前記実行状況取得部によって取得された実行状況情報が満たす条件に対応付けられた優先度算出アルゴリズムを用いて、前記キャッシュに保持されたデータに優先度を算出して付与する優先度付与部と、
    前記キャッシュに保持されているデータのうち前記優先度に基づいて選択したデータを前記キャッシュから削除するキャッシュ制御部と、を備えた情報処理装置。
  2. 前記実行状況取得部は、前記ジョブの進度の前記スケジュールに対する差異を表すスケジュール差異情報を前記実行状況情報として取得することを特徴とする請求項1に記載の情報処理装置。
  3. 前記将来使用時期予測部によって予測された前記データの将来の使用時期を、前記スケジュール差異情報に基づいて修正する将来使用時期修正部をさらに備えることを特徴とする請求項2に記載の情報処理装置。
  4. 前記実行状況取得部は、前記スケジュール格納部にあらかじめ格納された前記ジョブの終了期限までの残り時間を前記実行状況情報として取得することを特徴とする請求項1から請求項3のいずれかに記載の情報処理装置。
  5. 前記実行状況取得部は、前記ジョブが実行中であるか、中断された状態であるか、終了済みであるかを表す情報を前記実行状況情報として取得することを特徴とする請求項1から請求項4のいずれかに記載の情報処理装置。
  6. 前記優先度付与部は、将来において複数回に渡って使用されるデータに関して、最も早い将来の使用時期を用いて前記優先度算出アルゴリズムによって算出した優先度を該データに付与することを特徴とする請求項1から請求項5のいずれかに記載の情報処理装置。
  7. 前記優先度算出アルゴリズム格納部は、将来において複数回に渡って使用されるデータに関して、複数の将来の使用時期に基づいて1つの優先度を算出する優先度算出アルゴリズムを格納することを特徴とする請求項1から請求項5のいずれかに記載の情報処理装置。
  8. 前記優先度付与部は、前記キャッシュの状況が所定の条件を満たした場合に、前記キャッシュ内のデータの前記優先度を算出して付与することを特徴とする請求項1から請求項7のいずれかに記載の情報処理装置。
  9. 前記優先度付与部は、前記実行状況情報が所定の条件を満たした場合に、前記キャッシュ内のデータの前記優先度を算出して付与することを特徴とする請求項1から請求項8のいずれかに記載の情報処理装置。
  10. 前記ジョブ実行部によって前記ジョブが過去に実行された際の実行履歴を表す情報を格納したジョブ実行履歴格納部をさらに備え、
    前記将来使用時期予測部は、前記ジョブ実行履歴格納部をさらに参照して前記将来の使用時期を予測することを特徴とする請求項1から請求項9のいずれかに記載の情報処理装置。
JP2010204441A 2010-09-13 2010-09-13 情報処理装置、情報処理方法およびコンピュータ・プログラム Expired - Fee Related JP5585330B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010204441A JP5585330B2 (ja) 2010-09-13 2010-09-13 情報処理装置、情報処理方法およびコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010204441A JP5585330B2 (ja) 2010-09-13 2010-09-13 情報処理装置、情報処理方法およびコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2012059204A true JP2012059204A (ja) 2012-03-22
JP5585330B2 JP5585330B2 (ja) 2014-09-10

Family

ID=46056186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010204441A Expired - Fee Related JP5585330B2 (ja) 2010-09-13 2010-09-13 情報処理装置、情報処理方法およびコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP5585330B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170866A (ja) * 2014-03-04 2015-09-28 沖電気工業株式会社 コンテンツ配信装置、コンテンツ配信方法及びコンテンツ配信プログラム
JP2017054076A (ja) * 2015-09-11 2017-03-16 カシオ計算機株式会社 波形書き込み装置、方法、プログラム、及び電子楽器
CN107819804A (zh) * 2016-09-14 2018-03-20 先智云端数据股份有限公司 云端储存设备系统及决定其架构的高速缓存中数据的方法
JP2019087039A (ja) * 2017-11-07 2019-06-06 株式会社日立製作所 タスク管理システム、タスク管理方法、及びタスク管理プログラム
CN113094392A (zh) * 2020-01-09 2021-07-09 北京沃东天骏信息技术有限公司 数据缓存的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147218A (ja) * 1994-11-24 1996-06-07 Fujitsu Ltd キャッシュ制御装置
US5761716A (en) * 1996-05-01 1998-06-02 International Business Machines Corporation Rate based memory replacement mechanism for replacing cache entries when the cache is full
JP2004227188A (ja) * 2003-01-21 2004-08-12 Fujitsu Ltd ジョブスワップ方法、ジョブ管理装置、およびジョブ管理プログラム
JP2007535058A (ja) * 2004-04-27 2007-11-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ キャッシュマネージメントポリシーを用いてパワー消費を低減する装置
JP2008226025A (ja) * 2007-03-14 2008-09-25 Fujitsu Ltd プリフェッチ処理装置、プリフェッチ処理プログラムおよびプリフェッチ処理方法
JP2010211696A (ja) * 2009-03-12 2010-09-24 Canon Inc メモリスワップ管理方法、装置およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147218A (ja) * 1994-11-24 1996-06-07 Fujitsu Ltd キャッシュ制御装置
US5761716A (en) * 1996-05-01 1998-06-02 International Business Machines Corporation Rate based memory replacement mechanism for replacing cache entries when the cache is full
JP2004227188A (ja) * 2003-01-21 2004-08-12 Fujitsu Ltd ジョブスワップ方法、ジョブ管理装置、およびジョブ管理プログラム
JP2007535058A (ja) * 2004-04-27 2007-11-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ キャッシュマネージメントポリシーを用いてパワー消費を低減する装置
JP2008226025A (ja) * 2007-03-14 2008-09-25 Fujitsu Ltd プリフェッチ処理装置、プリフェッチ処理プログラムおよびプリフェッチ処理方法
JP2010211696A (ja) * 2009-03-12 2010-09-24 Canon Inc メモリスワップ管理方法、装置およびプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170866A (ja) * 2014-03-04 2015-09-28 沖電気工業株式会社 コンテンツ配信装置、コンテンツ配信方法及びコンテンツ配信プログラム
JP2017054076A (ja) * 2015-09-11 2017-03-16 カシオ計算機株式会社 波形書き込み装置、方法、プログラム、及び電子楽器
CN107819804A (zh) * 2016-09-14 2018-03-20 先智云端数据股份有限公司 云端储存设备系统及决定其架构的高速缓存中数据的方法
CN107819804B (zh) * 2016-09-14 2021-03-16 先智云端数据股份有限公司 云端储存设备系统及决定其架构的高速缓存中数据的方法
JP2019087039A (ja) * 2017-11-07 2019-06-06 株式会社日立製作所 タスク管理システム、タスク管理方法、及びタスク管理プログラム
JP7080033B2 (ja) 2017-11-07 2022-06-03 株式会社日立製作所 タスク管理システム、タスク管理方法、及びタスク管理プログラム
CN113094392A (zh) * 2020-01-09 2021-07-09 北京沃东天骏信息技术有限公司 数据缓存的方法和装置

Also Published As

Publication number Publication date
JP5585330B2 (ja) 2014-09-10

Similar Documents

Publication Publication Date Title
JP3890045B2 (ja) 改善されたedfスケジューリング方法
US8276143B2 (en) Dynamic scheduling of application tasks in a distributed task based system
US8566285B2 (en) Method and system for scheduling and controlling backups in a computer system
JP5585330B2 (ja) 情報処理装置、情報処理方法およびコンピュータ・プログラム
JP5332065B2 (ja) クラスタ構成管理方法、管理装置及びプログラム
Van Houdt A mean field model for a class of garbage collection algorithms in flash-based solid state drives
US8793693B2 (en) Apparatus and method for predicting a processing time of a computer
US9571567B2 (en) Methods and systems to manage computer resources in elastic multi-tenant cloud computing systems
US20200219028A1 (en) Systems, methods, and media for distributing database queries across a metered virtual network
US20150134912A1 (en) Scheduler, multi-core processor system, and scheduling method
JP6233413B2 (ja) タスク割り当て判定装置、制御方法、及びプログラム
US20140068613A1 (en) Non-transitory computer-readable storage medium, information processing apparatus and scheduling method
US8032888B2 (en) Method and system for scheduling a thread in a multiprocessor system
KR20120109533A (ko) 쿼리 관리
JP2011076604A (ja) ワークキューを選択するための方法、システム及びコンピュータ・プログラム
US8522245B2 (en) Thread criticality predictor
JP5609730B2 (ja) 情報処理プログラム及び方法、転送処理装置
WO2020172852A1 (en) Computing resource scheduling method, scheduler, internet of things system, and computer readable medium
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
JP2011180894A (ja) ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法
KR20170052441A (ko) 중앙 집중 분산 시스템 및 그것의 동작 방법
US10146783B2 (en) Using file element accesses to select file elements in a file system to defragment
US20160139959A1 (en) Information processing system, method and medium
US20130042253A1 (en) Resource management system, resource management method, and resource management program
JP7331386B2 (ja) ジョブ制御システム、方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130815

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140624

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140707

R150 Certificate of patent or registration of utility model

Ref document number: 5585330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees