JP4723465B2 - ジョブ割当プログラム及びジョブ割当方法 - Google Patents

ジョブ割当プログラム及びジョブ割当方法 Download PDF

Info

Publication number
JP4723465B2
JP4723465B2 JP2006322468A JP2006322468A JP4723465B2 JP 4723465 B2 JP4723465 B2 JP 4723465B2 JP 2006322468 A JP2006322468 A JP 2006322468A JP 2006322468 A JP2006322468 A JP 2006322468A JP 4723465 B2 JP4723465 B2 JP 4723465B2
Authority
JP
Japan
Prior art keywords
job
record
execution
processor
procedure
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.)
Expired - Fee Related
Application number
JP2006322468A
Other languages
English (en)
Other versions
JP2008139907A (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 JP2006322468A priority Critical patent/JP4723465B2/ja
Priority to US11/983,112 priority patent/US20080127194A1/en
Publication of JP2008139907A publication Critical patent/JP2008139907A/ja
Application granted granted Critical
Publication of JP4723465B2 publication Critical patent/JP4723465B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

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]ソフトウエアにより各プロセッサが制御されるシステムを言う。この密結合マルチプロセッサシステムでは、システム内のジョブ(タスク)はどのプロセッサによっても実行され得るので、当該システムは、ジョブを各プロセッサに分散することができる。このため、密結合マルチプロセッサシステムは、単一のプロセッサからなるシステムより、高い処理能力を有している。
特許文献1及び特許文献2には、各プロセッサにジョブを割り当てる技術が、開示されている。このうち、特許文献1に係る技術は、メモリ等の資源の使用状況やコマンドに基づいて最も処理効率がよくなるプロセッサにジョブを割り当てていくというものである。これにより、特許文献1に係る発明は、高いキャッシュヒット率を得られるものとなっている。また、特許文献2に係る技術は、CPU[Central Processing Unit]使用率やメモリ使用率などの負荷情報の収集時間間隔が短いプロセッサのうち、負荷が最小のプロセッサにジョブを割り当てていくというものである。これにより、特許文献2に係る技術は、システムの性能低下を防止できるものとなっている。
特開平05−134994号公報 特開平11−003321号公報
ところで、システム内の各ジョブには、メモリアクセスの高速化のため、理想的な実行順を特定する情報として、優先度が一意に定義される。前述した特許文献1に係る発明では、各プロセッサは、自分に割り当てられたジョブを、優先度の高い順に実行することとなる。
しかしながら、例えば、或るプロセッサにおいて外部装置への問い合わせの応答が返ってこない等の理由によってジョブの実行が遅れ、その間に優先度が低いジョブが別のプロセッサによって先に実行されてしまうと、システム内でジョブの実行順が優先度の通りにならなくなり、システムの性能が低下する。
また、前述した特許文献2に係る発明では、複数のプロセッサのうちの一つが、各プロセッサの負荷に基づいてジョブの割り当てを行うスケジューラにとして、動作する。しかし、一つのプロセッサがスケジューラに独占されてしまうと、そのプロセッサが他のジョブのために使用できないという問題がある。
本発明は、前述したような従来技術の有する問題点に鑑みてなされたものであり、その課題は、特定の機能を何れかのプロセッサで独占的に動作させることなく、ジョブが負荷の低いプロセッサに割り当てられるようにし、尚且つ、できるだけジョブが優先度の通りに実行されるようにすることにある。
上記の課題を解決するために案出されたジョブ割当プログラムの第一の態様は、密結合マルチプロセッサシステムを構成する各プロセッサを、何れも、自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、メモリ内の専用のテーブルに記憶するジョブ記憶手段,そのテーブルに記憶されているレコードのうち優先度が最も高いレコードを決定し、決定したレコードのジョブ情報にて特定されるジョブを実行する実行手段,その実行手段がジョブを実行し終えると、テーブルからそのジョブに対応するレコードを削除する削除手段,実行手段がジョブの実行に掛けた時間が所定の上限値を下回っている場合に、自分以外の全てのプロセッサのテーブルから、優先度が最も高いレコードを特定する特定手段,及び、その特定手段が特定したレコードを、他のプロセッサのテーブルから自分専用のテーブルに移行させる移行手段として機能させることを、特徴としている。
このように構成されると、各プロセッサは、ジョブの実行に掛かった時間が所定の上限値を下回っていた場合に、自分に割り当てられているジョブを実行する前に、他のプロセッサに割り当てられている未実行のジョブのうちの優先度の最も高いジョブを探し出して、そのジョブを実行するよう、動作する。これにより、負荷の掛かっているプロセッサが実行すべきジョブが、ジョブの実行に時間が掛からなかったプロセッサに、肩代わりされることとなる。その結果、システムの性能低下が防止されるとともに、ジョブができるだけ優先度の通りに行われるようになる。然も、自分が肩代わりできるジョブを探し出す処理は、各プロセッサがジョブの実行前に行うため、何れかのプロセッサが特定の機能のために独占されることもない。
また、上記の課題を解決するために案出されたジョブ割当プログラムの第二の態様は、密結合マルチプロセッサシステムを構成する各プロセッサを、何れも、自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、メモリ内の専用のテーブルに記憶するジョブ記憶手段,そのテーブルに記憶されているレコードのうち優先度が最も高いレコードにて特定されるジョブを実行する実行手段,その実行手段がジョブの実行を開始するときに、テーブル内においてその次に優先度の高いレコードを、実行手段の次回の実行対象として決定する決定手段,その決定手段が次回の実行対象を決定してから所定の時間が経過した場合に、自分以外の全てのプロセッサのテーブルから、その実行対象よりも優先度が低く且つジョブが実行済みのレコードを、検索する検索手段,及び、その検索手段が何れかのレコードを検出できた場合に、検出したレコードのうち、最も優先度の高いレコードを有するプロセッサのテーブルへ、自分専用のテーブルから、次回の実行対象のレコードを移行させる移行手段として機能させることを、特徴としている。
このように構成されると、各プロセッサは、ジョブの実行前に次回の実行対象として決定したジョブの待機時間が所定の時間を上回っていた場合に、他のプロセッサが既に実行したジョブのうち、その次回の実行対象よりも優先度が低いジョブを探し出し、そのジョブを実行したプロセッサに、次回の実行対象のジョブを引き渡すよう、動作する。これにより、自分に負荷が掛かっていると判断したプロセッサが、次に実行すべきジョブを、そのジョブより優先度の低いジョブの実行を終えているプロセッサに、肩代わりさせることとなる。その結果、システムの性能低下が防止されるとともに、ジョブができるだけ優先度の通りに行われるようになる。然も、自分のジョブが押し付けられるプロセッサを探し出す処理は、各プロセッサがジョブの実行中に行うため、何れかのプロセッサが特定の機能のために独占されることもない。
以上に説明したように、本発明によれば、何れかのプロセッサが特定の機能に独占されることもなく、また、負荷の低いプロセッサにジョブを割り当てることができるようになるにも拘わらず、ジョブができるだけ優先度の通りに実行されるようになる。
以下、添付図面を参照しながら、本発明を実施するための二つの形態について、説明する。
実施形態1
まず、第1の実施形態のコンピュータの構成について説明する。
図1は、第1の実施形態のコンピュータ10の構成図である。
第1の実施形態のコンピュータ10は、液晶ディスプレイ等の表示装置10aと、キーボードやマウス等の入力装置10bと、これら装置10a,10bが接続された本体とからなる。そして、その本体は、ストレージ10c,プロセッサ10d,及び、メモリ10eを、内蔵している。ストレージ10cは、各種のプログラムやデータを記憶する記憶装置である。プロセッサ10dは、ストレージ10c内のプログラムに従って処理を行う演算処理装置である。メモリ10eは、プロセッサ10dが処理を行う際にプログラムがキャッシュされたり作業領域が展開されたりする揮発性記憶装置である。
このコンピュータ10では、複数のプロセッサ10dが、バスを介してメモリ10eに接続されており、複数のプロセッサ10dがメモリ10eを共有している。また、ストレージ10cには、表示装置10aでの出力制御,入力装置10bでの入力制御,メモリ10eでの記憶領域の管理,ユーザインターフェースなどを、アプリケーションに提供するOS[Operating System]ソフトウエアが、導入されている。そのOSソフトウエアには、各プロセッサ10dを密結合マルチプロセッサとして動作させるためのプロセッサ管理ソフトウエア11が、含まれている。
このプロセッサ管理ソフトウエア11は、複数のプロセッサ10dのそれぞれに対し、メモリ10e上の所定容量の専用領域を割り当てるとともに、複数の専用領域のそれぞれに、その専用領域を使用するプロセッサ10dのためにジョブ管理テーブル12a及び状態管理テーブル12bを設定する機能を、含んでいる。また、このプロセッサ管理ソフトウエア11には、ジョブ(タスク)を各プロセッサ10dに割り当てるためのプログラムとして、ジョブ割当プログラム11a,状態記録プログラム11b,ジョブ選択プログラム11c,及び、ジョブ削除プログラム11dを、含んでいる。図1には、これらプログラム11a〜11dと各プロセッサ割り当て領域とが展開された状態が、示されている。
図2は、ジョブ管理テーブル12aのデータ構造の一例を示す図である。
ジョブ管理テーブル12aは、後述のジョブ割当プログラム11aにより対応するプロセッサ10dに割り当てられたジョブに関する情報を記憶しておくためのテーブルである。図2に示すように、ジョブ管理テーブル12aは、対応するプロセッサ10dに割り当てられるジョブと同じ数のレコードを、有している。各レコードは、「ジョブ名」及び「優先度」のフィールドを、有している。「ジョブ名」フィールドは、そのジョブを特定する識別情報であるジョブ名が記録されるフィールドである。「優先度」フィールドは、このコンピュータ10内の各ジョブに対し、それらの理想的な実行順を特定する情報として一意に定義される優先度が記録されるフィールドである。なお、第1の実施形態においては、優先度の数値が大きいほど、優先度が高くなる。また、このジョブ管理テーブル12aは、登録されているジョブの数を記録するためのフィールドを別途有している。なお、ジョブに関する情報をこのジョブ管理テーブル12aに記憶するプロセッサ10dは、前述したジョブ記憶手段に相当する。
図3は、状態管理テーブル12bのデータ構造の一例を示す図である。
状態管理テーブル12bは、対応するプロセッサ10dのジョブ実行に関する情報を記憶しておくためのテーブルである。図3に示すように、状態管理テーブル12bは、一つのレコードを有し、そのレコードは、「ジョブ開始時刻」,「前回開始時刻」,「実行時間」及び「仕事量100%状態フラグ」のフィールドを、有している。「ジョブ開始時刻」フィールドは、ジョブの実行の開始時刻が記録されるフィールドである。「前回開始時刻」フィールドは、直前に実行が終了したジョブについての実行開始時刻が記録されるフィールドである。「実行時間」フィールドは、直前に実行が終了したジョブについての実行に掛かった時間が実行時間として記録されるフィールドである。「仕事量100%状態フラグ」フィールドは、直前に実行が終了したジョブについてその実行に所定の時間以上掛かったか否かを特定する情報が、仕事量100%状態フラグとして記録されるフィールドである。
ジョブ割当プログラム11aは、例えばアイコンのクリックのような操作者の入力操作によって発生するジョブを、何れかのプロセッサ10dに割り当てるためのプログラムである。このジョブ割当プログラム11aによるプロセスは、図1に示すように、プロセッサ10d毎に生成される。このジョブ割当(プログラムに従ってプロセッサが行う)プロセス11aの内容については、図4を用いて後述する。
状態記録プログラム11bは、図3の状態管理テーブル12bにジョブ実行に関する情報を記録するためのプログラムである。この状態記録プログラム11bによるプロセスも、図1に示すように、プロセッサ10d毎に生成される。この状態記録(プログラムに従ってプロセッサが行う)プロセス11bの内容については、図6を用いて後述する。
ジョブ選択プログラム11cは、図3の状態管理テーブル12bの内容に応じて対応するプロセッサが実行すべきジョブを決定するためのプログラムである。このジョブ選択プログラム11cによるプロセスも、図1に示すように、プロセッサ10d毎に生成される。このジョブ選択(プログラムに従ってプロセッサが行う)プロセス11cの内容については、図7を用いて後述する。
ジョブ削除プログラム11cは、図2のジョブ管理テーブル12aから、実行が済んだジョブに係るレコードを削除するためのプログラムである。このジョブ削除プログラム11dによるプロセスも、図1に示すように、プロセッサ10d毎に生成される。このジョブ削除(プログラムに従ってプロセッサが行う)プロセス11cの内容については、図8を用いて後述する。
次に、第1の実施形態のコンピュータ10において行われる処理について、説明する。
前述したように、ジョブ割当プログラム11aは、操作者の入力操作によってジョブが発生すると、起動される。
図4は、ジョブ割当プログラム11aによる処理の流れを示す図である。
処理開始後、最初のステップS101では、プロセッサ群10dは、OSソフトウエアを通じてジョブを受け付ける。このジョブには、既に優先度が定義されている。
次のステップS102では、プロセッサ群10dは、複数のプロセッサ10dのうち、ジョブ管理テーブル12aに記憶されるジョブ数が最も小さいプロセッサ10dを、一つ特定する。
次のステップS103では、プロセッサ群10dは、ステップS102で特定したプロセッサ10dのジョブ管理テーブル12aに、ステップS101で受け付けたジョブを特定する情報を、登録する。
次のステップS104では、プロセッサ群10dは、ステップS103でジョブを登録したジョブ管理テーブル12a内の各レコードを、優先度の順に並び替える。
次のステップS105では、プロセッサ群10dは、ステップS104でレコードを並び替えたジョブ管理テーブル12aに記憶されるジョブ数を1つ増やす。その後、プロセッサ群10dは、図4に係るジョブ割当処理を終了する。
このジョブ割当処理により、新たに発生するジョブは、割り当てられているジョブの数の少ないプロセッサ10dに対し、割り当てられることとなる。
図5は、プロセッサ10dが実行する処理の流れを示す図である。
図5に示すように、プロセッサ10dは、何れも、状態記録プロセス11b,ジョブ選択プロセス11c,ジョブ,ジョブ削除プロセス11dを、この順に、繰り返し実行するようになっている。
図6は、状態記録プログラム11bによる処理の流れを示す図である。
処理開始後、最初のステップS201では、状態記録(プログラムに従ってプロセッサが行う)プロセス11bは、図3の状態管理テーブル12b内のレコードに含まれる仕事量100%状態フラグを、オフに切り替える。
次のステップS202では、状態記録プロセス11bは、図3の状態管理テーブル12b内のレコードの「ジョブ開始時刻」フィールドの値で、「前回開始時刻」フィールドの値を、上書き更新する。
次のステップS203では、状態記録プロセス11bは、その時点の時刻で、図3の状態管理テーブル12b内のレコードの「ジョブ開始時刻」フィールドの値を、上書き更新する。
次のステップS204では、状態記録プロセス11bは、「前回開始時刻」フィールドの値がゼロであるか否かを、判別する。そして、「前回開始時刻」フィールドの値がゼロであった場合、状態記録プロセス11bは、ステップS204から処理を分岐して、図6に係る状態記録処理を終了する。一方、「前回開始時刻」フィールドの値がゼロでなかった場合、状態記録プロセス11bは、ステップS205へ処理を進める。
ステップS205では、状態記録プロセス11bは、実行時間を算出する。具体的には、状態記録プロセス11bは、図3の状態管理テーブル12b内のレコードの「ジョブ開始時刻」フィールドの値から「前回開始時刻」フィールドの値を除することにより、実行時間を算出する。
次のステップS206では、状態記録プロセス11bは、ステップS205で算出した実行時間で、図3の状態管理テーブル12b内のレコードの「実行時間」フィールドの値を、上書き更新する。
次のステップS207では、状態記録プロセス11bは、ステップS205で算出した実行時間が所定の上限値を上回っているか否かを、判別する。そして、当該実行時間が所定の上限値を下回っていた場合、状態記録プロセス11bは、ステップS207から処理を分岐して、図6に係る状態記録処理を終了する。一方、当該実行時間が所定の上限値を上回っていた場合、状態記録プロセス11bは、ステップS208へ処理を進める。
ステップS208では、状態記録プロセス11bは、図3の状態管理テーブル12b内のレコードの「ジョブ開始時刻」フィールドの値をゼロにする。
次のステップS209では、状態記録プロセス11bは、図3の状態管理テーブル12b内のレコードに含まれる仕事量100%状態フラグを、オンに切り替える。その後、状態記録プロセス11bは、図6に係る状態記録処理を終了する。
この状態記録処理により、ジョブを実行する前に、直前に実行したジョブに関する情報が図3の状態管理テーブル12bに記録され、仕事量100%状態フラグの切り替えの判断が行われる。
図7は、ジョブ選択プログラム11cによる処理の流れを示す図である。
処理開始後、最初のステップS301では、ジョブ選択(プログラムに従ってプロセッサが行う)プロセス11cは、図3の状態管理テーブル12b内のレコードに含まれる仕事量100%状態フラグがオンであるか否かを、判別する。そして、仕事量100%状態フラグがオンであった場合、ジョブ選択プロセス11cは、ステップS305へ処理を進める。一方、仕事量100%状態フラグがオフであった場合、ジョブ選択プロセス11cは、ステップS301からステップS302へ処理を分岐させる。
ステップS302では、ジョブ選択プロセス11cは、自分以外の全てのプロセッサ10dのジョブ管理テーブル12aに登録されているレコードのうち、最も優先度の高いジョブのレコードを、特定する。
次のステップS303では、ジョブ選択プロセス11cは、ステップS302で特定したレコードをコピーして、自分のジョブ管理テーブル12aの先頭に追加登録する。
次のステップS304では、ジョブ選択プロセス11cは、ステップS302で特定したレコードを、そのプロセッサ10dのジョブ管理テーブル12aから、削除する。その後、ジョブ選択プロセス11cは、ステップS305へ処理を進める。
ステップS305では、ジョブ選択プロセス11cは、図3の状態管理テーブル12b内のレコードのうち、優先度の最も高いジョブのレコードを、次の実行対象のレコードとして特定する。その後、ジョブ選択プロセス11cは、図7に係るジョブ選択処理を終了する。なお、ステップS305を実行するプロセッサ10dは、前述した実行手段に相当する。
このジョブ選択処理により、当該プロセッサ10dが次に実行すべきジョブが、一つ特定されることとなる。
なお、ステップS201乃至S209,並びに、S301及びS302を実行するプロセッサ10dは、前述した特定手段に相当する。また、ステップS303及びS304を実行するプロセッサ10dは、前述した移行手段に相当する。
図8は、ジョブ削除プログラム11dによる処理の流れを示す図である。
処理開始後、最初のステップS401では、ジョブ削除(プログラムに従ってプロセッサが行う)プロセス11cは、図2のジョブ管理テーブル12aから、実行したジョブに係るレコードを削除する。その後、ジョブ削除プロセス11dは、図8に係るジョブ削除処理を終了する。なお、このステップS401を実行するプロセッサ10dは、前述した削除手段に相当する。
このジョブ削除処理により、プロセッサ10dに割り当てられたジョブの中から、実行済みのジョブが、除去される。
次に、第1の実施形態のコンピュータ10の作用及び効果について、説明する。
コンピュータ10の各プロセッサ10dは、ジョブ割当プログラム11aによって自分に割り当てられたジョブを実行する前に、状態記録プロセス11b及びジョブ選択プロセス11cとを順に実行する。状態記録プロセス11bでは、直前のジョブの実行に時間が掛かったか否かで、プロセッサ10dの負荷状態が判断される(ステップS207)。そして、ジョブの実行時間が少ないことにより負荷が低いと判断されれば、ジョブ選択プロセス11cが、他のプロセッサに割り当てられているジョブのうち、最も優先度の高いジョブを探し出して(ステップS302〜S304)、そのジョブを次の実行対象として特定する。
各プロセッサ10dがこのように動作することにより、負荷の掛かっているプロセッサ10dが実行すべきジョブが、ジョブの実行に時間が掛からなかったプロセッサ10dに、肩代わりされることとなる。
図9は、一方のプロセッサ10dが他方のプロセッサ10dのジョブを肩代わりする様子を示した模式図である。
図9に示す例では、第1のプロセッサ10dが、「JOB001」のジョブを実行し、第2のプロセッサ10dが、「JOB002」のジョブを実行している。そして、第2のプロセッサ10dが、「JOB002」のジョブの実行を終えたとき、第1のプロセッサ10dが、「JOB001」のジョブの実行を継続している。第2のプロセッサ10dは、「JOB002」のジョブの実行を終えた後、「JOB004」のジョブを実行する前に、状態記録プロセス11bにより負荷が低いと判断すると(ステップS207;NO,S301;NO)、第1のプロセッサ10dが次回実行すべき「JOB003」のジョブを引き受け(ステップS302〜S304)、そのジョブを実行する。
このように作用する結果、システムの性能低下が防止されるとともに、ジョブができるだけ優先度の通りに行われるようになる。然も、自分が肩代わりできるジョブを探し出す処理は、各プロセッサ10dがジョブの実行前に行うため、何れかのプロセッサ10dが特定の機能のために独占されることもない。
実施形態2
第2の実施形態は、直前のジョブの実行状態に基づいて他のプロセッサ10dのジョブを肩代わりするか否かを判断するのではなく、ジョブの実行中においてその次に実行されるべきジョブの待機状態に基づいてその待機中のジョブを他のプロセッサ10dに引き渡すか否かを判断する点で、第1の実施形態と相違する。しかし、それ以外の構成については、第1の実施形態と同じである。
図10は、第2の実施形態のコンピュータ10の構成図である。
図10と図1とを比較して明らかなように、第2の実施形態のコンピュータ10は、第1の実施形態のそれと同じハードウエア構成となっている。
また、第2の実施形態では、プロセッサ管理ソフトウエア11’には、状態記録プログラム11bが含まれておらず、その代わりに、負荷監視プログラム11gが含まれている。このため、第2の実施形態のプロセッサ管理ソフトウエア11’には、第1の実施形態のそれとは異なる符号が付されている。
また、ジョブ選択プログラム11e及びジョブ削除プログラム11fは、第1の実施形態のそれと処理内容が若干異なるため、第2の実施形態の当該プログラム11e,11fには、第1の実施形態と異なる符号が付されている。
さらに、メモリ10e内において各プロセッサ10dに割り当てられる所定容量の記憶領域には、ジョブ管理テーブル13aのみが設定される。
図11は、第2の実施形態のジョブ管理テーブル13aのデータ構造の一例を示す図である。
図11に示すように、ジョブ管理テーブル13aは、対応するプロセッサ10dに割り当てられているジョブと同数のレコードを、有している。各レコードは、「ジョブ名」,「優先度」,「実行状況」,「待機回数」及び「次実行切替時刻」のフィールドを、有している。「ジョブ名」フィールドは、そのジョブを特定する識別情報であるジョブ名が記録されるフィールドである。「優先度」フィールドは、このコンピュータ10内の各ジョブに対し、それらの理想的な実行順を特定する情報として一意に定義される優先度が記録されるフィールドである。なお、第2の実施形態においても、優先度の数値が大きいほど、優先度が高くなる。「実行状況」フィールドは、そのジョブの状態を特定する情報が記録されるフィールドである。なお、このフィールドに記録される情報には、「実行中」,「待機中(次実行)」,「待機中」,「実行済」がある。「待機回数」フィールドは、後述の負荷監視プログラム11gが定期的に実行されたときに「待機中」であった回数が記録されるフィールドである。「次実行切替時刻」フィールドは、実行状況が「待機中」から「待機中(次実行)」に切り替えられたときの時刻が記録されるフィールドである。なお、ジョブに関する情報をこのジョブ管理テーブル13aに記憶するプロセッサ10dは、前述したジョブ記憶手段に相当する。
負荷監視プログラム11gは、ジョブ管理テーブル13a内の「待機中(次実行)」に係るジョブの待機回数に基づいて、そのジョブを他のプロセッサ10dに引き渡すか否かを判断するためのプログラムである。この負荷監視プログラム11gによるプロセスは、図10に示すように、プロセッサ10d毎に生成される。この負荷監視(プログラムに従ってプロセッサが行う)プロセス11gの内容については、図15乃至図17を用いて後述する。
次に、第2の実施形態のコンピュータ10において行われる処理について、説明する。
ジョブ割当プログラム11aは、第1の実施形態のそれと同じ機能を発揮するものである。従って、ジョブ割当プログラム11aのプロセスは、操作者の入力操作によってジョブが発生すると、生成され、このジョブ割当プロセス11aにより、新たに発生するジョブは、割り当てられているジョブの数の少ないプロセッサ10dに対し、割り当てられることとなる。
図12は、プロセッサ10dが実行する処理の流れを示す図である。
図12に示すように、プロセッサ10dは、何れも、ジョブ選択プロセス11e,ジョブ,ジョブ削除プロセス11fを、この順に、繰り返し実行するようになっている。なお、負荷監視プロセス11gは、これらジョブ選択プロセス11e,ジョブ,及び、ジョブ削除プロセス11fのループと並行して、行われる。
図13は、ジョブ選択プログラム11eによる処理の流れを示す図である。
処理開始後、最初のステップS501では、ジョブ選択(プログラムに従ってプロセッサが行う)プロセス11eは、図11のジョブ管理テーブル13a内のレコードのうち、「実行状況」フィールドの値が「待機中(次実行)」であるレコードを特定し、その特定したレコードの「実行状況」フィールドの値を、「待機中(次実行)」から「実行中」に切り替える。
次のステップS502では、ジョブ選択プロセス11eは、図11のジョブ管理テーブル13a内において「待機中」のジョブのレコードのうち、優先度が最も高いジョブのレコードを特定する。
次のステップS503では、ジョブ選択プロセス11eは、ステップS502で特定したレコードの「実行状況」フィールドの値を、「待機中」から「待機中(次実行)」に切り替える。
次のステップS504では、ジョブ選択プロセス11eは、その時点の時刻で、ステップS502で特定したレコードの「次実行切替時刻」フィールドの値を、上書き更新する。その後、ジョブ選択プロセス11eは、図13に係るジョブ選択処理を終了する。
このジョブ選択処理により、ジョブの実行の直前に、そのジョブの次に実行対象とすべきジョブが、決定されることとなる。なお、このジョブ選択処理を実行するプロセッサ10dは、前述した決定手段に相当する。
図14は、ジョブ削除プログラム11fによる処理の流れを示す図である。
処理開始後、最初のステップS601では、ジョブ削除(プログラムに従ってプロセッサが行う)プロセス11fは、図11のジョブ管理テーブル13a内における実行し終えたジョブに係るレコードの「実況状況」フィールドの値を、「実行中」から「実行済」へ切り替える。その後、ジョブ削除プロセス11fは、図14に係るジョブ削除処理を終了する。
このジョブ削除処理により、プロセッサ10dに割り当てられたジョブの中から、実行済みのジョブが、除去される。
図15は、負荷監視プログラム11gによる処理の流れを示す図である。
処理開始後、最初のステップS701では、負荷監視(プログラムに従ってプロセッサが行う)プロセス11gは、図11のジョブ管理テーブル13a内のレコードの中から、「待機中(次実行)」のジョブのレコードを、処理対象として特定する。
次のステップS702では、負荷監視プロセス11gは、待機時間を算出する。具体的には、負荷監視プロセス11gは、ステップS701で特定した処理対象レコードの「次実行切替時刻」フィールドの値からその時点の時刻を除することにより、待機時間を算出する。
次のステップS703では、負荷監視プロセス11gは、ステップS702で算出した待機時間が所定の上限値を上回っているか否かを、判別する。そして、待機時間が所定の上限値を下回っていた場合、負荷監視プロセス11gは、ステップS703から処理を分岐させ、図11に係る負荷監視処理を終了する。一方、待機時間が所定の上限値を上回っていた場合、負荷監視プロセス11gは、ステップS704へ処理を進める。
ステップS704では、負荷監視プロセス11gは、割振サブルーチンを実行する。
図16及び図17は、割振サブルーチンによる処理の流れを示す図である。
処理開始後、最初のステップS801では、負荷監視プロセス11gは、ステップS701で特定した処理対象レコードの「待機回数」フィールドの値を1つ増やす。
次のステップS802では、負荷監視プロセス11gは、処理対象レコードの「待機回数」フィールドの値が所定の上限値を上回っているか否かを、判別する。そして、処理対象レコードの「待機回数」フィールドの値が所定の上限値を下回っていた場合、負荷監視プロセス11gは、ステップS802から処理を分岐させ、図16及び図17に係る割振サブルーチンを終了するとともに図15に係る負荷監視処理を終了する。一方、処理対象レコードの「待機回数」フィールドの値が所定の上限値を上回っていた場合、負荷監視プロセス11gは、ステップS803へ処理を進める。
ステップS803では、負荷監視プロセス11gは、自分以外の全てのプロセッサ10dのジョブ管理テーブル13aに登録されているレコードの中から、処理対象レコードに含まれる優先度よりも低い優先度を含むレコードを、検索する。
次のステップS804では、負荷監視プロセス11gは、ステップS803の検索の結果、レコードが検出できたか否かを、判別する。そして、レコードが検出できなかった場合、負荷監視プロセス11gは、ステップS804から処理を分岐させ、図16及び図17に係る割振サブルーチンを終了するとともに図15に係る負荷監視処理を終了する。一方、レコードが検出できた場合、負荷監視プロセス11gは、ステップS805へ処理を進める。
ステップS805では、負荷監視プロセス11gは、ステップS804で検出したレコードの中から、「実行済」のジョブのレコードを、検索する。
次のステップS806では、負荷監視プロセス11gは、ステップS805の検索の結果、レコードが検出できたか否かを、判別する。そして、レコードが検出できなかった場合、負荷監視プロセス11gは、ステップS806から処理を分岐させ、図16及び図17に係る割振サブルーチンを終了するとともに図15に係る負荷監視処理を終了する。一方、レコードが検出できた場合、負荷監視プロセス11gは、ステップS807へ処理を進める。
なお、ステップS803乃至S806を実行するプロセッサ10dは、前述した検索手段に相当する。
ステップS807では、負荷監視プロセス11gは、ステップS806で検出したレコードの中から、優先度が最も低いジョブのレコードを、特定する。
次のステップS808では、負荷監視プロセス11gは、ステップS807で特定したレコードが登録されているジョブ管理テーブル134aにおいて、次回の実行対象とされているジョブのレコードの「実行状況」フィールドの値を、「待機中(次実行)」から「待機中」に切り替える。
次のステップS809では、負荷監視プロセス11gは、ステップS807で特定したレコードが登録されているジョブ管理テーブル13aの先頭に、ステップS701で特定された処理対象レコードのコピーを追加登録する。
次のステップS810では、負荷監視プロセス11gは、ステップS809で他のプロセッサ10dのジョブ管理テーブル13aに追加されたレコードの「待機回数」フィールドの値をゼロにする。また、負荷監視プロセス11gは、この時点の時刻で、当該レコードの「次実行切替時刻」フィールドの値を、上書き更新する。
次のステップS811では、負荷監視プロセス11gは、自分のジョブ管理テーブル13a内から、処理対象レコードを削除する。
次のステップS812では、負荷監視プロセス11gは、自分のジョブ管理テーブル13aにおいて「待機中」のジョブのレコードのうち、優先度が最も高いジョブのレコードを特定する。
次のステップS813では、負荷監視プロセス11gは、ステップS811で特定したレコードの「実行状況」フィールドの値を、「待機中」から「待機中(次実行)」に切り替える。
次のステップS814では、負荷監視プロセス11gは、その時点の時刻で、ステップS811で特定したレコードの「次実行切替時刻」フィールドの値を、上書き更新する。その後、負荷監視プロセス11gは、図16及び図17に係る割振サブルーチンを終了するとともに図15に係る負荷監視処理を終了する。
この負荷監視処理により、次回の実行対象として長い間待機させられていたジョブが、他のプロセッサに引き渡されることとなる。
次に、第2の実施形態のコンピュータ10による作用及び効果について、説明する。
コンピュータ10の各プロセッサ10dは、ジョブを実行する前に、そのジョブの次に実行すべきジョブを特定する。また、各プロセッサ10dは、これと並行して、負荷監視プロセス11gを定期的に実行する。そして、次回の実行対象とされたジョブが待機中に、負荷監視プロセス11gが実行された回数が計数され(ステップS801)、その回数が所定の上限値を超ええていた場合に(ステップS802;YES)、次回の実行対象とされたジョブが、そのジョブよりも優先度が低いジョブを実行し終えている他のプロセッサに、引き渡される(ステップS803〜S811)。
各プロセッサ10dがこのように動作することにより、負荷の掛かっているプロセッサ10dが実行すべきジョブが、そのジョブより優先度の低いジョブの実行を既に終えているプロセッサ10dに、肩代わりされることとなる。
図18は、一方のプロセッサ10dが他方のプロセッサ10dのジョブを肩代わりする様子を示した模式図である。
図18に示す例では、第1のプロセッサ10dが、「JOB001」乃至「JOB003」のジョブが第1のプロセッサ10dに割り当てられ、「JOB101」乃至「JOB1003」のジョブが第2のプロセッサ10dに割り当てられ、「JOB201」乃至「JOB203」のジョブが第3のプロセッサ10dに割り当てられている。そして、第1のプロセッサ10dでは、「JOB001」のジョブが実行中であり、「JOB002」のジョブが次回の実行対象として待機中である。また、第2のプロセッサ10dでは、「JOB101」のジョブが実行済みであり、「JOB102」のジョブが実行中であり、「JOB103」のジョブが次回の実行対象として待機中である。また、第3のプロセッサ10dでは、「JOB201」のジョブが実行済みであり、「JOB202」のジョブが実行中であり、「JOB203」のジョブが次回の実行対象として待機中である。
第1のプロセッサ10dが、「JOB001」のジョブの実行中に「JOB002」のジョブの待機回数が所定回数を超えると(ステップS802;YES)、「JOB002」のジョブの優先度「254」よりも低い優先度を有し、且つ、実行済みのジョブである「JOB101」及び「JOB201」が、第2及び第3のプロセッサ10dのジョブ管理テーブル13aから探し出され(ステップS803乃至S806)、そのうち最も優先度の低い「JOB201」のジョブの前に、「JOB002」のジョブが登録される(ステップS809)。この「JOB002」のジョブが引き渡された第3のプロセッサ10dは、「JOB202」のジョブの実行を終えると、「JOB203」のジョブを実行する前に、「JOB002」のジョブを実行することになる。
このように作用する結果、システムの性能低下が防止されるとともに、ジョブができるだけ優先度の通りに行われるようになる。然も、自分のジョブが押し付けられるプロセッサ10dを探し出す処理は、各プロセッサ10dがジョブの実行中に行うため、何れかのプロセッサが特定の機能のために独占されることもない。
(付記1)
密結合マルチプロセッサシステムを構成する各プロセッサを、何れも、
自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、メモリ内の専用のテーブルに記憶するジョブ記憶手段,
前記テーブルに記憶されているレコードのうち優先度が最も高いレコードを決定し、決定したレコードのジョブ情報にて特定されるジョブを実行する実行手段,
前記実行手段がジョブを実行し終えると、前記テーブルからそのジョブに対応するレコードを削除する削除手段,
前記実行手段がジョブの実行に掛けた時間が所定の上限値を下回っている場合に、自分以外の全てのプロセッサのテーブルから、優先度が最も高いレコードを特定する特定手段,及び、
前記特定手段が特定したレコードを、他のプロセッサのテーブルから自分専用のテーブルに移行させる移行手段
として機能させる
ことを特徴とするジョブ割当プログラム。
(付記2)
密結合マルチプロセッサシステムを構成する各プロセッサを、何れも、
自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、メモリ内の専用のテーブルに記憶するジョブ記憶手段,
前記テーブルに記憶されているレコードのうち優先度が最も高いレコードを決定し、決定したレコードのジョブ情報にて特定されるジョブを実行する実行手段,
前記実行手段がジョブを実行し終えると、前記テーブルからそのジョブに対応するレコードを削除する削除手段,
前記実行手段がジョブの実行に掛けた時間が所定の上限値を下回っている場合に、自分以外の全てのプロセッサのテーブルから、優先度が最も高いレコードを特定する特定手段,及び、
前記特定手段が特定したレコードを、他のプロセッサのテーブルから自分専用のテーブルに移行させる移行手段
として機能させるジョブ割当プログラム
を格納したことを特徴とするコンピュータ可読媒体。
(付記3)
密結合マルチプロセッサシステムを構成する各プロセッサが、何れも、
自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、メモリ内の専用のテーブルに記憶するジョブ記憶手順,
前記テーブルに記憶されているレコードのうち優先度が最も高いレコードを決定し、決定したレコードのジョブ情報にて特定されるジョブを実行する実行手順,
前記実行手順においてジョブを実行し終えると、前記テーブルからそのジョブに対応するレコードを削除する削除手順,
前記実行手順においてジョブの実行に掛けた時間が所定の上限値を下回っている場合に、自分以外の全てのプロセッサのテーブルから、優先度が最も高いレコードを特定する特定手順,及び、
前記特定手順において特定したレコードを、他のプロセッサのテーブルから自分専用のテーブルに移行させる移行手順
を実行する
ことを特徴とするジョブ割当方法。
(付記4)
密結合マルチプロセッサシステムを構成する各プロセッサを、何れも、
自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、メモリ内の専用のテーブルに記憶するジョブ記憶手段,
前記テーブルに記憶されているレコードのうち優先度が最も高いレコードにて特定されるジョブを実行する実行手段,
前記実行手段がジョブの実行を開始するときに、前記テーブル内においてその次に優先度の高いレコードを、前記実行手段の次回の実行対象として決定する決定手段,
前記決定手段が次回の実行対象を決定してから所定の時間が経過した場合に、自分以外の全てのプロセッサのテーブルから、その実行対象よりも優先度が低く且つジョブが実行済みのレコードを、検索する検索手段,及び、
前記検索手段が何れかのレコードを検出できた場合に、検出したレコードのうち、最も優先度の高いレコードを有するプロセッサのテーブルへ、自分専用のテーブルから、次回の実行対象のレコードを移行させる移行手段
として機能させる
ことを特徴とするジョブ割当プログラム。
(付記5)
密結合マルチプロセッサシステムを構成する各プロセッサを、何れも、
自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、メモリ内の専用のテーブルに記憶するジョブ記憶手段,
前記テーブルに記憶されているレコードのうち優先度が最も高いレコードにて特定されるジョブを実行する実行手段,
前記実行手段がジョブの実行を開始するときに、前記テーブル内においてその次に優先度の高いレコードを、前記実行手段の次回の実行対象として決定する決定手段,
前記決定手段が次回の実行対象を決定してから所定の時間が経過した場合に、自分以外の全てのプロセッサのテーブルから、その実行対象よりも優先度が低く且つジョブが実行済みのレコードを、検索する検索手段,及び、
前記検索手段が何れかのレコードを検出できた場合に、検出したレコードのうち、最も優先度の高いレコードを有するプロセッサのテーブルへ、自分専用のテーブルから、次回の実行対象のレコードを移行させる移行手段
として機能させるジョブ割当プログラム
を格納したことを特徴とするコンピュータ可読媒体。
(付記6)
密結合マルチプロセッサシステムを構成する各プロセッサが、何れも、
自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、メモリ内の専用のテーブルに記憶するジョブ記憶手順,
前記テーブルに記憶されているレコードのうち優先度が最も高いレコードにて特定されるジョブを実行する実行手順,
前記実行手順においてジョブの実行を開始するときに、前記テーブル内においてその次に優先度の高いレコードを、前記実行手順における次回の実行対象として決定する決定手順,
前記決定手順において次回の実行対象を決定してから所定の時間が経過した場合に、自分以外の全てのプロセッサのテーブルから、その実行対象よりも優先度が低く且つジョブが実行済みのレコードを、検索する検索手順,及び、
前記検索手順において何れかのレコードを検出できた場合に、検出したレコードのうち、最も優先度の高いレコードを有するプロセッサのテーブルへ、自分専用のテーブルから、次回の実行対象のレコードを移行させる移行手順
を実行する
ことを特徴とするジョブ割当方法。
第1の実施形態のコンピュータの構成図 ジョブ管理テーブルのデータ構造の一例を示す図 状態管理テーブルのデータ構造の一例を示す図 ジョブ割当プログラムによる処理の流れを示す図 プロセッサが実行する処理の流れを示す図 状態記録プログラムによる処理の流れを示す図 ジョブ選択プログラムによる処理の流れを示す図 ジョブ削除プログラムによる処理の流れを示す図 一方のプロセッサが他方のプロセッサのジョブを肩代わりする様子を示した模式図 第2の実施形態のコンピュータの構成図 第2の実施形態のジョブ管理テーブルのデータ構造の一例を示す図 プロセッサが実行する処理の流れを示す図 ジョブ選択プログラムによる処理の流れを示す図 ジョブ削除プログラムによる処理の流れを示す図 負荷監視プログラムによる処理の流れを示す図 割振サブルーチンによる処理の流れを示す図 割振サブルーチンによる処理の流れを示す図 一方のプロセッサが他方のプロセッサのジョブを肩代わりする様子を示した模式図
符号の説明
10 コンピュータ
10a 表示装置
10b 入力装置
10c ストレージ
10d プロセッサ
10e メモリ
11 プロセッサ管理ソフトウエア
11a ジョブ割当プログラム
11b 状態記録プログラム
11c ジョブ削除プログラム
11c ジョブ選択プログラム
11d ジョブ削除プログラム
12a ジョブ管理テーブル
12b 状態管理テーブル
11’ プロセッサ管理ソフトウエア
11e ジョブ選択プログラム
11f ジョブ削除プログラム
11g 負荷監視プログラム
13a ジョブ管理テーブル

Claims (4)

  1. 複数のプロセッサとメモリとを含む密結合マルチプロセッサシステム内の各プロセッサを、何れも、
    自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、前記メモリ内の専用のテーブルに記憶するジョブ記憶手段,
    前記テーブルに記憶されているレコードのうち優先度が最も高いレコードを決定し、決定したレコードのジョブ情報にて特定されるジョブを実行する実行手段,
    前記実行手段がジョブを実行し終えると、前記テーブルからそのジョブに対応するレコードを削除する削除手段,
    前記実行手段が或るジョブを実行し終えてから前記実行手段が次のジョブを開始するまでの間に機能する特定手段であって、前記実行手段が実行し終えたジョブの実行時間が所定の上限値を下回っている場合に、自分以外の全てのプロセッサのテーブルから、優先度が最も高いレコードを特定する特定手段,及び、
    前記特定手段が特定したレコードを、他のプロセッサのテーブルから自分専用のテーブルに移行させる移行手段
    として機能させる
    ことを特徴とするジョブ割当プログラム。
  2. 複数のプロセッサとメモリとを含む密結合マルチプロセッサシステム内の各プロセッサが、何れも、
    自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、前記メモリ内の専用のテーブルに記憶するジョブ記憶手順,
    前記テーブルに記憶されているレコードのうち優先度が最も高いレコードを決定し、決定したレコードのジョブ情報にて特定されるジョブを実行する実行手順,
    前記実行手順によるジョブの実行が完了したときに、前記テーブルからそのジョブに対応するレコードを削除する削除手順,
    前記実行手順による或るジョブの実行完了後、前記実行手順による次のジョブの実行開始前に実行される特定手順であって、前記実行手順による実行が完了したジョブの実行時間が所定の上限値を下回っている場合に、自分以外の全てのプロセッサのテーブルから、優先度が最も高いレコードを特定する特定手順,及び、
    前記特定手順により特定されたレコードを、他のプロセッサのテーブルから自分専用のテーブルに移行させる移行手順
    を実行する
    ことを特徴とするジョブ割当方法。
  3. 複数のプロセッサとメモリとを含む密結合マルチプロセッサシステム内の各プロセッサを、何れも、
    自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、前記メモリ内の専用のテーブルに記憶するジョブ記憶手段,
    前記テーブルに記憶されているレコードのうち優先度が最も高いレコードを決定し、決定したレコードのジョブ情報にて特定されるジョブを実行する実行手段,
    前記実行手段により実行されたジョブについての前記テーブル内のレコードに、実行済みであることを示す実行済情報を設定する設定手段,
    前記実行手段がジョブの実行を開始するときに、前記テーブル内においてその次に優先度の高いレコードを、次処理対象レコードとして決定する決定手段,
    前記決定手段により前記次処理対象レコードが決定されてから所定の時間が経過しても、当該次処理対象レコード内のジョブ情報にて特定されるジョブが前記実行手段によって開始されなかった場合に、自分以外の全てのプロセッサのテーブルから、当該次処理対象レコード内の優先度よりも低い優先度と前記実行済情報とが設定されているレコードを、検索する検索手段,及び、
    前記検索手段が1つ以上のレコードを検出した場合に、検出したレコードのうち、最も優先度の低いレコードを有するプロセッサのテーブルへ、自分専用のテーブルから、前記次処理対象レコードを移行させる移行手段
    として機能させる
    ことを特徴とするジョブ割当プログラム。
  4. 複数のプロセッサとメモリとを含む密結合マルチプロセッサシステム内の各プロセッサが、何れも、
    自分に割り当てられたジョブを特定するジョブ情報とそのジョブに定義されている優先度とを含むレコードを、前記メモリ内の専用のテーブルに記憶するジョブ記憶手順,
    前記テーブルに記憶されているレコードのうち優先度が最も高いレコードを決定し、決定したレコードのジョブ情報にて特定されるジョブを実行する実行手順,
    前記実行手順により実行されたジョブについての前記テーブル内のレコードに、実行済みであることを示す実行済情報を設定する設定手順,
    前記実行手順によるジョブの実行開始時に、前記テーブル内においてその次に優先度の高いレコードを、次処理対象レコードとして決定する決定手順,
    前記決定手順により前記次処理対象レコードが決定されてから所定の時間が経過しても、当該次処理対象レコード内のジョブ情報にて特定されるジョブが前記実行手順によって開始されなかった場合に、自分以外の全てのプロセッサのテーブルから、当該次処理対象レコード内の優先度よりも低い優先度と前記実行済情報とが設定されているレコードを、検索する検索手順,及び、
    前記検索手順により1つ以上のレコードが検出された場合に、検出されたレコードのうち、最も優先度の低いレコードを有するプロセッサのテーブルへ、自分専用のテーブルから、前記次処理対象レコードを移行させる移行手順
    を実行する
    ことを特徴とするジョブ割当方法。
JP2006322468A 2006-11-29 2006-11-29 ジョブ割当プログラム及びジョブ割当方法 Expired - Fee Related JP4723465B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006322468A JP4723465B2 (ja) 2006-11-29 2006-11-29 ジョブ割当プログラム及びジョブ割当方法
US11/983,112 US20080127194A1 (en) 2006-11-29 2007-11-07 Job allocation program and job allocation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006322468A JP4723465B2 (ja) 2006-11-29 2006-11-29 ジョブ割当プログラム及びジョブ割当方法

Publications (2)

Publication Number Publication Date
JP2008139907A JP2008139907A (ja) 2008-06-19
JP4723465B2 true JP4723465B2 (ja) 2011-07-13

Family

ID=39465432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006322468A Expired - Fee Related JP4723465B2 (ja) 2006-11-29 2006-11-29 ジョブ割当プログラム及びジョブ割当方法

Country Status (2)

Country Link
US (1) US20080127194A1 (ja)
JP (1) JP4723465B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200835319A (en) * 2007-02-07 2008-08-16 Lite On Technology Corp Method for processing frames of digital broadcast signals and system thereof
US8677361B2 (en) * 2010-09-30 2014-03-18 International Business Machines Corporation Scheduling threads based on an actual power consumption and a predicted new power consumption
US20120124518A1 (en) * 2010-11-16 2012-05-17 Microsoft Corporation Managing Operations via a User Interface
US8688831B2 (en) * 2012-01-17 2014-04-01 International Business Machines Corporation Managing workload distribution among a plurality of compute nodes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113563A (ja) * 1989-09-28 1991-05-14 Hitachi Ltd マルチプロセッサスケジューリング方法
JPH10187469A (ja) * 1996-12-26 1998-07-21 Nec Software Ltd マルチプロセッサのプロセスディスパッチ方法
JP2004246592A (ja) * 2003-02-13 2004-09-02 Mitsubishi Electric Corp ジョブ実行管理装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5031089A (en) * 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems
JP2723068B2 (ja) * 1995-02-20 1998-03-09 日本電気株式会社 ジョブ再実行方式
US6989908B1 (en) * 1997-10-21 2006-01-24 Canon Kabushiki Kaisha Image input and output method, image input and output apparatus, and image processing system
FR2792087B1 (fr) * 1999-04-07 2001-06-15 Bull Sa Procede d'amelioration des performances d'un systeme multiprocesseur comprenant une file d'attente de travaux et architecture de systeme pour la mise en oeuvre du procede
JP4532795B2 (ja) * 2000-09-13 2010-08-25 キヤノン株式会社 画像出力装置、画像出力装置の制御方法、画像出力システム、及び記憶媒体
US20020040381A1 (en) * 2000-10-03 2002-04-04 Steiger Dianne L. Automatic load distribution for multiple digital signal processing system
US20020161814A1 (en) * 2000-10-04 2002-10-31 Wical Kelly J. Batch processing system running in parallel on automated and distributed replication systems
US7509671B1 (en) * 2001-06-20 2009-03-24 Microstrategy Incorporated Systems and methods for assigning priority to jobs in a reporting system
US6996822B1 (en) * 2001-08-01 2006-02-07 Unisys Corporation Hierarchical affinity dispatcher for task management in a multiprocessor computer system
US20040051732A1 (en) * 2002-07-02 2004-03-18 La Classe Locations, Inc. Digital project management system
JP4148841B2 (ja) * 2002-07-02 2008-09-10 株式会社リコー 画像形成方法および画像形成装置
US7167916B2 (en) * 2002-08-30 2007-01-23 Unisys Corporation Computer OS dispatcher operation with virtual switching queue and IP queues
US7159221B1 (en) * 2002-08-30 2007-01-02 Unisys Corporation Computer OS dispatcher operation with user controllable dedication
JP4270992B2 (ja) * 2002-09-20 2009-06-03 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、サービス提供装置、サービス提供方法、サービス提供プログラム及び記録媒体
JP4186678B2 (ja) * 2003-04-02 2008-11-26 セイコーエプソン株式会社 印刷ジョブ管理装置およびこれに用いられるプログラム並びに印刷ジョブ管理方法
US20050055694A1 (en) * 2003-09-04 2005-03-10 Hewlett-Packard Development Company, Lp Dynamic load balancing resource allocation
US7823157B2 (en) * 2003-11-18 2010-10-26 Microsoft Corporation Dynamic queue for use in threaded computing environment
US7650601B2 (en) * 2003-12-04 2010-01-19 International Business Machines Corporation Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US7692807B1 (en) * 2004-04-01 2010-04-06 Applied Discovery, Inc. System and method for batch printing high-volume electronic documents from a network
US8028285B2 (en) * 2004-07-22 2011-09-27 Computer Associates Think, Inc. Heterogeneous job dashboard
JP3914230B2 (ja) * 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
JP4591178B2 (ja) * 2005-04-20 2010-12-01 日本電気株式会社 電源制御装置及び電源制御方法並びにプログラム
US8015564B1 (en) * 2005-04-27 2011-09-06 Hewlett-Packard Development Company, L.P. Method of dispatching tasks in multi-processor computing environment with dispatching rules and monitoring of system status
US8065680B2 (en) * 2005-11-15 2011-11-22 Yahoo! Inc. Data gateway for jobs management based on a persistent job table and a server table

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113563A (ja) * 1989-09-28 1991-05-14 Hitachi Ltd マルチプロセッサスケジューリング方法
JPH10187469A (ja) * 1996-12-26 1998-07-21 Nec Software Ltd マルチプロセッサのプロセスディスパッチ方法
JP2004246592A (ja) * 2003-02-13 2004-09-02 Mitsubishi Electric Corp ジョブ実行管理装置

Also Published As

Publication number Publication date
JP2008139907A (ja) 2008-06-19
US20080127194A1 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
JP5466568B2 (ja) 資源管理方法、資源管理プログラム、および、資源管理装置
JP5650952B2 (ja) マルチコア/スレッドのワークグループ計算スケジューラ
JP6186787B2 (ja) データ転送装置、データ転送システム、データ転送方法及びプログラム
WO2012066640A1 (ja) 計算機システム、マイグレーション方法及び管理サーバ
JP2008084009A (ja) マルチプロセッサシステム
US9858101B2 (en) Virtual machine input/output thread management
JP2007115246A (ja) ソフトウェアによって使用される資源を動的に割り当てるための方法及び装置
JP2012094030A (ja) 計算機システム及び処理制御方法
WO2015001850A1 (ja) タスク割り当て判定装置、制御方法、及びプログラム
JP4748950B2 (ja) 記憶領域管理方法及びシステム
JP2009053921A (ja) ストレージシステム、計算機及び計算機システム
JP2008090546A (ja) マルチプロセッサシステム
JP4723465B2 (ja) ジョブ割当プログラム及びジョブ割当方法
JP4813975B2 (ja) 無共有型データベースシステムの構成変更方法、管理サーバ及び無共有型データベースシステム
JP4170364B2 (ja) プロセッサ
JP4719137B2 (ja) 複数プログラムの制御管理方法および制御管理装置
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
JP2007328413A (ja) 負荷分散方法
JPWO2007108062A1 (ja) サーバ管理方法、プログラム及び装置
JP5334048B2 (ja) メモリ装置および計算機
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP2004252829A (ja) バックアップ制御装置
JP4700104B2 (ja) サーバ管理方法、プログラム及び装置
JP2016184310A (ja) 情報処理システム、制御装置および情報処理システムの制御方法
US20130191839A1 (en) Information processing apparatus, control method therefor, and computer-readable storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110407

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees