(57)【要約】【課題】将来のデッドラインミス（非終了プロセス）の発生を未然に防ぐことを目的とする。【解決手段】発生時間帯予測部３１０は各プロセスの過去のリソース使用量に基づいて各プロセスの将来のリソース使用量を予測し、予測結果に基づいてリソース使用量を確保できないために所定の時間内に終了しない非終了プロセスの発生時間帯を予測する。リソース有無判定部３２０は非終了プロセスの発生時間帯における各計算機の空きリソース量を算出する。非終了プロセス移行部３３０、移行プロセス移行部３４０、停止プロセス停止部３５０は各計算機の空きリソース量に基づいて、例えば、非終了プロセスを実行する予定の他の計算機に対して、非終了プロセスを実行させ、他のプロセスと入れ換えて非終了プロセスを実行させ、または、他のプロセスを停止させて非終了プロセスを実行させる。【選択図】図３
2008015958.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて予測する発生時間帯予測部と、
ＣＰＵの空き時間を前記発生時間帯予測部が予測した発生時間帯に有する計算機の有無をＣＰＵを用いて判定するリソース有無判定部と、
非終了プロセスを実行する予定の非終了プロセス計算機と異なる非終了プロセス移行先計算機に対して非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令する非終了プロセス移行部と
を備え、
前記リソース有無判定部は、非終了プロセスを実行した場合にＣＰＵの空き時間を有する非終了プロセス移行先計算機の有無を判定し、
前記非終了プロセス移行部は、前記リソース有無判定部が非終了プロセス移行先計算機が有ると判定した場合に、非終了プロセス移行先計算機に非終了プロセスを実行させる
ことを特徴とする制御装置。
【請求項２】
前記リソース有無判定部は、非終了プロセスが複数の非終了サブプロセスに分割された場合において、全非終了サブプロセスを実行した場合にＣＰＵの空き時間を有する非終了プロセス移行先計算機群の有無を判定し、
前記非終了プロセス移行部は、前記リソース有無判定部が非終了プロセス移行先計算機群が有ると判定した場合に、非終了プロセスを複数の非終了サブプロセスに分割し、非終了プロセス移行先計算機群に全非終了サブプロセスを実行させる
ことを特徴とする請求項１記載の制御装置。
【請求項３】
前記制御装置は、さらに、
前記リソース有無判定部が非終了プロセス移行先計算機が特定の制御対象時刻に有ると判定した場合に、制御対象時刻より後の時刻を新たな制御対象時刻としてＣＰＵを用いて設定し、前記リソース有無判定部が非終了プロセス移行先計算機が制御対象時刻に無いと判定した場合に、制御対象時刻より前の時刻を新たな制御対象時刻としてＣＰＵを用いて設定する制御対象時刻設定部を備え、
前記リソース有無判定部は、前記制御対象時刻設定部が設定した制御対象時刻における非終了プロセス移行先計算機の有無を判定し、
前記非終了プロセス移行部は、前記リソース有無判定部が制御対象時刻における非終了プロセス移行先計算機が有ると判定した場合に、非終了プロセス移行先計算機に非終了プロセスを実行させる
ことを特徴とする請求項１〜請求項２いずれかに記載の制御装置。
【請求項４】
前記制御対象時刻設定部は反復解法により制御対象時刻を設定することを特徴とする請求項３記載の制御装置。
【請求項５】
複数の計算機により周期的に実行され特定の優先度を持つ複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて予測する発生時間帯予測部と、
ＣＰＵの空き時間を前記発生時間帯予測部が予測した発生時間帯に有する計算機の有無をＣＰＵを用いて判定するリソース有無判定部と、
非終了プロセスと異なる特定プロセスを実行する特定プロセス移行元計算機に対して特定プロセスの代わりに非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させると共に、特定プロセス移行元計算機と異なる特定プロセス移行先計算機に対して特定プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令する特定プロセス移行部と
を備え、
前記リソース有無判定部は、特定プロセスの代わりに非終了プロセスを実行した場合にＣＰＵの空き時間を有する特定プロセス移行元計算機の有無を判定すると共に、特定プロセスを実行した場合にＣＰＵの空き時間を有する特定プロセス移行先計算機の有無を判定し、
前記特定プロセス移行部は、前記リソース有無判定部が特定プロセス移行元計算機と特定プロセス移行先計算機とが有ると判定した場合に、特定プロセス移行元計算機に特定プロセスの代わりに非終了プロセスを実行させると共に特定プロセス移行先計算機に特定プロセスを実行させる
ことを特徴とする制御装置。
【請求項６】
前記リソース有無判定部は、以下の式１によりＣＰＵの空き時間を持つ計算機の有無を判定することを特徴とする請求項１〜請求項５いずれかに記載の制御装置。
【数１】
2008015958.tif 000011
【請求項７】
複数の計算機により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて予測する発生時間帯予測部と、
空きリソースを前記発生時間帯予測部が予測した発生時間帯に有する計算機の有無をＣＰＵを用いて判定するリソース有無判定部と、
非終了プロセスと異なる特定プロセスを実行する予定の特定プロセス移行元計算機に対して特定プロセスの代わりに非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令すると共に、特定プロセス移行元計算機と異なる特定プロセス移行先計算機に対して特定プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令する特定プロセス移行部と
を備え、
前記リソース有無判定部は、特定プロセスの代わりに非終了プロセスを実行した場合に空きリソースを有する特定プロセス移行元計算機の有無を判定すると共に、特定プロセスを実行した場合に空きリソースを有する特定プロセス移行先計算機の有無を判定し、
前記特定プロセス移行部は、前記リソース有無判定部が特定プロセス移行元計算機と特定プロセス移行先計算機とが有ると判定した場合に、特定プロセス移行元計算機に特定プロセスの代わりに非終了プロセスを実行させると共に特定プロセス移行先計算機に特定プロセスを実行させる
ことを特徴とする制御装置。
【請求項８】
前記制御装置は、さらに、
非終了プロセスを実行する予定の非終了プロセス計算機と異なる非終了プロセス移行先計算機に対して非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令する非終了プロセス移行部を備え、
前記リソース有無判定部は、さらに、非終了プロセスを実行した場合に空きリソースを有する非終了プロセス移行先計算機の有無を判定し、
前記非終了プロセス移行部は、前記リソース有無判定部が非終了プロセス移行先計算機が有ると判定した場合に、非終了プロセス移行先計算機に非終了プロセスを実行させ、
前記特定プロセス移行部は、前記非終了プロセス移行部が非終了プロセス移行先計算機に非終了プロセスを実行できない場合で、且つ、前記リソース有無判定部が特定プロセス移行元計算機と特定プロセス移行先計算機とが有ると判定した場合に、特定プロセス移行元計算機に特定プロセスの代わりに非終了プロセスを実行させると共に特定プロセス移行先計算機に特定プロセスを実行させる
ことを特徴とする請求項７記載の制御装置。
【請求項９】
前記制御装置は、さらに、
非終了プロセスと異なる特定第２プロセスを実行する予定の特定第２プロセス計算機に対して特定第２プロセスを前記発生時間帯予測部が予測した発生時間帯に停止させると共に非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令する特定第２プロセス停止部と、
前記非終了プロセス計算機に対して非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に停止させるようＣＰＵを用いて命令する非終了プロセス停止部と
を備え、
前記リソース有無判定部は、さらに、特定第２プロセスを停止して非終了プロセスを実行した場合に空きリソースを有する特定第２プロセス計算機の有無を判定し、
前記特定第２プロセス停止部は、前記特定プロセス移行部が特定プロセス移行元計算機に特定プロセスの代わりに非終了プロセスを実行できない場合で、且つ、前記リソース有無判定部が特定第２プロセス計算機が有ると判定した場合に、特定第２プロセス計算機に特定第２プロセスを停止させると共に非終了プロセスを実行させ、
前記非終了プロセス停止部は、前記特定第２プロセス停止部が特定第２プロセス計算機に非終了プロセスを実行できない場合に、前記非終了プロセス計算機に非終了プロセスを停止させる
ことを特徴とする請求項７〜請求項８いずれかに記載の制御装置。
【請求項１０】
前記リソース有無判定部はＣＰＵの空き時間とメモリの空き容量との少なくともいずれかの空きリソースを有する計算機の有無を判定する
ことを特徴とする請求項７〜請求項９いずれかに記載の制御装置。
【請求項１１】
発生時間帯予測部が複数の計算機により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて予測する発生時間帯予測処理を行い、
ＣＰＵの空き時間を前記発生時間帯予測部が予測した発生時間帯に有する計算機の有無をＣＰＵを用いて判定するリソース有無判定処理を行い、
非終了プロセスを実行する予定の非終了プロセス計算機と異なる非終了プロセス移行先計算機に対して非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令する非終了プロセス移行処理を行う
制御装置のプロセス制御方法であり、
前記リソース有無判定部は、非終了プロセスを実行した場合にＣＰＵの空き時間を有する非終了プロセス移行先計算機の有無を判定し、
前記非終了プロセス移行部は、前記リソース有無判定部が非終了プロセス移行先計算機が有ると判定した場合に、非終了プロセス移行先計算機に非終了プロセスを実行させる
ことを特徴とする制御装置のプロセス制御方法。
【請求項１２】
発生時間帯予測部が複数の計算機により周期的に実行され特定の優先度を持つ複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて予測する発生時間帯予測処理を行い、
リソース有無判定部が前記発生時間帯予測部が予測した発生時間帯に最低優先度のプロセスの周期内に実行される各プロセスの合計実行時間が最低優先度のプロセスの周期以下になる計算機でありＣＰＵの空き時間を前記発生時間帯予測部が予測した発生時間帯に有する計算機の有無をＣＰＵを用いて判定するリソース有無判定処理を行い、
特定プロセス移行部が非終了プロセスと異なる特定プロセスを実行する特定プロセス移行元計算機に対して特定プロセスの代わりに非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させると共に、特定プロセス移行元計算機と異なる特定プロセス移行先計算機に対して特定プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令する特定プロセス移行処理を行う
制御装置のプロセス制御方法であり、
前記リソース有無判定部は、特定プロセスの代わりに非終了プロセスを実行した場合にＣＰＵの空き時間を有する特定プロセス移行元計算機の有無を判定すると共に、特定プロセスを実行した場合にＣＰＵの空き時間を有する特定プロセス移行先計算機の有無を判定し、
前記特定プロセス移行部は、前記リソース有無判定部が特定プロセス移行元計算機と特定プロセス移行先計算機とが有ると判定した場合に、特定プロセス移行元計算機に特定プロセスの代わりに非終了プロセスを実行させると共に特定プロセス移行先計算機に特定プロセスを実行させる
ことを特徴とする制御装置のプロセス制御方法。
【請求項１３】
発生時間帯予測部が複数の計算機により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて予測する発生時間帯予測処理を行い、
リソース有無判定部が空きリソースを前記発生時間帯予測部が予測した発生時間帯に有する計算機の有無をＣＰＵを用いて判定するリソース有無判定処理を行い、
特定プロセス移行部が非終了プロセスと異なる特定プロセスを実行する予定の特定プロセス移行元計算機に対して特定プロセスの代わりに非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令すると共に、特定プロセス移行元計算機と異なる特定プロセス移行先計算機に対して特定プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令する特定プロセス移行処理を行う
制御装置のプロセス制御方法であり、
前記リソース有無判定部は、特定プロセスの代わりに非終了プロセスを実行した場合に空きリソースを有する特定プロセス移行元計算機の有無を判定すると共に、特定プロセスを実行した場合に空きリソースを有する特定プロセス移行先計算機の有無を判定し、
前記特定プロセス移行部は、前記リソース有無判定部が特定プロセス移行元計算機と特定プロセス移行先計算機とが有ると判定した場合に、特定プロセス移行元計算機に特定プロセスの代わりに非終了プロセスを実行させると共に特定プロセス移行先計算機に特定プロセスを実行させる
ことを特徴とする制御装置のプロセス制御方法。
【請求項１４】
請求項１１〜請求項１３いずれかに記載のプロセス制御方法をコンピュータに実行させることを特徴とするプロセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の計算機がネットワークを形成して、連携して複数のプロセスを並行処理する分散システムにおける、処理が間に合わない事によるデッドラインミスの多発を防止する制御装置、制御装置のプロセス制御方法およびプロセス制御プログラムに関するものである。
【背景技術】
【０００２】
従来の計算機リソース動的制御方式は、従来例１として例えば特許文献１によれば、繰り返し周期ごとに処理時間と処理データのデータの内容、データの大きさと前回の処理時間をもとにしてプロセスの次の処理時間を予測する手段と、処理予測時間の大きさの範囲ごとに定められたプロセスの実行順序案を保持し、予測によって求めた次の処理時間のデータに基づいて、あらかじめ定められた実行順序案に基づいて次の周期の処理順序を決定することにより、処理のデッドラインミス発生を防止することを特徴としている。
【０００３】
また従来例２として他の特許文献２によれば、処理すべきプロセス量を単位化して、例えばあるプロセスは８単位、他のプロセスは５単位等とし、この細分化されたプロセスの単位を基準にして、各プロセッサに処理する単位を割当てる方法が示されている。従ってプロセスが持つ単位量を管理するプロセス管理手段と、実行するプロセッサを管理するプロセッサ管理手段と、割当リソース量決定手段とを持っている。
【特許文献１】特開平４−１７１５３８号公報
【特許文献２】特開平６−２８３２３号公報
【非特許文献３】Ｌｏｎｎｉｅ  Ｒ．Ｗｅｌｃｈ，Ｂｉｎｏｙ  Ｒａｖｉｎｄｒａｎ，Ｂｅｈｒｏｏｚ  Ａ．Ｓｈｉｒａｚｉ  ａｎｄ  Ｃａｒｌ  Ｂｒｕｇｇｅｍａｎ、「Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ａｎｄ  Ｍｏｄｅｌｉｎｇ  Ｏｆ  Ｄｙｎａｍｉｃ，Ｄｉｓｔｒｉｂｕｔｅｄ  Ｒｅａｌ−ｔｉｍｅ  Ｓｙｓｔｅｍｓ」、Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ａｎｄ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｄｅｐｔ．、Ｔｈｅ  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｔｅｘａｓ  ａｔ  Ａｒｌｉｎｇｔｏｎ
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の従来例１では、プロセスのマイグレーション（他の計算機への移行）を行うことができず、例え他の計算機に空きリソースがあったとしても処理内容の変更や縮退を行うしかなく、システム内の他の計算機リソースを効率よく利用できない、またはオーバーロードするプロセスの処理を任された計算機（プロセッサ）によるデッドラインミスが継続する、という課題がある。
また、上記の従来例１では、主としてデータの大きさ、値をもとにして次の処理時間を予測しているが、データの大きさによって処理時間が決定する訳ではない。更に各プロセス様々なデータを受信するが、データの内容はプロセスが受け取る直前まで不明である場合が多くて、事前の予測はできない。このような理由から、従来例１の手法で次の周期処理時間を予測することは不可能である。
また従来例２では、やはりプロセスの量を大きさで区切って単位化して管理するだけであり、プロセスの内容や質により計算機を割当てたり、計算機の環境により処理量を変えたりはしないので、やはりデッドラインミスが発生し続けることを防げない、という課題がある。
【０００５】
この発明は上記のような課題を解決するためになされたもので、システムを構成する各プロセスのデッドラインミスの発生を予測し、十分な空きメモリ量、ＣＰＵ時間を持つ計算機にプロセスマイグレーションを行う、または、アプリケーションプログラムを停止させることによってプロセスのデッドラインミスの継続発生を防止することを目的とする。
また、過去のプロセスの処理時間からプロセスの将来の処理時間を予測し、将来デッドラインミスが発生すると予測された場合には、プロセスマイグレーションやアプリケーションプログラムの停止を行うことによってプロセスのデッドラインミスの発生を未然に防ぐことを目的とする。
【課題を解決するための手段】
【０００６】
本発明の制御装置は、複数の計算機により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて予測する発生時間帯予測部と、ＣＰＵの空き時間を前記発生時間帯予測部が予測した発生時間帯に有する計算機の有無をＣＰＵを用いて判定するリソース有無判定部と、非終了プロセスを実行する予定の非終了プロセス計算機と異なる非終了プロセス移行先計算機に対して非終了プロセスを前記発生時間帯予測部が予測した発生時間帯に実行させるようＣＰＵを用いて命令する非終了プロセス移行部とを備え、前記リソース有無判定部は、非終了プロセスを実行した場合にＣＰＵの空き時間を有する非終了プロセス移行先計算機の有無を判定し、前記非終了プロセス移行部は、前記リソース有無判定部が非終了プロセス移行先計算機が有ると判定した場合に、非終了プロセス移行先計算機に非終了プロセスを実行させることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、例えば、特定プロセス移行部がリソース有無判定部の判定結果に基づいて特定プロセス移行元計算機に特定プロセスの代わりに非終了プロセスを実行させることにより、将来の非終了プロセスの発生を未然に防ぐことができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、実施の形態１における計算機システム２００の構成図である。
実施の形態１における計算機システム２００の構成について、図１に基づいて以下に説明する。
【０００９】
計算機システム２００は、複数のプロセスを実行する複数の計算機２１０と、計算機２１０が所定時間内に終了できないと予測される非終了プロセスの実行を制御することにより、アプリケーションプログラムの処理にデッドラインミスが発生することを防止する制御装置３００を備える。そして、各計算機２１０同士および各計算機２１０と制御装置３００とはネットワークで接続し、データ通信を行う。
以下、所定時間内に終了しないことをデッドラインミスが発生したと言う。
【００１０】
計算機システム２００は複数の計算機２１０を備えて、各アプリケーションプログラムを実行する。
このアプリケーションプログラムは順次に処理される複数のプロセスからなり、計算機システム２００は、各プロセスをそれぞれ任意の計算機で順次に処理することにより、アプリケーションプログラムを実行する。
プロセスは周期的に実行され、アプリケーションプログラムの処理にデッドラインミスが発生した状態とは、プロセスの実行が周期内に終了しない状態のことである。
また、プロセスの実行に必要なリソース使用量（例えば、ＣＰＵ使用時間、メモリ使用量）は処理するデータ量・データ内容などに従って変動し、リソース使用量が確保できない場合、当該プロセスの実行は周期内に終了しない。
また、プロセスは特定の優先度を持ち、アプリケーションプログラムは特定の重要度を持つ。プロセスの優先度は、同時間帯に実行する複数のプロセス間における各プロセスの実行順序を示し、優先度が高いプロセスは優先度が低いプロセスより先に実行される。また、アプリケーションプログラムの重要度はアプリケーションプログラムの実行終了の必須度を示し、いずれかのアプリケーションプログラムを停止しなければならない状況において、重要度が低いアプリケーションプログラムは重要度が高いアプリケーションプログラムより先に停止される。
また、プロセスは所定の数のサブプロセスに分割することができる。サブプロセスの優先度はプロセスの優先度と同じである。
【００１１】
制御装置３００は、計算機システム２００において、アプリケーションプログラムの処理にデッドラインミスが発生することを長期にわたり防止するようにプロセス制御することを目的とする。
また、制御装置３００は、プロセス制御に際して、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）使用率の低い計算機２１０が計算機システム２００に存在するようにすることを目的とする。つまり、制御装置３００は、計算機システム２００内の少なくともいずれかの計算機２１０になるべく大きなＣＰＵ空き時間を与えるように、プロセス制御を実行する。
また、制御装置３００は、デッドラインミスの発生を防止するために重要度の低いアプリケーションプログラムを停止しなければならないという状況をなるべく避けるように、プロセス制御を行うことを目的とする。つまり、制御装置３００は全アプリケーションプログラムを実行することを目的とする。
【００１２】
つまり、制御装置３００は「デッドラインミスの長期防止」、「ＣＰＵ空き時間の大きな計算機２１０の確保」、「全アプリケーションプログラムの実行」を目的としてプロセス制御を実行する。
【００１３】
上記目的を達成するために制御装置３００は、例えば、計算機２１０ａが実行する予定のプロセスａが、今後、計算機２１０ａにおいて所定の時間（例えば、プロセスの周期）内に終了しないと予測した場合に、以下のようなプロセス制御を行う。
ここで、プロセス制御前は、計算機２１０ａがプロセスａ、プロセスＡを実行し、計算機２１０ｂがプロセスｂを実行し、計算機２１０ｃがプロセスｃを実行し、計算機２１０ｄがプロセスｄを実行し、計算機２１０ｅがプロセスｅを実行し、計算機２１０ｆがプロセスｆを実行する予定であったものとする。
【００１４】
例１）計算機２１０ａにはプロセスａを実行するための空きリソースが無く、計算機２１０ｂがプロセスａとプロセスｂとを実行するための空きリソースがある場合、制御装置３００は次のプロセス制御を行う。制御装置３００は、計算機２１０ｂにプロセスａとプロセスｂとを実行させる。つまり、制御装置３００は当初の計算機（計算機２１０ａ）では所定時間内に終了しないプロセス（プロセスａ）を他の計算機（計算機２１０ｂ）に移行する。
【００１５】
例２）計算機２１０ａにはプロセスａを実行するための空きリソースは無いがプロセスａよりリソース使用量が少ないプロセスｃを実行するための空きリソースなら有り、計算機２１０ｃにはプロセスａとプロセスｃとを実行するための空きリソースは無いがいずれかのプロセスを実行するための空きリソースなら有る場合、制御装置３００は次のプロセス制御を行う。制御装置３００は、計算機２１０ｃにプロセスａを実行させ、計算機２１０ａにプロセスｃを実行させる。つまり、制御装置３００は所定時間内に終了しないプロセス（プロセスａ）と他の計算機（計算機２１０ｃ）のプロセス（プロセスｃ）とを入れ換えるように計算機（計算機２１０ａ、計算機２１０ｃ）間で移行する。
【００１６】
例３）計算機２１０ａにはプロセスａとプロセスｄとのいずれかのプロセスを実行するための空きリソースは無く、計算機２１０ｄにはプロセスａとプロセスｄとを実行するための空きリソースは無いがいずれかのプロセスを実行するための空きリソースなら有り、計算機２１０ｅにはプロセスａとプロセスｅとを実行するための空きリソースは無いがプロセスａよりリソース使用量が少ないプロセスｄとプロセスｅとを実行するための空きリソースが有る場合、制御装置３００は次のプロセス制御を行う。制御装置３００は、計算機２１０ｅにプロセスｄを実行させ、計算機２１０ｄにプロセスａを実行させる。つまり、制御装置３００は当初予定していたプロセス（プロセスｄ）が他の計算機（計算機２１０ｅ）に移行された計算機（計算機ｄ）に、当初の計算機（計算機２１０ａ）では所定時間内に終了しないプロセス（プロセスａ）を移行する。
【００１７】
例４）計算機２１０ａにはプロセスａとプロセスＡとを実行するための空きリソースは無いがプロセスＡより重要度の高いプロセスａのみを実行するための空きリソースは有る場合、制御装置３００は次のプロセス制御を行う。制御装置３００は、計算機２１０ａにプロセスＡを停止させプロセスａを実行させる。つまり、制御装置３００は、他のプロセス（プロセスＡ）を停止させることにより、当該計算機（計算機２１０ａ）に当初は所定時間内に終了しないと予測されたプロセス（プロセスａ）を所定時間内に実行させる。
【００１８】
例５）計算機２１０ａにはプロセスａを実行するための空きリソースは無く、計算機２１０ｆにはプロセスａとプロセスｆとを実行するための空きリソースは無いがプロセスｆより重要度の高いプロセスａのみを実行するための空きリソースは有る場合、制御装置３００は次のプロセス制御を行う。制御装置３００は、計算機２１０ｆにプロセスｆの代わりにプロセスａを実行させる。つまり、制御装置３００は当初予定していたプロセス（プロセスｆ）を停止した計算機（計算機ｆ）に、当初の計算機（計算機２１０ａ）では所定時間内に終了しないプロセス（プロセスａ）を移行する。
【００１９】
以下、所定時間内に終了しないと予測されるプロセスを「非終了プロセス」とする。上記例１〜５におけるプロセスａは非終了プロセスの一例である。
また、非終了プロセス以外のプロセスであり、他の計算機２１０に移行されるプロセスを「移行プロセス（特定プロセス）」とする。上記例２におけるプロセスｃと上記例３におけるプロセスｄとは移行プロセスの一例である。
また、非終了プロセス以外のプロセスであり、停止されるプロセスを「停止プロセス（特定第２プロセス）」とする。上記例４におけるプロセスＡと上記例５におけるプロセスｆとは停止プロセスの一例である。
【００２０】
また、当初の予定において、非終了プロセスを実行する予定だった計算機２１０を「非終了プロセス計算機」とする。上記例１における計算機２１０ａは非終了プロセス計算機の一例である。
また、非終了プロセスの移行先の計算機２１０を「非終了プロセス移行先計算機」とする。上記例１における計算機２１０ｂは非終了プロセス移行先計算機の一例である。
また、移行プロセスの移行元の計算機２１０を「移行プロセス移行元計算機（特定プロセス移行元計算機）」とする。「移行プロセス移行元計算機」は「非終了プロセス移行先計算機」にもなる。上記例２における計算機２１０ｃと上記例３における計算機２１０ｄとは移行プロセス移行元計算機の一例である。
また、移行プロセスの移行先の計算機２１０を「移行プロセス移行先計算機（特定プロセス移行先計算機）」とする。上記例２における計算機２１０ａと上記例３における計算機２１０ｅとは移行プロセス移行先計算機の一例である。
また、停止プロセスを停止する計算機２１０を「プロセス停止計算機（特定第２プロセス計算機）」とする。「プロセス停止計算機」は「非終了プロセス移行先計算機」にもなる。上記例４における計算機２１０ａと上記例５における計算機２１０ｆとはプロセス停止計算機の一例である。
【００２１】
ここで、「プロセスの停止」は、例えば、特定の時間帯において実行する予定だったプロセスを実行しないことを意味する。
また、「プロセスの移行」は、例えば、移行先の計算機２１０にプロセスを起動させて当該プロセスをＣＰＵによる実行待ち状態にすることや、移行先の計算機２１０にプロセスを特定の周期で実行するようにメモリにスケジュール設定させることや、プロセスの実行に用いられる制御情報を移行元の計算機２１０のメモリから移行先の計算機２１０のメモリにコピーすることを意味する。また、「プロセスの移行」は移行先の計算機２１０にＣＰＵを用いてプロセスを実行させることを意味する。「プロセスの移行」が行われることにより当該プロセスは、それ以降または特定の時間帯において移行先の計算機２１０に実行される。
【００２２】
図２は、実施の形態１における制御装置３００、計算機２１０のハードウェア資源の一例を示す図である。
図２において、制御装置３００、計算機２１０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・  Ｄｒｉｖｅ）、ＣＤＤ９０５（コンパクトディスク装置）、プリンタ装置９０６、スキャナ装置９０７、マイク９０８、スピーカー９０９、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶機器、記憶装置あるいは記憶部の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力機器、入力装置あるいは入力部の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力機器、出力装置あるいは出力部の一例である。
【００２３】
通信ボード９１５は計算機システム２００の通信ネットワークに接続されている。
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。
【００２４】
上記プログラム群９２３には、実施の形態において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、実施の形態において、「〜部」の機能を実行した際の「〜の判定結果」、「〜の計算結果」、「〜の処理結果」などの結果データ、「〜部」の機能を実行するプログラム間で受け渡しするデータ、その他の情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、実施の形態において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）等の記録媒体に記録される。また、データや信号値は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２５】
また、実施の形態において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プロセス制御プログラムは、「〜部」としてコンピュータを機能させるものである。あるいは、「〜部」の手順や方法をコンピュータに実行させるものである。
【００２６】
図３は、実施の形態１における制御装置３００の構成図である。
制御装置３００は発生時間帯予測部３１０、リソース有無判定部３２０、非終了プロセス移行部３３０、移行プロセス移行部３４０、停止プロセス停止部３５０、非終了プロセス停止部３６０、制御対象時刻設定部３７０、リソース情報取得部３８０、制御装置記憶部３９０を備える。
【００２７】
発生時間帯予測部３１０は、複数の計算機２１０により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をＣＰＵ９１１を用いて予測する。
【００２８】
リソース有無判定部３２０は、空きリソースを発生時間帯予測部３１０が予測した非終了プロセスの発生時間帯に有する計算機２１０の有無をＣＰＵ９１１を用いて判定する。例えば、リソース有無判定部３２０は、以下の条件を仮定し、非終了プロセスの発生時間帯に空きリソースを有する計算機の有無を判定する。このとき、リソース有無判定部３２０は空きリソースを条件ａの場合に有する計算機が存在するか判定する。また、リソース有無判定部３２０は空きリソースを条件ｂ１の場合に有する計算機と空きリソースを条件ｂ２の場合に有する計算機とが存在するか判定する。また、リソース有無判定部３２０は空きリソースを条件ｃの場合に有する計算機が存在するか判定する。
条件ａ）非終了プロセスを実行した場合
条件ｂ１）実行する予定の特定プロセスの代わりに非終了プロセスを実行した場合
条件ｂ２）条件ｂ１の特定プロセスを実行した場合（条件ｂ１の特定プロセスを実行する予定の計算機を除く）
条件ｃ）実行する予定の特定第２プロセスを停止して非終了プロセスを実行した場合
【００２９】
前記非終了プロセス移行先計算機は、上記条件ａにおいて非終了プロセスの発生時間帯に空きリソースを有するものである。
前記移行プロセス移行元計算機は、上記条件ｂ１において非終了プロセスの発生時間帯に空きリソースを有するものである。
前記移行プロセス移行先計算機は、上記条件ｂ２において非終了プロセスの発生時間帯に空きリソースを有するものである。
前記プロセス停止計算機は、上記条件ｃにおいて非終了プロセスの発生時間帯に空きリソースを有するものである。
【００３０】
前記移行プロセスは、上記条件ｂ１において非終了プロセスの発生時間帯に空きリソースを有する計算機と上記条件ｂ２において非終了プロセスの発生時間帯に空きリソースを有する計算機とが存在する場合の特定プロセスのことである。
前記停止プロセスは、上記条件ｃにおいて非終了プロセスの発生時間帯に空きリソースを有する計算機が存在する場合の特定第２プロセスのことである。
【００３１】
非終了プロセス移行部３３０は、以下の条件Ａを満たす場合に、非終了プロセス移行先計算機に対して、発生時間帯予測部３１０が予測した非終了プロセスの発生時間帯に非終了プロセスを実行させるようＣＰＵ９１１を用いて命令する。非終了プロセス移行部３３０は、例えば、前記プロセス制御（例１）を実行する。
条件Ａ）リソース有無判定部３２０が非終了プロセス移行先計算機が有ると判定した場合
【００３２】
移行プロセス移行部３４０（特定プロセス移行部）は、以下の条件Ｂ１〜Ｂ３を全て満たす場合（または条件Ｂ２とＢ３とを満たす場合）に、移行プロセス移行元計算機に対して、発生時間帯予測部３１０が予測した非終了プロセスの発生時間帯に移行プロセスの代わりに非終了プロセスを実行させるようＣＰＵ９１１を用いて命令する。さらに、移行プロセス移行部３４０は、以下の条件Ｂ１〜Ｂ３を全て満たす場合（または条件Ｂ２とＢ３とを満たす場合）に、移行プロセス移行先計算機に対して、発生時間帯予測部３１０が予測した非終了プロセスの発生時間帯に移行プロセスを実行させるようＣＰＵ９１１を用いて命令する。移行プロセス移行部３４０は、例えば、前記プロセス制御（例２、例３）を実行する。
条件Ｂ１）非終了プロセス移行部３３０が非終了プロセス移行先計算機に非終了プロセスを実行できない場合
条件Ｂ２）リソース有無判定部３２０が移行プロセス移行元計算機が有ると判定した場合
条件Ｂ３）リソース有無判定部３２０が移行プロセス移行先計算機が有ると判定した場合
【００３３】
停止プロセス停止部３５０（特定第２プロセス停止部）は、以下の条件Ｃ１〜Ｃ３を全て満たす場合（または条件Ｃ３を満たす場合）に、プロセス停止計算機に対して、発生時間帯予測部３１０が予測した非終了プロセスの発生時間帯に停止プロセスを停止させるようＣＰＵ９１１を用いて命令する。さらに、停止プロセス停止部３５０は、以下の条件Ｃ１〜Ｃ３を全て満たす場合（または条件Ｃ３を満たす場合）に、プロセス停止計算機に対して、発生時間帯予測部３１０が予測した非終了プロセスの発生時間帯に非終了プロセスを実行させるようＣＰＵ９１１を用いて命令する。停止プロセス停止部３５０は、例えば、前記プロセス制御（例４、例５）を実行する。
条件Ｃ１）非終了プロセス移行部３３０が非終了プロセス移行先計算機に非終了プロセスを実行できない場合
条件Ｃ２）移行プロセス移行部３４０が移行プロセス移行元計算機に移行プロセスのかわりに非終了プロセスを実行できない場合
条件Ｃ３）リソース有無判定部３２０がプロセス停止計算機が有ると判定した場合
【００３４】
非終了プロセス停止部３６０は、以下の条件Ｄ１〜Ｄ３を全て満たす場合（または条件Ｄ１〜Ｄ３の少なくともいずれかを満たす場合）に、非終了プロセス計算機に対して、発生時間帯予測部３１０が予測した非終了プロセスの発生時間帯に非終了プロセスを停止させるようＣＰＵ９１１を用いて命令する。
条件Ｄ１）非終了プロセス移行部３３０が非終了プロセス移行先計算機に非終了プロセスを実行できない場合
条件Ｄ２）移行プロセス移行部３４０が移行プロセス移行元計算機に移行プロセスのかわりに非終了プロセスを実行できない場合
条件Ｄ３）停止プロセス停止部３５０がプロセス停止計算機に停止プロセスの停止と非終了プロセスの実行とをできない場合
【００３５】
制御対象時刻設定部３７０は、リソース有無判定部３２０が非終了プロセス移行先計算機が特定の制御対象時刻に有ると判定した場合に、制御対象時刻より後の時刻を新たな制御対象時刻としてＣＰＵ９１１を用いて制御装置記憶部３９０に設定する。また、制御対象時刻設定部３７０は、リソース有無判定部３２０が非終了プロセス移行先計算機が制御対象時刻に無いと判定した場合に、制御対象時刻より前の時刻を新たな制御対象時刻としてＣＰＵ９１１を用いて制御装置記憶部３９０に設定する。
【００３６】
リソース情報取得部３８０は、各計算機２１０から各プロセスを実行するために使用したリソースの情報・必要と思われるリソース情報を取得するとともに、必要に応じて制御装置記憶部３９０に記憶する。リソース情報は、例えば、ＣＰＵ使用時間やメモリ使用量を示す。
【００３７】
制御装置記憶部３９０は制御装置３００で使用されるデータが記憶される記憶機器である。例えば、制御装置記憶部３９０は以下のようなデータを記憶する。
・各計算機２１０が過去に実行した各プロセスについてのリソース情報（リソース情報は各プロセスのリソース使用量の履歴を示す）
・リソース情報に基づいて予測された非終了プロセスの発生時間帯
・リソース情報に基づいて予測された各プロセスの今後のリソース使用量
・プロセスが所定時間内に終了するか否かの判定基準とする所定のリソース量（以下、リソース基準量とする）
・所定のプロセスの周期
・所定のプロセスの優先度
・所定のプロセスの有効分割数
・所定のアプリケーションプログラムの重要度
・制御対象時刻
・制御対象目標時刻
【００３８】
図４は、実施の形態１における制御装置３００のプロセス制御方法を示すフローチャートである。
実施の形態１における制御装置３００が実行するプロセス制御処理について、図４に基づいて以下に説明する。
「〜部」で説明する制御装置３００の各構成要素は以下の処理をＣＰＵ９１１を用いて実行する。
【００３９】
＜Ｓ２１０１：発生時間帯予測処理＞
発生時間帯予測部３１０は、複数の計算機２１０により実行される複数のプロセスについて、所定時間内に終了しない非終了プロセスが発生する発生時間帯をＣＰＵ９１１を用いて予測する。
例えば、発生時間帯予測部３１０は、制御装置記憶部３９０からリソース情報とリソース基準量とを取得し、取得したリソース情報が示す過去に使用されたリソースの変化量に基づいて各プロセスの今後のリソース使用量を予測する。そして、発生時間帯予測部３１０は取得したリソース基準量と予測したリソース使用量とを比較し、予測したリソース使用量がリソース基準量より大きい値になる時間帯を非終了プロセスの発生時間帯として算出する。算出した発生時間帯は非終了プロセスになる時間帯が何回目の周期であるかを示す。但し、時間帯は時刻を示しても構わない。
例えば、発生時間帯予測部３１０は以下のようにして非終了プロセスの発生時間帯を算出する。
ここで、プロセスａの周期が５０ミリ秒であり、過去のＣＰＵ使用時間（リソース使用量の一例）が「１回目：１９ミリ秒（処理開始時刻：１０時１０分１０秒０５０ミリ秒）」、「２回目：２９ミリ秒（処理開始時刻：１０時１０分１０秒１００ミリ秒）」、「３回目：３９ミリ秒（処理開始時刻：１０時１０分１０秒１５０ミリ秒）」であり、ＣＰＵ基準時間（リソース基準量の一例）が５０ミリ秒であるものとする。
発生時間帯予測部３１０はプロセスａのｘ回目の周期におけるＣＰＵ使用時間ｙを近似式「ｙ＝１回目のＣＰＵ使用時間＋（ｘ×変化量）」で算出する。そして、発生時間帯予測部３１０はＣＰＵ使用時間ｙがＣＰＵ基準時間を越える周期の回数ｘを関係式「ＣＰＵ基準時間＜１回目のＣＰＵ使用時間＋（（ｘ−１）×変化量）」で算出し、算出したｘを非終了プロセス（プロセスａ）の発生時間帯とする。各値を代入すると関係式は「５０＜１９＋（（ｘ−１）×１０）」であるから、この場合の非終了プロセスの発生時間帯は、プロセスａの５回目の周期（処理開始時刻：１０時１０分１０秒２５０ミリ秒）以降となる。
発生時間帯予測部３１０は非終了プロセスの発生時間帯における他のプロセスのリソース使用量も予測し、非終了プロセスの発生時間帯、非終了プロセスの発生時間帯における非終了プロセスのリソース使用量および非終了プロセスの発生時間帯における他のプロセスのリソース使用量を制御装置記憶部３９０に記憶するものとする。
発生時間帯予測部３１０は今後のリソース使用量を表す近似式を線形方程式で生成してもよいし、非線形方程式で生成してもよい。
【００４０】
＜Ｓ２１０２：非終了プロセス移行処理＞
非終了プロセス移行部３３０は、以下の条件Ａを満たす場合に、非終了プロセスを非終了プロセス計算機から非終了プロセス移行先計算機に移行する「非終了プロセス移行制御」を実行する。非終了プロセス移行部３３０は、例えば、前記プロセス制御（例１）を実行する。
条件Ａ）リソース有無判定部３２０が非終了プロセス移行先計算機が有ると判定した場合
【００４１】
＜Ｓ２１０３＞
制御装置３００は、Ｓ２１０２において非終了プロセス移行部３３０が非終了プロセス移行制御を実行した場合、プロセス制御処理を終了し、Ｓ２１０２において非終了プロセス移行部３３０が非終了プロセス移行制御を実行しなかった場合（前記条件Ｂ１、Ｃ１、Ｄ１に該当する）、Ｓ２１０４を処理する。
【００４２】
＜Ｓ２１０４：移行プロセス移行処理＞
移行プロセス移行部３４０は、以下の条件Ｂ２とＢ３とを満たす場合に、移行プロセスを移行プロセス移行元計算機から移行プロセス移行先計算機に移行すると共に非終了プロセスを非終了プロセス計算機から移行プロセス移行元計算機に移行する「移行プロセス移行制御」を実行する。移行プロセス移行部３４０は、例えば、前記プロセス制御（例２、例３）を実行する。
条件Ｂ２）リソース有無判定部３２０が移行プロセス移行元計算機が有ると判定した場合
条件Ｂ３）リソース有無判定部３２０が移行プロセス移行先計算機が有ると判定した場合
【００４３】
＜Ｓ２１０５＞
制御装置３００は、Ｓ２１０４において移行プロセス移行部３４０が移行プロセス移行制御を実行した場合、プロセス制御処理を終了し、Ｓ２１０４において移行プロセス移行部３４０が移行プロセス移行制御を実行しなかった場合（前記条件Ｃ２、Ｄ２に該当する）、Ｓ２１０６を処理する。
【００４４】
＜Ｓ２１０６：停止プロセス停止処理＞
停止プロセス停止部３５０は、以下の条件Ｃ３を満たす場合に、プロセス停止計算機の停止プロセスを停止すると共に非終了プロセスを非終了プロセス計算機からプロセス停止計算機に移行する「停止プロセス停止制御」を実行する。停止プロセス停止制御を実行する場合、停止プロセス停止部３５０は非終了プロセスを含むアプリケーションより重要度の低いアプリケーションの各プロセスを停止する。停止プロセス停止部３５０は、例えば、前記プロセス制御（例４、例５）を実行する。
条件Ｃ３）リソース有無判定部３２０がプロセス停止計算機が有ると判定した場合
【００４５】
＜Ｓ２１０７＞
制御装置３００は、Ｓ２１０６において停止プロセス停止部３５０が停止プロセス停止制御を実行した場合、プロセス制御処理を終了し、Ｓ２１０６において停止プロセス停止部３５０が停止プロセス停止制御を実行しなかった場合（前記条件Ｄ３に該当する）、Ｓ２１０８を処理する。
【００４６】
＜Ｓ２１０８：非終了プロセス停止処理＞
非終了プロセス停止部３６０は非終了プロセス計算機の非終了プロセスを停止する「非終了プロセス停止制御」を実行する。
【００４７】
上記プロセス制御処理において移行された非終了プロセスと移行プロセスとは、移行後またはＳ２１０１で予測された発生時間帯において、移行先の計算機２１０に実行される。
【００４８】
制御装置３００は、非終了プロセス移行制御（Ｓ２１０２）、移行プロセス移行制御（Ｓ２１０４）または停止プロセス停止制御（Ｓ２１０６）を実行することにより、非終了プロセスを周期内に終了することができ、アプリケーションプログラムの処理にデッドラインミスが発生することを防止することができる。
【００４９】
以下に、非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６の詳細について説明する。
【００５０】
＜詳細例１＞
図５は、実施の形態１（詳細例１）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６の詳細例１について、図５に基づいて以下に説明する。
「〜部」で説明する制御装置３００の各構成要素は以下の処理をＣＰＵ９１１を用いて実行する。
【００５１】
＜Ｓ２２０１：リソース有無判定処理＞
リソース有無判定部３２０は、空きリソースをＳ２１０１で予測された非終了プロセスの発生時間帯に有する計算機２１０の有無を判定する。
【００５２】
非終了プロセス移行処理Ｓ２１０２の場合、リソース有無判定部３２０は以下の条件ａにおいて非終了プロセスの発生時間帯に空きリソースを有する非終了プロセス移行先計算機の有無を判定する。
移行プロセス移行処理Ｓ２１０４の場合、リソース有無判定部３２０は、以下の条件ｂ１において非終了プロセスの発生時間帯に空きリソースを有する移行プロセス移行元計算機の有無と、以下の条件ｂ２において非終了プロセスの発生時間帯に空きリソースを有する移行プロセス移行先計算機の有無とを判定する。
停止プロセス停止処理Ｓ２１０６の場合、リソース有無判定部３２０は以下の条件ｃにおいて非終了プロセスの発生時間帯に空きリソースを有するプロセス停止計算機の有無を判定する。
条件ａ）非終了プロセスを実行した場合
条件ｂ１）実行する予定の特定プロセスの代わりに非終了プロセスを実行した場合
条件ｂ２）条件ｂ１の特定プロセスを実行した場合（条件ｂ１の特定プロセスを実行する予定の計算機を除く）
条件ｃ）実行する予定の特定第２プロセスを停止して非終了プロセスを実行した場合
【００５３】
例えば、リソース有無判定部３２０は、制御装置記憶部３９０に記憶されている非終了プロセスの発生時間帯、プロセスの周期、プロセスの優先度、非終了プロセスの発生時間帯における各プロセスのリソース使用量に基づいて、非終了プロセスの発生時間帯における非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機の有無を判定する。
【００５４】
例えば、リソース有無判定部３２０は、ＣＰＵ９１１の空き時間（空きリソースの一例）を非終了プロセスの発生時間帯に有する非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機の有無を判定する。
【００５５】
例えば、リソース有無判定部３２０は以下の式１を計算することにより各計算機２１０のＣＰＵ９１１の空き時間を持つ計算機の有無を判定する。
【００５６】
【数２】
2008015958.tif 000003
【００５７】
＜Ｓ２２０２＞
制御装置３００は、Ｓ２２０１においてリソース有無判定部３２０が当該計算機２１０（非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機）が有ると判定した場合、Ｓ２２０３を処理し、Ｓ２２０１においてリソース有無判定部３２０が当該計算機２１０が無いと判定した場合、処理を終了する。
【００５８】
＜Ｓ２２０３：制御処理＞
非終了プロセス移行部３３０が非終了プロセス移行制御を実行し、または、移行プロセス移行部３４０が移行プロセス移行制御を実行し、または、停止プロセス停止部３５０が停止プロセス停止制御を実行する。
【００５９】
＜詳細例２＞
詳細例２では、「全アプリケーションプログラムの実行」の実現性を向上させるために、プロセスをサブプロセスに分割する例について説明する。
【００６０】
図６は、実施の形態１（詳細例２）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６の詳細例２について、図６に基づいて以下に説明する。
「〜部」で説明する制御装置３００の各構成要素は以下の処理をＣＰＵ９１１を用いて実行する。
【００６１】
＜Ｓ２３０１：リソース有無判定処理＞
リソース有無判定部３２０は、前記Ｓ２２０１と同様に、当該計算機２１０（非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機）の有無を判定する。
【００６２】
＜Ｓ２３０２＞
制御装置３００は、Ｓ２３０１においてリソース有無判定部３２０が当該計算機２１０が有ると判定した場合、Ｓ２３０５を処理し、Ｓ２３０１においてリソース有無判定部３２０が当該計算機２１０が無いと判定した場合、Ｓ２３０３を処理する。
【００６３】
＜Ｓ２３０３＞
非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、制御装置記憶部３９０に記憶されているプロセスの有効分割数と現在のプロセス（非終了プロセス、移行プロセス）の分割数とを比較し、現在の分割数が有効分割数未満であればＳ２３０４を処理し、現在の分割数が有効分割数以上であれば処理を終了する。
【００６４】
＜Ｓ２３０４：プロセス分割処理＞
非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０はプロセスの分割数を増加（例えば、＋１）する。
プロセスの分割後、制御装置３００はＳ２３０１を処理する。
【００６５】
プロセスの分割後のＳ２３０１において、リソース有無判定部３２０は、プロセスの分割数に応じて、全非終了サブプロセスを実行した場合に空きリソースを非終了プロセスの発生時間帯に有する当該計算機群（複数の非終了プロセス移行先計算機、複数の移行プロセス移行元計算機、複数の移行プロセス移行先計算機、複数のプロセス停止計算機）の有無を判定する。
例えば、リソース有無判定部３２０は、プロセスのＣＰＵ使用時間（リソース使用量の一例）を分割数で割った値を各サブプロセスのＣＰＵ使用時間とし、各サブプロセスのＣＰＵ使用時間に基づいて当該計算機２１０の有無を判定する。
また例えば、リソース有無判定部３２０は、サブプロセスの数（プロセスの分割数）と同じ数の当該計算機２１０の有無を判定し、当該計算機２１０の数がサブプロセスの数より少ない場合は当該計算機２１０が無いものとして判定する。
【００６６】
＜Ｓ２３０５：制御処理＞
非終了プロセス移行部３３０が非終了プロセス移行制御を実行し、または、移行プロセス移行部３４０が移行プロセス移行制御を実行し、または、停止プロセス停止部３５０が停止プロセス停止制御を実行する。
Ｓ２３０４においてプロセスが分割された場合、非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、例えば、各サブプロセスをそれぞれ異なる計算機２１０に移行する。
【００６７】
＜詳細例３＞
詳細例３では、「ＣＰＵ空き時間の大きな計算機２１０の確保」の実現性を向上させるために、プロセスをサブプロセスに分割する例について説明する。
【００６８】
図７は、実施の形態１（詳細例３）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６の詳細例３について、図７に基づいて以下に説明する。
「〜部」で説明する制御装置３００の各構成要素は以下の処理をＣＰＵ９１１を用いて実行する。
【００６９】
＜Ｓ２３１１：リソース有無判定処理＞
リソース有無判定部３２０は、前記Ｓ２３０１と同様に、当該計算機２１０（非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機）の有無を判定する。
【００７０】
＜Ｓ２３１２＞
非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、前記Ｓ２３０３と同様に、プロセスの有効分割数と現在の分割数とを比較し、現在の分割数が有効分割数未満であればＳ２３１３を処理し、現在分割数が有効分割数以上であればＳ２３１４を処理する。
【００７１】
＜Ｓ２３１３：プロセス分割処理＞
非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０はプロセスの分割数を増加（例えば、＋１）する。
プロセスの分割後、制御装置３００はＳ２３１１を処理する。
【００７２】
Ｓ２３１１〜Ｓ２３１３により、制御装置３００は、プロセスを各分割数で分割した場合について、当該計算機２１０の有無と当該計算機２１０の空きリソース量（例えば、前記式１において「ｋ＝１」とした場合の左辺の値［０と大小比較している数式部分の値］）とを算出することができる。
【００７３】
＜Ｓ２３１４＞
制御装置３００は、リソース有無判定部３２０が少なくともいずれかのプロセス分割数において当該計算機２１０が有ると判定した場合、Ｓ２３１５を処理し、リソース有無判定部３２０がいずれのプロセス分割数においても当該計算機２１０が無いと判定した場合、処理を終了する。
【００７４】
＜Ｓ２３１５：制御処理＞
非終了プロセス移行部３３０が非終了プロセス移行制御を実行し、または、移行プロセス移行部３４０が移行プロセス移行制御を実行し、または、停止プロセス停止部３５０が停止プロセス停止制御を実行する。
このとき、非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、空きリソース量が最も大きい計算機２１０が存在するプロセスの分割数および計算機群を選択し、選択した分割数のサブプロセスそれぞれを選択した計算機群の各計算機２１０に移行する。
【００７５】
＜詳細例４＞
詳細例４では、「全アプリケーションプログラムの実行」と「デッドラインミスの長期防止」との実現性を向上させるために、非終了プロセスの発生時間帯の代わりに制御対象時刻を設定する例について説明する。
【００７６】
まず、制御対象時刻について説明する。
制御対象時刻は、制御対象時刻設定部３７０がリソース有無判定部３２０による元の制御対象時刻における当該計算機２１０（非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機）の有無の判定結果に基づいて設定し、制御装置記憶部３９０に記憶する時刻データである。
また、制御対象時刻は、非終了プロセス移行制御（Ｓ２１０２）、移行プロセス移行制御（Ｓ２１０４）または停止プロセス停止制御（Ｓ２１０６）を実行することが可能な、できるだけ先の時刻を示す。つまり、制御対象時刻が先の時刻を示すほど、制御装置３００はデッドラインミスをより長期間防止することができる。
例えば、制御対象時刻設定部３７０はリソース有無判定部３２０が当該計算機２１０が制御対象時刻に有ると判定した場合に、制御対象時刻より後の時刻を新たな制御対象時刻として設定する。また、制御対象時刻設定部３７０はリソース有無判定部３２０が当該計算機２１０が制御対象時刻に無いと判定した場合に、制御対象時刻より前の時刻を新たな制御対象時刻として設定する。
また例えば、制御対象時刻設定部３７０はＳ２１０１において発生時間帯予測部３１０が予測した非終了プロセスの発生時間帯（非終了プロセスが最も最短に発生する時刻とする）と所定の制御対象目標時刻とを用いて反復解法により制御対象時刻を設定する。反復解法には二分法、はさみうち法などがある。反復解法を実行する際に、制御対象時刻設定部３７０はリソース有無判定部３２０が前記式１で算出できるＣＰＵ９１１の空き時間（前記式１において「ｋ＝１」とした場合の左辺の値［０と大小比較している数式部分の値］）を利用してもよいし、発生時間帯予測部３１０が生成するリソース使用量を表す近似式を利用してもよい。
【００７７】
二分法を用いる場合、制御対象時刻設定部３７０は以下のように制御対象時刻を設定する。
例えば、制御対象時刻設定部３７０は非終了プロセスの発生時間帯から対象目標時刻までの時間内の任意の時刻を制御対象時刻の初期値とし、対象目標時刻を最大評価時刻の初期値とし、非終了プロセスの発生時間帯を最小評価時刻の初期値とする。
リソース有無判定部３２０が当該計算機２１０が制御対象時刻に無いと判定した場合、制御対象時刻設定部３７０は最小評価時刻（初期値：非終了プロセスの発生時間帯）と制御対象時刻との中間の時刻を新たな制御対象時刻とし、それまでの制御対象時刻を新たな最大評価時刻とする。
また、リソース有無判定部３２０が当該計算機２１０が制御対象時刻に有ると判定した場合、制御対象時刻設定部３７０は最大評価時刻（初期値：制御対象目標時刻）と制御対象時刻との中間の時刻を新たな制御対象時刻とし、それまでの制御対象時刻を新たな最小評価時刻とする。
以後、制御対象時刻設定部３７０はリソース有無判定部３２０の判定結果に基づいて最小評価時刻と最大評価時刻との時間幅を絞り込み、リソース有無判定部３２０が当該計算機２１０が有ると判定するなるべく先の時刻を制御対象時刻として設定する。
【００７８】
例えば、制御対象時刻設定部３７０は反復解法により制御対象時刻を設定する制御対象時刻設定処理を以下の終了条件を満たす場合に終了する。
・リソース有無判定部３２０が制御対象時刻について算出したＣＰＵ９１１の空き時間、または、発生時間帯予測部３１０が生成したリソース使用量を表す非線形方程式で算出される制御対象時刻におけるＣＰＵ空き時間が、「０」または「０以上所定の時間以下」の場合
・制御対象時刻と最小評価時刻との時間幅または制御対象時刻と最大評価時刻との時間幅が所定の時間以下の場合
・制御対象時刻設定処理を所定回数または所定時間以上、実行した場合
・現在時刻から制御対象時刻までの時間が非終了プロセス移行制御（Ｓ２１０２）、移行プロセス移行制御（Ｓ２１０４）または停止プロセス停止制御（Ｓ２１０６）に必要な時間との差が所定時間以下の場合（例えば、各制御に必要な時間は予め制御装置記憶部３９０に記憶しておく）
【００７９】
図８は、実施の形態１（詳細例４）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６の詳細例４について、図８に基づいて以下に説明する。
「〜部」で説明する制御装置３００の各構成要素は以下の処理をＣＰＵ９１１を用いて実行する。
【００８０】
＜Ｓ２３２１：リソース有無判定処理＞
リソース有無判定部３２０は、前記Ｓ２２０１と同様に、当該計算機２１０（非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機）の有無を判定する。
【００８１】
＜Ｓ２３２２＞
制御装置３００は、Ｓ２３２１においてリソース有無判定部３２０が当該計算機２１０が有ると判定した場合、Ｓ２３２３を処理し、Ｓ２３２１においてリソース有無判定部３２０が当該計算機２１０が無いと判定した場合、Ｓ２３２５を処理する。
【００８２】
＜Ｓ２３２３＞
制御対象時刻設定部３７０は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、Ｓ２３２４を処理し、終了条件を満たす場合、Ｓ２３２７を処理する。
【００８３】
＜Ｓ２３２４：制御対象時刻設定処理１＞
制御対象時刻設定部３７０は現在の制御対象時刻より後の時刻を新たな制御対象時刻として設定する。
【００８４】
＜Ｓ２３２５＞
制御対象時刻設定部３７０は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、Ｓ２３２６を処理し、終了条件を満たす場合、Ｓ２３２７を処理する。
【００８５】
＜Ｓ２３２６：制御対象時刻設定処理２＞
制御対象時刻設定部３７０は現在の制御対象時刻より前の時刻を新たな制御対象時刻として設定する。
【００８６】
＜Ｓ２３２７＞
制御装置３００は、いずれかの制御対象時刻についてリソース有無判定部３２０が当該計算機２１０が有ると判定した場合、Ｓ２３２８を処理し、いずれの制御対象時刻においてもリソース有無判定部３２０が当該計算機２１０が無いと判定した場合、処理を終了する。
【００８７】
＜Ｓ２３２８：制御処理＞
非終了プロセス移行部３３０が非終了プロセス移行制御を実行し、または、移行プロセス移行部３４０が移行プロセス移行制御を実行し、または、停止プロセス停止部３５０が停止プロセス停止制御を実行する。
このとき、非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、最も先の時刻を示す制御対象時刻を対象として各制御を実行する。
【００８８】
＜詳細例５＞
詳細例５では、「全アプリケーションプログラムの実行」と「デッドラインミスの長期防止」との実現性を向上させるために、プロセスをサブプロセスに分割し、非終了プロセスの発生時間帯の代わりに制御対象時刻を設定する例について説明する。
詳細例５は上記詳細例２と上記詳細例４とを組み合わせた例である。
【００８９】
図９は、実施の形態１（詳細例５）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６の詳細例５について、図９に基づいて以下に説明する。
「〜部」で説明する制御装置３００の各構成要素は以下の処理をＣＰＵ９１１を用いて実行する。
【００９０】
＜Ｓ２４０１：リソース有無判定処理＞
リソース有無判定部３２０は、前記Ｓ２３０１と同様に、当該計算機２１０（非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機）の有無を判定する。
【００９１】
＜Ｓ２４０２＞
制御装置３００は、Ｓ２４０１においてリソース有無判定部３２０が当該計算機２１０が有ると判定した場合、Ｓ２４０３を処理し、Ｓ２４０１においてリソース有無判定部３２０が当該計算機２１０が無いと判定した場合、Ｓ２４０５を処理する。
【００９２】
＜Ｓ２４０３＞
制御対象時刻設定部３７０は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、Ｓ２４０４を処理し、終了条件を満たす場合、Ｓ２４０９を処理する。
【００９３】
＜Ｓ２４０４：制御対象時刻設定処理１＞
制御対象時刻設定部３７０は現在の制御対象時刻より後の時刻を新たな制御対象時刻として設定する。
【００９４】
＜Ｓ２４０５＞
非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、前記Ｓ２３０３と同様に、プロセスの有効分割数と現在の分割数とを比較し、現在の分割数が有効分割数未満であればＳ２４０７を処理し、現在の分割数が有効分割数以上であれば処理を終了する。
【００９５】
＜Ｓ２４０６：プロセス分割処理＞
非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０はプロセスの分割数を増加（例えば、＋１）する。
プロセスの分割後、制御装置３００はＳ２４０１を処理する。
【００９６】
＜Ｓ２４０７＞
制御対象時刻設定部３７０は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、Ｓ２４０８を処理し、終了条件を満たす場合、Ｓ２４０９を処理する。
【００９７】
＜Ｓ２４０８：制御対象時刻設定処理２＞
制御対象時刻設定部３７０は現在の制御対象時刻より前の時刻を新たな制御対象時刻として設定する。
【００９８】
＜Ｓ２４０９＞
制御装置３００は、いずれかの制御対象時刻についてリソース有無判定部３２０が当該計算機２１０が有ると判定した場合、Ｓ２４１０を処理し、いずれの制御対象時刻についてもリソース有無判定部３２０が当該計算機２１０が無いと判定した場合、処理を終了する。
【００９９】
＜Ｓ２４１０：制御処理＞
非終了プロセス移行部３３０が非終了プロセス移行制御を実行し、または、移行プロセス移行部３４０が移行プロセス移行制御を実行し、または、停止プロセス停止部３５０が停止プロセス停止制御を実行する。
このとき、非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、最も先の時刻を示す制御対象時刻を対象として各制御を実行する。
また、最も先の時刻を示す制御対象時刻についてＳ２４０６においてプロセスが分割された場合、非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、例えば、各サブプロセスをそれぞれ異なる計算機２１０に移行する。
【０１００】
＜詳細例６＞
詳細例６では、「ＣＰＵ空き時間の大きな計算機２１０の確保」と「全アプリケーションプログラムの実行」と「デッドラインミスの長期防止」との実現性を向上させるために、プロセスをサブプロセスに分割し、非終了プロセスの発生時間帯の代わりに制御対象時刻を設定する例について説明する。
詳細例６は上記詳細例３と上記詳細例４とを組み合わせた例である。
【０１０１】
図１０は、実施の形態１（詳細例６）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャートである。
前記プロセス制御処理における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６の詳細例６について、図１０に基づいて以下に説明する。
「〜部」で説明する制御装置３００の各構成要素は以下の処理をＣＰＵ９１１を用いて実行する。
【０１０２】
＜Ｓ２５０１：リソース有無判定処理＞
リソース有無判定部３２０は、前記Ｓ２３０１と同様に、当該計算機２１０（非終了プロセス移行先計算機、移行プロセス移行元計算機、移行プロセス移行先計算機、プロセス停止計算機）の有無を判定する。
【０１０３】
＜Ｓ２５０２＞
非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、前記Ｓ２３０３と同様に、プロセスの有効分割数と現在の分割数とを比較し、現在の分割数が有効分割数未満であればＳ２５０３を処理し、現在分割数が有効分割数以上であればＳ２５０４を処理する。
【０１０４】
＜Ｓ２５０３：プロセス分割処理＞
非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０はプロセスの分割数を増加（例えば、＋１）する。
プロセスの分割後、制御装置３００はＳ２５０１を処理する。
【０１０５】
＜Ｓ２５０４＞
制御装置３００は、リソース有無判定部３２０が少なくともいずれかのプロセス分割数において当該計算機２１０が有ると判定した場合、Ｓ２５０５を処理し、リソース有無判定部３２０がいずれのプロセス分割数においても当該計算機２１０が無いと判定した場合、Ｓ２５０７を処理する。
【０１０６】
＜Ｓ２５０５＞
制御対象時刻設定部３７０は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、Ｓ２５０６を処理し、終了条件を満たす場合、Ｓ２５０９を処理する。
【０１０７】
＜Ｓ２５０６：制御対象時刻設定処理１＞
制御対象時刻設定部３７０は現在の制御対象時刻より後の時刻を新たな制御対象時刻として設定する。
【０１０８】
＜Ｓ２５０７＞
制御対象時刻設定部３７０は制御対象時刻設定処理の終了判定を行い、終了条件を満たさない場合、Ｓ２５０８を処理し、終了条件を満たす場合、Ｓ２５０９を処理する。
【０１０９】
＜Ｓ２５０８：制御対象時刻設定処理２＞
制御対象時刻設定部３７０は現在の制御対象時刻より前の時刻を新たな制御対象時刻として設定する。
【０１１０】
＜Ｓ２５０９＞
制御装置３００は、いずれかの制御対象時刻およびプロセス分割数についてリソース有無判定部３２０が当該計算機２１０が有ると判定した場合、Ｓ２５１０を処理し、いずれの制御対象時刻およびプロセス分割数についてもリソース有無判定部３２０が当該計算機２１０が無いと判定した場合、処理を終了する。
【０１１１】
＜Ｓ２５１０：制御処理＞
非終了プロセス移行部３３０が非終了プロセス移行制御を実行し、または、移行プロセス移行部３４０が移行プロセス移行制御を実行し、または、停止プロセス停止部３５０が停止プロセス停止制御を実行する。
このとき、非終了プロセス移行部３３０、移行プロセス移行部３４０または停止プロセス停止部３５０は、最も先の時刻を示す制御対象時刻を対象として、または、空きリソース量が最も大きい計算機２１０が存在するプロセスの分割数および計算機群を選択して、各制御を実行する。
【０１１２】
上記制御装置３００は計算機システム２００においてアプリケーションプログラム（プロセス）を実行する計算機２１０の一台であっても構わない。
【０１１３】
実施の形態１により、制御装置３００は、例えば、計算機システム２００において将来の非終了プロセスの発生を未然に防ぐことができる。
【０１１４】
実施の形態２．
前記実施の形態１と同様の計算機システム２００を前提に、制御装置３００について以下に説明する。
【０１１５】
本実施の形態において、デッドラインミスの要因となるプロセスは、デッドラインミス発生が予想されるアプリケーションプログラムにおいて、プロセスが必要とするＣＰＵ時間が増加傾向にあるプロセスとなる。プロセスが必要とするＣＰＵ時間が増加傾向かどうかは、発生時間帯予測部３１０によって検出される。検出の方法は、リソース情報取得部３８０が各プロセスが使用したＣＰＵ時間の履歴を制御装置記憶部３９０に保持しており、発生時間帯予測部３１０が履歴が示すＣＰＵ時間の変動に関する近似式の作成による方法である。例えば、発生時間帯予測部３１０は、求めた近似式が一次式であり、傾きが右上がりである場合などには、プロセスが必要とするＣＰＵ時間が増加傾向にあることを検出できる。
【０１１６】
発生時間帯予測部３１０は、あるアプリケーションプログラムのデッドラインミス発生が予想される場合、そのアプリケーションプログラムを構成する全てのプロセスが必要とするＣＰＵ時間の近似式を計算し、プロセスが必要とするＣＰＵ時間が増加傾向にあるプロセスを抽出することになる。
【０１１７】
以下、制御装置３００の、資源割当方法（プロセス制御方法）のアルゴリズムについて説明する。
＜説明に用いる記号＞
ａ：アプリケーションプログラムのデッドラインミス発生の要因となったプロセス、
Ｍ：システム内の計算機の台数、
Ｔ０：現在時刻、
Ｔ１：デッドラインミス発生時刻、つまり、非終了プロセスが発生する発生時間帯
Ｔ２：Ｔ１より「配置所要時間」と「プロセスの切り替えに要する時間」だけ先の時刻（「配置所要時間」、「プロセスの切り替えに要する時間」は例えばあらかじめ求めてあり、制御装置記憶部３９０に記載されているものとする）、
Ｐ（ｘ）：プロセスｘの処理周期、
ｃ（ｘ，ｉ）プロセスｘの時刻ｉにおける消費ＣＰＵ時間、
Ｅ（ｉ，ｊ）：計算機ｉの時刻ｊにおける空きＣＰＵ時間。
【０１１８】
図１９は、実施の形態２における制御装置３００のプロセス制御方法を示すフローチャートである。
【０１１９】
制御装置の最適配置（各プロセスをどの計算機に実行させるかを決定するプロセス制御方法）の手順の概要は以下の通りである。
手順１．非終了プロセス移行部３３０は、Ｔ２の時刻において、ある計算機に最も大きな空きＣＰＵ時間ができるような配置方法で最適配置する（Ｓ１００１）。
手順２．１で配置方法が存在しない場合（Ｓ１００２）、非終了プロセス移行部３３０は、時刻Ｔ２からＴ１の間で可能な配置方法のうち、最もＴ２に近い時刻における配置方法で最適配置する（Ｓ１００３）。
手順３．１〜２で配置方法が存在しない場合（Ｓ１００４）、移行プロセス移行部３４０は、既存のプロセスを他の計算機に移動させ、空いたところに配置可能かどうかを探索し、配置可能であればそれで非終了プロセス移行部３３０が最適配置する（Ｓ１００８）。
手順４．１〜３で配置方法が存在しない場合（Ｓ１００９）、停止プロセス停止部３５０は重要度の低いアプリケーションプログラムを停止させ、非終了プロセス移行部３３０は空いたリソースに配置可能かどうかを調査する（Ｓ１０１０）。
【０１２０】
Ｓ１００５〜Ｓ１００７については後述する。
【０１２１】
各手順の制御装置を構成する各部の詳細動作を以下に示す。
手順１．図２０と併せて以下に説明する。
＜Ｓ１０１１＞
手順１−１：リソース有無判定部３２０による時刻Ｔ２におけるプロセスａの動作可能性の調査
リソース情報取得部３８０は、Ｍ台の計算機の時刻Ｔ２におけるａから見た相対的な空きＣＰＵ時間を調査し、リソース有無判定部３２０は、リソース情報取得部３８０が収集した相対的な空きＣＰＵ時間をもとに、ａから見た空きＣＰＵ時間がプロセスａの消費ＣＰＵ時間よりも大きい事を確認する。プロセスａから見た相対的な空きＣＰＵ時間とは、ａの周期Ｐ（ａ）からａよりも優先度の高い全プロセスが使用するＣＰＵ時間の合計を引いたものとなる。
【０１２２】
リソース情報取得部３８０およびリソース有無判定部３２０が手順１で行う調査について、図１１を用いて説明する。
例えば、ある計算機上で、プロセスｘ（１）〜ｘ（ｎ）が動作し、そこにプロセスａが参入しようとしているとする。プロセスａよりも優先度の高いプロセスとして、ｘ（ｎ−１）とｘ（ｎ）が存在するとする。
本図によると、プロセスａの周期内でプロセスｘ（ｎ−１）は２回、プロセスｘ（ｎ）は４回動作可能である。
そして、プロセスａの周期から、ｘ（ｎ−１）の処理回数（＝２）×１回の処理時間とｘ（ｎ）の処理回数（＝４）×プロセスｘ（ｎ）の１回のＣＰＵ時間を引いたものが、プロセスａのＣＰＵ時間よりも大きければ、プロセスａは周期内に動作可能であると言える。
また、本実施の形態では、プロセスを複数の処理に分割することも可能としている。このため、１台の計算機にはプロセスａを動作させるだけの空きＣＰＵ時間はなくとも、プロセスａの処理を複数の処理に分割すれば、プロセスａの周期はそのままで、プロセスａが必要とするＣＰＵ時間は短くなるため、複数の計算機でプロセスａの処理を分散実行させることにより、プロセスａの処理が周期内に完了する可能性もある。
これらのことから、本手順では、リソース情報取得部３８０は、各計算機における、プロセスａから見た相対的なＣＰＵ空き時間を求め、リソース有無判定部３２０はそれらの和を求めるとともに、和とプロセスａのＣＰＵ時間とを比較することにより、プロセスａが動作できるかどうかを調べる。
リソース有無判定部３２０が求めた和の値がプロセスａが必要とするＣＰＵ時間よりも短ければ、システム内にプロセスａを動作させるだけの空きＣＰＵが存在しないことになる。
【０１２３】
本手順でのリソース情報取得部３８０およびリソース有無判定部３２０が行う調査内容を式にて表すと以下のようになる。
ここで、各計算機で動作するプロセスを「ｘ１，ｘ２，…，ｘｎ」とし、「ｍ＜ｎ」の場合、「ｘｍの優先度＜ｘｎの優先度」とする。そして、「ｘｋ−１の優先度＜プロセスａの優先度＜ｘｋの優先度」とする。
このとき、リソース情報取得部３８０が求める、計算機ｉの時刻Ｔ２におけるプロセスａから見た相対的な空きＣＰＵ時間Ｅａ（ｉ，Ｔ２）は以下の式（ａ）となる。
【０１２４】
【数３】
2008015958.tif 000004
【０１２５】
【数４】
2008015958.tif 000005
【０１２６】
上記式（ｂ）は、リソース有無判定部３２０が行う処理である、システム内に少なくともプロセスａを動作させるだけのリソースがあるかどうかを調べたものである。
【０１２７】
＜Ｓ１０１２＞
式（ｂ）を満たせば、システム内に、少なくともプロセスａを動作させるだけのリソースがあると判断し、「手順１−２」へ進む。
式（ｂ）を満たすことができなければ、リソース有無判定部３２０は時刻Ｔ２ではプロセスａを動作させるだけのＣＰＵ時間がシステム内に存在しないと判断し、「手順２（Ｓ１０２２）」に進む。
【０１２８】
＜Ｓ１０１３、Ｓ１０１４＞
このとき、後述するプロセスａの分割数はｊは１であり（Ｓ１０１３）、プロセスａの分割数ｊは最大分割数ｑ以下である（Ｓ１０１４）。
分割数ｊが最大分割数ｑ以下であれば手順１−２へ進む。
分割数ｊが最大分割数ｑ以下でなければ手順１−６へ進む。
【０１２９】
図１２では、リソース情報取得部３８０が計算機Ａ〜計算機Ｅの各計算機についてプロセスａから見た相対的な空きＣＰＵ時間の総和を上記式（ｂ）で算出し、リソース有無判定部３２０によりシステム内にプロセスａを動作させるだけのリソースがあったことを示す。図１２の場合、「手順１−２」へ進む。
【０１３０】
＜Ｓ１０１５＞
手順１−２：非終了プロセス移行部３３０によりプロセスａを１からｑまで分割した場合の、リソース有無判定部３２０による分割後のプロセスが動作できるだけの空きリソースを持つ計算機の調査
本手順では、非終了プロセス移行部３３０がプロセスａをいくつかに分割した場合、各分割プロセス（以下サブプロセス）が動作できるだけの計算機を調べる。なお、プロセスａを分割しても、各プロセスの優先度はａと同一であるとする。
【０１３１】
本手順の調査内容について、図１３を用いて説明する。
図１３では、非終了プロセス移行部３３０がプロセスａを３つに分割した例を示している。
式（ａ）で、リソース情報取得部３８０は各計算機についてプロセスａから見た空きＣＰＵ時間を求める。
そして、リソース有無判定部３２０は、非終了プロセス移行部３３０によりプロセスａを３分割した場合のＣＰＵ時間とプロセスａから見た各計算機の空きＣＰＵ時間とを比較し、空きＣＰＵ時間の方が大きい計算機を抽出する。
本実施の形態では、プロセスａを３分割した各サブプロセスのＣＰＵ時間は、単純に、プロセスａのＣＰＵ時間の１／３とする。本例では、リソース有無判定部３２０が調査したところ、プロセスａのサブプロセスよりも空きＣＰＵ時間が大きい計算機はＡ，Ｃ，Ｅの３台であるとする。本例では非終了プロセス移行部３３０によりプロセスａを３分割しているので、ａのサブプロセスよりも空きＣＰＵ時間が大きい計算機が３つ以上あれば、非終了プロセスはがこれらのうち３つの計算機に配置すればプロセスａは周期内で処理することができる。もし、ａのサブプロセスよりも空きＣＰＵ時間が大きい計算機が２台以下であれば、３分割した本例では処理できないことになるので、非終了プロセス移行部３３０は分割数を変更する。
【０１３２】
リソース有無判定部３２０およびリソース情報取得部３８０が行う本調査内容を一般的な式にて表すと以下のようになる。
ここで、プロセスａの分割数をｊとし、ｊは１からｑまで変動するものとする。また、ｑは、プロセスａが分割可能な数の最大値であり、制御装置記憶部３９０に記載されているものとする。
【０１３３】
リソース有無判定部３２０は時刻Ｔ２において、以下の式（ｃ）を満たす計算機を全て抽出する。
【０１３４】
【数５】
2008015958.tif 000006
【０１３５】
リソース有無判定部３２０の調査の結果、式（ｃ）を満たす計算機がｊ台以上存在すれば、非終了プロセス移行部３３０がプロセスａをｊ個のサブプロセスに分割した場合に、ｊ個のサブプロセスがデッドラインミスなく動作可能であると言うことができる。
【０１３６】
＜Ｓ１０１６＞
リソース有無判定部３２０の調査の結果、式（ｃ）を満たす計算機がｊ台以上存在しなければ、非終了プロセス移行部３３０はサブプロセスを配置することができないため、分割数ｊの値を１増やす。
「ｊ（分割数）＞ｑ（最大分割数）」であれば、手順１−６（Ｓ１０２１）へ進む。
そうでなければ、手順１−２（Ｓ１０１５）へ戻る。
式（ｃ）を満たす計算機がｊ台以上存在すれば、手順１−３（Ｓ１０１７）へ進む。
【０１３７】
＜Ｓ１０１７＞
手順１−３：非終了プロセス移行部３３０による、プロセスａのサブプロセスを動作させると仮定した場合に、リソース有無判定部３２０による、プロセスａのサブプロセスよりも優先度が低いプロセスが動作できるだけの空きリソースを持つ計算機の抽出
本手順では、リソース有無判定部３２０は、非終了プロセス移行部３３０が手順１−２で得られたｖ台（ｖ≧分割数ｊ）の計算機上でプロセスａのサブプロセスを動作させた場合に、プロセスａのサブプロセスよりも実行優先度が低いプロセスがデッドラインミスなく動作できるかどうかを調べる。
【０１３８】
プロセスａまたはプロセスａのサブプロセスが参入することにより、プロセスａよりも実行優先度の低いプロセスが利用可能なＣＰＵ時間は減る。そのため、プロセスａよりも実行優先度の低いプロセスがデッドラインミスなく動作できなくなる可能性がある。
そこで、リソース有無判定部３２０は、プロセスａよりも実行優先度の低い全てのプロセスについて、手順１−１と同様の方法で、デッドライン内での動作可能性を調べる。手順１−１と異なる点は、調査対象プロセスの周期内におけるａのサブプロセスのＣＰＵ時間の総和が考慮されている点である。
【０１３９】
これを一般的な式にて表すと以下のようになる。
ここで、計算機ｉ上で動作するプロセスを優先度の低い順にソートしたものを「ｘｉ１，…，ｘｉｐ，ａのサブプロセス，ｘｉ（ｐ＋１），…，ｘｉｎ」とする。
そして、リソース有無判定部３２０は、ｘｉｋ（ｋ＝１…ｐ）が以下の式（ｄ）を満たすかどうかを確認する。
【０１４０】
【数６】
2008015958.tif 000007
【０１４１】
＜Ｓ１０１８＞
手順１−２で得られたｖ台の計算機中、プロセスａのサブプロセスよりも優先度の低い全てのプロセスが式（ｄ）を満たす計算機が分割数ｊ台以上存在しない場合、プロセスａのサブプロセスを配置できないため、非終了プロセス移行部３３０は、分割数ｊの値を＋１する。
「ｊ（分割数）＞ｑ（最大分割数）」であれば手順１−６（Ｓ１０２１）へ進む。
そうでなければ手順１−２（Ｓ１０１５）へ戻る。
手順１−２で得られたｖ台の計算機中、プロセスａのサブプロセスよりも優先度の低い全てのプロセスが式（ｄ）を満たす計算機が分割数ｊ台以上存在する場合、手順１−４（Ｓ１０１９）へ進む。
【０１４２】
＜Ｓ１０１９＞
手順１−４：非終了プロセス移行部３３０によるｊ個のサブプロセスを配置する計算機群の候補の決定
リソース有無判定部３２０は、式（ｄ）を満たすｗ（ｗ≧ｊ）台の計算機について各計算機の空きＣＰＵ時間を求める。
プロセスａのサブプロセスを含めた全てのプロセスをｘ１〜ｘｎとすると、計算機ｕ（ｕ＝１〜ｗ）の空きＣＰＵ時間は、以下の式（ｅ）で求められる。
【０１４３】
【数７】
2008015958.tif 000008
【０１４４】
式（ｅ）で求めた値の小さい順にソートし、ソート後の計算機を「ｅｊ１，…，ｅｊｗ」とする。つまり、ｍ＜ｎの場合には「Ｅ（ｅｊｍ，Ｔ２）＜Ｅ（ｅｊｎ，Ｔ２）」となる。非終了プロセス移行部３３０は、Ｗ台の計算機のうち計算機群［ｅｊ１，ｅｊ２，…，ｅｊｊ］をプロセスａをｊ個のサブプロセスに分割した場合において、最適配置の候補計算機群とする。図１４は、式（ｄ）を満たす計算機が計算機Ａ〜計算機Ｅであり、プロセスａの分割数が４である場合には、［計算機Ｂ，計算機Ｃ，計算機Ｄ，計算機Ｅ］が一つの最適配置候補であることを示している。
【０１４５】
手順１−５へ進む。
【０１４６】
＜Ｓ１０２０＞
手順１−５：リソース情報取得部３８０による、ｊ個のサブプロセス配置後の各計算機の空きＣＰＵ時間の調査
リソース情報取得部３８０は、手順１−４で候補となったｊ個の計算機群にプロセスａのサブプロセスを動作させた場合のシステム内の全計算機の空きＣＰＵ時間を求める。
【０１４７】
求め方は、計算機ｉ（１≦ｉ≦Ｍ）上について、リソース情報取得部３８０が式（ｅ）を用いて調査することにより求められる。
求めた各計算機の空きＣＰＵ時間の大きい順にソートし、ソート後の計算機を「ｆｊ１，…，ｆｊＭ」とする。つまり、ｍ＜ｎにおいて、「Ｅ１（ｆｊｍ，Ｔ２）  ＞  Ｅ１（ｆｊｎ，Ｔ２）」となる。
【０１４８】
非終了プロセス移行部３３０は、分割数ｊの値を＋１し、「ｊ（分割数）＞ｑ（最大分割数）」であれば手順１−６（Ｓ１０２１）へ、そうでなければ手順１−２（Ｓ１０１５）に戻る。
【０１４９】
＜Ｓ１０２１＞
手順１−６：非終了プロセス移行部３３０によるリソース再配置を行う計算機の決定
制御装置の各部が手順１−２〜手順１−５をｑ（最大分割数）回行うことにより、ｚ個の最適配置候補が求められていたとする。
「ｚ＝０」であれば、手順２へ進む。
【０１５０】
非終了プロセス移行部３３０は、ｚ個の最適配置候補で、どの候補が、１台に存在する空きＣＰＵ時間が大きいかを調べる。
方法は以下の通りである。
【０１５１】
非終了プロセス移行部３３０はｆ１１〜ｆｚ１の中で最も空きＣＰＵ時間の値の大きいものを抽出する。
最大のものが１台のみで、それがｆｙ１であった場合には、［ｅｙ１，…，ｅｙｊ］が最適配置となる。
最大のものが複数台あった場合には、最大のものだけでｆ２の値を比較し、ｆ２が最も大きいものを抽出する。
最も大きいものが１台のみで、それがｆｙ２であった場合には［ｅｙ１，…，ｅｙｊ］が最適配置となる。
非終了プロセス移行部３３０はこの操作を、最大の空きＣＰＵ時間を持つ計算機が１台となるまで繰り返すことにより、最適配置を決定する。
【０１５２】
例えば、分割数１〜４のときにプロセスａのサブプロセスが全て配置可能であり、それぞれの最適配置候補が手順１−４によって決められている場合の制御装置の各部の動作について、図１５に基づいて説明する。
【０１５３】
リソース有無判定部３２０およびリソース情報取得部３８０が各分割数におけるシステム内の全計算機（ここではＡ〜Ｆとする）の使用ＣＰＵ時間（最低優先度プロセスの処理周期から、その周期内で全てのプロセスが使用したＣＰＵ時間を引いたもの）を調査したところ、図１５に示す棒グラフのようになったとする。この場合、各分割数において、非終了プロセス移行部３３０が使用ＣＰＵ時間の最も小さい計算機（空きＣＰＵ時間が最も大きい計算機）の使用ＣＰＵ時間を調査したところ、「分割数４のときの計算機Ｅ」＞「分割数１のときの計算機Ｂ」＞「分割数２のときの計算機Ａ」＝「分割数３のときの計算機Ａ」となる。つまり、空きＣＰＵ時間が最も大きい計算機は「分割数２のときの計算機Ａ」と「分割数３のときの計算機Ａ」である。そこで、さらに、非終了プロセス移行部３３０は分割数２のときのＣＰＵ使用状況と分割数３のときのＣＰＵ使用状況を比べる。各分割数において、２番目に使用ＣＰＵ時間の小さい計算機（空きＣＰＵ時間が２番目に大きい計算機）を比較すると、「分割数２のときの計算機Ｂ」＜「分割数３のときの計算機Ｂ」となる。ここでは、分割数２の場合に非終了プロセス移行部３３０が手順１−４にて決定した計算機配置が最適配置として採用される。
【０１５４】
手順２：図２１、図２２と併せて以下に説明する。
手順１で制御装置により最適配置が求められない場合、Ｔ２の時刻ではシステム内に空きＣＰＵ時間が足りないことが原因と考えられる。
そこで、図１６に示すように、制御対象時刻設定部３７０がＴ２を少しずつ現在の時刻に近づけることにより、最適配置の候補を求める。
求め方は、パラメータとして、評価時刻Ｔを設け、制御対象時刻設定部３７０がＴを変動させ、最適配置が存在すると思われる時刻の範囲を二分法によって徐々に絞り込んでいくことによって行う。
【０１５５】
本手順の制御装置の各部の具体的な手順を以下に示す。
＜Ｓ１１０１＞
手順２−１：リソース有無判定部３２０による、デッドラインミス発生時刻におけるプロセスａの動作可能性の調査
制御対象時刻設定部３７０は初期値としてＴ＝Ｔ１とする。
手順１−１と同様、リソース情報取得部３８０は時刻Ｔ１におけるプロセスａからみた相対的なシステム内の空き時間の総和を求める。求め方は、式（ａ），（ｂ）において、Ｔ２をＴ１に置き換えればよい。
【０１５６】
＜Ｓ１１０２＞
リソース有無判定部３２０はリソース情報取得部３８０が求めた空き時間の総和とプロセスａのＴ１におけるＣＰＵ時間：ｃ（ａ，Ｔ１）を比較し、ＣＰＵ時間：ｃ（ａ，Ｔ１）よりも小さければ、デッドラインミス発生時刻において、プロセスａを動作させるだけの空きＣＰＵ時間がシステム内に存在しないことになるので、制御装置は手順４の処理を実施する。
そうでなければ、手順２−２の処理を実施する。
【０１５７】
＜Ｓ１１０３、Ｓ１１０４＞
このとき、後述するプロセスａの分割数はｊは１であり（Ｓ１１０３）、プロセスａの分割数ｊは最大分割数ｑ以下である（Ｓ１１０４）。
分割数ｊが最大分割数ｑ以下であれば手順２−２へ進む。
分割数ｊが最大分割数ｑ以下でなければ手順２−５へ進む。
【０１５８】
＜Ｓ１１０５＞
手順２−２：非終了プロセス移行部３３０によりプロセスａを１からｑまで分割した場合の、リソース有無判定部３２０による、分割後のプロセスを動作可能な空きＣＰＵ時間を持つ計算機の調査
非終了プロセス移行部３３０はプロセスａの分割数をｊとする。「ｊ＝１，…，ｑ」とする。最大分割数ｑは、制御装置記憶部３９０に記載されている、プロセスａの分割最大値である。
手順１−２と同様、リソース有無判定部３２０は時刻Ｔ１において、式（ｃ）を満たす計算機を抽出する。手順１−２の式（ｃ）のＴ２をＴ１に置き換えればよい。
【０１５９】
＜Ｓ１１０６＞
時刻Ｔ１において式（ｃ）を満たす計算機がｊ台以上存在しなければ、時刻Ｔ１において、分割数ｊでは、最適配置が見つからないことになるから、手順２−５へ進む。
時刻Ｔ１において式（ｃ）を満たす計算機がｊ台以上存在すれば、手順２−３へ進む。
【０１６０】
＜Ｓ１１０７＞
手順２−３：リソース有無判定部３２０による、プロセスａのサブプロセスを動作させた場合の、プロセスａのサブシステムよりも優先度が低いプロセスが動作できるだけの空きＣＰＵ時間を持つ計算機の抽出
手順２−２でリソース有無判定部３２０によりｖ（ｖ≧ｊ）台の計算機が見つかったとする。
手順１−３と同様、リソース有無判定部３２０はｊ個のサブプロセスをｖ台の計算機にそれぞれ配置した場合において、プロセスａのサブプロセスが動作した場合にプロセスａのサブプロセスよりも優先度の低いプロセスが動作できるかどうかを調べる。これは、リソース有無判定部３２０が式（ｄ）を用いて調べることができる。手順１−３の式（ｄ）において、Ｔ２をＴ１に置き換えればよい。
【０１６１】
＜Ｓ１１０８＞
ｖ台の計算機のうち、時刻Ｔ１において式（ｄ）を満たす計算機がｊ台以上存在しなければ、非終了プロセス移行部３３０はｊ個のサブプロセスを配置できないため、手順２−５へ進む。
ｖ台の計算機のうち、時刻Ｔ１において式（ｄ）を満たす計算機がｊ台以上存在すれば、手順２−４へ進む。
【０１６２】
＜Ｓ１１０９＞
手順２−４：ｊ個のサブプロセスを配置する計算機群の候補の決定
手順２−３にて、式（ｄ）を満たす計算機がｗ（≧ｊ）台以上存在したら、リソース情報取得部３８０およびリソース有無判定部３２０は各計算機の空きＣＰＵ時間Ｅ１（ｉ，Ｔ１）（１≦ｉ≦ｗ）を求める。空きＣＰＵ時間は、式（ｅ）においてＴ２をＴ１とすればよい。
リソース有無判定部３２０は各計算機を空きＣＰＵ時間Ｅ１（ｉ，Ｔ１）の小さい順にソートし、ソート後の計算機を「ｅｊ１，…，ｅｊｗ」とする。つまり、「ｍ＜ｎ」の場合には「Ｅ１（ｅｊｍ，Ｔ１）＜Ｅ１（ｅｊｎ，Ｔ１）」となる。
非終了プロセス移行部３３０は、ｗ台の計算機のうち計算機群［ｅｊ１，ｅｊ２，…，ｅｊｊ］を最適配置の候補とし、手順２−６へ進む。
【０１６３】
＜Ｓ１１１０＞
手順２−５：非終了プロセス移行部３３０は、ｊの値を＋１する。
「ｊ（分割数）＞ｑ（最大分割数）」であればデッドラインミス発生時刻において配置方法が見つからなかったことになるので手順３へ進む。
「ｊ≦ｑ」であれば、手順２−２へ進む。
【０１６４】
＜Ｓ１１１１＞
手順２−６：制御対象時刻設定部３７０はパラメータとして最大評価時刻Ｔｙ、最小評価時刻Ｔｚを設け、「Ｔｙ＝Ｔ２」、「Ｔｚ＝Ｔ１」とする。
【０１６５】
＜Ｓ１１１２＞
手順２−７：最適配置が存在する時刻の範囲の絞り込み
「Ｔｙ−Ｔｚ」が「最小評価時刻間隔」以下であれば、非終了プロセス移行部３３０は、手順２−４または手順２−９で求めた最新の最適配置計算機群が最適配置とする。
なお、「最小評価時刻間隔」はあらかじめ制御装置記憶部３９０に示される値である。
本手法では、制御対象時刻設定部３７０がＴｙとＴｚの間隔を１／２ずつ縮めていくことにより解を絞り込む。このとき、ＴｙとＴｚの間隔は無限に小さくすることができるので、システム側で、ＴｙとＴｚの間隔の最小値（最小評価時刻間隔）を定めておき、ＴｙとＴｚの間隔の値が最小値に等しくなった時点で絞込みを終了させＳ１１１８に進む。
【０１６６】
＜Ｓ１１１２〜Ｓ１１１５＞
「Ｔｙ−Ｔｚ」が最小評価時刻間隔以下でなければ（Ｓ１１１２）、制御対象時刻設定部３７０は「Ｔ＝（Ｔｙ−Ｔｚ）／２」とし、リソース情報取得部３８０は時刻Ｔでのプロセスａから見た相対的な計算機の空きＣＰＵ時間の総和を求め、リソース有無判定部３２０は式（ｂ）を用いることによりプロセスaが動作できるだけのリソースがあるかどうかを調べる（Ｓ１１１３）。これは、式（ｂ）において、Ｔ２をＴとすればよい。
式（ｂ）を満たさない場合には（Ｓ１１１４）、最適配置は時刻Ｔ１〜Ｔの間に存在することになるので、制御対象時刻設定部３７０はＴｙ＝Ｔとして（Ｓ１１１５）、手順２−７へ進む。
式（ｂ）を満たす場合には（Ｓ１１１４）、手順２−８へ進む。
「Ｔｙ−Ｔｚ」が最小評価時刻間隔以下であれば、Ｓ１１１８へ進む。
【０１６７】
＜Ｓ１１１６＞
手順２−８：非終了プロセス移行部３３０は現在の分割数をｊ（ｊ＝１，…，ｑ）とする。手順２−９へ進む。
【０１６８】
＜Ｓ１１１７＞
手順２−９：リソース有無判定部３２０による時刻Ｔにおけるｊ個のサブプロセスの配置可能計算機群の抽出、最適配置がある時刻の絞込み
時刻Ｔにおいて、制御装置は手順２−２〜手順２−４を行う。
つまり、リソース有無判定部３２０は時刻Ｔにおいて式（ｃ）を満たす計算機を抽出する。式（ｃ）のＴ２をＴにすればよい。
そして、時刻Ｔにおいて式（ｃ）を満たす計算機がｊ台存在しなければｊの値を＋１する。
「ｊ≦ｑ」であれば手順２−９へ進む。
「ｊ＞ｑ」であれば、時刻Ｔ〜Ｔｙの間には最適配置が存在しないことになるので、制御対象時刻設定部３７０は「Ｔｙ＝Ｔ」として手順２−７に進む。
【０１６９】
時刻Ｔｘにおいて式（ｃ）を満たす計算機がｖ台（ｖ≧ｊ）あるとし、非終了プロセス移行部３３０がこのｖ台の計算機それぞれにｊ分割したサブプロセスを動作させた場合、それらの計算機上で動作するプロセスでありサブプロセスよりも優先度の低い全てのプロセスが動作できるかどうかを、リソース有無判定部３２０は全てのプロセスに対して式（ｄ）にてＴ２をＴとすることにより調べる。
そして、式（ｄ）を満たす計算機がｊ台未満であれば、非終了プロセス移行部３３０はｊの値を＋１する。
「ｊ≦ｑ」であれば手順２−９へ進む。
「ｊ＞ｑ」であれば、時刻Ｔ〜Ｔｙの間には最適配置がないことになるので、制御対象時刻設定部３７０は「Ｔｙ＝Ｔ」として手順２−７に進む。
【０１７０】
式（ｄ）を満たす計算機がｊ台以上である場合、リソース情報取得部３８０およびリソース有無判定部３２０はサブプロセス配置後の空きＣＰＵ時間を式（ｅ）においてＴ２をＴとすることにより求め、式（ｅ）で求めた値の小さい順にソートし、非終了プロセス移行部３３０は空きＣＰＵ時間の小さいほうからｊ台：［ｅｊ１，ｅｊ２，…，ｅｊｊ］を最適配置の候補とする。最適配置候補がなければ手順３（Ｓ１１２０）に進む。
【０１７１】
これにより、時刻Ｔ〜Ｔｙの間に最適解があることになるので、制御対象時刻設定部３７０は「Ｔｚ＝Ｔ」として、手順２−７に進む。
【０１７２】
＜Ｓ１１１８−Ｓ１１２０＞
非終了プロセス移行部３３０は、手順２−４または手順２−９にて候補として抽出した計算機群のうち、最もＴ２に近い配置計算機群を最適配置として決定する。
【０１７３】
手順３：図２３と併せて以下に説明する。
手順２で最適配置が存在しない場合、システム内にプロセスａを動作させるだけの空きリソースは存在するが、各計算機にある空きリソースが小さいためにプロセスａをサブプロセスに分割しても最適配置できない可能性がある。
本手順では、移行プロセス移行部３４０は、各計算機上にある、プロセスａよりも優先度が高く、ＣＰＵ時間の短いプロセスを他の計算機に移行させ、非終了プロセス移行部３３０はその計算機にプロセスａを配置することを試行する。
【０１７４】
＜Ｓ１２０１＞
手順３−１：リソース情報取得部３８０による、各計算機の、プロセスａからみた場合の相対的な空きＣＰＵ時間の調査
リソース有無判定部３２０は、時刻Ｔ１における、プロセスａから見た場合の各計算機の相対的な空きＣＰＵ時間Ｅａ（ｉ，Ｔ１）の値を大きい順にソートし、ソート後の計算機を「ｆ１，…，ｆＭ」とする。つまり、「ｍ＜ｎ」の場合は「Ｅａ（ｆｍ，Ｔ１）＞Ｅａ（ｆｎ，Ｔ１）」となる。
手順３−２へ進む。
【０１７５】
＜Ｓ１２０２〜Ｓ１２０３＞
手順３−２：
移行プロセス移行部３４０はソートした計算機から移動元計算機ｆｕを１台選択し、手順３−３へ進む。ここで、移動元計算機をｆｕ（ｕ＝１，…，Ｍ）とする（Ｓ１２０２）。
全ての移動元計算機ｆｕを選択済みの場合（Ｓ１２０３）、手順４へ進む。
【０１７６】
＜Ｓ１２０４＞
手順３−３：移行プロセス移行部３４０は、計算機ｆｕの中で、プロセスａよりも実行優先度が高いプロセスについて、ＣＰＵ時間の小さい順にソートし、ソート後のプロセスを「ｐ１，…，ｐｏ」とする。つまり、「ｏ＜ｎ」であれば、「ｃ（ｐｏ，Ｔ１）＜ｃ（ｐｎ，Ｔ１）」となる。
【０１７７】
＜Ｓ１２０５＞
手順３−４：移行プロセス移行部３４０による、計算機ｆｕ上で動作するプロセスで、プロセスａが動作するために移動すべきプロセスの選択
リソース有無判定部３２０は計算機ｆｕにおいて、以下の式（ｆ）を満足するプロセスをｎ個抽出する。
【０１７８】
【数８】
2008015958.tif 000009
【０１７９】
＜Ｓ１２０６＞
移行プロセス移行部３４０は、このプロセス群を、リソース情報取得部３８０によって得られたＣＰＵ時間の短い順にソートし、（ｆ）を満たすプロセスｐｘ（ｘ＝１〜ｎ）が存在すれば、移行プロセス移行部３４０がプロセスｐｘを他の計算機に動かせば、非終了プロセス移行部３３０は計算機ｆｕにてプロセスａは動作することができるので、手順３−５へ進む。
プロセスｐｘが存在せず、「ｕ＝Ｍ」であれば、移行プロセス移行部３４０は全ての計算機について調査済みであり、移行プロセス移行部３４０がどのプロセスを移動してもプロセスaはデッドライン内に処理不可能なので、手順４へ進む。
プロセスがｐｘが存在せず、「ｕ＜Ｍ」であれば、移行プロセス移行部３４０により調査していない計算機があるので、移行プロセス移行部３４０は、移動元計算機ｕの値を１増やして、手順３−２へ進む。
【０１８０】
手順３−５：ｘ＝１とする。手順３−６へ進む。
【０１８１】
＜Ｓ１２０７＞
手順３−６：リソース情報取得部３８０、リソース有無判定部３２０による移動対象プロセスｐｘが動作可能なだけの空きＣＰＵ時間調査
移行プロセス移行部３４０は、ｐｘの分割数をｊ（ｊ＝１，…，ｑ）とする。ｑは、制御装置記憶部３９０に記載されている、ｐｘの分割最大値である。
また、リソース情報取得部３８０は計算機ｆｕを除いた各計算機について、プロセスｐｘから見た相対的な空き時間を式（ａ）を使用することにより求め、リソース有無判定部３２０は式（ｂ）を満たすかどうかを確認する。
【０１８２】
＜Ｓ１２０８＞
リソース有無判定部３２０による調査の結果、式（ｂ）が満たせない場合には、ｐｘを動作させるだけの空きＣＰＵ時間が存在しないことになるので、移行プロセス移行部３４０は、ｘの値を＋１する。
「ｘ≦ｎ」であれば、手順３−６へ進む。
「ｘ＞ｎ」であり、「ｕ＜Ｍ」であれば、ｕの値を１増やして、手順３−３へ進む。
「ｕ≧Ｍ」であれば、非終了プロセス移行部３３０がプロセスａを配置する計算機は存在しないので、手順４へ進む。
式（ｂ）を満たす場合、手順３−７へ進む。
【０１８３】
＜Ｓ１２０９＞
手順３−７：移行プロセス移行部３４０によるｐｘの配置計算機の決定
移行プロセス移行部３４０は手順１−２〜１−４と同様の手法によりｐｘの配置先候補計算機を決定する。
プロセスｐｘが配置できない場合には、手順３−４に進む。
配置先候補計算機の決定後、手順３−８へ進む。
【０１８４】
＜Ｓ１２１０＞
手順３−８：リソース有無判定部３２０による計算機ｆｕへのプロセスａの配置可能性調査
リソース有無判定部３２０は計算機ｆｕにプロセスａを配置できるかどうか調べる。
具体的には、ｆｕ上で動作するプロセスを優先度順にソートしたものを、「ｂ１，…，ｂｍ，ａ，ｂｍ＋１，…，ｂｎ」とすると、リソース有無判定部３２０はｂｊ（１≦ｊ≦ｍ）が以下の式（ｇ）を満たすかどうかを調べる。
【０１８５】
【数９】
2008015958.tif 000010
【０１８６】
＜Ｓ１２１１〜Ｓ１２１２＞
１≦ｊ≦ｍにて式（ｇ）を満たさなければ（Ｓ１２１１）、非終了プロセス移行部３３０はプロセスａを配置できないので、手順３−４に進む。
式（ｇ）が満たせれば（Ｓ１２１１）、終了（Ｓ１２１２）。
【０１８７】
手順４：手順４における制御装置の各部の動作を図２４に併せて以下に説明する。
手順１〜３で配置可能な計算機が存在しない場合、システム内に十分な空きＣＰＵ時間がないことになる。この場合、停止プロセス停止部３５０が重要でないアプリケーションプログラムを構成する全てのプロセスを停止させることにより空きＣＰＵ時間を作成し、非終了プロセス移行部３３０により、手順１と同様の手法によって最適配置を決定する。
例えば、図１７ではプロセスｘ（ｎ）、プロセスｘ（ｎ−１）の占有する時間が多いために、プロセスａが動作できない例を示している。
ここで、プロセスｘ（ｎ）が、重要でないアプリケーションを構成するプロセスである場合、停止プロセス停止部３５０がプロセスｘ（ｎ）を停止させれば、図１８のように、非終了プロセス移行部３３０によりプロセスａを動作させることができるようになる。
本手順では、制御装置の各部がこのような操作を行うことにより、プロセスａを動作できるようにする。
【０１８８】
＜Ｓ１３０１＞
手順４−１：停止プロセス停止部３５０、リソース有無判定部３２０による、システムリソースを空けられるかどうかの調査
停止プロセス停止部３５０は、プロセスａが属するアプリケーションプログラムＡよりも重要度が低いアプリケーションプログラムを構成するプロセス群に、実行優先度がプロセスａより高いプロセスがあるかどうかを調べる。
【０１８９】
＜Ｓ１３０２、Ｓ１３０６＞
実行優先度がプロセスａより高いプロセスがなければ、プロセスａを含むアプリケーションプログラムは制限時間内に動作不可能であるため、非終了プロセス停止部３６０はプロセスａの処理を停止する（Ｓ１３０６）。
実行優先度がプロセスａより高いプロセスがあれば、手順４−２へ進む。
【０１９０】
＜Ｓ１３０３＞
手順４−２：停止プロセス停止部３５０による重要度が低いアプリケーションを構成する全プロセスの停止
アプリケーションＡよりも重要度が低く、その中でも最も重要度の低いアプリケーションＢを構成するプロセス群に、実行優先度がプロセスａより高いプロセスがある場合、停止プロセス停止部３５０がそのアプリケーションＢを停止し、リソース有無判定部３２０がプロセスａが動作できるかどうかを確認する。プロセスａが動作できるかどうかは、リソース情報取得部３８０がアプリケーションＢの全プロセス停止後の、時刻Ｔ１における計算機のプロセスａから見た相対的な空きＣＰＵ時間をリソース情報取得部３８０が式（ａ）で求めた上で、リソース有無判定部３２０が時刻Ｔ１において式（ｂ）を満たせばよい。
式（ｂ）が満たされない場合には、手順４−１に戻る。
停止プロセス停止部３５０が重要度が低いアプリケーションを構成する全プロセスの停止後、手順４−４へ進む。
【０１９１】
＜Ｓ１３０５＞
手順４−３：非終了プロセス移行部３３０は、現在の分割数をｊ（ｊ＝１…ｑ）とする。リソース有無判定部３２０は、時刻Ｔ１において式（ｃ）を満たす計算機を抽出する。
式（ｃ）を満たす計算機がｊ台以上存在しなければ、非終了プロセス移行部３３０はｊ個のサブプロセスを配置できないことになる。
ｊの値を＋１する。
「ｊ＞ｑ」であれば、手順４−２へ進む。
そうでなければ、手順４−３へ進む。
【０１９２】
＜Ｓ１３０４＞
手順４−４：非終了プロセス移行部３３０による配置計算機の決定
式（ｃ）を満たす計算機がｖ（ｖ≧ｊ）台存在したとし、ｖ台の計算機上でａのサブプロセスが動作した場合、アプリケーションＢ停止後における、ａのサブプロセスよりも実行優先度が低いプロセスが動作できるかどうかをリソース有無判定部３２０が式（ｄ）においてＴ２をＴ１に置き換えることによって調べる。
式（ｄ）を満たす計算機がｊ台以上あれば、リソース情報取得部３８０は式（ｄ）を満たす計算機の時刻Ｔ１における空きＣＰＵ時間を式（ｅ）において、Ｔ２をＴ１に置き換えることによって求める。
空きＣＰＵ時間の大きい順に並べ替え、ソート後の計算機を「ｅｊ１，…，ｅｊｗ」とする。つまり、「ｍ＜ｎ」の場合に「Ｅ１（ｅｊｍ，Ｔ１）＞Ｅ１（ｅｊｎ，Ｔ１）」となる。
【０１９３】
＜Ｓ１３０５＞
非終了プロセス移行部３３０は、ｖ台の計算機のうち計算機群［ｅｊ１，ｅｊ２，…，ｅｊｊ］を配置計算機とし、終了。
【０１９４】
ここで、図１９のＳ１００５〜Ｓ１００７について説明する。
例えば、最適配置を決めるまでの時間制約として、手順１〜２が必ず行えるだけの時間と手順４が行えるだけの時間の最大値を設けておく。そして、手順１（Ｓ１００１）、手順２（Ｓ１００３）を行い、手順２（Ｓ１００３）が終わった時点での残り時間が手順４が行えるだけの時間の最大値よりも大きければ、手順３（Ｓ１００８）を手順４（Ｓ１０１０）を始めるべき時間まで行う。このようにして処理を行うことにより、重要度の低いアプリケーションプログラムを極力停止させることなくプロセスの配置先計算機を決定することができる。
【０１９５】
各実施の形態において、アプリケーションプログラムに将来デッドラインミス発生が発生すると予想される場合に、デッドラインミス発生予想時刻よりもできるだけ先の時刻における各計算機の空きＣＰＵ時間、各アプリケーションプログラムの使用ＣＰＵ時間をもとに、リアルタイム処理が継続可能なリソース配置方法の候補を抽出し、抽出したリソース配置方法の候補の中で、システム内に存在する各計算機の空きＣＰＵ時間が最大となるようなリソース割付を行うことを特徴とする制御装置３００について説明した。つまり、長期にわたるデッドラインミスの防止を可能とするリソース動的制御システム（計算機システム２００）について説明した。
【０１９６】
また、アプリケーションに将来デッドラインミス発生が発生すると予想される場合に、デッドラインミス発生時刻よりも先の時刻を示す評価時刻を設け、評価時刻における空きＣＰＵ時間、各プロセスの使用ＣＰＵ時間をもとに、リアルタイム処理が継続可能なリソース配置方法の候補を抽出し、抽出したリソース配置方法の候補の中で、システム内に存在する各計算機の空きＣＰＵ時間が最大となるようなリソース割付を行い、さらに、リソース割付先が決定しない場合には、評価時刻を変動させることにより各計算機の空きＣＰＵ時間、プロセスの使用ＣＰＵ時間を変更させてリソース割付を決定することを特徴とするリソース動的制御方法（プロセス制御方法）について説明した。
【０１９７】
各実施の形態における制御装置３００は、デッドラインミスを解消するために、単純に各計算機のＣＰＵ使用率を比較するのではなく、各プロセスのＣＰＵ時間、各計算機の空きＣＰＵ時間をもとに配置を行うことを特徴とする。
【０１９８】
また、各実施の形態における制御装置３００は、ＣＰＵ使用率の低い計算機へのプロセスマイグレーションを行う際のリソース割付方法として、プロセスを分割し、１つあたりのプロセスのＣＰＵ時間を小さくして、複数の計算機に割り付けることを特徴とする。
【０１９９】
対象とするアプリケーションプログラムは突発的に処理負荷が増加する可能性があるので、各実施の形態における制御装置３００は、空きＣＰＵ時間を１つの計算機にまとめておくことにより、最適配置をただちに決定できるという効果を得ることができる。
【図面の簡単な説明】
【０２００】
【図１】実施の形態１における計算機システム２００の構成図。
【図２】実施の形態１における制御装置３００、計算機２１０のハードウェア資源の一例を示す図である。
【図３】実施の形態１における制御装置３００の構成図。
【図４】実施の形態１における制御装置３００のプロセス制御方法を示すフローチャート。
【図５】実施の形態１（詳細例１）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャート。
【図６】実施の形態１（詳細例２）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャート。
【図７】実施の形態１（詳細例３）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャート。
【図８】実施の形態１（詳細例４）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャート。
【図９】実施の形態１（詳細例５）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャート。
【図１０】実施の形態１（詳細例６）における非終了プロセス移行処理Ｓ２１０２、移行プロセス移行処理Ｓ２１０４、停止プロセス停止処理Ｓ２１０６を示すフローチャート。
【図１１】実施の形態２におけるプロセスａから見た相対的なＣＰＵ利用状況を示す一例である。
【図１２】実施の形態２におけるプロセスａの動作可能性調査を示す一例である。
【図１３】実施の形態２におけるプロセス分割時の配置可能計算機の抽出を示す図である。
【図１４】実施の形態２における配置候補計算機の決定を示す図である。
【図１５】実施の形態２におけるプロセス分割時の配置候補計算機の決定を示す図である。
【図１６】実施の形態２における手順２の考え方を示す図である。
【図１７】実施の形態２におけるリソース不足時の例を示す図である。
【図１８】実施の形態２におけるプロセスｘ（ｎ）を停止させることによりＣＰＵ時間を空けた例を示す図である。
【図１９】実施の形態２における全体の動作手順を示すフローチャートである。
【図２０】実施の形態２における手順１の動作手順を示すフローチャートである。
【図２１】実施の形態２における手順２の動作手順を示すフローチャートである。
【図２２】実施の形態２における手順２の動作手順を示すフローチャートである。
【図２３】実施の形態２における手順３の動作手順を示すフローチャートである。
【図２４】実施の形態２における手順４の動作手順を示すフローチャートである。
【符号の説明】
【０２０１】
２００  計算機システム、２１０  計算機、３００  制御装置、３１０  発生時間帯予測部、３２０  リソース有無判定部、３３０  非終了プロセス移行部、３４０  移行プロセス移行部、３５０  停止プロセス停止部、３６０  非終了プロセス停止部、３７０  制御対象時刻設定部、３８０  リソース情報取得部、３９０  制御装置記憶部、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９０８  マイク、９０９  スピーカー、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2008015958.tif 000012
【図２】
2008015958.tif 000013
【図３】
2008015958.tif 000014
【図４】
2008015958.tif 000015
【図５】
2008015958.tif 000016
【図６】
2008015958.tif 000017
【図７】
2008015958.tif 000018
【図８】
2008015958.tif 000019
【図９】
2008015958.tif 000020
【図１０】
2008015958.tif 000021
【図１１】
2008015958.tif 000022
【図１２】
2008015958.tif 000023
【図１３】
2008015958.tif 000024
【図１４】
2008015958.tif 000025
【図１５】
2008015958.tif 000026
【図１６】
2008015958.tif 000027
【図１７】
2008015958.tif 000028
【図１８】
2008015958.tif 000029
【図１９】
2008015958.tif 000030
【図２０】
2008015958.tif 000031
【図２１】
2008015958.tif 000032
【図２２】
2008015958.tif 000033
【図２３】
2008015958.tif 000034
【図２４】
2008015958.tif 000035