(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】ジョブ管理システム,ジョブ実行管理方法及びジョブ実行管理プログラム
(51)【国際特許分類】
G06F 9/52 20060101AFI20240409BHJP
G06F 9/48 20060101ALI20240409BHJP
【FI】
G06F9/52 120B
G06F9/48 220D
(21)【出願番号】P 2020048683
(22)【出願日】2020-03-19
【審査請求日】2023-02-03
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】前田 友則
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2019-179280(JP,A)
【文献】特開2004-145598(JP,A)
【文献】特開2007-058881(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
(57)【特許請求の範囲】
【請求項1】
ジョブを管理するマネージャ装置と,前記ジョブを実行する少なくとも1以上のエージェント装置と
,
第2排他的資源を使用するジョブが実行完了した時に,第1排他的資源を使用するジョブがキューの次に実行できる位置にある場合,第2排他的資源の使用を保留する保留フラグを立てる排他的資源管理部を備え,
前記マネージャ装置は,第1排他的資源を使用するジョブが実行完了した時に,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第1排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索し,
最も早く次のジョブを開始できるキュー内の前記第1排他的資源を使用するジョブを当該キューの次に実行できる位置に移動する制御を行う,ジョブ管理システム
であって,
前記第1排他的資源を使用するジョブを実行する段階で,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第2排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索し,最も早く次のジョブを開始できるキュー内の前記第2排他的資源を使用するジョブを当該キューの次に実行できる位置に移動するキュー管理部を更に備える、ジョブ管理システム。
【請求項2】
前記マネージャ装置は,
前記エージェント装置で実行されるジョブの実行時間をジョブの入力データ量と過去の実行実績から推定するジョブ実行管理部と,
を備え,
前記キュー管理部は,前記ジョブ実行管理部の推定結果に基づいて,第1排他的資源を使用するジョブが実行完了した時に,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第1排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索し,最も早く次のジョブを開始できるキュー内の前記第1排他的資源を使用するジョブを当該キューの次に実行できる位置に移動する
,請求項1に記載のジョブ管理システム。
【請求項3】
ジョブを管理するマネージャ装置と,前記ジョブを実行する少なくとも1以上のエージェント装置を備えるジョブ管理システムに対して,
第1排他的資源を使用するジョブが実行完了した時に,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第1排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索し,
最も早く次のジョブを開始できるキュー内の前記第1排他的資源を使用するジョブを当該キューの次に実行できる位置に移動する制御を行う,ジョブ実行管理方法
であって,
第2排他的資源を使用するジョブが実行完了した時に,前記第1排他的資源を使用するジョブがキューの次に実行できる位置にある場合,第2排他的資源の使用を保留する保留フラグを立て,
前記第1排他的資源を使用するジョブを実行する段階で,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第2排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索し,最も早く次のジョブを開始できるキュー内の前記第2排他的資源を使用するジョブを当該キューの次に実行できる位置に移動するジョブ実行管理方法。
【請求項4】
ジョブを管理するマネージャ装置と,前記ジョブを実行する少なくとも1以上のエージェント装置を備えるジョブ管理システムに対して,
第1排他的資源を使用するジョブが実行完了した時に,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第1排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索するステップと,
最も早く次のジョブを開始できるキュー内の前記第1排他的資源を使用するジョブを当該キューの次に実行できる位置に移動する制御を行うステップと
,
第2排他的資源を使用するジョブが実行完了した時に,前記第1排他的資源を使用するジョブがキューの次に実行できる位置にある場合,第2排他的資源の使用を保留する保留フラグを立てるステップと,
前記第1排他的資源を使用するジョブを実行する段階で,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第2排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索し,最も早く次のジョブを開始できるキュー内の前記第2排他的資源を使用するジョブを当該キューの次に実行できる位置に移動するステップと,をコンピュータに実行させるジョブ実行管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はジョブ管理システム,ジョブ実行管理方法及びジョブ実行管理プログラム
に関する。
【背景技術】
【0002】
運用管理分野において、ジョブの実行を管理するジョブ実行管理システムが知られている。ジョブとは、業務などのある目的のために定義された処理手続きのことである。また、ジョブは、例えば、UNIX(登録商標)におけるシェルスクリプトまたはWindows(登録商標)におけるバッチスクリプトで記述される、単一または連続的なプログラムのことである。ジョブ実行管理システムは、1つ以上のジョブの実行順序を示すジョブネットワークとそのバッチジョブを処理するためのプログラム群とを含む。例えば,特許文献1には,ジョブ実行時に適宜効率化するためのキューイングの制御が記載されている。
【0003】
このようなコンピュータプログラムを実行するためには多くの計算機資源が必要になる。例えば,計算機資源はCPU,メモリ,外部記憶装置,通信帯域,外部入出力装置などがある。これらの計算機資源の中には,あるコンピュータプログラムを実行するときには占有して使用し,別のコンピュータプログラムで同時に使用することができないものがある(以下,排他的資源と称する)。
【0004】
排他的資源の例として,ハードウェアではプリンタ装置,バックアップ装置,テープデバイス,低速なネットワーク回線などがあり,ソフトウェアでは複数のプログラムから参照および更新されるリンク付きリストやテーブルなどがある。
【0005】
排他的資源ではない資源の例として,ハードウェアではCPU,メモリ,ハードディスク装置などがあり(これらはタイムスライス,仮想メモリ,バッファリングなどによりアプリケーションからは共有されているように見える),ソフトウェアでは複数のプログラムから参照はされるが更新はされないリンク付きリストやテーブルなどがある。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら,特許文献1では,複数の排他的資源を扱うジョブ管理システムにおいて排他的資源による待ち合わせを最小化するようスケジューリングすることができないという課題があった。
【0008】
本開示の目的は,上述した課題を鑑み,排他的資源を有するシステムにおいて,排他的資源の開放待ちを極力回避してジョブ全体の実行時間を削減するジョブ管理システム,ジョブ実行管理方法及びジョブ実行管理プログラムを提供することにある。
【課題を解決するための手段】
【0009】
一実施形態のジョブ管理システムは,ジョブを管理するマネージャ装置と,前記ジョブを実行する少なくとも1以上のエージェント装置を備え,前記マネージャ装置は,第1排他的資源を使用するジョブが実行完了した時に,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第1排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索し,最も早く次のジョブを開始できるキュー内の前記第1排他的資源を使用するジョブを当該キューの次に実行できる位置に移動する制御を行うようにした。
【0010】
一実施形態のジョブ実行管理方法は,ジョブを管理するマネージャ装置と,前記ジョブを実行する少なくとも1以上のエージェント装置を備えるジョブ管理システムに対して,第1排他的資源を使用するジョブが実行完了した時に,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第1排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索し,最も早く次のジョブを開始できるキュー内の前記第1排他的資源を使用するジョブを当該キューの次に実行できる位置に移動する制御を行うようにした。
【0011】
一実施形態のジョブ実行管理プログラムは,ジョブを管理するマネージャ装置と,前記ジョブを実行する少なくとも1以上のエージェント装置を備えるジョブ管理システムに対して,第1排他的資源を使用するジョブが実行完了した時に,前記エージェント装置のキューにキューイングされている全ての前記ジョブの中から、前記第1排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索するステップと,最も早く次のジョブを開始できるキュー内の前記第1排他的資源を使用するジョブを当該キューの次に実行できる位置に移動する制御を行うステップと,をコンピュータに実行させるようにした。
【発明の効果】
【0012】
本発明によれば,排他的資源を有するシステムにおいて,排他的資源の開放待ちを極力回避してジョブ全体の実行時間を削減するジョブ管理システム,ジョブ実行管理方法及びジョブ実行管理プログラムを提供することができる。
【図面の簡単な説明】
【0013】
【
図1】実施の形態1にかかるジョブ管理システムのブロック図である。
【
図2】実施の形態2にかかるジョブ管理システムのブロック図である。
【
図3】実施の形態2に係るシステムの動作の一例を示すフローチャートである。
【
図4】実施の形態2に係るシステムの動作の一例を示すフローチャートである。
【
図5】実施の形態2に係るジョブ管理システムのジョブ実行をイメージ化した図である。
【
図6】実施の形態2に係るジョブ管理システムのジョブ実行をイメージ化した図である。
【
図7A】実施の形態2に係るジョブ管理システムのジョブ処理時間を示す表である。
【
図7B】実施の形態2に係るジョブ管理システムのジョブ処理時間を示す表である。
【
図8A】従来のジョブ管理システムのジョブ処理時間を示す表である。
【
図8B】従来のジョブ管理システムのジョブ処理時間を示す表である。
【
図9A】実施の形態2に係るジョブ管理システムのジョブ処理時間を示す表である。
【
図9B】実施の形態2に係るジョブ管理システムのジョブ処理時間を示す表である。
【
図10】従来のジョブ管理システムのジョブ処理時間を示す表である。
【発明を実施するための形態】
【0014】
以下の実施の形態において,ジョブ管理システムとは,ネットワーク上に存在する複数のコンピュータにおいて複数のコンピュータプログラムの実行を管理するシステムを意味する。
また,資源とは,コンピュータプログラムを実行するために必要なハードウェア,ソフトウェアおよびデータを意味する。
【0015】
そして,排他的資源とは,ジョブ管理システム上で実行される複数のコンピュータプログラムから同時に使用できないか,もしくは同時に使用しないことをそのシステムで定めている資源を意味する。前述のプリンタ装置,テープ装置などは物理的に同時に使用することが不可能である排他的資源である。低速なネットワーク回線は物理的には複数のコンピュータプログラムから同時に使用することが可能であるが,システムの性能を向上させるためにあえて単一のコンピュータプログラムからのみ使用可能とするように制約を設けることがあり,このような場合も排他的資源となる。
【0016】
実施の形態1
以下,図面を参照して本発明の実施の形態について説明する。
図1は,実施の形態1にかかるジョブ管理システムのブロック図である。
図1において,ジョブ管理システム10は,マネージャ装置100と,エージェント装置200を備える。
【0017】
マネージャ装置100は,ジョブを管理する。
エージェント装置2000は,ジョブを実行する。
図1では,1つのエージェント装置200が記載されているが,ジョブ管理システム10が複数のエージェント装置200を備えるようにしてもよい。
【0018】
そして,マネージャ装置100は,第1排他的資源を使用するジョブが実行完了した時に,エージェント装置200のキューにキューイングされている全てのジョブの中から、第1排他的資源を使用するジョブがキューイングされているキューのうち,最も早く次のジョブを開始できるキューを検索する。そして,マネージャ装置100は,最も早く次のジョブを開始できるキュー内の第1排他的資源を使用するジョブを当該キューの次に実行できる位置に移動する制御を行う。
【0019】
このように,実施の形態1のジョブ管理システムによれば,排他的資源を有するシステムにおいて,排他的資源の開放待ちを極力回避してジョブ全体の実行時間を削減することができる。
【0020】
実施の形態2
図2は,実施の形態2にかかるジョブ管理システムのブロック図である。
図2において,ジョブ管理システム10は,マネージャ装置100と,エージェント装置200を備える。
図2では,1つのエージェント装置200が記載されているが,ジョブ管理システム10が複数のエージェント装置200を備えるようにしてもよい。
【0021】
マネージャ装置100は,ジョブ定義DB101と,ジョブ実行管理部102と,キュー管理部103と,は排他的資源管理部104と,排他的資源管理DB105とを備える。
【0022】
ジョブ定義DB101は,ジョブの定義を一元的に管理するデータベースである。具体的には,ジョブ定義DB101はジョブ管理システム内で実行するジョブの情報を保有するデータベースである。
【0023】
ジョブ実行管理部102は,ジョブの実行を一元的に管理する。具体的には,ジョブ実行管理部102は以下の機能を有する。
・エージェント装置にジョブの実行を要求する。
・エージェント装置のジョブの終了を待ち合わせる。
・エージェント装置で実行されるジョブの実行時間をジョブの入力データ量と過去の実行実績から推定する。
【0024】
キュー管理部103は,すべてのキューを一元的に管理する。具体的には,キュー管理部103は以下の機能を有する。
・排他的資源を使用するジョブがキューイングされているキューを検索する。
・キュー内で排他的資源を使用するジョブのうち最も実行順序が早いジョブを検索する。
・キュー内で次に実行できる位置にあり排他的資源を占有しているジョブを検索する。
【0025】
排他的資源管理部104は,排他的資源の占有と解放を一元的に管理する。具体的には,排他的資源管理部104は以下の機能を有する。
・エージェント装置のキューにキューイングされているジョブに排他的資源を占有させる。
・エージェント装置のキューにキューイングされているジョブから排他的資源を解放する。
【0026】
排他的資源管理DB105は,排他的資源の情報を一元的に管理するデータベースである。具体的には,排他的資源管理DB105は全ての排他的資源の占有状態を表す情報を有するデータベースである。
【0027】
エージェント装置200は,ジョブ実行制御部201と,キュー202と,キュー制御部203とを備える。
【0028】
ジョブ実行制御部201は,ジョブの実行を制御する。具体的には,ジョブ実行制御部201は以下の機能を有する。
・キューからジョブを取り出して実行する。
・排他的資源を使用するジョブが排他的資源を占有しないままキュー内の次に実行できる位置にある場合は後続のジョブを先に実行する。
・ジョブの実行結果をマネージャ装置に返却する。
【0029】
キュー202は,エージェント装置200で実行するジョブをキューイングする。
【0030】
キュー制御部203は,キュー内のジョブを管理する。具体的には,キュー制御部203は以下の機能を有する。
・キュー内のジョブに排他的資源を占有させる。
・キュー内のジョブから排他的資源を解放する。
・キュー内のジョブの実行順序を入れ替える。
【0031】
次にジョブ管理システム10の動作について説明する。
図3は,実施の形態2に係るシステムの動作の一例を示すフローチャートである。
【0032】
ステップS301においてジョブ実行管理部102は,エージェント装置200で実行されているジョブが終了し排他的資源が解放されるまで待機する。この結果解放された排他的資源をZ1とする。そして解放後ステップS302に進む。
【0033】
ステップS302においてキュー管理部103は,Z1を使用するジョブがキューイングされているキューを全て検索する。この結果をQ1とする。検索後,ステップS303に進む。
【0034】
ステップS303においてキュー管理部103は,Q1の各キューにキューイングされているZ1を使用するジョブのうち,最も実行順序が早いジョブを検索する。この結果をJ1とする。検索後,ステップS304に進む。
【0035】
ステップS304においてキュー管理部103は,Q1にキューイングされているZ1以外の排他的資源を使用するジョブで,キュー内で次に実行できる位置にあり,排他的資源を占有しているジョブを検索する。この結果をJ2とする。そして,ステップS305に進む。
【0036】
ステップS305において,排他的資源管理部104は,J2が1つ以上存在するか否か判断する。J2が1つ以上存在する場合,ステップS306に進む。またJ2が1つも存在しない場合,ステップS307に進む。
【0037】
ステップS306において排他的資源管理部104は,排他資源Z1に保留フラグを立てて,処理を終了する。
【0038】
ステップS307においてジョブ実行管理部102は,Q1の各キューで実行中のジョブの残り時間を推定する。この結果をT1とする。そして,ステップS308に進む。
【0039】
ステップS308においてジョブ実行制御部201は,J1が占有を取得しないままキューの先頭に到達していた場合に,J1が先頭に到達した時点から現在までの経過時間を補正時間として,T1から補正時間を差し引く。この結果をT2とする。そして,ステップS309に進む。
【0040】
ステップS309においてキュー管理部103は,T2を比較して最も小さな値となるキューを決定する。この結果をQ2とする。そして,ステップS310に進む。
【0041】
ステップS310においてキュー制御部203は,Q2にキューイングされているジョブのうち,キュー内で最も実行順序が早いジョブをそのキューの次に実行できる位置に移動し,そのジョブが使用する排他的資源であるZ1を占有する。そして,処理を終了する。
【0042】
図3の処理後について
図4を用いて説明する。
図4は,実施の形態2に係るシステムの動作の一例を示すフローチャートである。
【0043】
ステップS401においてジョブ実行管理部102は,ジョブの実行開始を待機する。そして,ステップS402に進む。
【0044】
ステップS402において排他的資源管理部104は,保留フラグが立てられている排他的資源を検索する。この結果をZ2とする。そして,ステップS403に進む。
【0045】
そして,ステップS403において,Z2が1つ以上存在するか否か判断される。Z2が1つ以上存在する場合,ステップS404に進む。またZ2が1つも存在しない場合は終了する。
【0046】
ステップS404においてキュー管理部103は,Z2を使用するジョブがキューイングされているキューを全て検索する。この結果をQ2とする。そして,ステップS405に進む。
【0047】
ステップS405においてキュー管理部103は,Q2にキューイングされているジョブのうち,Z2を使用するジョブで最も実行順序が早いジョブを検索する。この結果をJ3とする。そして,ステップS406に進む。
【0048】
ステップS406においてキュー管理部103は,Q2にキューイングされているジョブのうち,Z2以外の排他的資源を使用するジョブで,キュー内で次に実行できる位置にあり,排他資源を占有しているジョブを検索する。この結果をJ4とする。そして,ステップS407に進む。
【0049】
ステップS407において,J4が1つ以上存在するか否か判断される。J4が1つ以上存在する場合はステップS401に処理が戻る。またJ4が1つも存在しない場合,ステップS408に進む。
【0050】
ステップS408においてジョブ実行管理部102は,Q2において現在実行中のジョブの残り実行時間を推定する。この結果をT3とする。そして,ステップS409に進む。
【0051】
ステップS409においてジョブ実行管理部102は,J3が排他的資源を占有しないままキューの先頭に到達していた場合に,J3が先頭に到達した時点から現在までの経過時間を補正時間として,T3から補正時間を差し引く。この結果をT4とする。そして,ステップS410に進む。
【0052】
ステップS410においてキュー管理部103は,T4を比較して最も小さな値となるキューを決定する。この結果をQ3とする。そして,ステップS411に進む。
【0053】
ステップS411においてキュー管理部103は,Q3にキューイングされているジョブのうち,キュー内で最も実行順序が早いジョブをそのキューの次に実行できる位置に移動し,そのジョブが使用する排他的資源であるZ2を占有する。また、当該保留フラグを削除する。そして,処理を終了する。
【0054】
次に,ジョブ実行の順序について説明する。
図5は,実施の形態2に係るジョブ管理システムのジョブ実行をイメージ化した図である。
図5では,キューは円筒でイメージ化されている。また順番待ちしている未実行のジョブは円筒内の丸または四角で示されている。そして,実行中のジョブは,円筒の下の丸または四角で示されている。そして,キュー3には,未実行のジョブF,Cの順でキューイングされている。ここで,ジョブD,E及びFは排他的資源(X)を使用するジョブである。ジョブA,B及びCは排他的資源(Y)を使用するジョブである。
【0055】
最初のキュー状態501において,キュー1には,未実行のジョブD,Aの順でキューイングされている。また,キュー2には,未実行のジョブB,Eの順でキューイングされている。キュー状態501では,キュー1のジョブ処理終了まで60秒となっている。またキュー2のジョブ処理終了まで90秒となっている。そしてキュー3のジョブ処理終了まで30秒となっている。
【0056】
キュー状態501から排他的資源(Y)が開放されると,キュー状態502となる。キュー状態502において,キュー3が最も早く次のジョブを開始できる状態にある。そして,キュー3内のジョブCが次に実行できる位置に移動して占有する。
【0057】
キュー状態502から排他的資源(X)が開放されると,キュー状態503となる。キュー状態503において,ジョブCがキュー内の次に開始できる位置を占有しているため,排他的資源Xに保留フラグが立てられる。
【0058】
キュー状態503から30秒経過した後にキュー状態504となる。キュー状態504では,キュー3で実行中のジョブが終了している。キュー1のジョブ処理終了まで30秒となっている。またキュー2のジョブ処理終了まで60秒となっている。
【0059】
キュー状態504からジョブCの実行予測時間が推定され,キュー状態505となる。この例ではジョブCの実行予測時間が50秒である。
【0060】
キュー状態505からジョブCが実行開始されるとキュー状態506となる。
【0061】
キュー状態506において,キュー1が最も早く次のジョブを開始できる状態にある。そして,キュー1内のジョブDが次に実行できる位置に移動してキュー状態507となる。
【0062】
次に,
図6では,
図5のキュー状態505でのジョブCの実行予測時間が短い例(すなわち,キュー3が最も早く次のジョブを開始できる状態にある)例について説明する。
【0063】
図6は,実施の形態2に係るジョブ管理システムのジョブ実行をイメージ化した図である。
図6では,キューは円筒でイメージ化されている。また順番待ちしている未実行のジョブは円筒内の丸または四角で示されている。そして,実行中のジョブは,円筒の下の丸または四角で示されている。そして,キュー3には,未実行のジョブF,Cの順でキューイングされている。ここで,ジョブD,E及びFは排他的資源(X)を使用するジョブである。ジョブA,B及びCは排他的資源(Y)を使用するジョブである。
【0064】
最初のキュー状態601において,キュー1には,未実行のジョブD,Aの順でキューイングされている。また,キュー2には,未実行のジョブB,Eの順でキューイングされている。キュー状態601では,キュー1のジョブ処理終了まで60秒となっている。またキュー2のジョブ処理終了まで90秒となっている。そしてキュー3のジョブ処理終了まで30秒となっている。
【0065】
キュー状態601から排他的資源(Y)が開放されると,キュー状態602となる。キュー状態602において,キュー3が最も早く次のジョブを開始できる状態にある。そして,キュー3内のジョブCが次に実行できる位置に移動して占有する。
【0066】
キュー状態602から排他的資源(X)が開放されると,キュー状態603となる。キュー状態603において,ジョブCがキュー内の次に開始できる位置を占有しているため,排他的資源Xに保留フラグが立てられる。
【0067】
キュー状態603から30秒経過した後にキュー状態604となる。キュー状態604では,キュー3で実行中のジョブが終了している。キュー1のジョブ処理終了まで30秒となっている。またキュー2のジョブ処理終了まで60秒となっている。
【0068】
キュー状態604からジョブCの実行予測時間が推定され,キュー状態605となる。この例ではジョブCの実行予測時間が20秒である。
【0069】
キュー状態605からジョブCが実行開始されるとキュー状態606となる。
キュー状態606において,キュー3が最も早く次のジョブを開始できる状態にある。そして,キュー3内のジョブFが次に実行できる位置に移動してキュー状態607となる。
【0070】
次に,実施の形態2のジョブ管理と従来のジョブ管理の,ジョブ全体の実行時間の比較について説明する。
【0071】
図7A及び
図7Bは,実施の形態2に係るジョブ管理システムのジョブ処理時間を示す表である。
図7A及び
図7Bにおいて,縦軸は経過時間を示す。また各表にはキュー別のジョブと各ジョブの所要時間が対応付けて示されている。
図7A及び
図7Bにおいて,2桁の数字とアルファベットはキューに投入されたジョブを表す。数字の10の位でキューを表し,1の位でキューに投入された順番を表し,アルファベットで使用する排他的資源を表す。アルファベットがついていないジョブは排他的資源を使用しない。
【0072】
まず経過時間0において,キュー1では,排他的資源Aを使用するジョブ11-Aが実行される。ジョブ11-Aの所要時間は10秒である。また,キュー2では,排他的資源Bを使用するジョブ21-Bが実行される。ジョブ21-Bの所要時間は20秒である。そしてキュー3では,排他定期資源を使用しないジョブ31が実行される,ジョブ31の所要時間は40秒である。キュー4でも,排他定期資源を使用しないジョブ41が実行される,ジョブ41の所要時間は30秒である。
【0073】
10秒経過後,排他的資源Aを使用するキュー1のジョブ11-Aが終了する。ここで,キュー3とキュー4には,排他的資源Aを使用するジョブ34-A及びジョブ44-Aがそれぞれキューイングされている。この時点で,キュー3で実行されているジョブ31の残り時間が30秒,キュー4で実行されているジョブ41の残り時間が20秒であるので,最も早く次のジョブを開始できる状態にあるキューはキュー4である。したがって,キュー4内の排他的資源Aを使用するジョブ44-Aがキュー4内の次に開始できる位置を占有する。
【0074】
20秒経過後,排他的資源Bを使用するキュー2のジョブ21-Bが終了する。この時点で排他的資源Bを使用するジョブはキュー3のジョブ-35B及びキュー4のジョブ45-Bがある。しかし,キュー4には,排他的資源Aを使用するジョブ44-Aが,キュー4内の次に開始できる位置を占有しているので,排他的資源Bの使用について保留フラグBが立てられる。
【0075】
30秒経過後,キュー4のジョブ41が終了し,ジョブ44-Aが実行される。ジョブ44-Aがキュー4内の次に開始できる位置から実行に移ったので,保留フラグが立っている排他的資源Bのジョブを使用するジョブで最も早く次のジョブを開始できる状態にあるキューを検索する。キュー3の残り時間が10秒,キュー4の残り時間が30秒であるので,最も早く次のジョブを開始できる状態にあるキューはキュー3である。したがってキュー3内で排他的資源Bのジョブを使用するジョブ35-Bがキュー3内の次に開始できる位置を占有する。
40秒経過後,キュー3のジョブ31が終了し,ジョブ35-Bが実行される。
【0076】
60秒経過後,キュー3のジョブ35-Bが終了し,ジョブ32が実行される。またキュー4のジョブ44-Aが終了し,ジョブ42が実行される。以下,キュー3及びキュー4内のジョブが順に実行される。60秒経過の時点でもキュー内での実行順序の入れ替えの条件を満たすため優先して実行する位置に移動する。
110秒経過後,最後のジョブ45-Bが実行され,130秒後に全てのジョブが実行完了となる。
【0077】
次に,
図7A及び
図7Bと比較する従来のジョブ処理について説明する。
図8A及び
図8Bは,従来のジョブ管理システムのジョブ処理時間を示す表である。
図8A及び
図8Bの例は,初期のジョブ状態が
図7Aと同じものをキューイングされた順にジョブを実行した例である。
図8A及び
図8Bにおいて,ジョブの数字及びアルファベットの定義は
図7A及び
図7Bと同様である。
【0078】
まず経過時間0において,キュー1では,排他的資源Aを使用するジョブ11-Aが実行される。ジョブ11-Aの所要時間は10秒である。また,キュー2では,排他的資源Bを使用するジョブ21-Bが実行される。ジョブ21-Bの所要時間は20秒である。そしてキュー3では,排他定期資源を使用しないジョブ31が実行される,ジョブ31の所要時間は40秒である。キュー4でも,排他定期資源を使用しないジョブ41が実行される,ジョブ41の所要時間は30秒である。
【0079】
10秒経過後,排他的資源Aを使用するキュー1のジョブ11-Aが終了する。排他的資源Aを使用するジョブ11-Aが終了しているがキュー内のジョブの入れ替えは行われない。また,20秒経過後,排他的資源Bを使用するキュー2のジョブ21-Bが終了する。排他的資源Bを使用するジョブ21-Bが終了しているがキュー内のジョブの入れ替えは行われない。
【0080】
30秒経過後,キュー4のジョブ41が終了し,ジョブ42が実行される。
40秒経過後,キュー3のジョブ31が終了し,ジョブ32が実行される。またキュー4のジョブ42が終了し,ジョブ43が実行される。
50秒経過後,キュー3のジョブ32が終了し,ジョブ33が実行される。
60秒経過後,キュー3のジョブ33が終了し,ジョブ34-Aが実行される。
【0081】
70秒経過後,キュー4のジョブ43が終了する。この時点で,排他的資源Aを使用するジョブ34-Aが実行中であるので,ジョブ44-Aは排他的資源Aを使用することができずキュー4内で待つ。
90秒後,排他的資源Aを使用するジョブ34-Aが終了する。この時点になって排他的資源Aを使用するジョブ44-Aが実行可能になる。
【0082】
110秒後,キュー4のジョブ44-Aが終了し,ジョブ45-Bが実行される。140秒後に全てのジョブが実行完了となる。
【0083】
図7A,
図7Bと
図8A,
図8Bを比較すると,実施の形態2では,排他的資源を使用するジョブの実行順をキュー内で制御することにより,従来の制御より早く全てのジョブを実行完了することができる。
【0084】
次に,
図7A,
図7Bと一部のジョブ処理時間が異なる例について説明する。
図9A及び
図9Bは,実施の形態2に係るジョブ管理システムのジョブ処理時間を示す表である。
図9A及び
図9Bにおいて,縦軸は経過時間を示す。また各表にはキュー別のジョブと各ジョブの所要時間が対応付けて示されている。
図9A及び
図9Bにおいて,ジョブの数字及びアルファベットの定義は
図7A及び
図7Bと同様である。
【0085】
まず経過時間0において,キュー1では,排他的資源Aを使用するジョブ11-Aが実行される。ジョブ11-Aの所要時間は10秒である。また,キュー2では,排他的資源Bを使用するジョブ21-Bが実行される。ジョブ21-Bの所要時間は15秒である。そしてキュー3では,排他定期資源を使用しないジョブ31が実行される,ジョブ31の所要時間は50秒である。キュー4でも,排他定期資源を使用しないジョブ41が実行される,ジョブ41の所要時間は20秒である。
【0086】
10秒経過後,排他的資源Aを使用するキュー1のジョブ11-Aが終了する。ここで,キュー3とキュー4には,排他的資源Aを使用するジョブ34-A及びジョブ44-Aがそれぞれキューイングされている。この時点で,キュー3で実行されているジョブ31の残り時間が40秒,キュー4で実行されているジョブ41の残り時間が10秒であるので,最も早く次のジョブを開始できる状態にあるキューはキュー4である。したがって,キュー4内の排他的資源Aを使用するジョブ44-Aがキュー4内の次に開始できる位置を占有する。
【0087】
15秒経過後,排他的資源Bを使用するキュー2のジョブ21-Bが終了する。この時点で排他的資源Bを使用するジョブはキュー3のジョブ-35B及びキュー4のジョブ45-Bがある。しかし,キュー4には,排他的資源Aを使用するジョブ44-Aが,キュー4内の次に開始できる位置を占有しているので,排他的資源Bの使用について保留フラグBが立てられる。
【0088】
20秒経過後,キュー4のジョブ41が終了し,ジョブ44-Aが実行される。ジョブ44-Aがキュー4内の次に開始できる位置から実行に移ったので,保留フラグが立っている排他的資源Bのジョブを使用するジョブで最も早く次のジョブを開始できる状態にあるキューを検索する。キュー3の残り時間が30秒,キュー4の残り時間が20秒であるので,最も早く次のジョブを開始できる状態にあるキューはキュー4である。したがってキュー4内で排他的資源Bのジョブを使用するジョブ45-Bがキュー3内の次に開始できる位置を占有する。
【0089】
40秒経過後,キュー4のジョブ44-Aが終了し,ジョブ45-Bが実行される。以下,キュー3及びキュー4内のジョブが順に実行される。また、40秒経過後に排他的資源Aが解放されたため、これを使用するジョブ34-Aが次に開始する位置に移動する。同じく60秒後にジョブ45-Bが終了するためジョブ35-Bが次に開始する位置に移動する
120秒経過後,最後のジョブ35-Bが実行完了し,全てのジョブが実行完了となる。
【0090】
次に,
図9A及び
図9Bと比較する従来のジョブ処理について説明する。
図10は,従来のジョブ管理システムのジョブ処理時間を示す表である。
図10の例は,初期のジョブ状態が
図9と同じものをキューイングされた順にジョブを実行した例である。
図10において,ジョブの数字及びアルファベットの定義は
図7A及び
図7Bと同様である。
【0091】
まず経過時間0において,キュー1では,排他的資源Aを使用するジョブ11-Aが実行される。ジョブ11-Aの所要時間は10秒である。また,キュー2では,排他的資源Bを使用するジョブ21-Bが実行される。ジョブ21-Bの所要時間は15秒である。そしてキュー3では,排他定期資源を使用しないジョブ31が実行される,ジョブ31の所要時間は50秒である。キュー4でも,排他定期資源を使用しないジョブ41が実行される,ジョブ41の所要時間は20秒である。
【0092】
10秒経過後,排他的資源Aを使用するキュー1のジョブ11-Aが終了する。排他的資源Aを使用するジョブ11-Aが終了しているがキュー内のジョブの入れ替えは行われない。また,15秒経過後,排他的資源Bを使用するキュー2のジョブ21-Bが終了する。排他的資源Bを使用するジョブ21-Bが終了しているがキュー内のジョブの入れ替えは行われない。また,キュー4のジョブ41が終了し,ジョブ42が実行される。
【0093】
40秒経過後,キュー4のジョブ42が終了し,ジョブ43が実行される。
50秒経過後,キュー3のジョブ31が終了し,ジョブ32が実行される。
60秒経過後,キュー3のジョブ32が終了し,ジョブ33が実行される。
70秒経過後,キュー3のジョブ33が終了し,ジョブ34-Aが実行される。
【0094】
80秒経過後,キュー4のジョブ43が終了する。この時点で,排他的資源Aを使用するジョブ34-Aが実行中であるので,ジョブ44-Aは排他的資源Aを使用することができずキュー4内で待つ。
100秒後,排他的資源Aを使用するジョブ34-Aが終了する。この時点になって排他的資源Aを使用するジョブ44-Aが実行可能になる。
【0095】
120秒後,キュー4のジョブ44-Aが終了し,ジョブ45-Bが実行される。140秒後に全てのジョブが実行完了となる。
【0096】
図9と
図10を比較すると,実施の形態2では,排他的資源Aを使用するジョブの実行順をキュー内で制御することにより,従来の制御より早く全てのジョブを実行完了することができる。
【0097】
このように実施の形態2のジョブ管理システムによれば,排他的資源を使用するジョブが完了した時に,次にジョブを実行完了するキューにおいて,次に当該排他的資源を使用するジョブをキュー内で繰り上げることにより,排他的資源を有するシステムにおいて,排他的資源の開放待ちを極力回避してジョブ全体の実行時間を削減することができる。
【0098】
また,実施の形態2のジョブ管理システムによれば,第1の排他的資源を使用するジョブがキューの次に実行できる位置にある時に,第2の排他的資源を使用するジョブが完了した場合,当該第1の排他的資源を使用するジョブを実行する段階で,次にジョブを実行完了するキューにおいて,次に第2排他的資源を使用するジョブをキュー内で繰り上げることにより,排他的資源を有するシステムにおいて,排他的資源の開放待ちを極力回避してジョブ全体の実行時間を削減することができる。
【0099】
以上,実施の形態を参照して本願発明を説明したが,本願発明は上記によって限定されるものではない。本願発明の構成や詳細には,発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0100】
上述の実施の形態では,本発明を機能ブロックの構成として説明したが,本発明は,これに限定されるものではない。本発明は,機能ブロックの構成を電子回路として実現してもよい。また本発明は,任意の処理を,CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。)
【0101】
プログラムは,様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され,コンピュータに供給することができる。非一時的なコンピュータ可読媒体は,様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は,磁気記録媒体(例えばフレキシブルディスク,磁気テープ,ハードディスクドライブ),光磁気記録媒体(例えば光磁気ディスク),CD-ROM(Read Only Memory),CD-R,CD-R/W,半導体メモリ(例えば,マスクROM,PROM(Programmable ROM),EPROM(Erasable PROM),フラッシュROM,RAM(random access memory))を含む。また,プログラムは,様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は,電気信号,光信号,及び電磁波を含む。一時的なコンピュータ可読媒体は,電線及び光ファイバ等の有線通信路,又は無線通信路を介して,プログラムをコンピュータに供給できる。
【符号の説明】
【0102】
10 ジョブ管理システム
100 マネージャ装置
101 ジョブ定義DB
102 ジョブ実行管理部
103 キュー管理部
104 排他的資源管理部
105 排他的資源管理DB
200 エージェント装置
201 ジョブ実行制御部
202 キュー
203 キュー制御部