JP4370313B2 - 制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム - Google Patents

制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム Download PDF

Info

Publication number
JP4370313B2
JP4370313B2 JP2006188821A JP2006188821A JP4370313B2 JP 4370313 B2 JP4370313 B2 JP 4370313B2 JP 2006188821 A JP2006188821 A JP 2006188821A JP 2006188821 A JP2006188821 A JP 2006188821A JP 4370313 B2 JP4370313 B2 JP 4370313B2
Authority
JP
Japan
Prior art keywords
computer
time
unit
resource
cpu
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
JP2006188821A
Other languages
English (en)
Other versions
JP2008015958A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2006188821A priority Critical patent/JP4370313B2/ja
Publication of JP2008015958A publication Critical patent/JP2008015958A/ja
Application granted granted Critical
Publication of JP4370313B2 publication Critical patent/JP4370313B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、複数の計算機がネットワークを形成して、連携して複数のプロセスを並行処理する分散システムにおける、処理が間に合わない事によるデッドラインミスの多発を防止する制御装置、制御装置のプロセス制御方法およびプロセス制御プログラムに関するものである。
従来の計算機リソース動的制御方式は、従来例1として例えば特許文献1によれば、繰り返し周期ごとに処理時間と処理データのデータの内容、データの大きさと前回の処理時間をもとにしてプロセスの次の処理時間を予測する手段と、処理予測時間の大きさの範囲ごとに定められたプロセスの実行順序案を保持し、予測によって求めた次の処理時間のデータに基づいて、あらかじめ定められた実行順序案に基づいて次の周期の処理順序を決定することにより、処理のデッドラインミス発生を防止することを特徴としている。
また従来例2として他の特許文献2によれば、処理すべきプロセス量を単位化して、例えばあるプロセスは8単位、他のプロセスは5単位等とし、この細分化されたプロセスの単位を基準にして、各プロセッサに処理する単位を割当てる方法が示されている。従ってプロセスが持つ単位量を管理するプロセス管理手段と、実行するプロセッサを管理するプロセッサ管理手段と、割当リソース量決定手段とを持っている。
特開平4−171538号公報 特開平6−28323号公報 Lonnie R.Welch,Binoy Ravindran,Behrooz A.Shirazi and Carl Bruggeman、「Specification and Modeling Of Dynamic,Distributed Real−time Systems」、Computer Science and Engineering Dept.、The University of Texas at Arlington
上記の従来例1では、プロセスのマイグレーション(他の計算機への移行)を行うことができず、例え他の計算機に空きリソースがあったとしても処理内容の変更や縮退を行うしかなく、システム内の他の計算機リソースを効率よく利用できない、またはオーバーロードするプロセスの処理を任された計算機(プロセッサ)によるデッドラインミスが継続する、という課題がある。
また、上記の従来例1では、主としてデータの大きさ、値をもとにして次の処理時間を予測しているが、データの大きさによって処理時間が決定する訳ではない。更に各プロセス様々なデータを受信するが、データの内容はプロセスが受け取る直前まで不明である場合が多くて、事前の予測はできない。このような理由から、従来例1の手法で次の周期処理時間を予測することは不可能である。
また従来例2では、やはりプロセスの量を大きさで区切って単位化して管理するだけであり、プロセスの内容や質により計算機を割当てたり、計算機の環境により処理量を変えたりはしないので、やはりデッドラインミスが発生し続けることを防げない、という課題がある。
この発明は上記のような課題を解決するためになされたもので、システムを構成する各プロセスのデッドラインミスの発生を予測し、十分な空きメモリ量、CPU時間を持つ計算機にプロセスマイグレーションを行う、または、アプリケーションプログラムを停止させることによってプロセスのデッドラインミスの継続発生を防止することを目的とする。
また、過去のプロセスの処理時間からプロセスの将来の処理時間を予測し、将来デッドラインミスが発生すると予測された場合には、プロセスマイグレーションやアプリケーションプログラムの停止を行うことによってプロセスのデッドラインミスの発生を未然に防ぐことを目的とする。
本発明の制御装置は、複数の計算機により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をCPU(Central Proccessing Unit)を用いて予測する発生時間帯予測部と、CPUの空き時間を前記発生時間帯予測部が予測した発生時間帯に有する計算機の有無をCPUを用いて判定するリソース有無判定部と、非終了プロセスを実行する予定の非終了プロセス計算機と異なる非終了プロセス移行先計算機に対して非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようCPUを用いて命令する非終了プロセス移行部とを備え、前記リソース有無判定部は、非終了プロセスを実行した場合にCPUの空き時間を有する非終了プロセス移行先計算機の有無を判定し、前記非終了プロセス移行部は、前記リソース有無判定部が非終了プロセス移行先計算機が有ると判定した場合に、非終了プロセス移行先計算機に非終了プロセスを実行させることを特徴とする。
本発明によれば、例えば、特定プロセス移行部がリソース有無判定部の判定結果に基づいて特定プロセス移行元計算機に特定プロセスの代わりに非終了プロセスを実行させることにより、将来の非終了プロセスの発生を未然に防ぐことができる。
実施の形態1.
図1は、実施の形態1における計算機システム200の構成図である。
実施の形態1における計算機システム200の構成について、図1に基づいて以下に説明する。
計算機システム200は、複数のプロセスを実行する複数の計算機210と、計算機210が所定時間内に終了できないと予測される非終了プロセスの実行を制御することにより、アプリケーションプログラムの処理にデッドラインミスが発生することを防止する制御装置300を備える。そして、各計算機210同士および各計算機210と制御装置300とはネットワークで接続し、データ通信を行う。
以下、所定時間内に終了しないことをデッドラインミスが発生したと言う。
計算機システム200は複数の計算機210を備えて、各アプリケーションプログラムを実行する。
このアプリケーションプログラムは順次に処理される複数のプロセスからなり、計算機システム200は、各プロセスをそれぞれ任意の計算機で順次に処理することにより、アプリケーションプログラムを実行する。
プロセスは周期的に実行され、アプリケーションプログラムの処理にデッドラインミスが発生した状態とは、プロセスの実行が周期内に終了しない状態のことである。
また、プロセスの実行に必要なリソース使用量(例えば、CPU使用時間、メモリ使用量)は処理するデータ量・データ内容などに従って変動し、リソース使用量が確保できない場合、当該プロセスの実行は周期内に終了しない。
また、プロセスは特定の優先度を持ち、アプリケーションプログラムは特定の重要度を持つ。プロセスの優先度は、同時間帯に実行する複数のプロセス間における各プロセスの実行順序を示し、優先度が高いプロセスは優先度が低いプロセスより先に実行される。また、アプリケーションプログラムの重要度はアプリケーションプログラムの実行終了の必須度を示し、いずれかのアプリケーションプログラムを停止しなければならない状況において、重要度が低いアプリケーションプログラムは重要度が高いアプリケーションプログラムより先に停止される。
また、プロセスは所定の数のサブプロセスに分割することができる。サブプロセスの優先度はプロセスの優先度と同じである。
制御装置300は、計算機システム200において、アプリケーションプログラムの処理にデッドラインミスが発生することを長期にわたり防止するようにプロセス制御することを目的とする。
また、制御装置300は、プロセス制御に際して、CPU(Central Processing Unit)使用率の低い計算機210が計算機システム200に存在するようにすることを目的とする。つまり、制御装置300は、計算機システム200内の少なくともいずれかの計算機210になるべく大きなCPU空き時間を与えるように、プロセス制御を実行する。
また、制御装置300は、デッドラインミスの発生を防止するために重要度の低いアプリケーションプログラムを停止しなければならないという状況をなるべく避けるように、プロセス制御を行うことを目的とする。つまり、制御装置300は全アプリケーションプログラムを実行することを目的とする。
つまり、制御装置300は「デッドラインミスの長期防止」、「CPU空き時間の大きな計算機210の確保」、「全アプリケーションプログラムの実行」を目的としてプロセス制御を実行する。
上記目的を達成するために制御装置300は、例えば、計算機210aが実行する予定のプロセスaが、今後、計算機210aにおいて所定の時間(例えば、プロセスの周期)内に終了しないと予測した場合に、以下のようなプロセス制御を行う。
ここで、プロセス制御前は、計算機210aがプロセスa、プロセスAを実行し、計算機210bがプロセスbを実行し、計算機210cがプロセスcを実行し、計算機210dがプロセスdを実行し、計算機210eがプロセスeを実行し、計算機210fがプロセスfを実行する予定であったものとする。
例1)計算機210aにはプロセスaを実行するための空きリソースが無く、計算機210bがプロセスaとプロセスbとを実行するための空きリソースがある場合、制御装置300は次のプロセス制御を行う。制御装置300は、計算機210bにプロセスaとプロセスbとを実行させる。つまり、制御装置300は当初の計算機(計算機210a)では所定時間内に終了しないプロセス(プロセスa)を他の計算機(計算機210b)に移行する。
例2)計算機210aにはプロセスaを実行するための空きリソースは無いがプロセスaよりリソース使用量が少ないプロセスcを実行するための空きリソースなら有り、計算機210cにはプロセスaとプロセスcとを実行するための空きリソースは無いがいずれかのプロセスを実行するための空きリソースなら有る場合、制御装置300は次のプロセス制御を行う。制御装置300は、計算機210cにプロセスaを実行させ、計算機210aにプロセスcを実行させる。つまり、制御装置300は所定時間内に終了しないプロセス(プロセスa)と他の計算機(計算機210c)のプロセス(プロセスc)とを入れ換えるように計算機(計算機210a、計算機210c)間で移行する。
例3)計算機210aにはプロセスaとプロセスdとのいずれかのプロセスを実行するための空きリソースは無く、計算機210dにはプロセスaとプロセスdとを実行するための空きリソースは無いがいずれかのプロセスを実行するための空きリソースなら有り、計算機210eにはプロセスaとプロセスeとを実行するための空きリソースは無いがプロセスaよりリソース使用量が少ないプロセスdとプロセスeとを実行するための空きリソースが有る場合、制御装置300は次のプロセス制御を行う。制御装置300は、計算機210eにプロセスdを実行させ、計算機210dにプロセスaを実行させる。つまり、制御装置300は当初予定していたプロセス(プロセスd)が他の計算機(計算機210e)に移行された計算機(計算機d)に、当初の計算機(計算機210a)では所定時間内に終了しないプロセス(プロセスa)を移行する。
例4)計算機210aにはプロセスaとプロセスAとを実行するための空きリソースは無いがプロセスAより重要度の高いプロセスaのみを実行するための空きリソースは有る場合、制御装置300は次のプロセス制御を行う。制御装置300は、計算機210aにプロセスAを停止させプロセスaを実行させる。つまり、制御装置300は、他のプロセス(プロセスA)を停止させることにより、当該計算機(計算機210a)に当初は所定時間内に終了しないと予測されたプロセス(プロセスa)を所定時間内に実行させる。
例5)計算機210aにはプロセスaを実行するための空きリソースは無く、計算機210fにはプロセスaとプロセスfとを実行するための空きリソースは無いがプロセスfより重要度の高いプロセスaのみを実行するための空きリソースは有る場合、制御装置300は次のプロセス制御を行う。制御装置300は、計算機210fにプロセスfの代わりにプロセスaを実行させる。つまり、制御装置300は当初予定していたプロセス(プロセスf)を停止した計算機(計算機f)に、当初の計算機(計算機210a)では所定時間内に終了しないプロセス(プロセスa)を移行する。
以下、所定時間内に終了しないと予測されるプロセスを「非終了プロセス」とする。上記例1〜5におけるプロセスaは非終了プロセスの一例である。
また、非終了プロセス以外のプロセスであり、他の計算機210に移行されるプロセスを「移行プロセス(特定プロセス)」とする。上記例2におけるプロセスcと上記例3におけるプロセスdとは移行プロセスの一例である。
また、非終了プロセス以外のプロセスであり、停止されるプロセスを「停止プロセス(特定第2プロセス)」とする。上記例4におけるプロセスAと上記例5におけるプロセスfとは停止プロセスの一例である。
また、当初の予定において、非終了プロセスを実行する予定だった計算機210を「非終了プロセス計算機」とする。上記例1における計算機210aは非終了プロセス計算機の一例である。
また、非終了プロセスの移行先の計算機210を「非終了プロセス移行先計算機」とする。上記例1における計算機210bは非終了プロセス移行先計算機の一例である。
また、移行プロセスの移行元の計算機210を「移行プロセス移行元計算機(特定プロセス移行元計算機)」とする。「移行プロセス移行元計算機」は「非終了プロセス移行先計算機」にもなる。上記例2における計算機210cと上記例3における計算機210dとは移行プロセス移行元計算機の一例である。
また、移行プロセスの移行先の計算機210を「移行プロセス移行先計算機(特定プロセス移行先計算機)」とする。上記例2における計算機210aと上記例3における計算機210eとは移行プロセス移行先計算機の一例である。
また、停止プロセスを停止する計算機210を「プロセス停止計算機(特定第2プロセス計算機)」とする。「プロセス停止計算機」は「非終了プロセス移行先計算機」にもなる。上記例4における計算機210aと上記例5における計算機210fとはプロセス停止計算機の一例である。
ここで、「プロセスの停止」は、例えば、特定の時間帯において実行する予定だったプロセスを実行しないことを意味する。
また、「プロセスの移行」は、例えば、移行先の計算機210にプロセスを起動させて当該プロセスをCPUによる実行待ち状態にすることや、移行先の計算機210にプロセスを特定の周期で実行するようにメモリにスケジュール設定させることや、プロセスの実行に用いられる制御情報を移行元の計算機210のメモリから移行先の計算機210のメモリにコピーすることを意味する。また、「プロセスの移行」は移行先の計算機210にCPUを用いてプロセスを実行させることを意味する。「プロセスの移行」が行われることにより当該プロセスは、それ以降または特定の時間帯において移行先の計算機210に実行される。
図2は、実施の形態1における制御装置300、計算機210のハードウェア資源の一例を示す図である。
図2において、制御装置300、計算機210は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、FDD904(Flexible・Disk・ Drive)、CDD905(コンパクトディスク装置)、プリンタ装置906、スキャナ装置907、マイク908、スピーカー909、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶機器、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力機器、入力装置あるいは入力部の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力機器、出力装置あるいは出力部の一例である。
通信ボード915は計算機システム200の通信ネットワークに接続されている。
磁気ディスク装置920には、OS921(オペレーティングシステム)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、OS921、ウィンドウシステム922により実行される。
上記プログラム群923には、実施の形態において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態において、「〜部」の機能を実行した際の「〜の判定結果」、「〜の計算結果」、「〜の処理結果」などの結果データ、「〜部」の機能を実行するプログラム間で受け渡しするデータ、その他の情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、実施の形態において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disc)等の記録媒体に記録される。また、データや信号値は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プロセス制御プログラムは、「〜部」としてコンピュータを機能させるものである。あるいは、「〜部」の手順や方法をコンピュータに実行させるものである。
図3は、実施の形態1における制御装置300の構成図である。
制御装置300は発生時間帯予測部310、リソース有無判定部320、非終了プロセス移行部330、移行プロセス移行部340、停止プロセス停止部350、非終了プロセス停止部360、制御対象時刻設定部370、リソース情報取得部380、制御装置記憶部390を備える。
発生時間帯予測部310は、複数の計算機210により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をCPU911を用いて予測する。
リソース有無判定部320は、空きリソースを発生時間帯予測部310が予測した非終了プロセスの発生時間帯に有する計算機210の有無をCPU911を用いて判定する。例えば、リソース有無判定部320は、以下の条件を仮定し、非終了プロセスの発生時間帯に空きリソースを有する計算機の有無を判定する。このとき、リソース有無判定部320は空きリソースを条件aの場合に有する計算機が存在するか判定する。また、リソース有無判定部320は空きリソースを条件b1の場合に有する計算機と空きリソースを条件b2の場合に有する計算機とが存在するか判定する。また、リソース有無判定部320は空きリソースを条件cの場合に有する計算機が存在するか判定する。
条件a)非終了プロセスを実行した場合
条件b1)実行する予定の特定プロセスの代わりに非終了プロセスを実行した場合
条件b2)条件b1の特定プロセスを実行した場合(条件b1の特定プロセスを実行する予定の計算機を除く)
条件c)実行する予定の特定第2プロセスを停止して非終了プロセスを実行した場合
前記非終了プロセス移行先計算機は、上記条件aにおいて非終了プロセスの発生時間帯に空きリソースを有するものである。
前記移行プロセス移行元計算機は、上記条件b1において非終了プロセスの発生時間帯に空きリソースを有するものである。
前記移行プロセス移行先計算機は、上記条件b2において非終了プロセスの発生時間帯に空きリソースを有するものである。
前記プロセス停止計算機は、上記条件cにおいて非終了プロセスの発生時間帯に空きリソースを有するものである。
前記移行プロセスは、上記条件b1において非終了プロセスの発生時間帯に空きリソースを有する計算機と上記条件b2において非終了プロセスの発生時間帯に空きリソースを有する計算機とが存在する場合の特定プロセスのことである。
前記停止プロセスは、上記条件cにおいて非終了プロセスの発生時間帯に空きリソースを有する計算機が存在する場合の特定第2プロセスのことである。
非終了プロセス移行部330は、以下の条件Aを満たす場合に、非終了プロセス移行先計算機に対して、発生時間帯予測部310が予測した非終了プロセスの発生時間帯に非終了プロセスを実行させるようCPU911を用いて命令する。非終了プロセス移行部330は、例えば、前記プロセス制御(例1)を実行する。
条件A)リソース有無判定部320が非終了プロセス移行先計算機が有ると判定した場合
移行プロセス移行部340(特定プロセス移行部)は、以下の条件B1〜B3を全て満たす場合(または条件B2とB3とを満たす場合)に、移行プロセス移行元計算機に対して、発生時間帯予測部310が予測した非終了プロセスの発生時間帯に移行プロセスの代わりに非終了プロセスを実行させるようCPU911を用いて命令する。さらに、移行プロセス移行部340は、以下の条件B1〜B3を全て満たす場合(または条件B2とB3とを満たす場合)に、移行プロセス移行先計算機に対して、発生時間帯予測部310が予測した非終了プロセスの発生時間帯に移行プロセスを実行させるようCPU911を用いて命令する。移行プロセス移行部340は、例えば、前記プロセス制御(例2、例3)を実行する。
条件B1)非終了プロセス移行部330が非終了プロセス移行先計算機に非終了プロセスを実行できない場合
条件B2)リソース有無判定部320が移行プロセス移行元計算機が有ると判定した場合
条件B3)リソース有無判定部320が移行プロセス移行先計算機が有ると判定した場合
停止プロセス停止部350(特定第2プロセス停止部)は、以下の条件C1〜C3を全て満たす場合(または条件C3を満たす場合)に、プロセス停止計算機に対して、発生時間帯予測部310が予測した非終了プロセスの発生時間帯に停止プロセスを停止させるようCPU911を用いて命令する。さらに、停止プロセス停止部350は、以下の条件C1〜C3を全て満たす場合(または条件C3を満たす場合)に、プロセス停止計算機に対して、発生時間帯予測部310が予測した非終了プロセスの発生時間帯に非終了プロセスを実行させるようCPU911を用いて命令する。停止プロセス停止部350は、例えば、前記プロセス制御(例4、例5)を実行する。
条件C1)非終了プロセス移行部330が非終了プロセス移行先計算機に非終了プロセスを実行できない場合
条件C2)移行プロセス移行部340が移行プロセス移行元計算機に移行プロセスのかわりに非終了プロセスを実行できない場合
条件C3)リソース有無判定部320がプロセス停止計算機が有ると判定した場合
非終了プロセス停止部360は、以下の条件D1〜D3を全て満たす場合(または条件D1〜D3の少なくともいずれかを満たす場合)に、非終了プロセス計算機に対して、発生時間帯予測部310が予測した非終了プロセスの発生時間帯に非終了プロセスを停止させるようCPU911を用いて命令する。
条件D1)非終了プロセス移行部330が非終了プロセス移行先計算機に非終了プロセスを実行できない場合
条件D2)移行プロセス移行部340が移行プロセス移行元計算機に移行プロセスのかわりに非終了プロセスを実行できない場合
条件D3)停止プロセス停止部350がプロセス停止計算機に停止プロセスの停止と非終了プロセスの実行とをできない場合
制御対象時刻設定部370は、リソース有無判定部320が非終了プロセス移行先計算機が特定の制御対象時刻に有ると判定した場合に、制御対象時刻より後の時刻を新たな制御対象時刻としてCPU911を用いて制御装置記憶部390に設定する。また、制御対象時刻設定部370は、リソース有無判定部320が非終了プロセス移行先計算機が制御対象時刻に無いと判定した場合に、制御対象時刻より前の時刻を新たな制御対象時刻としてCPU911を用いて制御装置記憶部390に設定する。
リソース情報取得部380は、各計算機210から各プロセスを実行するために使用したリソースの情報・必要と思われるリソース情報を取得するとともに、必要に応じて制御装置記憶部390に記憶する。リソース情報は、例えば、CPU使用時間やメモリ使用量を示す。
制御装置記憶部390は制御装置300で使用されるデータが記憶される記憶機器である。例えば、制御装置記憶部390は以下のようなデータを記憶する。
・各計算機210が過去に実行した各プロセスについてのリソース情報(リソース情報は各プロセスのリソース使用量の履歴を示す)
・リソース情報に基づいて予測された非終了プロセスの発生時間帯
・リソース情報に基づいて予測された各プロセスの今後のリソース使用量
・プロセスが所定時間内に終了するか否かの判定基準とする所定のリソース量(以下、リソース基準量とする)
・所定のプロセスの周期
・所定のプロセスの優先度
・所定のプロセスの有効分割数
・所定のアプリケーションプログラムの重要度
・制御対象時刻
・制御対象目標時刻
図4は、実施の形態1における制御装置300のプロセス制御方法を示すフローチャートである。
実施の形態1における制御装置300が実行するプロセス制御処理について、図4に基づいて以下に説明する。
「〜部」で説明する制御装置300の各構成要素は以下の処理をCPU911を用いて実行する。
<S2101:発生時間帯予測処理>
発生時間帯予測部310は、複数の計算機210により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をCPU911を用いて予測する。
例えば、発生時間帯予測部310は、制御装置記憶部390からリソース情報とリソース基準量とを取得し、取得したリソース情報が示す過去に使用されたリソースの変化量に基づいて各プロセスの今後のリソース使用量を予測する。そして、発生時間帯予測部310は取得したリソース基準量と予測したリソース使用量とを比較し、予測したリソース使用量がリソース基準量より大きい値になる時間帯を非終了プロセスの発生時間帯として算出する。算出した発生時間帯は非終了プロセスになる時間帯が何回目の周期であるかを示す。但し、時間帯は時刻を示しても構わない。
例えば、発生時間帯予測部310は以下のようにして非終了プロセスの発生時間帯を算出する。
ここで、プロセスaの周期が50ミリ秒であり、過去のCPU使用時間(リソース使用量の一例)が「1回目:19ミリ秒(処理開始時刻:10時10分10秒050ミリ秒)」、「2回目:29ミリ秒(処理開始時刻:10時10分10秒100ミリ秒)」、「3回目:39ミリ秒(処理開始時刻:10時10分10秒150ミリ秒)」であり、CPU基準時間(リソース基準量の一例)が50ミリ秒であるものとする。
発生時間帯予測部310はプロセスaのx回目の周期におけるCPU使用時間yを近似式「y=1回目のCPU使用時間+(x×変化量)」で算出する。そして、発生時間帯予測部310はCPU使用時間yがCPU基準時間を越える周期の回数xを関係式「CPU基準時間<1回目のCPU使用時間+((x−1)×変化量)」で算出し、算出したxを非終了プロセス(プロセスa)の発生時間帯とする。各値を代入すると関係式は「50<19+((x−1)×10)」であるから、この場合の非終了プロセスの発生時間帯は、プロセスaの5回目の周期(処理開始時刻:10時10分10秒250ミリ秒)以降となる。
発生時間帯予測部310は非終了プロセスの発生時間帯における他のプロセスのリソース使用量も予測し、非終了プロセスの発生時間帯、非終了プロセスの発生時間帯における非終了プロセスのリソース使用量および非終了プロセスの発生時間帯における他のプロセスのリソース使用量を制御装置記憶部390に記憶するものとする。
発生時間帯予測部310は今後のリソース使用量を表す近似式を線形方程式で生成してもよいし、非線形方程式で生成してもよい。
<S2102:非終了プロセス移行処理>
非終了プロセス移行部330は、以下の条件Aを満たす場合に、非終了プロセスを非終了プロセス計算機から非終了プロセス移行先計算機に移行する「非終了プロセス移行制御」を実行する。非終了プロセス移行部330は、例えば、前記プロセス制御(例1)を実行する。
条件A)リソース有無判定部320が非終了プロセス移行先計算機が有ると判定した場合
<S2103>
制御装置300は、S2102において非終了プロセス移行部330が非終了プロセス移行制御を実行した場合、プロセス制御処理を終了し、S2102において非終了プロセス移行部330が非終了プロセス移行制御を実行しなかった場合(前記条件B1、C1、D1に該当する)、S2104を処理する。
<S2104:移行プロセス移行処理>
移行プロセス移行部340は、以下の条件B2とB3とを満たす場合に、移行プロセスを移行プロセス移行元計算機から移行プロセス移行先計算機に移行すると共に非終了プロセスを非終了プロセス計算機から移行プロセス移行元計算機に移行する「移行プロセス移行制御」を実行する。移行プロセス移行部340は、例えば、前記プロセス制御(例2、例3)を実行する。
条件B2)リソース有無判定部320が移行プロセス移行元計算機が有ると判定した場合
条件B3)リソース有無判定部320が移行プロセス移行先計算機が有ると判定した場合
<S2105>
制御装置300は、S2104において移行プロセス移行部340が移行プロセス移行制御を実行した場合、プロセス制御処理を終了し、S2104において移行プロセス移行部340が移行プロセス移行制御を実行しなかった場合(前記条件C2、D2に該当する)、S2106を処理する。
<S2106:停止プロセス停止処理>
停止プロセス停止部350は、以下の条件C3を満たす場合に、プロセス停止計算機の停止プロセスを停止すると共に非終了プロセスを非終了プロセス計算機からプロセス停止計算機に移行する「停止プロセス停止制御」を実行する。停止プロセス停止制御を実行する場合、停止プロセス停止部350は非終了プロセスを含むアプリケーションより重要度の低いアプリケーションの各プロセスを停止する。停止プロセス停止部350は、例えば、前記プロセス制御(例4、例5)を実行する。
条件C3)リソース有無判定部320がプロセス停止計算機が有ると判定した場合
<S2107>
制御装置300は、S2106において停止プロセス停止部350が停止プロセス停止制御を実行した場合、プロセス制御処理を終了し、S2106において停止プロセス停止部350が停止プロセス停止制御を実行しなかった場合(前記条件D3に該当する)、S2108を処理する。
<S2108:非終了プロセス停止処理>
非終了プロセス停止部360は非終了プロセス計算機の非終了プロセスを停止する「非終了プロセス停止制御」を実行する。
上記プロセス制御処理において移行された非終了プロセスと移行プロセスとは、移行後またはS2101で予測された発生時間帯において、移行先の計算機210に実行される。
制御装置300は、非終了プロセス移行制御(S2102)、移行プロセス移行制御(S2104)または停止プロセス停止制御(S2106)を実行することにより、非終了プロセスを周期内に終了することができ、アプリケーションプログラムの処理にデッドラインミスが発生することを防止することができる。
以下に、非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106の詳細について説明する。
<詳細例1>
図5は、実施の形態1(詳細例1)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106の詳細例1について、図5に基づいて以下に説明する。
「〜部」で説明する制御装置300の各構成要素は以下の処理をCPU911を用いて実行する。
<S2201:リソース有無判定処理>
リソース有無判定部320は、空きリソースをS2101で予測された非終了プロセスの発生時間帯に有する計算機210の有無を判定する。
非終了プロセス移行処理S2102の場合、リソース有無判定部320は以下の条件aにおいて非終了プロセスの発生時間帯に空きリソースを有する非終了プロセス移行先計算機の有無を判定する。
移行プロセス移行処理S2104の場合、リソース有無判定部320は、以下の条件b1において非終了プロセスの発生時間帯に空きリソースを有する移行プロセス移行元計算機の有無と、以下の条件b2において非終了プロセスの発生時間帯に空きリソースを有する移行プロセス移行先計算機の有無とを判定する。
停止プロセス停止処理S2106の場合、リソース有無判定部320は以下の条件cにおいて非終了プロセスの発生時間帯に空きリソースを有するプロセス停止計算機の有無を判定する。
条件a)非終了プロセスを実行した場合
条件b1)実行する予定の特定プロセスの代わりに非終了プロセスを実行した場合
条件b2)条件b1の特定プロセスを実行した場合(条件b1の特定プロセスを実行する予定の計算機を除く)
条件c)実行する予定の特定第2プロセスを停止して非終了プロセスを実行した場合
例えば、リソース有無判定部320は、制御装置記憶部390に記憶されている非終了プロセスの発生時間帯、プロセスの周期、プロセスの優先度、非終了プロセスの発生時間帯における各プロセスのリソース使用量に基づいて、非終了プロセスの発生時間帯における非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機の有無を判定する。
例えば、リソース有無判定部320は、CPU911の空き時間(空きリソースの一例)を非終了プロセスの発生時間帯に有する非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機の有無を判定する。
例えば、リソース有無判定部320は以下の式1を計算することにより各計算機210のCPU911の空き時間を持つ計算機の有無を判定する。
Figure 0004370313
<S2202>
制御装置300は、S2201においてリソース有無判定部320が当該計算機210(非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機)が有ると判定した場合、S2203を処理し、S2201においてリソース有無判定部320が当該計算機210が無いと判定した場合、処理を終了する。
<S2203:制御処理>
非終了プロセス移行部330が非終了プロセス移行制御を実行し、または、移行プロセス移行部340が移行プロセス移行制御を実行し、または、停止プロセス停止部350が停止プロセス停止制御を実行する。
<詳細例2>
詳細例2では、「全アプリケーションプログラムの実行」の実現性を向上させるために、プロセスをサブプロセスに分割する例について説明する。
図6は、実施の形態1(詳細例2)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106の詳細例2について、図6に基づいて以下に説明する。
「〜部」で説明する制御装置300の各構成要素は以下の処理をCPU911を用いて実行する。
<S2301:リソース有無判定処理>
リソース有無判定部320は、前記S2201と同様に、当該計算機210(非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機)の有無を判定する。
<S2302>
制御装置300は、S2301においてリソース有無判定部320が当該計算機210が有ると判定した場合、S2305を処理し、S2301においてリソース有無判定部320が当該計算機210が無いと判定した場合、S2303を処理する。
<S2303>
非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、制御装置記憶部390に記憶されているプロセスの有効分割数と現在のプロセス(非終了プロセス、移行プロセス)の分割数とを比較し、現在の分割数が有効分割数未満であればS2304を処理し、現在の分割数が有効分割数以上であれば処理を終了する。
<S2304:プロセス分割処理>
非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350はプロセスの分割数を増加(例えば、+1)する。
プロセスの分割後、制御装置300はS2301を処理する。
プロセスの分割後のS2301において、リソース有無判定部320は、プロセスの分割数に応じて、全非終了サブプロセスを実行した場合に空きリソースを非終了プロセスの発生時間帯に有する当該計算機群(複数の非終了プロセス移行先計算機、複数の移行プロセス移行元計算機、複数の移行プロセス移行先計算機、複数のプロセス停止計算機)の有無を判定する。
例えば、リソース有無判定部320は、プロセスのCPU使用時間(リソース使用量の一例)を分割数で割った値を各サブプロセスのCPU使用時間とし、各サブプロセスのCPU使用時間に基づいて当該計算機210の有無を判定する。
また例えば、リソース有無判定部320は、サブプロセスの数(プロセスの分割数)と同じ数の当該計算機210の有無を判定し、当該計算機210の数がサブプロセスの数より少ない場合は当該計算機210が無いものとして判定する。
<S2305:制御処理>
非終了プロセス移行部330が非終了プロセス移行制御を実行し、または、移行プロセス移行部340が移行プロセス移行制御を実行し、または、停止プロセス停止部350が停止プロセス停止制御を実行する。
S2304においてプロセスが分割された場合、非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、例えば、各サブプロセスをそれぞれ異なる計算機210に移行する。
<詳細例3>
詳細例3では、「CPU空き時間の大きな計算機210の確保」の実現性を向上させるために、プロセスをサブプロセスに分割する例について説明する。
図7は、実施の形態1(詳細例3)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106の詳細例3について、図7に基づいて以下に説明する。
「〜部」で説明する制御装置300の各構成要素は以下の処理をCPU911を用いて実行する。
<S2311:リソース有無判定処理>
リソース有無判定部320は、前記S2301と同様に、当該計算機210(非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機)の有無を判定する。
<S2312>
非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、前記S2303と同様に、プロセスの有効分割数と現在の分割数とを比較し、現在の分割数が有効分割数未満であればS2313を処理し、現在分割数が有効分割数以上であればS2314を処理する。
<S2313:プロセス分割処理>
非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350はプロセスの分割数を増加(例えば、+1)する。
プロセスの分割後、制御装置300はS2311を処理する。
S2311〜S2313により、制御装置300は、プロセスを各分割数で分割した場合について、当該計算機210の有無と当該計算機210の空きリソース量(例えば、前記式1において「k=1」とした場合の左辺の値[0と大小比較している数式部分の値])とを算出することができる。
<S2314>
制御装置300は、リソース有無判定部320が少なくともいずれかのプロセス分割数において当該計算機210が有ると判定した場合、S2315を処理し、リソース有無判定部320がいずれのプロセス分割数においても当該計算機210が無いと判定した場合、処理を終了する。
<S2315:制御処理>
非終了プロセス移行部330が非終了プロセス移行制御を実行し、または、移行プロセス移行部340が移行プロセス移行制御を実行し、または、停止プロセス停止部350が停止プロセス停止制御を実行する。
このとき、非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、空きリソース量が最も大きい計算機210が存在するプロセスの分割数および計算機群を選択し、選択した分割数のサブプロセスそれぞれを選択した計算機群の各計算機210に移行する。
<詳細例4>
詳細例4では、「全アプリケーションプログラムの実行」と「デッドラインミスの長期防止」との実現性を向上させるために、非終了プロセスの発生時間帯の代わりに制御対象時刻を設定する例について説明する。
まず、制御対象時刻について説明する。
制御対象時刻は、制御対象時刻設定部370がリソース有無判定部320による元の制御対象時刻における当該計算機210(非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機)の有無の判定結果に基づいて設定し、制御装置記憶部390に記憶する時刻データである。
また、制御対象時刻は、非終了プロセス移行制御(S2102)、移行プロセス移行制御(S2104)または停止プロセス停止制御(S2106)を実行することが可能な、できるだけ先の時刻を示す。つまり、制御対象時刻が先の時刻を示すほど、制御装置300はデッドラインミスをより長期間防止することができる。
例えば、制御対象時刻設定部370はリソース有無判定部320が当該計算機210が制御対象時刻に有ると判定した場合に、制御対象時刻より後の時刻を新たな制御対象時刻として設定する。また、制御対象時刻設定部370はリソース有無判定部320が当該計算機210が制御対象時刻に無いと判定した場合に、制御対象時刻より前の時刻を新たな制御対象時刻として設定する。
また例えば、制御対象時刻設定部370はS2101において発生時間帯予測部310が予測した非終了プロセスの発生時間帯(非終了プロセスが最も最短に発生する時刻とする)と所定の制御対象目標時刻とを用いて反復解法により制御対象時刻を設定する。反復解法には二分法、はさみうち法などがある。反復解法を実行する際に、制御対象時刻設定部370はリソース有無判定部320が前記式1で算出できるCPU911の空き時間(前記式1において「k=1」とした場合の左辺の値[0と大小比較している数式部分の値])を利用してもよいし、発生時間帯予測部310が生成するリソース使用量を表す近似式を利用してもよい。
二分法を用いる場合、制御対象時刻設定部370は以下のように制御対象時刻を設定する。
例えば、制御対象時刻設定部370は非終了プロセスの発生時間帯から対象目標時刻までの時間内の任意の時刻を制御対象時刻の初期値とし、対象目標時刻を最大評価時刻の初期値とし、非終了プロセスの発生時間帯を最小評価時刻の初期値とする。
リソース有無判定部320が当該計算機210が制御対象時刻に無いと判定した場合、制御対象時刻設定部370は最小評価時刻(初期値:非終了プロセスの発生時間帯)と制御対象時刻との中間の時刻を新たな制御対象時刻とし、それまでの制御対象時刻を新たな最大評価時刻とする。
また、リソース有無判定部320が当該計算機210が制御対象時刻に有ると判定した場合、制御対象時刻設定部370は最大評価時刻(初期値:制御対象目標時刻)と制御対象時刻との中間の時刻を新たな制御対象時刻とし、それまでの制御対象時刻を新たな最小評価時刻とする。
以後、制御対象時刻設定部370はリソース有無判定部320の判定結果に基づいて最小評価時刻と最大評価時刻との時間幅を絞り込み、リソース有無判定部320が当該計算機210が有ると判定するなるべく先の時刻を制御対象時刻として設定する。
例えば、制御対象時刻設定部370は反復解法により制御対象時刻を設定する制御対象時刻設定処理を以下の終了条件を満たす場合に終了する。
・リソース有無判定部320が制御対象時刻について算出したCPU911の空き時間、または、発生時間帯予測部310が生成したリソース使用量を表す非線形方程式で算出される制御対象時刻におけるCPU空き時間が、「0」または「0以上所定の時間以下」の場合
・制御対象時刻と最小評価時刻との時間幅または制御対象時刻と最大評価時刻との時間幅が所定の時間以下の場合
・制御対象時刻設定処理を所定回数または所定時間以上、実行した場合
・現在時刻から制御対象時刻までの時間が非終了プロセス移行制御(S2102)、移行プロセス移行制御(S2104)または停止プロセス停止制御(S2106)に必要な時間との差が所定時間以下の場合(例えば、各制御に必要な時間は予め制御装置記憶部390に記憶しておく)
図8は、実施の形態1(詳細例4)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106の詳細例4について、図8に基づいて以下に説明する。
「〜部」で説明する制御装置300の各構成要素は以下の処理をCPU911を用いて実行する。
<S2321:リソース有無判定処理>
リソース有無判定部320は、前記S2201と同様に、当該計算機210(非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機)の有無を判定する。
<S2322>
制御装置300は、S2321においてリソース有無判定部320が当該計算機210が有ると判定した場合、S2323を処理し、S2321においてリソース有無判定部320が当該計算機210が無いと判定した場合、S2325を処理する。
<S2323>
制御対象時刻設定部370は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、S2324を処理し、終了条件を満たす場合、S2327を処理する。
<S2324:制御対象時刻設定処理1>
制御対象時刻設定部370は現在の制御対象時刻より後の時刻を新たな制御対象時刻として設定する。
<S2325>
制御対象時刻設定部370は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、S2326を処理し、終了条件を満たす場合、S2327を処理する。
<S2326:制御対象時刻設定処理2>
制御対象時刻設定部370は現在の制御対象時刻より前の時刻を新たな制御対象時刻として設定する。
<S2327>
制御装置300は、いずれかの制御対象時刻についてリソース有無判定部320が当該計算機210が有ると判定した場合、S2328を処理し、いずれの制御対象時刻においてもリソース有無判定部320が当該計算機210が無いと判定した場合、処理を終了する。
<S2328:制御処理>
非終了プロセス移行部330が非終了プロセス移行制御を実行し、または、移行プロセス移行部340が移行プロセス移行制御を実行し、または、停止プロセス停止部350が停止プロセス停止制御を実行する。
このとき、非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、最も先の時刻を示す制御対象時刻を対象として各制御を実行する。
<詳細例5>
詳細例5では、「全アプリケーションプログラムの実行」と「デッドラインミスの長期防止」との実現性を向上させるために、プロセスをサブプロセスに分割し、非終了プロセスの発生時間帯の代わりに制御対象時刻を設定する例について説明する。
詳細例5は上記詳細例2と上記詳細例4とを組み合わせた例である。
図9は、実施の形態1(詳細例5)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106の詳細例5について、図9に基づいて以下に説明する。
「〜部」で説明する制御装置300の各構成要素は以下の処理をCPU911を用いて実行する。
<S2401:リソース有無判定処理>
リソース有無判定部320は、前記S2301と同様に、当該計算機210(非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機)の有無を判定する。
<S2402>
制御装置300は、S2401においてリソース有無判定部320が当該計算機210が有ると判定した場合、S2403を処理し、S2401においてリソース有無判定部320が当該計算機210が無いと判定した場合、S2405を処理する。
<S2403>
制御対象時刻設定部370は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、S2404を処理し、終了条件を満たす場合、S2409を処理する。
<S2404:制御対象時刻設定処理1>
制御対象時刻設定部370は現在の制御対象時刻より後の時刻を新たな制御対象時刻として設定する。
<S2405>
非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、前記S2303と同様に、プロセスの有効分割数と現在の分割数とを比較し、現在の分割数が有効分割数未満であればS2407を処理し、現在の分割数が有効分割数以上であれば処理を終了する。
<S2406:プロセス分割処理>
非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350はプロセスの分割数を増加(例えば、+1)する。
プロセスの分割後、制御装置300はS2401を処理する。
<S2407>
制御対象時刻設定部370は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、S2408を処理し、終了条件を満たす場合、S2409を処理する。
<S2408:制御対象時刻設定処理2>
制御対象時刻設定部370は現在の制御対象時刻より前の時刻を新たな制御対象時刻として設定する。
<S2409>
制御装置300は、いずれかの制御対象時刻についてリソース有無判定部320が当該計算機210が有ると判定した場合、S2410を処理し、いずれの制御対象時刻についてもリソース有無判定部320が当該計算機210が無いと判定した場合、処理を終了する。
<S2410:制御処理>
非終了プロセス移行部330が非終了プロセス移行制御を実行し、または、移行プロセス移行部340が移行プロセス移行制御を実行し、または、停止プロセス停止部350が停止プロセス停止制御を実行する。
このとき、非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、最も先の時刻を示す制御対象時刻を対象として各制御を実行する。
また、最も先の時刻を示す制御対象時刻についてS2406においてプロセスが分割された場合、非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、例えば、各サブプロセスをそれぞれ異なる計算機210に移行する。
<詳細例6>
詳細例6では、「CPU空き時間の大きな計算機210の確保」と「全アプリケーションプログラムの実行」と「デッドラインミスの長期防止」との実現性を向上させるために、プロセスをサブプロセスに分割し、非終了プロセスの発生時間帯の代わりに制御対象時刻を設定する例について説明する。
詳細例6は上記詳細例3と上記詳細例4とを組み合わせた例である。
図10は、実施の形態1(詳細例6)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106の詳細例6について、図10に基づいて以下に説明する。
「〜部」で説明する制御装置300の各構成要素は以下の処理をCPU911を用いて実行する。
<S2501:リソース有無判定処理>
リソース有無判定部320は、前記S2301と同様に、当該計算機210(非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機)の有無を判定する。
<S2502>
非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、前記S2303と同様に、プロセスの有効分割数と現在の分割数とを比較し、現在の分割数が有効分割数未満であればS2503を処理し、現在分割数が有効分割数以上であればS2504を処理する。
<S2503:プロセス分割処理>
非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350はプロセスの分割数を増加(例えば、+1)する。
プロセスの分割後、制御装置300はS2501を処理する。
<S2504>
制御装置300は、リソース有無判定部320が少なくともいずれかのプロセス分割数において当該計算機210が有ると判定した場合、S2505を処理し、リソース有無判定部320がいずれのプロセス分割数においても当該計算機210が無いと判定した場合、S2507を処理する。
<S2505>
制御対象時刻設定部370は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、S2506を処理し、終了条件を満たす場合、S2509を処理する。
<S2506:制御対象時刻設定処理1>
制御対象時刻設定部370は現在の制御対象時刻より後の時刻を新たな制御対象時刻として設定する。
<S2507>
制御対象時刻設定部370は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、S2508を処理し、終了条件を満たす場合、S2509を処理する。
<S2508:制御対象時刻設定処理2>
制御対象時刻設定部370は現在の制御対象時刻より前の時刻を新たな制御対象時刻として設定する。
<S2509>
制御装置300は、いずれかの制御対象時刻およびプロセス分割数についてリソース有無判定部320が当該計算機210が有ると判定した場合、S2510を処理し、いずれの制御対象時刻およびプロセス分割数についてもリソース有無判定部320が当該計算機210が無いと判定した場合、処理を終了する。
<S2510:制御処理>
非終了プロセス移行部330が非終了プロセス移行制御を実行し、または、移行プロセス移行部340が移行プロセス移行制御を実行し、または、停止プロセス停止部350が停止プロセス停止制御を実行する。
このとき、非終了プロセス移行部330、移行プロセス移行部340または停止プロセス停止部350は、最も先の時刻を示す制御対象時刻を対象として、または、空きリソース量が最も大きい計算機210が存在するプロセスの分割数および計算機群を選択して、各制御を実行する。
上記制御装置300は計算機システム200においてアプリケーションプログラム(プロセス)を実行する計算機210の一台であっても構わない。
実施の形態1により、制御装置300は、例えば、計算機システム200において将来の非終了プロセスの発生を未然に防ぐことができる。
実施の形態2.
前記実施の形態1と同様の計算機システム200を前提に、制御装置300について以下に説明する。
本実施の形態において、デッドラインミスの要因となるプロセスは、デッドラインミス発生が予想されるアプリケーションプログラムにおいて、プロセスが必要とするCPU時間が増加傾向にあるプロセスとなる。プロセスが必要とするCPU時間が増加傾向かどうかは、発生時間帯予測部310によって検出される。検出の方法は、リソース情報取得部380が各プロセスが使用したCPU時間の履歴を制御装置記憶部390に保持しており、発生時間帯予測部310が履歴が示すCPU時間の変動に関する近似式の作成による方法である。例えば、発生時間帯予測部310は、求めた近似式が一次式であり、傾きが右上がりである場合などには、プロセスが必要とするCPU時間が増加傾向にあることを検出できる。
発生時間帯予測部310は、あるアプリケーションプログラムのデッドラインミス発生が予想される場合、そのアプリケーションプログラムを構成する全てのプロセスが必要とするCPU時間の近似式を計算し、プロセスが必要とするCPU時間が増加傾向にあるプロセスを抽出することになる。
以下、制御装置300の、資源割当方法(プロセス制御方法)のアルゴリズムについて説明する。
<説明に用いる記号>
a:アプリケーションプログラムのデッドラインミス発生の要因となったプロセス、
M:システム内の計算機の台数、
:現在時刻、
:デッドラインミス発生時刻、つまり、非終了プロセスが発生する発生時間帯
:Tより「配置所要時間」と「プロセスの切り替えに要する時間」だけ先の時刻(「配置所要時間」、「プロセスの切り替えに要する時間」は例えばあらかじめ求めてあり、制御装置記憶部390に記載されているものとする)、
P(x):プロセスxの処理周期、
c(x,i)プロセスxの時刻iにおける消費CPU時間、
E(i,j):計算機iの時刻jにおける空きCPU時間。
図19は、実施の形態2における制御装置300のプロセス制御方法を示すフローチャートである。
制御装置の最適配置(各プロセスをどの計算機に実行させるかを決定するプロセス制御方法)の手順の概要は以下の通りである。
手順1.非終了プロセス移行部330は、Tの時刻において、ある計算機に最も大きな空きCPU時間ができるような配置方法で最適配置する(S1001)。
手順2.1で配置方法が存在しない場合(S1002)、非終了プロセス移行部330は、時刻TからTの間で可能な配置方法のうち、最もTに近い時刻における配置方法で最適配置する(S1003)。
手順3.1〜2で配置方法が存在しない場合(S1004)、移行プロセス移行部340は、既存のプロセスを他の計算機に移動させ、空いたところに配置可能かどうかを探索し、配置可能であればそれで非終了プロセス移行部330が最適配置する(S1008)。
手順4.1〜3で配置方法が存在しない場合(S1009)、停止プロセス停止部350は重要度の低いアプリケーションプログラムを停止させ、非終了プロセス移行部330は空いたリソースに配置可能かどうかを調査する(S1010)。
S1005〜S1007については後述する。
各手順の制御装置を構成する各部の詳細動作を以下に示す。
手順1.図20と併せて以下に説明する。
<S1011>
手順1−1:リソース有無判定部320による時刻Tにおけるプロセスaの動作可能性の調査
リソース情報取得部380は、M台の計算機の時刻Tにおけるaから見た相対的な空きCPU時間を調査し、リソース有無判定部320は、リソース情報取得部380が収集した相対的な空きCPU時間をもとに、aから見た空きCPU時間がプロセスaの消費CPU時間よりも大きい事を確認する。プロセスaから見た相対的な空きCPU時間とは、aの周期P(a)からaよりも優先度の高い全プロセスが使用するCPU時間の合計を引いたものとなる。
リソース情報取得部380およびリソース有無判定部320が手順1で行う調査について、図11を用いて説明する。
例えば、ある計算機上で、プロセスx(1)〜x(n)が動作し、そこにプロセスaが参入しようとしているとする。プロセスaよりも優先度の高いプロセスとして、x(n−1)とx(n)が存在するとする。
本図によると、プロセスaの周期内でプロセスx(n−1)は2回、プロセスx(n)は4回動作可能である。
そして、プロセスaの周期から、x(n−1)の処理回数(=2)×1回の処理時間とx(n)の処理回数(=4)×プロセスx(n)の1回のCPU時間を引いたものが、プロセスaのCPU時間よりも大きければ、プロセスaは周期内に動作可能であると言える。
また、本実施の形態では、プロセスを複数の処理に分割することも可能としている。このため、1台の計算機にはプロセスaを動作させるだけの空きCPU時間はなくとも、プロセスaの処理を複数の処理に分割すれば、プロセスaの周期はそのままで、プロセスaが必要とするCPU時間は短くなるため、複数の計算機でプロセスaの処理を分散実行させることにより、プロセスaの処理が周期内に完了する可能性もある。
これらのことから、本手順では、リソース情報取得部380は、各計算機における、プロセスaから見た相対的なCPU空き時間を求め、リソース有無判定部320はそれらの和を求めるとともに、和とプロセスaのCPU時間とを比較することにより、プロセスaが動作できるかどうかを調べる。
リソース有無判定部320が求めた和の値がプロセスaが必要とするCPU時間よりも短ければ、システム内にプロセスaを動作させるだけの空きCPUが存在しないことになる。
本手順でのリソース情報取得部380およびリソース有無判定部320が行う調査内容を式にて表すと以下のようになる。
ここで、各計算機で動作するプロセスを「x,x,…,xn」とし、「m<n」の場合、「xの優先度<xの優先度」とする。そして、「xk−1の優先度<プロセスaの優先度<xの優先度」とする。
このとき、リソース情報取得部380が求める、計算機iの時刻Tにおけるプロセスaから見た相対的な空きCPU時間E(i,T)は以下の式(a)となる。
Figure 0004370313
Figure 0004370313
上記式(b)は、リソース有無判定部320が行う処理である、システム内に少なくともプロセスaを動作させるだけのリソースがあるかどうかを調べたものである。
<S1012>
式(b)を満たせば、システム内に、少なくともプロセスaを動作させるだけのリソースがあると判断し、「手順1−2」へ進む。
式(b)を満たすことができなければ、リソース有無判定部320は時刻Tではプロセスaを動作させるだけのCPU時間がシステム内に存在しないと判断し、「手順2(S1022)」に進む。
<S1013、S1014>
このとき、後述するプロセスaの分割数はjは1であり(S1013)、プロセスaの分割数jは最大分割数q以下である(S1014)。
分割数jが最大分割数q以下であれば手順1−2へ進む。
分割数jが最大分割数q以下でなければ手順1−6へ進む。
図12では、リソース情報取得部380が計算機A〜計算機Eの各計算機についてプロセスaから見た相対的な空きCPU時間の総和を上記式(b)で算出し、リソース有無判定部320によりシステム内にプロセスaを動作させるだけのリソースがあったことを示す。図12の場合、「手順1−2」へ進む。
<S1015>
手順1−2:非終了プロセス移行部330によりプロセスaを1からqまで分割した場合の、リソース有無判定部320による分割後のプロセスが動作できるだけの空きリソースを持つ計算機の調査
本手順では、非終了プロセス移行部330がプロセスaをいくつかに分割した場合、各分割プロセス(以下サブプロセス)が動作できるだけの計算機を調べる。なお、プロセスaを分割しても、各プロセスの優先度はaと同一であるとする。
本手順の調査内容について、図13を用いて説明する。
図13では、非終了プロセス移行部330がプロセスaを3つに分割した例を示している。
式(a)で、リソース情報取得部380は各計算機についてプロセスaから見た空きCPU時間を求める。
そして、リソース有無判定部320は、非終了プロセス移行部330によりプロセスaを3分割した場合のCPU時間とプロセスaから見た各計算機の空きCPU時間とを比較し、空きCPU時間の方が大きい計算機を抽出する。
本実施の形態では、プロセスaを3分割した各サブプロセスのCPU時間は、単純に、プロセスaのCPU時間の1/3とする。本例では、リソース有無判定部320が調査したところ、プロセスaのサブプロセスよりも空きCPU時間が大きい計算機はA,C,Eの3台であるとする。本例では非終了プロセス移行部330によりプロセスaを3分割しているので、aのサブプロセスよりも空きCPU時間が大きい計算機が3つ以上あれば、非終了プロセスはがこれらのうち3つの計算機に配置すればプロセスaは周期内で処理することができる。もし、aのサブプロセスよりも空きCPU時間が大きい計算機が2台以下であれば、3分割した本例では処理できないことになるので、非終了プロセス移行部330は分割数を変更する。
リソース有無判定部320およびリソース情報取得部380が行う本調査内容を一般的な式にて表すと以下のようになる。
ここで、プロセスaの分割数をjとし、jは1からqまで変動するものとする。また、qは、プロセスaが分割可能な数の最大値であり、制御装置記憶部390に記載されているものとする。
リソース有無判定部320は時刻Tにおいて、以下の式(c)を満たす計算機を全て抽出する。
Figure 0004370313
リソース有無判定部320の調査の結果、式(c)を満たす計算機がj台以上存在すれば、非終了プロセス移行部330がプロセスaをj個のサブプロセスに分割した場合に、j個のサブプロセスがデッドラインミスなく動作可能であると言うことができる。
<S1016>
リソース有無判定部320の調査の結果、式(c)を満たす計算機がj台以上存在しなければ、非終了プロセス移行部330はサブプロセスを配置することができないため、分割数jの値を1増やす。
「j(分割数)>q(最大分割数)」であれば、手順1−6(S1021)へ進む。
そうでなければ、手順1−2(S1015)へ戻る。
式(c)を満たす計算機がj台以上存在すれば、手順1−3(S1017)へ進む。
<S1017>
手順1−3:非終了プロセス移行部330による、プロセスaのサブプロセスを動作させると仮定した場合に、リソース有無判定部320による、プロセスaのサブプロセスよりも優先度が低いプロセスが動作できるだけの空きリソースを持つ計算機の抽出
本手順では、リソース有無判定部320は、非終了プロセス移行部330が手順1−2で得られたv台(v≧分割数j)の計算機上でプロセスaのサブプロセスを動作させた場合に、プロセスaのサブプロセスよりも実行優先度が低いプロセスがデッドラインミスなく動作できるかどうかを調べる。
プロセスaまたはプロセスaのサブプロセスが参入することにより、プロセスaよりも実行優先度の低いプロセスが利用可能なCPU時間は減る。そのため、プロセスaよりも実行優先度の低いプロセスがデッドラインミスなく動作できなくなる可能性がある。
そこで、リソース有無判定部320は、プロセスaよりも実行優先度の低い全てのプロセスについて、手順1−1と同様の方法で、デッドライン内での動作可能性を調べる。手順1−1と異なる点は、調査対象プロセスの周期内におけるaのサブプロセスのCPU時間の総和が考慮されている点である。
これを一般的な式にて表すと以下のようになる。
ここで、計算機i上で動作するプロセスを優先度の低い順にソートしたものを「x ,…,x ,aのサブプロセス,x (p+1),…,x n」とする。
そして、リソース有無判定部320は、x (k=1…p)が以下の式(d)を満たすかどうかを確認する。
Figure 0004370313
<S1018>
手順1−2で得られたv台の計算機中、プロセスaのサブプロセスよりも優先度の低い全てのプロセスが式(d)を満たす計算機が分割数j台以上存在しない場合、プロセスaのサブプロセスを配置できないため、非終了プロセス移行部330は、分割数jの値を+1する。
「j(分割数)>q(最大分割数)」であれば手順1−6(S1021)へ進む。
そうでなければ手順1−2(S1015)へ戻る。
手順1−2で得られたv台の計算機中、プロセスaのサブプロセスよりも優先度の低い全てのプロセスが式(d)を満たす計算機が分割数j台以上存在する場合、手順1−4(S1019)へ進む。
<S1019>
手順1−4:非終了プロセス移行部330によるj個のサブプロセスを配置する計算機群の候補の決定
リソース有無判定部320は、式(d)を満たすw(w≧j)台の計算機について各計算機の空きCPU時間を求める。
プロセスaのサブプロセスを含めた全てのプロセスをx〜xとすると、計算機u(u=1〜w)の空きCPU時間は、以下の式(e)で求められる。
Figure 0004370313
式(e)で求めた値の小さい順にソートし、ソート後の計算機を「e ,…,e 」とする。つまり、m<nの場合には「E(e ,T)<E(e ,T)」となる。非終了プロセス移行部330は、W台の計算機のうち計算機群[e ,e ,…,e ]をプロセスaをj個のサブプロセスに分割した場合において、最適配置の候補計算機群とする。図14は、式(d)を満たす計算機が計算機A〜計算機Eであり、プロセスaの分割数が4である場合には、[計算機B,計算機C,計算機D,計算機E]が一つの最適配置候補であることを示している。
手順1−5へ進む。
<S1020>
手順1−5:リソース情報取得部380による、j個のサブプロセス配置後の各計算機の空きCPU時間の調査
リソース情報取得部380は、手順1−4で候補となったj個の計算機群にプロセスaのサブプロセスを動作させた場合のシステム内の全計算機の空きCPU時間を求める。
求め方は、計算機i(1≦i≦M)上について、リソース情報取得部380が式(e)を用いて調査することにより求められる。
求めた各計算機の空きCPU時間の大きい順にソートし、ソート後の計算機を「f ,…,f 」とする。つまり、m<nにおいて、「E(f ,T) > E(f ,T)」となる。
非終了プロセス移行部330は、分割数jの値を+1し、「j(分割数)>q(最大分割数)」であれば手順1−6(S1021)へ、そうでなければ手順1−2(S1015)に戻る。
<S1021>
手順1−6:非終了プロセス移行部330によるリソース再配置を行う計算機の決定
制御装置の各部が手順1−2〜手順1−5をq(最大分割数)回行うことにより、z個の最適配置候補が求められていたとする。
「z=0」であれば、手順2へ進む。
非終了プロセス移行部330は、z個の最適配置候補で、どの候補が、1台に存在する空きCPU時間が大きいかを調べる。
方法は以下の通りである。
非終了プロセス移行部330はf 〜f の中で最も空きCPU時間の値の大きいものを抽出する。
最大のものが1台のみで、それがf であった場合には、[e ,…,e ]が最適配置となる。
最大のものが複数台あった場合には、最大のものだけでfの値を比較し、fが最も大きいものを抽出する。
最も大きいものが1台のみで、それがf であった場合には[e ,…,e ]が最適配置となる。
非終了プロセス移行部330はこの操作を、最大の空きCPU時間を持つ計算機が1台となるまで繰り返すことにより、最適配置を決定する。
例えば、分割数1〜4のときにプロセスaのサブプロセスが全て配置可能であり、それぞれの最適配置候補が手順1−4によって決められている場合の制御装置の各部の動作について、図15に基づいて説明する。
リソース有無判定部320およびリソース情報取得部380が各分割数におけるシステム内の全計算機(ここではA〜Fとする)の使用CPU時間(最低優先度プロセスの処理周期から、その周期内で全てのプロセスが使用したCPU時間を引いたもの)を調査したところ、図15に示す棒グラフのようになったとする。この場合、各分割数において、非終了プロセス移行部330が使用CPU時間の最も小さい計算機(空きCPU時間が最も大きい計算機)の使用CPU時間を調査したところ、「分割数4のときの計算機E」>「分割数1のときの計算機B」>「分割数2のときの計算機A」=「分割数3のときの計算機A」となる。つまり、空きCPU時間が最も大きい計算機は「分割数2のときの計算機A」と「分割数3のときの計算機A」である。そこで、さらに、非終了プロセス移行部330は分割数2のときのCPU使用状況と分割数3のときのCPU使用状況を比べる。各分割数において、2番目に使用CPU時間の小さい計算機(空きCPU時間が2番目に大きい計算機)を比較すると、「分割数2のときの計算機B」<「分割数3のときの計算機B」となる。ここでは、分割数2の場合に非終了プロセス移行部330が手順1−4にて決定した計算機配置が最適配置として採用される。
手順2:図21、図22と併せて以下に説明する。
手順1で制御装置により最適配置が求められない場合、Tの時刻ではシステム内に空きCPU時間が足りないことが原因と考えられる。
そこで、図16に示すように、制御対象時刻設定部370がTを少しずつ現在の時刻に近づけることにより、最適配置の候補を求める。
求め方は、パラメータとして、評価時刻Tを設け、制御対象時刻設定部370がTを変動させ、最適配置が存在すると思われる時刻の範囲を二分法によって徐々に絞り込んでいくことによって行う。
本手順の制御装置の各部の具体的な手順を以下に示す。
<S1101>
手順2−1:リソース有無判定部320による、デッドラインミス発生時刻におけるプロセスaの動作可能性の調査
制御対象時刻設定部370は初期値としてT=Tとする。
手順1−1と同様、リソース情報取得部380は時刻Tにおけるプロセスaからみた相対的なシステム内の空き時間の総和を求める。求め方は、式(a),(b)において、TをTに置き換えればよい。
<S1102>
リソース有無判定部320はリソース情報取得部380が求めた空き時間の総和とプロセスaのTにおけるCPU時間:c(a,T)を比較し、CPU時間:c(a,T)よりも小さければ、デッドラインミス発生時刻において、プロセスaを動作させるだけの空きCPU時間がシステム内に存在しないことになるので、制御装置は手順4の処理を実施する。
そうでなければ、手順2−2の処理を実施する。
<S1103、S1104>
このとき、後述するプロセスaの分割数はjは1であり(S1103)、プロセスaの分割数jは最大分割数q以下である(S1104)。
分割数jが最大分割数q以下であれば手順2−2へ進む。
分割数jが最大分割数q以下でなければ手順2−5へ進む。
<S1105>
手順2−2:非終了プロセス移行部330によりプロセスaを1からqまで分割した場合の、リソース有無判定部320による、分割後のプロセスを動作可能な空きCPU時間を持つ計算機の調査
非終了プロセス移行部330はプロセスaの分割数をjとする。「j=1,…,q」とする。最大分割数qは、制御装置記憶部390に記載されている、プロセスaの分割最大値である。
手順1−2と同様、リソース有無判定部320は時刻Tにおいて、式(c)を満たす計算機を抽出する。手順1−2の式(c)のTをTに置き換えればよい。
<S1106>
時刻Tにおいて式(c)を満たす計算機がj台以上存在しなければ、時刻Tにおいて、分割数jでは、最適配置が見つからないことになるから、手順2−5へ進む。
時刻Tにおいて式(c)を満たす計算機がj台以上存在すれば、手順2−3へ進む。
<S1107>
手順2−3:リソース有無判定部320による、プロセスaのサブプロセスを動作させた場合の、プロセスaのサブシステムよりも優先度が低いプロセスが動作できるだけの空きCPU時間を持つ計算機の抽出
手順2−2でリソース有無判定部320によりv(v≧j)台の計算機が見つかったとする。
手順1−3と同様、リソース有無判定部320はj個のサブプロセスをv台の計算機にそれぞれ配置した場合において、プロセスaのサブプロセスが動作した場合にプロセスaのサブプロセスよりも優先度の低いプロセスが動作できるかどうかを調べる。これは、リソース有無判定部320が式(d)を用いて調べることができる。手順1−3の式(d)において、TをTに置き換えればよい。
<S1108>
v台の計算機のうち、時刻Tにおいて式(d)を満たす計算機がj台以上存在しなければ、非終了プロセス移行部330はj個のサブプロセスを配置できないため、手順2−5へ進む。
v台の計算機のうち、時刻Tにおいて式(d)を満たす計算機がj台以上存在すれば、手順2−4へ進む。
<S1109>
手順2−4:j個のサブプロセスを配置する計算機群の候補の決定
手順2−3にて、式(d)を満たす計算機がw(≧j)台以上存在したら、リソース情報取得部380およびリソース有無判定部320は各計算機の空きCPU時間E(i,T)(1≦i≦w)を求める。空きCPU時間は、式(e)においてTをTとすればよい。
リソース有無判定部320は各計算機を空きCPU時間E(i,T)の小さい順にソートし、ソート後の計算機を「e ,…,e 」とする。つまり、「m<n」の場合には「E(e ,T)<E(e ,T)」となる。
非終了プロセス移行部330は、w台の計算機のうち計算機群[e ,e ,…,e ]を最適配置の候補とし、手順2−6へ進む。
<S1110>
手順2−5:非終了プロセス移行部330は、jの値を+1する。
「j(分割数)>q(最大分割数)」であればデッドラインミス発生時刻において配置方法が見つからなかったことになるので手順3へ進む。
「j≦q」であれば、手順2−2へ進む。
<S1111>
手順2−6:制御対象時刻設定部370はパラメータとして最大評価時刻T、最小評価時刻Tを設け、「T=T」、「T=T」とする。
<S1112>
手順2−7:最適配置が存在する時刻の範囲の絞り込み
「T−T」が「最小評価時刻間隔」以下であれば、非終了プロセス移行部330は、手順2−4または手順2−9で求めた最新の最適配置計算機群が最適配置とする。
なお、「最小評価時刻間隔」はあらかじめ制御装置記憶部390に示される値である。
本手法では、制御対象時刻設定部370がTとTの間隔を1/2ずつ縮めていくことにより解を絞り込む。このとき、TとTの間隔は無限に小さくすることができるので、システム側で、TとTの間隔の最小値(最小評価時刻間隔)を定めておき、TとTの間隔の値が最小値に等しくなった時点で絞込みを終了させS1118に進む。
<S1112〜S1115>
「T−T」が最小評価時刻間隔以下でなければ(S1112)、制御対象時刻設定部370は「T=(T−T)/2」とし、リソース情報取得部380は時刻Tでのプロセスaから見た相対的な計算機の空きCPU時間の総和を求め、リソース有無判定部320は式(b)を用いることによりプロセスaが動作できるだけのリソースがあるかどうかを調べる(S1113)。これは、式(b)において、TをTとすればよい。
式(b)を満たさない場合には(S1114)、最適配置は時刻T〜Tの間に存在することになるので、制御対象時刻設定部370はT=Tとして(S1115)、手順2−7へ進む。
式(b)を満たす場合には(S1114)、手順2−8へ進む。
「T−T」が最小評価時刻間隔以下であれば、S1118へ進む。
<S1116>
手順2−8:非終了プロセス移行部330は現在の分割数をj(j=1,…,q)とする。手順2−9へ進む。
<S1117>
手順2−9:リソース有無判定部320による時刻Tにおけるj個のサブプロセスの配置可能計算機群の抽出、最適配置がある時刻の絞込み
時刻Tにおいて、制御装置は手順2−2〜手順2−4を行う。
つまり、リソース有無判定部320は時刻Tにおいて式(c)を満たす計算機を抽出する。式(c)のTをTにすればよい。
そして、時刻Tにおいて式(c)を満たす計算機がj台存在しなければjの値を+1する。
「j≦q」であれば手順2−9へ進む。
「j>q」であれば、時刻T〜Tの間には最適配置が存在しないことになるので、制御対象時刻設定部370は「T=T」として手順2−7に進む。
時刻Tにおいて式(c)を満たす計算機がv台(v≧j)あるとし、非終了プロセス移行部330がこのv台の計算機それぞれにj分割したサブプロセスを動作させた場合、それらの計算機上で動作するプロセスでありサブプロセスよりも優先度の低い全てのプロセスが動作できるかどうかを、リソース有無判定部320は全てのプロセスに対して式(d)にてTをTとすることにより調べる。
そして、式(d)を満たす計算機がj台未満であれば、非終了プロセス移行部330はjの値を+1する。
「j≦q」であれば手順2−9へ進む。
「j>q」であれば、時刻T〜Tの間には最適配置がないことになるので、制御対象時刻設定部370は「T=T」として手順2−7に進む。
式(d)を満たす計算機がj台以上である場合、リソース情報取得部380およびリソース有無判定部320はサブプロセス配置後の空きCPU時間を式(e)においてTをTとすることにより求め、式(e)で求めた値の小さい順にソートし、非終了プロセス移行部330は空きCPU時間の小さいほうからj台:[e ,e ,…,e ]を最適配置の候補とする。最適配置候補がなければ手順3(S1120)に進む。
これにより、時刻T〜Tの間に最適解があることになるので、制御対象時刻設定部370は「T=T」として、手順2−7に進む。
<S1118−S1120>
非終了プロセス移行部330は、手順2−4または手順2−9にて候補として抽出した計算機群のうち、最もTに近い配置計算機群を最適配置として決定する。
手順3:図23と併せて以下に説明する。
手順2で最適配置が存在しない場合、システム内にプロセスaを動作させるだけの空きリソースは存在するが、各計算機にある空きリソースが小さいためにプロセスaをサブプロセスに分割しても最適配置できない可能性がある。
本手順では、移行プロセス移行部340は、各計算機上にある、プロセスaよりも優先度が高く、CPU時間の短いプロセスを他の計算機に移行させ、非終了プロセス移行部330はその計算機にプロセスaを配置することを試行する。
<S1201>
手順3−1:リソース情報取得部380による、各計算機の、プロセスaからみた場合の相対的な空きCPU時間の調査
リソース有無判定部320は、時刻Tにおける、プロセスaから見た場合の各計算機の相対的な空きCPU時間E(i,T)の値を大きい順にソートし、ソート後の計算機を「f,…,f」とする。つまり、「m<n」の場合は「E(f,T)>E(f,T)」となる。
手順3−2へ進む。
<S1202〜S1203>
手順3−2:
移行プロセス移行部340はソートした計算機から移動元計算機fを1台選択し、手順3−3へ進む。ここで、移動元計算機をf(u=1,…,M)とする(S1202)。
全ての移動元計算機fを選択済みの場合(S1203)、手順4へ進む。
<S1204>
手順3−3:移行プロセス移行部340は、計算機fの中で、プロセスaよりも実行優先度が高いプロセスについて、CPU時間の小さい順にソートし、ソート後のプロセスを「p,…,p」とする。つまり、「o<n」であれば、「c(p,T)<c(p,T)」となる。
<S1205>
手順3−4:移行プロセス移行部340による、計算機f上で動作するプロセスで、プロセスaが動作するために移動すべきプロセスの選択
リソース有無判定部320は計算機fにおいて、以下の式(f)を満足するプロセスをn個抽出する。
Figure 0004370313
<S1206>
移行プロセス移行部340は、このプロセス群を、リソース情報取得部380によって得られたCPU時間の短い順にソートし、(f)を満たすプロセスp(x=1〜n)が存在すれば、移行プロセス移行部340がプロセスpを他の計算機に動かせば、非終了プロセス移行部330は計算機fにてプロセスaは動作することができるので、手順3−5へ進む。
プロセスpが存在せず、「u=M」であれば、移行プロセス移行部340は全ての計算機について調査済みであり、移行プロセス移行部340がどのプロセスを移動してもプロセスaはデッドライン内に処理不可能なので、手順4へ進む。
プロセスがpが存在せず、「u<M」であれば、移行プロセス移行部340により調査していない計算機があるので、移行プロセス移行部340は、移動元計算機uの値を1増やして、手順3−2へ進む。
手順3−5:x=1とする。手順3−6へ進む。
<S1207>
手順3−6:リソース情報取得部380、リソース有無判定部320による移動対象プロセスpが動作可能なだけの空きCPU時間調査
移行プロセス移行部340は、pの分割数をj(j=1,…,q)とする。qは、制御装置記憶部390に記載されている、pの分割最大値である。
また、リソース情報取得部380は計算機fを除いた各計算機について、プロセスpから見た相対的な空き時間を式(a)を使用することにより求め、リソース有無判定部320は式(b)を満たすかどうかを確認する。
<S1208>
リソース有無判定部320による調査の結果、式(b)が満たせない場合には、pを動作させるだけの空きCPU時間が存在しないことになるので、移行プロセス移行部340は、xの値を+1する。
「x≦n」であれば、手順3−6へ進む。
「x>n」であり、「u<M」であれば、uの値を1増やして、手順3−3へ進む。
「u≧M」であれば、非終了プロセス移行部330がプロセスaを配置する計算機は存在しないので、手順4へ進む。
式(b)を満たす場合、手順3−7へ進む。
<S1209>
手順3−7:移行プロセス移行部340によるpの配置計算機の決定
移行プロセス移行部340は手順1−2〜1−4と同様の手法によりpの配置先候補計算機を決定する。
プロセスpが配置できない場合には、手順3−4に進む。
配置先候補計算機の決定後、手順3−8へ進む。
<S1210>
手順3−8:リソース有無判定部320による計算機fへのプロセスaの配置可能性調査
リソース有無判定部320は計算機fにプロセスaを配置できるかどうか調べる。
具体的には、f上で動作するプロセスを優先度順にソートしたものを、「b,…,b,a,bm+1,…,b」とすると、リソース有無判定部320はb(1≦j≦m)が以下の式(g)を満たすかどうかを調べる。
Figure 0004370313
<S1211〜S1212>
1≦j≦mにて式(g)を満たさなければ(S1211)、非終了プロセス移行部330はプロセスaを配置できないので、手順3−4に進む。
式(g)が満たせれば(S1211)、終了(S1212)。
手順4:手順4における制御装置の各部の動作を図24に併せて以下に説明する。
手順1〜3で配置可能な計算機が存在しない場合、システム内に十分な空きCPU時間がないことになる。この場合、停止プロセス停止部350が重要でないアプリケーションプログラムを構成する全てのプロセスを停止させることにより空きCPU時間を作成し、非終了プロセス移行部330により、手順1と同様の手法によって最適配置を決定する。
例えば、図17ではプロセスx(n)、プロセスx(n−1)の占有する時間が多いために、プロセスaが動作できない例を示している。
ここで、プロセスx(n)が、重要でないアプリケーションを構成するプロセスである場合、停止プロセス停止部350がプロセスx(n)を停止させれば、図18のように、非終了プロセス移行部330によりプロセスaを動作させることができるようになる。
本手順では、制御装置の各部がこのような操作を行うことにより、プロセスaを動作できるようにする。
<S1301>
手順4−1:停止プロセス停止部350、リソース有無判定部320による、システムリソースを空けられるかどうかの調査
停止プロセス停止部350は、プロセスaが属するアプリケーションプログラムAよりも重要度が低いアプリケーションプログラムを構成するプロセス群に、実行優先度がプロセスaより高いプロセスがあるかどうかを調べる。
<S1302、S1306>
実行優先度がプロセスaより高いプロセスがなければ、プロセスaを含むアプリケーションプログラムは制限時間内に動作不可能であるため、非終了プロセス停止部360はプロセスaの処理を停止する(S1306)。
実行優先度がプロセスaより高いプロセスがあれば、手順4−2へ進む。
<S1303>
手順4−2:停止プロセス停止部350による重要度が低いアプリケーションを構成する全プロセスの停止
アプリケーションAよりも重要度が低く、その中でも最も重要度の低いアプリケーションBを構成するプロセス群に、実行優先度がプロセスaより高いプロセスがある場合、停止プロセス停止部350がそのアプリケーションBを停止し、リソース有無判定部320がプロセスaが動作できるかどうかを確認する。プロセスaが動作できるかどうかは、リソース情報取得部380がアプリケーションBの全プロセス停止後の、時刻Tにおける計算機のプロセスaから見た相対的な空きCPU時間をリソース情報取得部380が式(a)で求めた上で、リソース有無判定部320が時刻Tにおいて式(b)を満たせばよい。
式(b)が満たされない場合には、手順4−1に戻る。
停止プロセス停止部350が重要度が低いアプリケーションを構成する全プロセスの停止後、手順4−4へ進む。
<S1305>
手順4−3:非終了プロセス移行部330は、現在の分割数をj(j=1…q)とする。リソース有無判定部320は、時刻Tにおいて式(c)を満たす計算機を抽出する。
式(c)を満たす計算機がj台以上存在しなければ、非終了プロセス移行部330はj個のサブプロセスを配置できないことになる。
jの値を+1する。
「j>q」であれば、手順4−2へ進む。
そうでなければ、手順4−3へ進む。
<S1304>
手順4−4:非終了プロセス移行部330による配置計算機の決定
式(c)を満たす計算機がv(v≧j)台存在したとし、v台の計算機上でaのサブプロセスが動作した場合、アプリケーションB停止後における、aのサブプロセスよりも実行優先度が低いプロセスが動作できるかどうかをリソース有無判定部320が式(d)においてTをTに置き換えることによって調べる。
式(d)を満たす計算機がj台以上あれば、リソース情報取得部380は式(d)を満たす計算機の時刻Tにおける空きCPU時間を式(e)において、TをTに置き換えることによって求める。
空きCPU時間の大きい順に並べ替え、ソート後の計算機を「e ,…,e 」とする。つまり、「m<n」の場合に「E(e ,T)>E(e ,T)」となる。
<S1305>
非終了プロセス移行部330は、v台の計算機のうち計算機群[e ,e ,…,e ]を配置計算機とし、終了。
ここで、図19のS1005〜S1007について説明する。
例えば、最適配置を決めるまでの時間制約として、手順1〜2が必ず行えるだけの時間と手順4が行えるだけの時間の最大値を設けておく。そして、手順1(S1001)、手順2(S1003)を行い、手順2(S1003)が終わった時点での残り時間が手順4が行えるだけの時間の最大値よりも大きければ、手順3(S1008)を手順4(S1010)を始めるべき時間まで行う。このようにして処理を行うことにより、重要度の低いアプリケーションプログラムを極力停止させることなくプロセスの配置先計算機を決定することができる。
各実施の形態において、アプリケーションプログラムに将来デッドラインミス発生が発生すると予想される場合に、デッドラインミス発生予想時刻よりもできるだけ先の時刻における各計算機の空きCPU時間、各アプリケーションプログラムの使用CPU時間をもとに、リアルタイム処理が継続可能なリソース配置方法の候補を抽出し、抽出したリソース配置方法の候補の中で、システム内に存在する各計算機の空きCPU時間が最大となるようなリソース割付を行うことを特徴とする制御装置300について説明した。つまり、長期にわたるデッドラインミスの防止を可能とするリソース動的制御システム(計算機システム200)について説明した。
また、アプリケーションに将来デッドラインミス発生が発生すると予想される場合に、デッドラインミス発生時刻よりも先の時刻を示す評価時刻を設け、評価時刻における空きCPU時間、各プロセスの使用CPU時間をもとに、リアルタイム処理が継続可能なリソース配置方法の候補を抽出し、抽出したリソース配置方法の候補の中で、システム内に存在する各計算機の空きCPU時間が最大となるようなリソース割付を行い、さらに、リソース割付先が決定しない場合には、評価時刻を変動させることにより各計算機の空きCPU時間、プロセスの使用CPU時間を変更させてリソース割付を決定することを特徴とするリソース動的制御方法(プロセス制御方法)について説明した。
各実施の形態における制御装置300は、デッドラインミスを解消するために、単純に各計算機のCPU使用率を比較するのではなく、各プロセスのCPU時間、各計算機の空きCPU時間をもとに配置を行うことを特徴とする。
また、各実施の形態における制御装置300は、CPU使用率の低い計算機へのプロセスマイグレーションを行う際のリソース割付方法として、プロセスを分割し、1つあたりのプロセスのCPU時間を小さくして、複数の計算機に割り付けることを特徴とする。
対象とするアプリケーションプログラムは突発的に処理負荷が増加する可能性があるので、各実施の形態における制御装置300は、空きCPU時間を1つの計算機にまとめておくことにより、最適配置をただちに決定できるという効果を得ることができる。
実施の形態1における計算機システム200の構成図。 実施の形態1における制御装置300、計算機210のハードウェア資源の一例を示す図である。 実施の形態1における制御装置300の構成図。 実施の形態1における制御装置300のプロセス制御方法を示すフローチャート。 実施の形態1(詳細例1)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャート。 実施の形態1(詳細例2)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャート。 実施の形態1(詳細例3)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャート。 実施の形態1(詳細例4)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャート。 実施の形態1(詳細例5)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャート。 実施の形態1(詳細例6)における非終了プロセス移行処理S2102、移行プロセス移行処理S2104、停止プロセス停止処理S2106を示すフローチャート。 実施の形態2におけるプロセスaから見た相対的なCPU利用状況を示す一例である。 実施の形態2におけるプロセスaの動作可能性調査を示す一例である。 実施の形態2におけるプロセス分割時の配置可能計算機の抽出を示す図である。 実施の形態2における配置候補計算機の決定を示す図である。 実施の形態2におけるプロセス分割時の配置候補計算機の決定を示す図である。 実施の形態2における手順2の考え方を示す図である。 実施の形態2におけるリソース不足時の例を示す図である。 実施の形態2におけるプロセスx(n)を停止させることによりCPU時間を空けた例を示す図である。 実施の形態2における全体の動作手順を示すフローチャートである。 実施の形態2における手順1の動作手順を示すフローチャートである。 実施の形態2における手順2の動作手順を示すフローチャートである。 実施の形態2における手順2の動作手順を示すフローチャートである。 実施の形態2における手順3の動作手順を示すフローチャートである。 実施の形態2における手順4の動作手順を示すフローチャートである。
符号の説明
200 計算機システム、210 計算機、300 制御装置、310 発生時間帯予測部、320 リソース有無判定部、330 非終了プロセス移行部、340 移行プロセス移行部、350 停止プロセス停止部、360 非終了プロセス停止部、370 制御対象時刻設定部、380 リソース情報取得部、390 制御装置記憶部、901 表示装置、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ装置、907 スキャナ装置、908 マイク、909 スピーカー、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

Claims (13)

  1. 複数の計算機により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をCPU(Central Proccessing Unit)を用いて予測する発生時間帯予測部と、
    前記発生時間帯予測部により予測された発生時間帯の複数のCPUの空き時間を計算機毎に合計した各計算機のCPU空合計時間をCPUを用いて計算するリソース情報取得部と、
    前記リソース情報取得部の計算結果に基づいて、非終了プロセスを実行して前記発生時間帯にCPU空合計時間が不足しない計算機を実行可能計算機として実行可能計算機の有無をCPUを用いて判定するリソース有無判定部と、
    前記リソース有無判定部により実行可能計算機が有ると判定された場合に、実行可能計算機を非終了プロセス移行先計算機として非終了プロセス移行先計算機に非終了プロセスを前記発生時間帯に実行させるようCPUを用いて命令する非終了プロセス移行部と
    を備え、
    前記非終了プロセス移行部は、前記リソース有無判定部により実行可能計算機が複数有ると判定された場合に、CPU空合計時間が最も短い実行可能計算機を非終了プロセス移行先計算機として選択し、非終了プロセス移行先計算機に非終了プロセスを実行させる
    ことを特徴とする制御装置。
  2. 前記リソース有無判定部は、非終了プロセスを分割した複数の非終了サブプロセスでありCPUの使用時間が均等な複数の非終了サブプロセスのうち一つの非終了サブプロセスを実行して前記発生時間帯にCPU空合計時間が不足しない計算機を実行可能計算機として、実行可能計算機が分割数以上有るか判定し、
    前記非終了プロセス移行部は、前記リソース有無判定部により実行可能計算機が分割数以上有ると判定された場合に、非終了プロセスを複数の非終了サブプロセスに分割し、分割数以上の実行可能計算機からCPU空合計時間の短い順に分割数と同数の実行可能計算機をそれぞれ非終了プロセス移行先計算機として選択し、選択した各非終了プロセス移行先計算機に非終了サブプロセスを一つずつ実行させる
    ことを特徴とする請求項1記載の制御装置。
  3. 前記リソース有無判定部は、実行可能計算機が分割数以上有るか複数の異なる分割数で判定し、
    前記非終了プロセス移行部は、分割数と同数の非終了プロセス移行先計算機を分割数毎に選択し、
    前記リソース情報取得部は、前記発生時間帯に各非終了プロセス移行先計算機が非終了サブプロセスを実行した場合の前記発生時間帯のCPU空合計時間であり各非終了プロセス移行先計算機を含む全ての計算機それぞれのCPU空合計時間をCPUを用いて計算し、全ての計算機のうちCPU空合計時間が最も長い計算機を最長計算機として分割数毎にCPUを用いて特定し、
    前記非終了プロセス移行部は、前記リソース情報取得部により分割数毎に特定された最長計算機のCPU空合計時間を比較して最長計算機のCPU空合計時間が最も長い分割数を特定し、特定した分割数で非終了プロセスを非終了サブプロセスに分割し、特定した分割数と同数の非終了プロセス移行先計算機に非終了サブプロセスを一つずつ実行させる
    ことを特徴とする請求項2記載の制御装置。
  4. 前記制御装置は、さらに、
    前記発生時間帯内の特定の時刻を制御対象時刻としてCPUを用いて設定する制御対象時刻設定部を備え、
    前記リソース情報取得部は、前記制御対象時刻設定部により設定された制御対象時刻の各計算機のCPU空合計時間を計算し、
    前記リソース有無判定部は、前記リソース情報取得部の計算結果に基づいて、前記制御対象時刻に非終了プロセスを実行してCPU空合計時間が不足しない実行可能計算機の有無を判定し、
    前記制御対象時刻設定部は、前記リソース有無判定部により実行可能計算機が有ると判定された場合に、前記発生時間帯内で前記制御対象時刻より後の時刻を新たな制御対象時刻としてCPUを用いて設定し、前記リソース有無判定部により実行可能計算機が無いと判定された場合に、前記発生時間帯内で前記制御対象時刻より前の時刻を新たな制御対象時刻としてCPUを用いて設定し、
    前記非終了プロセス移行部は、実行可能計算機が有る最も後の制御対象時刻に非終了プロセスを非終了プロセス移行先計算機に実行させる
    ことを特徴とする請求項1〜請求項3いずれかに記載の制御装置。
  5. 前記制御対象時刻設定部は、現在時刻から制御対象時刻までの時間と前記非終了プロセス移行部が非終了プロセス移行先計算機に非終了プロセスを実行させるまでに要する時間との差が所定の時間以上である場合に、前記新たな制御対象時刻を設定する
    ことを特徴とする請求項4記載の制御装置。
  6. 前記制御対象時刻設定部は、前記リソース有無判定部により計算された実行可能計算機のCPU空合計時間が所定の時間以上である場合に、前記新たな制御対象時刻を設定することを特徴とする請求項4記載の制御装置。
  7. 前記制御対象時刻設定部は、制御対象時刻と所定の時刻との時間幅が所定の時間以上である場合に、前記新たな制御対象時刻を設定する
    ことを特徴とする請求項4記載の制御装置。
  8. 前記リソース有無判定部は、実行可能計算機が無いと判定した場合、実行予定の少なくともいずれかのプロセスである特定プロセスを実行する代わりに非終了プロセスを実行して前記発生時間帯にCPU空合計時間が不足しない計算機を第1の実行可能計算機として第1の実行可能計算機の有無を判定し、特定プロセスを実行して前記発生時間帯にCPU空合計時間が不足しない計算機を第2の実行可能計算機として第2の実行可能計算機の有無を判定し、
    前記制御装置は、さらに、
    前記リソース有無判定部により前記第1の実行可能計算機と前記第2の実行可能計算機とが有ると判定された場合に、前記第1の実行可能計算機を特定プロセス移行元計算機として特定プロセス移行元計算機に特定プロセスを実行させる代わりに非終了プロセスを実行させるようCPUを用いて命令すると共に前記第2の実行可能計算機を特定プロセス移行先計算機として特定プロセス移行先計算機に特定プロセスを実行させるようCPUを用いて命令する特定プロセス移行部を備える
    ことを特徴とする請求項1〜請求項7いずれかに記載の制御装置。
  9. 前記リソース有無判定部は、前記第1の実行可能計算機と前記第2の実行可能計算機との少なくともいずれかが無いと判定した場合、実行予定の少なくともいずれかのプロセスである特定第2プロセスを停止すると共に非終了プロセスを実行して前記発生時間帯にCPU空合計時間が不足しない計算機を第3の実行可能計算機として第3の実行可能計算機の有無を判定し、
    前記制御装置は、さらに、
    前記リソース有無判定部により第3の実行可能計算機が有ると判定された場合に、第3の実行可能計算機を特定第2プロセス計算機として特定第2プロセス計算機に特定第2プロセスを停止させると共に非終了プロセスを実行させるようCPUを用いて命令する特定第2プロセス停止部と、
    前記リソース有無判定部により第3の実行可能計算機が無いと判定された場合に、非終了プロセスを実行する予定の計算機に非終了プロセスを停止させるようCPUを用いて命令する非終了プロセス停止部と
    を備えることを特徴とする請求項8記載の制御装置。
  10. 発生時間帯予測部が、複数の計算機により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をCPU(Central Proccessing Unit)を用いて予測する発生時間帯予測処理を行い、
    リソース情報取得部が、前記発生時間帯予測部により予測された発生時間帯の複数のCPUの空き時間を計算機毎に合計した各計算機のCPU空き合計時間をCPUを用いて計算するリソース情報取得処理を行い、
    リソース有無判定部が、前記リソース情報取得部の計算結果に基づいて、非終了プロセスを実行して前記発生時間帯にCPU空合計時間が不足しない計算機を実行可能計算機として実行可能計算機の有無をCPUを用いて判定するリソース有無判定処理を行い、
    非終了プロセス移行部が、前記リソース有無判定部により実行可能計算機が有ると判定された場合に、実行可能計算機を非終了プロセス移行先計算機として非終了プロセス移行先計算機に非終了プロセスを前記発生時間帯に実行させるようCPUを用いて命令する非終了プロセス移行処理を行う
    制御装置のプロセス制御方法であり、
    前記非終了プロセス移行部は、前記リソース有無判定部により実行可能計算機が複数有ると判定された場合に、CPU空合計時間が最も短い実行可能計算機を非終了プロセス移行先計算機として選択し、非終了プロセス移行先計算機に非終了プロセスを実行させる
    ことを特徴とする制御装置のプロセス制御方法。
  11. 前記リソース有無判定部は、実行可能計算機が無いと判定した場合、実行予定の少なくともいずれかのプロセスである特定プロセスを実行する代わりに非終了プロセスを実行して前記発生時間帯にCPU空合計時間が不足しない計算機を第1の実行可能計算機として第1の実行可能計算機の有無を判定し、特定プロセスを実行して前記発生時間帯にCPU空合計時間が不足しない計算機を第2の実行可能計算機として第2の実行可能計算機の有無を判定し、
    特定プロセス移行部が、前記リソース有無判定部により前記第1の実行可能計算機と前記第2の実行可能計算機とが有ると判定された場合に、前記第1の実行可能計算機を特定プロセス移行元計算機として特定プロセス移行元計算機に特定プロセスを実行させる代わりに非終了プロセスを実行させるようCPUを用いて命令すると共に前記第2の実行可能計算機を特定プロセス移行先計算機として特定プロセス移行先計算機に特定プロセスを実行させるようCPUを用いて命令する特定プロセス移行処理を行う
    ことを特徴とする請求項10記載の制御装置のプロセス制御方法。
  12. 前記リソース有無判定部は、前記第1の実行可能計算機と前記第2の実行可能計算機との少なくともいずれかが無いと判定した場合、実行予定の少なくともいずれかのプロセスである特定第2プロセスを停止すると共に非終了プロセスを実行して前記発生時間帯にCPU空合計時間が不足しない計算機を第3の実行可能計算機として第3の実行可能計算機の有無を判定し、
    特定第2プロセス停止部が、前記リソース有無判定部により第3の実行可能計算機が有ると判定された場合に、第3の実行可能計算機を特定第2プロセス計算機として特定第2プロセス計算機に特定第2プロセスを停止させると共に非終了プロセスを実行させるようCPUを用いて命令する特定第2プロセス停止処理を行い、
    非終了プロセス停止部が、前記リソース有無判定部により第3の実行可能計算機が無いと判定された場合に、非終了プロセスを実行する予定の計算機に非終了プロセスを停止させるようCPUを用いて命令する非終了プロセス停止処理を行う
    ことを特徴とする請求項11記載の制御装置のプロセス制御方法。
  13. 請求項10〜請求項12いずれかに記載のプロセス制御方法をコンピュータに実行させることを特徴とするプロセス制御プログラム。
JP2006188821A 2006-07-10 2006-07-10 制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム Expired - Fee Related JP4370313B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006188821A JP4370313B2 (ja) 2006-07-10 2006-07-10 制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006188821A JP4370313B2 (ja) 2006-07-10 2006-07-10 制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム

Publications (2)

Publication Number Publication Date
JP2008015958A JP2008015958A (ja) 2008-01-24
JP4370313B2 true JP4370313B2 (ja) 2009-11-25

Family

ID=39072877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006188821A Expired - Fee Related JP4370313B2 (ja) 2006-07-10 2006-07-10 制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム

Country Status (1)

Country Link
JP (1) JP4370313B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4308241B2 (ja) 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US8918792B2 (en) 2009-05-15 2014-12-23 Nec Corporation Workflow monitoring and control system, monitoring and control method, and monitoring and control program
JP4941507B2 (ja) * 2009-05-27 2012-05-30 沖電気工業株式会社 負荷分散制御装置、プログラム及び方法、並びに、負荷分散装置及び情報処理装置
WO2011118012A1 (ja) 2010-03-25 2011-09-29 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
JP5465105B2 (ja) * 2010-06-21 2014-04-09 三菱電機株式会社 計算機システム及びコンピュータプログラム及びパイプライン処理方法
JP5470177B2 (ja) * 2010-07-06 2014-04-16 株式会社日立製作所 トレースシステム
JP5867238B2 (ja) * 2012-03-30 2016-02-24 富士通株式会社 オートスケーリング方法,オートスケーリングプログラムおよびコンピュータノード
JP6277827B2 (ja) 2014-03-31 2018-02-14 富士通株式会社 情報処理装置、スケール管理方法およびプログラム
JP2015200986A (ja) * 2014-04-04 2015-11-12 株式会社東芝 クラウド制御システム、及びクラウド制御システムの制御プログラムのスケジューリング方法
CN105988872B (zh) * 2015-02-03 2020-02-18 阿里巴巴集团控股有限公司 一种cpu资源分配的方法、装置及电子设备
JP2017072876A (ja) * 2015-10-05 2017-04-13 Necエンジニアリング株式会社 仮想マシン管理システム、管理サーバ及び仮想マシン管理方法

Also Published As

Publication number Publication date
JP2008015958A (ja) 2008-01-24

Similar Documents

Publication Publication Date Title
JP4370313B2 (ja) 制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
US9734203B2 (en) Access path optimization through system statistics
US5325505A (en) Intelligent storage manager for data storage apparatus having simulation capability
US7383417B2 (en) Prefetching apparatus, prefetching method and prefetching program product
JP5516744B2 (ja) スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
JP5408356B2 (ja) スケジューラプログラム、マルチコアプロセッサシステムおよびスケジューリング方法
US9201694B2 (en) Job management apparatus and job management method
JP6191691B2 (ja) 異常検出装置、制御方法、及びプログラム
CN101743534A (zh) 通过增长和收缩资源分配来进行调度
RU2651216C2 (ru) Способ, устройство и компьютерный носитель данных для перемещения данных
CN116391175A (zh) 自动缩放用于企业级大数据工作负载的查询引擎
CN110058882A (zh) 一种用于cnn加速的opu指令集定义方法
JP6432333B2 (ja) 情報処理装置、データ処理方法、およびデータ処理プログラム
JP2009087190A (ja) ストリームデータ解析高速化装置、方法およびプログラム
KR102089450B1 (ko) 데이터이주장치 및 그 동작 방법
Chen et al. Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing
JP3642772B2 (ja) コンピュータ装置及びプログラム実行方法
CN116225696A (zh) 用于流处理系统的算子并发度调优方法及装置
JP5776813B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム
JPH09231144A (ja) データファイル管理方法およびデータファイル管理装置
JP2009282664A (ja) ストレージデータ管理システム及びストレージデータ管理プログラム
Samadi TUNEX: A knowledge-based system for performance tuning of the UNIX operating system
JP4535784B2 (ja) プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
KR20190015910A (ko) 멀티코어 임베디드 시스템에 대한 연속 프로파일링 장치 및 그 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090724

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090804

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090831

R150 Certificate of patent or registration of utility model

Ref document number: 4370313

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130904

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees