JP6191301B2 - 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム - Google Patents

情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム Download PDF

Info

Publication number
JP6191301B2
JP6191301B2 JP2013151280A JP2013151280A JP6191301B2 JP 6191301 B2 JP6191301 B2 JP 6191301B2 JP 2013151280 A JP2013151280 A JP 2013151280A JP 2013151280 A JP2013151280 A JP 2013151280A JP 6191301 B2 JP6191301 B2 JP 6191301B2
Authority
JP
Japan
Prior art keywords
job
execution
time
jobs
scheduled
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.)
Active
Application number
JP2013151280A
Other languages
English (en)
Other versions
JP2015022606A (ja
Inventor
佐藤 貴志
貴志 佐藤
保 仙石
保 仙石
浩之 初鹿
浩之 初鹿
雄二 野元
雄二 野元
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013151280A priority Critical patent/JP6191301B2/ja
Priority to US14/304,030 priority patent/US9430283B2/en
Publication of JP2015022606A publication Critical patent/JP2015022606A/ja
Application granted granted Critical
Publication of JP6191301B2 publication Critical patent/JP6191301B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本技術は、情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラムに関する。
サーバ、ストレージおよびネットワークなどで稼働するOS(Operating System)/ミドルウェア/アプリケーションによって構成されるシステムでは、ジョブを自動化して運用するためのジョブスケジューリングが行われている。
ジョブを実行して所定の業務を行う場合、通常は、いつまでにジョブの実行を終了させるかという期限が設定される。例えば、銀行などのシステムでは、オンライン業務の開始時刻までに、夜間に実行したジョブを終了させておかなければならない。ジョブの自動化には、このように実行終了時刻を組み入れたジョブスケジューリングが行われる。
ジョブスケジューリングの従来技術としては、例えば、基準多重度と予定多重度を用いて、ジョブシナリオが実行される処理予定時間を算出する技術が提案されている。
また、特定ジョブの開始時刻に影響を及ぼすクリティカルパスを判別し、特定ジョブの終了時刻が目標終了時刻より遅いときに、クリティカルパス上のジョブの優先度を高める技術が提案されている。
さらに、バッチジョブとその実行スケジュールを取得し、バッチジョブの負荷レベルが所定負荷レベルのバッチジョブのみを実行し、バッチジョブの実行が終了するまでは次のバッチジョブを実行しない技術が提案されている。
さらにまた、始点ジョブと終点ジョブとの間で順方向検索を行ってクリティカルパスを求め、また終点ジョブから特定ジョブを逆方向検索してクリティカルパスを求めて、順方向と逆方向でクリティカルパスが異なる場合、実行所要時間が長い方を正規のクリティカルパスとして実行所要時間を算出する技術が提案されている。
特開2010−231694号公報 特開2004−295731号公報 特開2011−043968号公報 特開2009−043188号公報
上記のように、通常、ジョブの運用では納期があるため、自動化するジョブの実行終了時刻を予測したスケジューリングが行われるが、ジョブの実行時間は、日時等によって変動する。例えば、ジョブの実行に要する時間が一定周期で長くなる期間が発生する場合がある。
このため、単に平均時間などにもとづき、ジョブの実行が長期化する期間において、ジョブ実行を固定的に予測して、ジョブスケジューリングを行うと、ジョブ実行に遅延が生じて、納期内に業務を終わらすことができないといった問題が生じる。
1つの側面では、本発明は、ジョブ実行の遅延を抑制する情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラムを提供することを目的とする。
1つの案では、情報処理装置が提供される。情報処理装置は、ジョブの実行に要する第1の実行時間と、前記第1の実行時間よりも時間が長い第2の実行時間と、を保持する保持手段と、ジョブの実行開始時刻が、特定の時間範囲に含まれるか否かを判断して、前記第1の実行時間または前記第2の実行時間を選択し、選択した実行時間にもとづきジョブのスケジューリングを行うジョブスケジューリング手段とを有する。
1態様によれば、ジョブ実行の遅延を抑制することが可能になる。
情報処理装置の構成例を示す図である。 ジョブ管理サーバの構成例を示す図である。 ジョブスケジューラの構成例を示す図である。 ジョブフロー定義テーブルの構成例を示す図である。 ジョブ定義テーブルの構成例を示す図である。 実行実績時間テーブルの構成例を示す図である。 クリティカルパスのジョブフローとクリティカルパスでないジョブフローとを示す図である。 優先度設定テーブルの構成例を示す図である。 ジョブ実行時の優先度付けを説明するための図である。 ジョブ実行時の優先度付けを説明するための図である。 クリティカルパスのジョブフローとクリティカルパスでないジョブフローとを示す図である。 ジョブスケジューリングを示す図である。 ジョブスケジューリングを示す図である。 ジョブスケジューリングを示す図である。 評価後の新しいクリティカルパスを示す図である。 ジョブスケジューリングを示す図である。 ジョブスケジューリングを示す図である。 ジョブスケジューリングを示す図である。 評価後の新しいクリティカルパスを示す図である。 ジョブスケジューリングを示す図である。 ピーク実行日登録部の動作を示すフローチャートである。 クリティカルパス設定部の動作を示すフローチャートである。 優先度設定部の動作を示すフローチャートである。 実行実績時間算出部の動作を示すフローチャートである。 クリティカルパス評価部の動作を示すフローチャートである。 本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。
以下、本発明の実施の形態を図面を参照して説明する。図1は情報処理装置の構成例を示す図である。情報処理装置1は、保持手段1aとジョブスケジューリング手段1bを備える。
保持手段1aは、ジョブの実行に要する第1の実行時間と、第1の実行時間よりも時間が長い第2の実行時間とを保持する。ジョブスケジューリング手段1bは、ジョブの実行開始時刻が、特定の時間範囲に含まれるか否かを判断して、第1の実行時間または第2の実行時間を選択し、選択した実行時間にもとづきジョブのスケジューリングを行う。
ここで、時間範囲H0は、期間H1(第1の期間)と期間H2(第2の期間)を含む。期間H2は、期間H1よりも単一ジョブの実行に要する時間が長期化する期間であって、一定周期で発生する期間である。例えば、期間H1は、業務が平均的に行われる通常日に該当し、期間H2は、通常日よりも業務が繁忙となるピーク日に該当する。
ジョブスケジューリング手段1bは、ジョブの実行開始時刻が、期間H1に含まれる場合は、ジョブの実行時間として第1の実行時間を選択する。すなわち、期間H1で実行されるジョブa1に対しては、第1の実行時間(第2の実行時間よりも時間が短い)を選択する。
また、ジョブスケジューリング手段1bは、ジョブの実行開始時刻が、期間H2に含まれる場合は、ジョブの実行時間として第2の実行時間を選択する。すなわち、期間H2で実行されるジョブa2は、ジョブa1よりも実行所要時間が長いので、第1の実行時間よりも時間が長い第2の実行時間を選択する。
従来では、実行時間が変動するジョブに対して、当初予測した固定的な実行時間をそのまま割り当ててジョブスケジューリングを行っていたため、ジョブ実行に遅延が生じる場合がある。
これに対し、ジョブスケジューリング手段1bでは、ジョブの実行時間が長期化するような期間で、ジョブの実行が開始されるか否かを判断する。そして、ジョブの実行所要時間の変動を認識し、時間の長さが互いに異なる第1、第2の実行時間を適応的に選択してジョブのスケジューリングを行う。これにより、ジョブ実行時間の変動に応じた柔軟なジョブスケジューリングを行うことができ、ジョブ実行の遅延を抑制することが可能になる。
次に本技術の構成・動作を説明する前に解決すべき課題について説明する。ジョブの自動運用では、日次バッチ(例:毎日17:00)や週次バッチ(例:毎週金曜日)など、周期的にジョブを実行するようなスケジューリングが組まれることが多い。
この場合、同じ時間帯や曜日であっても、ジョブを実行する日付によっては、ジョブの実行処理に要するデータ量が変化して、ジョブの実行時間も変化することになる。
例えば、1カ月分の集計日が20日締めなら毎月の19日が、ジョブ処理が繁忙する日となる、といったようにジョブの実行に要する時間が長くなる期間が一定周期で発生したりする場合がある。
このような、実行時間が変動するジョブに対して、当初予測した固定的な実行時間でジョブスケジューリングを行うと、実際の実行時間との間にずれが生じて、ジョブ実行に遅延が生じてしまう場合がある。
また、最も長時間でジョブを実行する実行日に合わせてスケジューリングを組むと、短時間でジョブが実行されるような実行日の場合には、ジョブを実行するサーバリソースに余裕が生まれるので、サーバリソースを効率よく使用することができない。
一方、多くのジョブを実行する場合、ジョブフローの全体実行時間が最も長くなるルートであるクリティカルパス(critical path)を設定し、クリティカルパス上のジョブを、クリティカルパス上にないジョブよりも優先的に実行するようジョブスケジューリングが行われる。
しかし、ジョブの実行時間は、上述のように、ジョブの実行日などにより変動する。このため、ジョブスケジューリング立案当初の実行予測時間でクリティカルパスを決定し、該クリティカルパス上のジョブの優先度にもとづくジョブの実行を行うと、実行時間に変動が生じた場合、ジョブフロー全体の実行時間に遅延が生じてしまう。本技術は、このような点に鑑みてなされたものであり、上記の課題を解決するものである。
次に情報処理装置1の機能を含むジョブ管理サーバの構成および動作について以降詳しく説明する。
図2はジョブ管理サーバの構成例を示す図である。ジョブ管理サーバ2は、ジョブスケジューラ10、ジョブ実行制御部20、情報管理部30およびユーザインタフェース部40を備える。なお、情報管理部30は、図1の保持手段1aの機能を含み、ジョブスケジューラ10は、図1のジョブスケジューリング手段1bの機能を含む。
ジョブスケジューラ10は、ジョブのスケジューリングを行う。ジョブ実行制御部20は、ジョブスケジューリングにもとづきジョブを実行する。情報管理部30は、ジョブの実行に関する各種情報の登録管理を行う。ユーザインタフェース部40は、外部端末と接続してユーザインタフェース処理を行い、外部端末と通信を行う。
図3はジョブスケジューラの構成例を示す図である。ジョブスケジューラ10は、ジョブ登録部11、実行日登録部12、ピーク実行日登録部13、クリティカルパス設定部14、実行条件抽出部15、優先度設定部16、実行依頼部17、実行実績時間算出部18およびクリティカルパス評価部19を備える。
ジョブ登録部11は、実行対象のジョブの登録を行う。実行日登録部12は、ジョブを実行させる日付(実行日)を登録する。ピーク実行日登録部13は、業務がピークとなるときのジョブの実行日であるピーク実行日を登録する。なお、実行日とピーク実行日は、ユーザインタフェース部40を介してユーザから任意に設定可能である。
クリティカルパス設定部14は、終了予定時刻があるジョブフローのクリティカルパスを設定する。実行条件抽出部15は、ジョブの実行条件を抽出する。優先度設定部16は、ジョブの実行時または終了時に、システム多重度とジョブの実行数とを比較し、実行するジョブの優先度を決定する。また、優先度設定部16は、クリティカルパス上にあるジョブの優先度を、クリティカルパス上にないジョブの優先度よりも高く設定する。
実行依頼部17は、優先度の高い順にジョブの実行をジョブ実行制御部20へ依頼する。なお、実行依頼されたジョブは、ジョブ実行制御部20によって実行され、ジョブの実行が終了すると、ジョブ実行制御部20から実行依頼部17へ終了応答が送信される。
実行実績時間算出部18は、ジョブの実行または終了時に、ジョブ実行の開始時刻と終了時刻の差分を算出して実行実績時間を算出する。クリティカルパス評価部19は、ジョブの実行または終了時に、ジョブの実行予測時間の比較結果により、現在設定されているクリティカルパスが最遅延の経路であるか否かの評価を行う。そして、現在設定されているクリティカルパスが最遅延経路でなければ、新たなクリティカルパスの設定指示をクリティカルパス設定部14に送信する。
次に情報管理部30が備えるジョブフロー定義テーブルT1とジョブ定義テーブルT2について説明する。
図4はジョブフロー定義テーブルの構成例を示す図である。ジョブフロー定義テーブルT1は、実行順序を指定した複数のジョブの集まりであるジョブフロー(ジョブネット)に関する定義情報を登録する。
ジョブフロー定義テーブルT1は、テーブルメンバとして、version、dbsize、tasknetname、tasknet comment、tasknet start time、tasknet end time、Start mode、Exec hour、Exec min、Start hour、Start min、Exec ymdおよびPeak exec ymdを有する。
各メンバの意味は、versionはバージョン情報、dbsizeはテーブルサイズ、tasknet nameはジョブ名、tasknet commentはコメント、tasknet start timeはジョブの実行開始時刻、tasknet end timeはジョブの終了時刻である。
また、Start modeは実行条件、Exec hourは単一ジョブが実行するときの実行予測時間(時)、Exec minは単一ジョブが実行するときの実行予測時間(分)、Start hourは複数回ジョブが実行するときの実行予測時間(時)である。
さらに、Start minは複数回ジョブが実行するときの実行予測時間(分)、Exec ymdはジョブの実行日(通常実行日)およびPeak exec ymdはジョブのピーク実行日である。
図5はジョブ定義テーブルの構成例を示す図である。ジョブ定義テーブルT2は、テーブルメンバとして、task command、task pathname、job comment、microJES id、task number、previous task num、Sys multi num、Prev start time、Prev end time、Prev exec time、exec time、Peak exec time、criticalpath flg、priority jobおよびextention timeを有する。
各メンバの意味は、task commandはジョブのコマンド名、task pathnameはジョブのディレクトリ、job commentはジョブのコメント、microJES idはジョブ名、task numberはジョブ番号、previous task numは先行ジョブ番号である。
また、Sys multi numはシステム多重度、Prev start timeは前回の開始時刻、Prevend timeは前回の終了時刻、Prev exec timeは前回の実行実績時間、exec timeは実行実績(予測)時間である。
さらに、Peak exec timeはピーク実行日の実行予測時間、criticalpath flgはクリティカルパス上の有無、priority jobはジョブの優先度およびextention timeは実行までの猶予時間である。
なお、上記の属性において、「システム多重度」は、ユーザが設定可能である。「前回の開始時刻」は、前回にジョブを実行したときの開始時刻を表す。「前回の終了時刻」は、前回にジョブを実行したときの終了時刻を表す。
「前回の実行実績時間」は、「前回の終了時刻」から「前回の開始時刻」を引いた差分である。「実行実績(予測)の時間」は、前回の実行実績時間またはピーク時の実行実績時間からの次の実行時の予測時間を表す。
「ピーク実行日の実行予測時間」は、ピーク実行日にジョブ実行に要する実行予測時間を表す。「クリティカルパス上の有無」は、ONは、クリティカルパス上のジョブであり、OFFは、クリティカルパス以外のジョブである。
「ジョブの実行優先度」は、一例としては、0〜64の範囲で設定され、標準値は31とする。クリティカルパス上のジョブは優先度が上昇する(遅延が拡大するような場合は、更に優先度を上昇させる)。
また、クリティカルパス以外のジョブでは、優先度は基本的に標準値とする。ただし、実行予定時間帯にシステムのリソース不足(多重度不足など)が予測される場合は、優先度は減少する。猶予時間に余裕がある範囲では優先度はより低下するが、猶予時間が無くなるにつれ優先度は上昇する。
「実行までの猶予時間」はクリティカルパスの終了時刻、または終了予定時刻(納期)までの残り時間から、自身の実行予測時間を減算した値が設定される。猶予時間の範囲では、ジョブの実行時間を遅延させることが可能となる。
次にジョブの実行実績時間と実行予測時間との登録処理について説明する。図6は実行実績時間テーブルの構成例を示す図である。情報管理部30は、実行実績時間テーブルT3を備える。
実行実績時間テーブルT3は、ジョブ名、前回の開始時刻、前回の終了時刻、前回の実行実績時間、ピーク実行日の実行予測時間およびピーク実行日情報の項目を有する。
例えば、ジョブDにおいて、前回の実行開始時刻が00:10であり、終了時刻が00:15であるので、前回の実行実績時間は00:05(=00:15−00:10)となる。また、ピーク実行日情報が2013年の1月4日と1月11日であり、該ピーク実行日の実行予測時間は00:10となっている。
なお、ピーク実行日の実行予測時間は、ピーク日でない通常実行日の実行実績時間よりも長くなるので、ジョブDの場合、ピーク実行日の実行予測時間は、通常実行日の実行実績時間よりも5分(=00:10−00:05)長くなっている。
ここで、ジョブスケジューラ10内の実行実績時間算出部18は、ジョブの開始時刻と終了時刻との差分を算出し、当該ジョブの実行日がピーク実行日と一致していない場合は(通常実行日の場合は)、その算出値をジョブ定義テーブルT2の「前回の実行実績時間」に対して更新する。
また、実行実績時間算出部18は、当該ジョブの実行日がピーク実行日と一致している場合は、その算出値と、ジョブ定義テーブルT2の「ピーク実行日の実行予測時間」とを比較する。
そして、実行実績時間算出部18は、すでに設定済みの「ピーク実行日の実行予測時間」の値よりも算出値の方が大きい場合は、「ピーク実行日の実行予測時間」を該算出値よりも大きな値(例えば、ユーザによって任意に設定される値)に更新する。また、すでに設定済みの「ピーク実行日の実行予測時間」の値の方が該算出値よりも大きい場合には、「ピーク実行日の実行予測時間」の値を維持する。
上記のように、ジョブ管理サーバ2では、定期的にスケジュールしている通常実行日のジョブの過去の実行時間と、業務ピーク時の実行日の情報とをそれぞれ、過去の実行実績時間、または業務ピーク時の実行予測時間として登録する。
このように、業務毎に期末、週末など、データが増大しうるタイミングとして、ジョブの定義に周期性に関する情報を付与することで、単純な前回の実績時間と比較することにより精度の高い実行時間が予測することが可能になる。また、事前にすべてのジョブの実行時間がおおよそ見積もれるため精度の高いクリティカルパスの設定が可能である。
なお、上記では、ピーク実行日の実行予測時間は、ユーザから入力するものとしたが、ジョブ実行の一定期間の実績を統計情報として取得しておき、ピーク時の周期性をプログラムにより求めて、プログラムによりピーク時の実行予測時間を求めることも可能である。
さらに、過去に実行したことが無いジョブ(例:ジョブ定義直後、ジョブの定義変更直後など)の実行予測時間に対しては、システム全体で未指定時の値(例えば、未指定時は10分とするなど)をあらかじめ設定しておいて、その値を採用するようにする。
次にクリティカルパスについて説明する。ジョブスケジューリングでは、ジョブフローの全体実行時間(開始ジョブから最終ジョブまでに要する実行時間)が算出される。このとき、複数のジョブフローの中で、全体実行時間が最大になるルートがクリティカルパスとなる。
クリティカルパス上にないジョブは、実行に遅れが出ても余裕範囲内であれば業務全体のスケジュールには影響しない。これに対し、クリティカルパス上のジョブの実行が遅延すると、業務全体の納期を遅らせてしまうことになる。逆に、クリティカルパスが短縮できると業務期間も短縮できることになる。
図7はクリティカルパスのジョブフローとクリティカルパスでないジョブフローとを示す図である。ジョブフローf1は、ジョブA、B、C、Dを含み、ジョブAは開始ジョブ、ジョブDは最終ジョブである。なお、途中のジョブBとジョブCは、並列に(2多重で)実行されるジョブである。
また、ジョブA、B、C、Dそれぞれの実行予測時間を、10分、20分、20分、10分とすると、ジョブB、Cは並列実行されるから、ジョブフローf1の全体実行時間は40分(=10+20+10)となる。
一方、ジョブフローf2は、ジョブE、Fを含み、ジョブEは開始ジョブ、ジョブFは最終ジョブである。また、ジョブE、Fそれぞれの実行予測時間を、5分、10分とすると、ジョブフローf2の全体実行時間は15分(=5+10)となる。
ここで、ジョブフローf1の方がジョブフローf2よりも全体実行時間が長いと予測されるので、ジョブフローf1、f2に対しては、ジョブフローf1がクリティカルパスとなる(図中の積算時間については後述する)。
また、ジョブに優先度を設定する場合、クリティカルパス上のジョブの優先度を、クリティカルパス以外のジョブよりも高く設定する。このような優先度設定をしておくことで、ある時間で複数のジョブが実行対象となったときに、リソースに制約があるような場合でも、クリティカルパス上のジョブを優先して実行することができる。
なお、上記では、複数のジョブフローの中で、全体実行時間が最も長いジョブフローをクリティカルパスとしたが、ジョブに終了予定時刻(納期)が設定されている場合は、終了予定時刻が最も早い(納期が最も早い)ジョブフローをクリティカルパスとして同等に扱い、優先度を設定することになる。
次にクリティカルパスの設定からクリティカルパス上のジョブへの優先度設定までの処理の流れについて説明する。
(1)クリティカルパス設定部14は、ジョブスケジューリング時(例えば、日変わりで1日分のジョブの実行予定をスケジューリングする場合など)、ジョブフロー内のジョブの実行予測時間をジョブ定義テーブルT2から取得する。
そして、クリティカルパス設定部14は、ジョブに終了予定時刻(納期)が設定されていなければ、ジョブフローの最終ジョブまで、各ジョブの実行予測時間を積算して、ジョブフローの全体実行時間を算出する。
(2)クリティカルパス設定部14は、実行予測時間の積算処理にあたり、ジョブの実行日がピーク実行日に該当する場合は、ジョブ定義テーブルT2の「ピーク時の実行予測時間」を使用する。また、ピーク実行日以外の場合は、ジョブ定義テーブルT2の「実行実績時間」を使用する。
(3)クリティカルパス設定部14は、全体実行時間を求める際の実行予測時間の積算処理では、ジョブフローの最終ジョブから逆算して求める。したがって、まず、最終ジョブがどれかを検索する。
最終ジョブの検索処理では、自分自身が先行ジョブとして設定されていないジョブを検索することで最終ジョブを見つけることができる。すなわち、自分自身が他ジョブよりも実行処理が先行される先行ジョブの場合は、先行ジョブ番号が付されており、最終ジョブには先行ジョブ番号が付されていないので、クリティカルパス設定部14は、先行ジョブ番号を有していないジョブを最終ジョブと検出する。
(4)クリティカルパス設定部14は、積算処理において、最終ジョブから開始ジョブの方向に実行予測時間を加算していく。図7の例であれば、ジョブフローf1に対して、ジョブDは、最終ジョブであり、自身の実行予測時間は10分なので、ジョブDにおける積算時間は10分となる。
また、ジョブDに先行するジョブB、Cでは、ジョブB、Cの内、最大の積算時間を加算する。この例では、ジョブB、Cの実行予測時間は共に20分であり、後段のジョブDの積算時間が10分であるから、ジョブB、Cにおける積算時間は30分(=20+10)となる。
さらに、ジョブB、Cに先行されるジョブAでは、ジョブAの実行予測時間は10分であり、後段のジョブB、Cまでの積算時間が30分なので、ジョブAにおける積算時間は40分(=10+30)となる。
同様に、ジョブフローf2に対しては、ジョブFは、最終ジョブであり、自身の実行予測時間は10分なので、ジョブFにおける積算時間は10分となる。また、ジョブFに先行されるジョブEは、実行予測時間は5分であり、後段のジョブFの積算時間が10分であるから、ジョブEの積算時間は15分(=5+10)となる。
(5)クリティカルパス設定部14は、積算処理の結果、最大の積算時間となるルートをクリティカルパスと設定する。また、優先度設定部16は、クリティカルパス上のジョブは遅延可能な猶予時間がないものと認識して、クリティカルパス上のジョブの優先度を上昇させる(同一実行条件下での実行選択優先度を高くする)。
ここで、ジョブスケジューリング時に、終了予定時刻(納期)のあるジョブがある場合、クリティカルパス設定部14は、終了予定時刻のあるジョブ毎にクリティカルパスを求め、優先度設定部16は、該クリティカルパス上にあるジョブの優先度を上昇させる。
次に優先度にもとづくジョブのディスパッチ処理について説明する。図8は優先度設定テーブルの構成例を示す図である。情報管理部30は、優先度設定テーブルT4を備える。優先度設定テーブルT4は、ジョブ名、開始予定時刻、終了予定時刻、積算時間、クリティカルパス上の有無および優先度の項目を有する。
このように登録された優先度にもとづいて、優先度設定部16は、ジョブをディスパッチする。また、ジョブのディスパッチの開始タイミングとしては、システムリソース(実行多重度)に余裕のある時間帯のジョブ実行時(初回のジョブ実行時)、または先行するジョブの終了時に実施する。さらに、複数のジョブが実行可能な場合、高優先度のジョブが優先的に実行される。
優先度設定部16は、ジョブ実行時に、ジョブが実行する時間帯に他のジョブが実行するか否かを判断する。同時間帯において、他のジョブが実行する予定であり、かつ実行予定のジョブ数があらかじめ設定するシステムの多重度を超えるような場合には、ジョブ実行の留保を判断する。
図9はジョブ実行時の優先度付けを説明するための図である。縦軸はジョブの種別、横軸は時間である。図7に示したジョブフローf1、f2を例にした場合を示しており、システム多重度に制約がないとする。
〔0:00〕ジョブA、Eの実行が開始される。
〔0:05〕ジョブAは実行中である。ジョブEの実行が終了する。ジョブFの実行が開始される。
〔0:10〕ジョブAの実行が終了する。ジョブB、Cの実行が開始される。ジョブFは実行中である。
〔0:15〕ジョブB、Cは実行中である。ジョブFの実行が終了する。
〔0:20〕ジョブB、Cは実行中である。
〔0:25〕ジョブB、Cは実行中である。
〔0:30〕ジョブB、Cの実行が終了する。ジョブDの実行が開始される。
〔0:35〕ジョブDは実行中である。
〔0:40〕ジョブDの実行が終了する。
このように、システム多重度を3とすることができれば、上記のスケジューリングは可能である。しかし、システム多重度が2という制約がある場合は、0:10〜0:15の時間帯で3多重のジョブ起動となってしまうので、上記のようなスケジューリングを実行することはできない。
図10はジョブ実行時の優先度付けを説明するための図である。縦軸はジョブの種別、横軸は時間である。図7に示したジョブフローf1、f2を例にした場合を示しており、システム多重度を2とする。
〔0:00〕ジョブA、Eの実行が開始される。
〔0:05〕ジョブAは実行中である。ジョブEの実行が終了する。
〔0:10〕ジョブAの実行が終了する。ジョブB、Cの実行が開始される。
〔0:15〕ジョブB、Cは実行中である。
〔0:20〕ジョブB、Cは実行中である。
〔0:25〕ジョブB、Cは実行中である。
〔0:30〕ジョブB、Cの実行が終了する。ジョブD、Fの実行が開始される。
〔0:35〕ジョブD、Fは実行中である。
〔0:40〕ジョブD、Fの実行が終了する。
ここで、ジョブEが終了した時点(0:05)では、0:05で他に実行中のジョブはジョブAのみなので(現在利用中の多重度は1)、図9に示したように後続のジョブFの実行が考えられる。ただし、ジョブFの実行予測時間帯は0:05〜0:15であるので、この時間帯には、ジョブB、Cも動作する可能性があり、その場合は最大多重度が3になってしまう。
ここで、0:05から0:10まで、ジョブAの実行経過時間は5分であり、図7に示すように、ジョブAの積算実行時間は40分である。よって、優先度設定部16は、まず、実行経過時間の5分を引き、ジョブAの残りの予測積算実行時間35分を算出する。
一方、ジョブFの予測積算実行時間は10分である。優先度設定部16は、クリティカルパス上のジョブAの残り予測積算実行時間との比較により、猶予時間は35分であるから、ジョブFの実行時間10分を減じた値、すなわち25分間は猶予があると判断する。
そして、優先度設定部16は、ジョブFの猶予時間の範囲でシステム多重度の上限を超過しない時間帯を求める。この場合、25分後(0:30)であれば、自身を除いたシステム多重度が1多重(1多重度の余裕がある)と判断して、ジョブFの実行開始を25分後まで猶予可能と認識する。
これにより、システムの利用可能なリソース内で、優先度を上昇させるだけではなく、積極的に優先度の低いジョブを遅延させてジョブスケジューリングを行うことにより、ジョブ実行の遅延を防止することが可能になる。
ここで例えば、ジョブスケジューラ10は、1日の運用の開始時においては、目標終了時刻が設定されたジョブのクリティカルパスを求め、クリティカルパス上にあるジョブは優先度を上げてジョブの開始時刻の変更は実施せずに起動する。
一方で、ジョブスケジューラ10は、クリティカルパス上に無いジョブについては、猶予時間と実行予測時間の範囲でリソースが不足すると思われる時間帯に、積極的に優先度を下げて、ジョブの実行時間を遅らせる。これにより、優先度の高いジョブへの影響を無くし、システム全体のジョブ実行の遅延を防止することができる。
次にクリティカルパスの評価処理について説明する。クリティカルパスの評価は、以下の条件#1、#2のどちらか一方が満たされる場合に実施される。
(条件#1):ジョブの実行開始時において、クリティカルパス上にあるジョブであって、かつ当該ジョブの実際の実行時間が実行予測時間よりも短くなる場合(実行予測時間>実際の実行時間)。
(条件#2):ジョブの実行開始時において、クリティカルパス上にないジョブであって、かつ当該ジョブの実際の実行時間が実行予測時間よりも長くなる場合(実行予測時間<実際の実行時間)。
条件#1は、クリティカルパス上のジョブについて、実際の実行時間が実行予測時間よりも短かったことにより、クリティカルパス上になかったジョブが、新たなクリティカルパス上のジョブとなる可能性を示している。
また、条件#2は、クリティカルパス上になかったジョブについて、実際の実行時間が実行予測時間よりも長くなったことにより、クリティカルパス上になかったジョブが、新たなクリティカルパス上のジョブとなる可能性を示している。
次に具体的な例を挙げてクリティカルパスの評価処理について説明する。図11はクリティカルパスのジョブフローとクリティカルパスでないジョブフローとを示す図である。
ジョブフローf11は、ジョブA、B、C、D、Eを含み、ジョブAは開始ジョブ、ジョブEは最終ジョブであり、実行順序を図の矢印で示している。なお、フロー途中のジョブCとジョブDは、2多重で実行されるジョブとしている。
実行予測時間は、ジョブA、B、C、Eそれぞれは10分であり、ジョブDは5分である。したがって、ジョブフローf11の全体実行予測時間は40分(=10+10+10+10)となる。
一方、ジョブフローf12は、ジョブF、G、H、Iを含み、ジョブFは開始ジョブ、ジョブIは最終ジョブであり、実行順序を図の矢印で示している。実行予測時間は、ジョブF、G、Hそれぞれは10分であり、ジョブIは5分である。したがって、ジョブフローF2の全体実行予測時間は35分(=10+10+10+5)となる。
ジョブフローf11、f12に対し、ジョブフローf11の方がジョブフローf12よりも全体実行予測時間が長いので、2つのジョブフローの内、ジョブフローf11がクリティカルパスとなる。よって、クリティカルパス上のジョブA、B、C、D、Eの実行優先度は、クリティカルパス上に無いジョブF、G、H、Iの実行優先度よりも高く設定される。
図12はジョブスケジューリングを示す図である。縦軸はジョブの種別、横軸は時間である。ジョブフローf11、f12のジョブスケジューリングj0を示している。
〔0:00〕ジョブA、Fの実行が開始される。
〔0:05〕ジョブA、Fは実行中である。
〔0:10〕ジョブA、Fの実行が終了する。ジョブB、Gの実行が開始される。
〔0:15〕ジョブB、Gは実行中である。
〔0:20〕ジョブB、Gの実行が終了する。ジョブC、D、Hの実行が開始される。
〔0:25〕ジョブC、Hは実行中である。ジョブDの実行が終了する。
〔0:30〕ジョブC、Hの実行が終了する。ジョブE、Iの実行が開始される。
〔0:35〕ジョブEは実行中である。ジョブHの実行が終了する。
〔0:40〕ジョブEの実行が終了する。
上記のジョブスケジューリングj0では、システム多重度の制約がないとし、実行予測時間と実際の実行時間が等しい。このため、0:00からジョブフローf11、f12を共に実行した場合、ジョブフローf11の全体実行予測時間は40分であるから、ちょうど0:40でジョブフローf11の実行が終了している。また、ジョブフローf12の全体実行予測時間は35分であるから、ちょうど0:35でジョブフローf12の実行が終了している。
次に条件#1におけるクリティカルパス評価について説明する。クリティカルパス上のジョブの実際の実行時間が実行予測時間より短くなり(実行予測時間>実際の実行時間)、ジョブ終了時にクリティカルパスが評価される例である。
図13はジョブスケジューリングを示す図である。縦軸はジョブの種別、横軸は時間である。図12の状態から、クリティカルパス上のジョブA、Bの実際の実行時間が実行予測時間よりも5分短くなった場合のジョブスケジューリングj1を示している。
〔0:00〕ジョブA、Fの実行が開始される。
〔0:05〕ジョブAの実行が終了する。ジョブBの実行が開始される。ジョブFは実行中である。
〔0:10〕ジョブB、Fの実行が終了する。ジョブGの実行が開始される。
〔0:15〕ジョブGは実行中である。
〔0:20〕ジョブC、D、Hの実行が開始される。ジョブGの実行が終了する。
〔0:25〕ジョブC、Hは実行中である。ジョブDの実行が終了する。
〔0:30〕ジョブC、Hの実行が終了する。ジョブE、Iの実行が開始される。
〔0:35〕ジョブEは実行中である。ジョブIの実行が終了する。
〔0:40〕ジョブEの実行が終了する。
上記のジョブスケジューリングj1では、ジョブA、Bの実際の実行時間が実行予測時間よりも短いので、ジョブBのジョブ実行終了時(0:10)にクリティカルパスの評価が行われる。
ここで、ジョブBのジョブ実行終了時(0:10)におけるクリティカルパス評価を説明する前に、クリティカルパス評価を行わなかった場合のジョブスケジューリングについて説明する。
図14はジョブスケジューリングを示す図である。縦軸はジョブの種別、横軸は時間である。ジョブBの終了時点(0:10)では、次に実行するジョブとしてジョブC、D、Gが候補に挙げられる。図14は、ジョブC、D、Gの候補のうち、元のクリティカルパスで優先されていたジョブC、Dをそのまま実行した場合のジョブスケジューリングj1aを示している。
〔0:00〕ジョブA、Fの実行が開始される。
〔0:05〕ジョブAの実行が終了する。ジョブBの実行が開始される。ジョブFは実行中である。
〔0:10〕ジョブB、Fの実行が終了する。ジョブC、Dの実行が開始される。
〔0:15〕ジョブCは実行中である。ジョブDの実行が終了する。ジョブGの実行が開始される。
〔0:20〕ジョブCの実行が終了する。ジョブEの実行が開始される。ジョブGは実行中である。
〔0:25〕ジョブEは実行中である。ジョブGの実行が終了する。ジョブHの実行が開始される。
〔0:30〕ジョブEの実行が終了する。ジョブHは実行中である。
〔0:35〕ジョブHの実行が終了する。ジョブIの実行が開始される。
〔0:40〕ジョブIの実行が終了する。
ここで、ジョブBの終了時点(0:10)において、次に実行するジョブC、D、Gの候補のうち、元のクリティカルパス上で優先度の高かったジョブC、Dを実行すると、ジョブGの起動が遅れることになる。
すなわち、ジョブスケジューリングj1では、ジョブGの実行開始時刻は0:10であったが、ジョブスケジューリングj1aでは、ジョブGの実行開始時刻は0:15となっている。
すると、ジョブGの後続であるジョブH、Iの実行開始時および実行終了時刻も遅延することになる。すなわち、ジョブスケジューリングj1では、ジョブHの(実行開始時刻、実行終了時刻)は(0:20、0:30)であったが、ジョブスケジューリングj1aでは、ジョブHの(実行開始時刻、実行終了時刻)は(0:25、0:35)となっている。
また、ジョブスケジューリングj1では、ジョブIの(実行開始時刻、実行終了時刻)は(0:30、0:35)であったが、ジョブスケジューリングj1aでは、ジョブIの(実行開始時刻、実行終了時刻)は(0:35、0:40)となっている。
次にジョブBのジョブ実行終了時(0:10)においてクリティカルパス評価を行ったジョブスケジューリングについて説明する。図14のジョブスケジューリングj1aを見ると、ジョブBが終了した時点(0:10)では、実際にはクリティカルパスである最遅延経路は、ジョブG、H、Iのルートに移っていることがわかる。
そこで、ジョブG、H、Iの遅延を防止するために、ジョブBの終了時点にて、ジョブG、H、Iの実行予測時間にもとづいて、ジョブBの終了時以降のスケジュールを評価する。
図15は評価後の新しいクリティカルパスを示す図である。ジョブフローf11−1において、ジョブA、B、C、D、Eの実行予測時間は当初、ジョブA、B、C、Eそれぞれは10分であり、ジョブDは5分であったが、実際には、ジョブA、Bの実行時間が5分となっている。したがって、ジョブBの終了時点(0:10)における、残りのジョブの実行予測時間の積算では、ジョブC、Eの積算値は20分(=10+10)となる。
また、ジョブフローf12−1において、ジョブBの終了時点(0:10)における、残りのジョブの実行予測時間の積算では、ジョブG、H、Iの25分(=10+10+5)である。
残りのジョブの実行予測時間の比較を行うことで、ジョブG、H、Iのフローの方が、ジョブC、Eのフローよりも実行時間が長いことが認識できる。したがって、ジョブG、H、Iのジョブを新たなクリティカルパス上のジョブとし、ジョブG、H、Iの優先度を、ジョブC、Eよりも上げて実行する。このようなクリティカルパスの評価およびクリティカルパスの再設定を行うことで、システム全体のスケジュールに影響を及ぼすジョブ実行の遅延の発生を抑制することができる。
図16はジョブスケジューリングを示す図である。縦軸はジョブの種別、横軸は時間である。ジョブBの終了時点(0:10)でクリティカルパス評価を行った場合のジョブスケジューリングj1bを示している。
〔0:00〕ジョブA、Fの実行が開始される。
〔0:05〕ジョブAの実行が終了する。ジョブBの実行が開始される。ジョブFは実行中である。
〔0:10〕ジョブB、Fの実行が終了する。ジョブC、Gの実行が開始される。
〔0:15〕ジョブC、Gは実行中である。
〔0:20〕ジョブC、Gの実行が終了する。ジョブD、Hの実行が開始される。
〔0:25〕ジョブDの実行が終了する。ジョブEの実行が開始される。ジョブHは実行中である。
〔0:30〕ジョブEは実行中である。ジョブHの実行が終了する。ジョブIの実行が開始される。
〔0:35〕ジョブEの実行が終了する。ジョブIの実行が終了する。
上記のジョブスケジューリングj1bのように、ジョブBの終了時点で、クリティカルパスを評価してクリティカルパスの最適化を行い、ジョブGを実行することで、ジョブG、H、Iの実行開始時刻および実行終了時刻の遅延を抑制することが可能になる。
次に条件#2におけるクリティカルパス評価について説明する。ジョブ実行開始時に、クリティカルパス上にないジョブの実際の実行時間が実行予測時間より長くなり(実行予測時間<実際の実行時間)、ジョブ終了時にクリティカルパスが評価される例である。
図17はジョブスケジューリングを示す図である。縦軸はジョブの種別、横軸は時間である。当初のクリティカルパス上にないジョブFの実行時間が、実行予測時間よりも長くなった場合(10分長くなった場合)のジョブスケジューリングj2を示している。
〔0:00〕ジョブA、Fの実行が開始される。
〔0:05〕ジョブA、Fは実行中である。
〔0:10〕ジョブAの実行が終了する。ジョブB、Gの実行が開始される。ジョブFは実行中である。
〔0:15〕ジョブB、F、Gは実行中である。
〔0:20〕ジョブB、F、Gの実行が終了する。ジョブC、D、Hの実行が開始される。
〔0:25〕ジョブC、Hは実行中である。ジョブDの実行が終了する。
〔0:30〕ジョブC、Hの実行が終了する。ジョブE、Iの実行が開始される。
〔0:35〕ジョブEは実行中である。ジョブIの実行が終了する。
〔0:40〕ジョブEの実行が終了する。
上記のジョブスケジューリングj2では、当初クリティカルパス上にないジョブFの実行時間が実行予測時間よりも長いので、クリティカルパスの評価は、ジョブFの実行終了時点(0:20)にて行われることになる。
ここで、ジョブFのジョブ実行終了時(0:20)におけるクリティカルパス評価を説明する前に、クリティカルパス評価を行わなかった場合について説明する。
図18はジョブスケジューリングを示す図である。縦軸はジョブの種別、横軸は時間である。ジョブFの終了時点(0:20)では、次に実行するジョブとしてはジョブC、D、Gが候補に挙げられる。図18では、ジョブC、D、Gの候補のうち、元のクリティカルパスで優先されていたジョブC、Dをそのまま実行した場合のジョブスケジューリングj2aを示している。
〔0:00〕ジョブA、Fの実行が開始される。
〔0:05〕ジョブA、Fは実行中である。
〔0:10〕ジョブAの実行が終了する。ジョブBの実行が開始される。ジョブFは実行中である。
〔0:15〕ジョブB、Fは実行中である。
〔0:20〕ジョブB、Fの実行が終了する。ジョブC、Dの実行が開始される。
〔0:25〕ジョブCは実行中である。ジョブDの実行が終了する。ジョブGの実行が開始される。
〔0:30〕ジョブCの実行が終了する。ジョブEの実行が開始される。ジョブGは実行中である。
〔0:35〕ジョブEは実行中である。ジョブGの実行が終了する。ジョブHの実行が開始される。
〔0:40〕ジョブEの実行が終了する。ジョブHは実行中である。
〔0:45〕ジョブHの実行が終了する。ジョブIの実行が開始される。
〔0:50〕ジョブIの実行が終了する。
ここで、ジョブFの終了時点(0:20)において、次に実行するジョブC、D、Gの候補のうち、元のクリティカルパス上で優先度の高かったジョブC、Dを実行すると、ジョブGの起動が遅れることになる。
すなわち、ジョブスケジューリングj2では、ジョブGの実行開始時刻は0:10であったが、ジョブスケジューリングj2aでは、ジョブGの実行開始時刻は0:25となっている。
すると、ジョブGの後続であるジョブH、Iの実行開始時および実行終了時刻も遅延することになる。すなわち、ジョブスケジューリングj2では、ジョブHの(実行開始時刻、実行終了時刻)は(0:20、0:30)であったが、ジョブスケジューリングj2aでは、ジョブHの(実行開始時刻、実行終了時刻)は(0:35、0:45)となっている。
また、ジョブスケジューリングj2では、ジョブIの(実行開始時刻、実行終了時刻)は(0:30、0:35)であったが、ジョブスケジューリングj2aでは、ジョブIの(実行開始時刻、実行終了時刻)は(0:45、0:50)となっている。
次にジョブf12のジョブ実行終了時(0:20)におけるクリティカルパス評価を行う場合について説明する。ジョブスケジューリングj2aを見ると、ジョブFが終了した時点で実際には、クリティカルパスである最遅延経路は、ジョブG、H、Iのルートに移っていることがわかる。
そこで、ジョブG、H、Iの遅延を防止するために、ジョブFの終了時点にて、ジョブG、H、Iの実行予測時間にもとづいて、ジョブFの終了時以降のスケジュールを評価する。
図19は評価後の新しいクリティカルパスを示す図である。ジョブフローf11−2において、ジョブFの終了時点(0:20)における、残りのジョブの実行予測時間の積算では、ジョブC、D、Eの積算値は20分(=10+10)となる。
一方、ジョブフローf12−2において、ジョブFの実行予測時間は当初10分であったが、実際には、実行時間が20分となっている。したがって、ジョブFの終了時点(0:20)における、残りのジョブの実行予測時間の積算は、ジョブG、H、Iの25分(=10+10+5)となる。
残りのジョブの実行予測時間の比較を行うことで、ジョブG、H、Iのフローの方が、ジョブC、Eのフローよりも実行予測時間が長いことが認識できる。したがって、ジョブG、H、Iのジョブを新たなクリティカルパス上のジョブとし、ジョブG、H、Iの優先度を、ジョブC、Eよりも上げて実行する。このようなクリティカルパス評価およびクリティカルパスの再設定を行うことで、システム全体のスケジュールに影響を及ぼすジョブ実行の遅延の発生を抑制することができる。
図20はジョブスケジューリングを示す図である。縦軸はジョブの種別、横軸は時間である。ジョブFの終了時点(0:20)でクリティカルパス評価を行った場合のジョブスケジューリングj2bを示している。
〔0:00〕ジョブA、Fの実行が開始される。
〔0:05〕ジョブA、Fは実行中である。
〔0:10〕ジョブAの実行が終了する。ジョブBの実行が開始される。ジョブFは実行中である。
〔0:15〕ジョブB、Fは実行中である。
〔0:20〕ジョブB、Fの実行が終了する。ジョブC、Gの実行が開始される。
〔0:25〕ジョブC、Gは実行中である。
〔0:30〕ジョブC、Gの実行が終了する。ジョブD、Hの実行が開始される。
〔0:35〕ジョブDの実行が終了する。ジョブEの実行が開始される。ジョブHは実行中である。
〔0:40〕ジョブEは実行中である。ジョブHの実行が終了する。ジョブIの実行が開始される。
〔0:45〕ジョブE、Iの実行が終了する。
上記のジョブスケジューリングj2bのように、ジョブFの終了時点でクリティカルパスを評価してクリティカルパスの最適化を行い、ジョブGを実行することで、クリティカルパスの最適化を行う。これにより、ジョブG、H、Iの実行開始時刻および実行終了時刻の遅延を抑制することが可能になる。
次にジョブ管理サーバ2の各構成要素の動作についてフローチャートを用いて説明する。図21はピーク実行日登録部の動作を示すフローチャートである。
〔S1〕ピーク実行日登録部13は、ピーク実行日がユーザインタフェース部40を介して入力されたか否かを判断する。すなわち、ジョブの通常実行日の中で、ピーク実行日として選択されている日付があるか否かを判断する。ピーク実行日の入力があればステップS2へ行き、入力がなければ終了する。
〔S2〕ピーク実行日登録部13は、ピーク実行日を情報管理部30内のテーブルに登録する。
図22はクリティカルパス設定部の動作を示すフローチャートである。
〔S11〕クリティカルパス設定部14は、ジョブフロー定義テーブルT1を参照して、所定期間内の全ジョブフローの中の最終ジョブを検出する。なお、最終ジョブとは、自身が他ジョブから先行ジョブとして設定されていないジョブである。
〔S12〕クリティカルパス設定部14は、検出した最終ジョブからジョブフローを逆にたどり、各ジョブに対して、予測積算実行時間を設定する。
〔S13〕クリティカルパス設定部14は、当該ジョブフローに対して、終了予定時刻(dead line)が設定されているか否かを判断する。終了予定時刻が設定されている場合はステップS14へ行き、設定されていない場合はステップS15へ行く。
〔S14〕クリティカルパス設定部14は、クリティカルパス以外のジョブに対して、終了予定時刻にジョブ実行が終わるまでにどれぐらい遅延可能であるかの遅延猶予時間をジョブ毎に算出する。
例えば、現時刻から1時間後に終了しなければならないジョブフローがあって、該1時間以内であればどこの時間帯でも終了してよいジョブAがあるとする。また、ジョブAのジョブ実行時間が10分であるとする。この場合、ジョブAは、現時刻から50分後に実行を開始すれば、1時間以内でジョブAの実行処理が完了するから、ジョブAの現時刻からの猶予時間は50分となる。
〔S15〕クリティカルパス設定部14は、ジョブ定義テーブルT2の「クリティカルパス上の有無」に“ON(有)”を登録し、「終了予定時刻のあるジョブ」に当該ジョブの“ジョブ名”と“実行実績時間”を登録する。
なお、実行実績時間は、実行日がピーク実行日であるか否かを判断し、実行日がピーク実行日ならばピーク時における実行予測時間を設定し、実行日がピーク実行日でないならば前回の実行実績時間を設定する。
上記の動作フローは、所定期間の実行予定のあるすべてのジョブの中で、終了予定時刻があるジョブに対して繰り返し実行される。
図23は優先度設定部の動作を示すフローチャートである。
〔S21〕優先度設定部16は、現在すでにジョブを実行している場合は、システム多重度から実行済ジョブの数を減算する。
〔S22〕優先度設定部16は、クリティカルパス上にあるジョブを認識して、該クリティカルパス上の先頭ジョブを基準ジョブと設定する。
〔S23〕優先度設定部16は、基準ジョブの実行時間内で実行される他のジョブの数をカウントする。例えば、基準ジョブの実行時間が10分であり、その10分間の時間範囲内で実行予定のあるジョブが3つあるならば、カウント数は3となる。
〔S24〕優先度設定部16は、システム多重度−1の数が、カウントしたジョブ数未満であるか否かを判断する。(システム多重度−1)<(カウントしたジョブ数)の場合はステップS26へ行き、(システム多重度−1)≧(カウントしたジョブ数)の場合はステップS25へ行く。
なお、(システム多重度−1)<(カウントしたジョブ数)は、システム多重度を超える数の実行予定ジョブが所定時間内に登録されている場合を示す。また、(システム多重度−1)≧(カウントしたジョブ数)は、所定時間内における実行予定ジョブの数が、システム多重度以内である場合を示す。
〔S25〕優先度設定部16は、当該基準ジョブは現システム多重度で実行可能であると認識する。そして、優先度設定部16は、当該基準ジョブの次に実行予定のジョブをあらたな基準ジョブとして設定し、ステップS22の処理へ戻る。次に基準となる後続ジョブがない場合はステップS31へ行く。
〔S26〕優先度設定部16は、終了時刻のあるジョブの終了までの他時間帯の多重度を求める。
〔S27〕優先度設定部16は、実行対象ジョブの内でクリティカルパス以外のジョブに対して、該ジョブが有する猶予時間の時間帯を認識する。そして、優先度設定部16は、該時間帯内において、現在のシステム多重度にもとづいてジョブが実行可能否かを判断する。ジョブが実行不可能ならばステップS28へ行き、実行可能ならばステップS29へ行く。
〔S28〕優先度設定部16は、クリティカルパス以外の次のジョブの猶予時間の時間帯のシステム多重度以内での実行可否を判断する(クリティカルパス以外のすべてのジョブに実施する)。いずれかの時間帯で実行可能ならばステップS29へ行き、どの時間帯にも実行不可能ならばステップS30へ行く。
〔S29〕優先度設定部16は、システム多重度を超えたジョブの開始時刻をシステム多重度以内で実行可能な時刻へ変更し、優先度を下げて設定する。
〔S30〕優先度設定部16は、システム多重度を超えたジョブの開始時刻を終了予定時刻のあるジョブ終了後に変更し、優先度を下げて設定する。
〔S31〕優先度設定部16は、優先度を実行依頼部17へ送信する。実行依頼部17では、優先度にもとづいてジョブの実行依頼を出力する。
図24は実行実績時間算出部の動作を示すフローチャートである。
〔S41〕実行実績時間算出部18は、ジョブ実行の開始時刻を取得する。
〔S42〕実行実績時間算出部18は、ジョブを実行する際のシステム多重度数を更新する。例えば、ジョブAが実行されている所定時間内でジョブBを実行するような場合、システム多重度を1から2へインクリメントして更新する。
〔S43〕実行実績時間算出部18は、ジョブ実行制御部20でジョブが実行されて終了すると、ジョブを終了する際のシステム多重度を更新する。例えば、ジョブA、Bが実行されている所定時間内でジョブBの実行が終了した場合、システム多重度を2から1へデクリメントして更新する。
〔S44〕実行実績時間算出部18は、ジョブの終了時刻を取得する。
〔S45〕実行実績時間算出部18は、ジョブの開始時刻と終了時刻との差分を算出する。
〔S46〕実行実績時間算出部18は、ジョブの実行日がピーク実行日であるか否かを判断する。ピーク実行日ならばステップS47へ行き、ピーク実行日でないならステップS48へ行く。
〔S47〕実行実績時間算出部18は、情報管理部30内のテーブルにピーク時の実行実績時間を登録する。
〔S48〕実行実績時間算出部18は、情報管理部30内のテーブルに前回の実行実績時間を登録する。
図25はクリティカルパス評価部の動作を示すフローチャートである。
〔S51〕クリティカルパス評価部19は、ジョブ定義テーブルT2に登録されるジョブがクリティカルパス上のジョブであるか否かを判断する。クリティカルパス上のジョブならばステップS52へ行き、クリティカルパス上のジョブでないならばステップS54へ行く。
〔S52〕クリティカルパス評価部19は、後続ジョブの開始時刻と終了予定時刻の変更を行う。
〔S53〕クリティカルパス評価部19は、終了予定時刻が実際のジョブの実行時間未満であるか否かを判断する。(終了予定時刻)>(実際のジョブの実行時間)の場合はステップS55へ行き、(終了予定時刻)≦(実際のジョブの実行時間)の場合は終了する。
〔S54〕クリティカルパス評価部19は、終了予定時刻が実際のジョブの実行時間未満であるか否かを判断する。(終了予定時刻)<(実際のジョブの実行時間)の場合はステップS55へ行き、(終了予定時刻)≧(実際のジョブの実行時間)の場合は終了する。
〔S55〕クリティカルパス評価部19は、クリティカルパスの評価を行い、クリティカルパスの再設定をクリティカルパス設定部14に指示する。
以上説明したように、本技術では、クリティカルパスの変化を検出して、ジョブの実行優先度を動的に変更(高→低、低→高)させることとした。また、優先度の再設定においては、クリティカルパスの評価を行って判断する。
従来では、クリティカルパス上にないジョブについては、優先度を付けて実行する判断基準がなく、クリティカルパス上にあるジョブへの影響を事前に見積もることが困難であった。これに対し、本技術では、クリティカルパス上にないジョブについても優先度をつけて実行するので、システム全体のスケジュールのジョブ実行の遅延を防止することが可能になる。
また、システムリソースの範囲内で高優先度にして実行するジョブ、または低優先度にして実行を遅らせるジョブを、ジョブ実行/終了の度に適応的にフィードバックして設定することができる。さらに、バッチ処理の進行に伴い刻々と変化するシステムの動作状況に合わせた効率の良いジョブスケジューリングが可能になる。
さらにまた、ジョブの実行時間の変動について、前回履歴を参照する、あるいはジョブの直前の入力データ量から予測するだけではなく、特異日(ピーク実行日)の変動にも対応することにより、サーバリソースを効率よく使用して、より正確にジョブの実行時間帯を予測することが可能になる。
次に本技術をコンピュータによって実現する場合について説明する。上記に示した処理機能は、コンピュータによって実現可能である。図26は本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。図1の情報処理装置1内のコンピュータ100は、CPU101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
バス108に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、コンピュータ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ104aの画面に表示させる。モニタ104aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号をCPU101に送信する。なお、マウス105bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク106aに記録されたデータの読み取りを行う。光ディスク106aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク106aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。
通信インタフェース107は、ネットワーク110に接続されている。通信インタフェース107は、ネットワーク110を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。また、コンピュータで本実施の形態の処理機能を実現する場合、図1の情報処理装置1が有する機能の処理内容を記述したプログラムが提供される。
そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto Optical disk)などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
以上説明したように、本技術によれば、ジョブの自動運用において、動的にジョブの実行優先度を決定するので、優先度の高いジョブは遅延なく実行させることができ、ジョブ実行の遅延を抑制することが可能になる。
また、様々なジョブを運用しているシステムでは、各々のジョブの実行時間を予測するために、従来では、担当者がジョブの内容そのものに精通していることや、システム全体のジョブスケジュールを精通していることが求められていた。
しかし、多くのジョブを運用しているシステムでは、ジョブの内容把握だけでも膨大な作業であり、また、一部のジョブの遅れや、ジョブの早期終了により、システムの運用状況は、ジョブ実行計画立案時の状況から刻々と変化する。
これに対し、本技術によれば、動的にジョブの優先度を決定し、スケジュールするので、ジョブの内容に精通していなくとも、システム全体のジョブ実行を遅延なくスケジュールすることが実現可能である。また、リソース不足が仮に生じたような場合であっても、ジョブ実行時間に生じる遅延時間を最小にすることが可能になる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。
1 情報処理装置
1a 保持手段
1b ジョブスケジューリング手段
a1、a2 ジョブ
H0 時間範囲
H1 第1の期間
H2 第2の期間

Claims (8)

  1. 複数のジョブそれぞれについて、第1の期間内での実行に要する第1の実行予測時間と、第2の期間内での実行に要する、前記第1の実行予測時間よりも長い第2の実行予測時間と、を保持する保持手段と、
    前記複数のジョブのうちの複数の実行予定ジョブそれぞれの実行開始時刻が前記第1の期間と前記第2の期間とのどちらに含まれるのかにもとづいて、前記複数の実行予定ジョブそれぞれの実行予測時間を決定し決定した実行予測時間にもとづき前記複数の実行予定ジョブのスケジューリングを行うジョブスケジューリング手段と、
    前記スケジューリングに従って、前記複数の実行予定ジョブを実行するジョブ実行制御手段と、
    を備え、
    前記ジョブスケジューリング手段は、前記複数の実行予定ジョブの実行順が示された複数のジョブフローの中で、開始ジョブから最終ジョブまでの実行に要する時間が最大の第1のジョブフローを判定し、
    前記ジョブ実行制御手段は、前記第1のジョブフローに含まれる第1の実行予定ジョブを、前記第1のジョブフローに含まれない第2の実行予定ジョブよりも優先して実行し、
    前記ジョブスケジューリング手段は、前記第1の実行予定ジョブが実行された結果、実行時間が実行予測時間より短かった場合、前記複数のジョブフローの中で、未処理のジョブの先頭のジョブから最終ジョブまでの実行に要する時間が最大の第2のジョブフローを判定し、
    前記ジョブ実行制御手段は、前記第2のジョブフローに含まれる未処理の第3の実行予定ジョブの優先度を、前記第2のジョブフローに含まれない未処理の第4の実行予定ジョブよりも優先して実行する、
    とを特徴とする情報処理装置。
  2. 前記ジョブスケジューリング手段は
    ジョブの実行開始時刻が、前記第1の期間に含まれる場合は前記第1の実行予測時間を選択し、
    ジョブの実行開始時刻が、前記第2の期間に含まれる場合は前記第2の実行予測時間を選択することを特徴とする請求項1記載の情報処理装置。
  3. 前記ジョブスケジューリング手段は、
    ユーザから指定された、通常日を前記第1の期間、前記通常日よりも業務が繁忙となるピーク日を前記第2の期間とし、
    前記通常日における過去のジョブの実行実績時間を前記第1の実行予測時間とし、
    前記ピーク日に予測される、前記実行実績時間よりも長く設定された実行予測時間を前記第2の実行予測時間とすることを特徴とする請求項2記載の情報処理装置。
  4. 前記ジョブスケジューリング手段は、前記第1の実行予定ジョブが実行された結果、実行時間が実行予測時間より短かった場合、または前記第2の実行予定ジョブが実行された結果、実行時間が実行予測時間より長かった場合に、前記第2のジョブフローを判定することを特徴とする請求項記載の情報処理装置。
  5. 前記ジョブスケジューリング手段は、
    前記第1のジョブフローの判定の際には、前記複数のジョブフローそれぞれに含まれるジョブの実行予定時間を積算することで、前記複数のジョブフローそれぞれの開始ジョブから最終ジョブまでの実行に要する時間を計算し、
    前記第2のジョブフローの判定の際には、前記複数のジョブフローそれぞれに含まれる未処理のジョブの実行予定時間を積算することで、前記複数のジョブフローそれぞれの未処理のジョブの先頭のジョブから最終ジョブまでの実行に要する時間を計算する、
    ことを特徴とする請求項記載の情報処理装置。
  6. 前記ジョブスケジューリング手段は、前記実行予定ジョブのスケジューリングにおいて、前記第1のジョブフローに含まれる前記第1の実行予定ジョブを実行する予定の時間帯に、前記第2の実行予定ジョブの実行予定があり、実行予定の前記第2の実行予定ジョブを予定通り実行すると、前記時間帯に並列実行するジョブの個数があらかじめ設定した多重度を超える場合、並列に実行するジョブの個数が前記多重度を超えない時間帯に実行予定の前記第2の実行予定ジョブの実行時間帯を移動することを特徴とする請求項1記載の情報処理装置。
  7. コンピュータが、
    複数のジョブそれぞれについて、第1の期間内での実行に要する第1の実行予定時間と、第2の期間内での実行に要する、前記第1の実行予定時間よりも長い第2の実行予定時間とをメモリに保持し、
    前記複数のジョブのうちの複数の実行予定ジョブそれぞれの実行開始時刻が前記第1の期間と前記第2の期間とのどちらに含まれるのかにもとづいて、前記複数の実行予定ジョブそれぞれの実行予測時間を決定し決定した実行予測時間にもとづきジョブのスケジューリングを行
    前記スケジューリングに従って、前記複数の実行予定ジョブを実行し、
    ジョブスケジューリングの際には、前記複数の実行予定ジョブの実行順が示された複数のジョブフローの中で、開始ジョブから最終ジョブまでの実行に要する時間が最大の第1のジョブフローを判定し、
    前記複数の実行予定ジョブを実行の際には、前記第1のジョブフローに含まれる第1の実行予定ジョブを、前記第1のジョブフローに含まれない第2の実行予定ジョブよりも優先して実行し、
    前記第1の実行予定ジョブが実行された結果、実行時間が実行予測時間より短かった場合、前記複数のジョブフローの中で、未処理のジョブの先頭のジョブから最終ジョブまでの実行に要する時間が最大の第2のジョブフローを判定し、
    前記第2のジョブフローに含まれる未処理の第3の実行予定ジョブの優先度を、前記第2のジョブフローに含まれない未処理の第4の実行予定ジョブよりも優先して実行する、
    ことを特徴とするジョブスケジューリング方法。
  8. メモリが、複数のジョブそれぞれについて、第1の期間内での実行に要する第1の実行予定時間と、第2の期間内での実行に要する、前記第1の実行予定時間よりも長い第2の実行予定時間とを保持し、
    プロセッサが、
    前記複数のジョブのうちの複数の実行予定ジョブそれぞれの実行開始時刻が前記第1の期間と前記第2の期間とのどちらに含まれるのかにもとづいて、前記複数の実行予定ジョブそれぞれの実行予測時間を決定し決定した実行予測時間にもとづきジョブのスケジューリングを行
    前記スケジューリングに従って、前記複数の実行予定ジョブを実行し、
    ジョブスケジューリングの際には、前記複数の実行予定ジョブの実行順が示された複数のジョブフローの中で、開始ジョブから最終ジョブまでの実行に要する時間が最大の第1のジョブフローを判定し、
    前記複数の実行予定ジョブを実行の際には、前記第1のジョブフローに含まれる第1の実行予定ジョブを、前記第1のジョブフローに含まれない第2の実行予定ジョブよりも優先して実行し、
    前記第1の実行予定ジョブが実行された結果、実行時間が実行予測時間より短かった場合、前記複数のジョブフローの中で、未処理のジョブの先頭のジョブから最終ジョブまでの実行に要する時間が最大の第2のジョブフローを判定し、
    前記第2のジョブフローに含まれる未処理の第3の実行予定ジョブの優先度を、前記第2のジョブフローに含まれない未処理の第4の実行予定ジョブよりも優先して実行する、
    処理を、前記メモリおよび前記プロセッサを含むコンピュータに実行させることを特徴とするジョブスケジューリングプログラム。
JP2013151280A 2013-07-22 2013-07-22 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム Active JP6191301B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013151280A JP6191301B2 (ja) 2013-07-22 2013-07-22 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
US14/304,030 US9430283B2 (en) 2013-07-22 2014-06-13 Information processing apparatus and job scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013151280A JP6191301B2 (ja) 2013-07-22 2013-07-22 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム

Publications (2)

Publication Number Publication Date
JP2015022606A JP2015022606A (ja) 2015-02-02
JP6191301B2 true JP6191301B2 (ja) 2017-09-06

Family

ID=52344696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013151280A Active JP6191301B2 (ja) 2013-07-22 2013-07-22 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム

Country Status (2)

Country Link
US (1) US9430283B2 (ja)
JP (1) JP6191301B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6083290B2 (ja) * 2013-03-27 2017-02-22 日本電気株式会社 分散処理システム
JP6535294B2 (ja) * 2016-04-05 2019-06-26 株式会社日立ソリューションズ ジョブスケジュール変更システム及びジョブスケジュール変更方法
JP2018026050A (ja) * 2016-08-12 2018-02-15 富士通株式会社 並列処理装置、ジョブ管理プログラムおよびジョブ管理方法
CN107766129B (zh) * 2016-08-17 2021-04-16 北京金山云网络技术有限公司 一种任务处理方法、装置及系统
US10031776B2 (en) * 2016-11-21 2018-07-24 Ca, Inc. Workflow job distribution in a data processing system with agent time window constraints
US10078520B1 (en) * 2017-03-16 2018-09-18 Flexera Software Llc Calculating wait time for batch scheduler jobs
CN109144682A (zh) * 2017-06-27 2019-01-04 阿里巴巴集团控股有限公司 任务的优先级处理方法和处理装置
KR102527925B1 (ko) * 2017-11-29 2023-05-03 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
JP2021519789A (ja) 2018-04-03 2021-08-12 ユニバーシティ オブ メリーランド,ボルチモア 増強された多価赤痢菌−毒素原性大腸菌ワクチン
US11138091B2 (en) * 2018-12-12 2021-10-05 Sap Se Regression analysis platform
US20200250601A1 (en) * 2019-01-31 2020-08-06 Rifat Sonmez Method for Rescheduling of Non-Critical Activities in a Schedule
KR20200144375A (ko) * 2019-06-18 2020-12-29 주식회사 엘지화학 배터리 관리 시스템 및 관리 방법
CN111292025B (zh) * 2020-04-01 2022-06-07 成都卡普数据服务有限责任公司 输电线路在线巡检作业调度方法
JP2021189461A (ja) * 2020-05-25 2021-12-13 富士通株式会社 ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0588917A (ja) 1991-09-26 1993-04-09 Kobe Nippon Dekin Software Kk ジヨブスケジユーリング方式
JP4102695B2 (ja) 2003-03-28 2008-06-18 株式会社日本総合研究所 バッチジョブ管理システム及びバッチジョブ管理プログラム
JP4025260B2 (ja) * 2003-08-14 2007-12-19 株式会社東芝 スケジューリング方法および情報処理システム
JP4769703B2 (ja) * 2006-12-18 2011-09-07 株式会社日立情報システムズ バッチジョブ再実行制御システム
JP5255796B2 (ja) 2007-08-10 2013-08-07 日本証券テクノロジー株式会社 運用管理サポートシステム、プログラム
JP4977729B2 (ja) 2009-03-30 2012-07-18 みずほ情報総研株式会社 ジョブスケジュール変更支援システム、方法及びプログラム
JP5415183B2 (ja) 2009-08-20 2014-02-12 株式会社日立ソリューションズ バッチジョブ処理装置、バッチジョブ処理システム

Also Published As

Publication number Publication date
US20150026693A1 (en) 2015-01-22
US9430283B2 (en) 2016-08-30
JP2015022606A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
JP6191301B2 (ja) 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
US10089142B2 (en) Dynamic task prioritization for in-memory databases
US9658883B2 (en) Method and apparatus for controlling job schedule
JP4629587B2 (ja) 予約管理プログラム
US20090083746A1 (en) Method for job management of computer system
US8959515B2 (en) Task scheduling policy for limited memory systems
US9448864B2 (en) Method and apparatus for processing message between processors
US8832695B2 (en) Method of scheduling jobs and information processing apparatus implementing same
US20150036503A1 (en) Rate Control By Token Buckets
US8266622B2 (en) Dynamic critical path update facility
US7984447B1 (en) Method and apparatus for balancing project shares within job assignment and scheduling
US8522250B2 (en) Managing access to a shared resource in a data processing system
CN101366012A (zh) 用于多处理器系统中的中断分配的方法和系统
US11113115B2 (en) Dynamic resource optimization
US8214836B1 (en) Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
JP2017016541A (ja) 情報処理装置、並列計算機システム、ジョブスケジュール設定プログラムおよびジョブスケジュール設定方法
EP3932025A1 (en) Computing resource scheduling method, scheduler, internet of things system, and computer readable medium
KR20100018289A (ko) 멀티 태스킹 성능 예측 방법 및 시스템
RU2453901C2 (ru) Аппаратно-реализуемый способ планирования заданий (варианты), система планирования заданий и машиночитаемый носитель
US20160299787A1 (en) System, method and managing device
CN117667332A (zh) 一种任务调度方法及系统
JP5480322B2 (ja) 性能制御方法、そのシステムおよびプログラム
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP2022102333A (ja) 実行スケジューリング決定方法及び実行スケジューリング決定プログラム
US11762691B2 (en) Information processing system of task scheduling, method of task scheduling, and non-transitory computer-readable storage medium for storing program of task scheduling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170417

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: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170724

R150 Certificate of patent or registration of utility model

Ref document number: 6191301

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150