(57)【要約】　　　（修正有）【課題】複数のプロセッサから構成されているシステム中の各プロセッサの稼働率を平準化する。【解決手段】（ａ）プロセッサ（第１プロセッサ）の他プロセッサ選択閾値及び他プロセッサ選択率（第１他プロセッサ選択閾値及び第１他プロセッサ選択率）、並びにプロセッサ（第２プロセッサ）の他プロセッサ選択閾値及び他プロセッサ選択率（第２他プロセッサ選択閾値及び第２他プロセッサ選択率）を記憶するパラメータ記憶部１１１と、（ｂ）プロセッサ２の稼働率（第１稼働率）及びプロセッサの稼働率（第２稼働率）を受け付ける応答受付部１２１と、（ｃ）プロセッサの稼働率と他プロセッサ選択閾値との第１大小関係、及びプロセッサの稼働率と他プロセッサ選択閾値との大小関係を判定可能な判定部１１５と、（ｄ）振り分け処理を行う制御部１１７と、を具備する。【選択図】　　　図２
2004021287.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサの第１他プロセッサ選択閾値及び第１他プロセッサ選択率、並びに第２プロセッサの第２他プロセッサ選択閾値及び第２他プロセッサ選択率を記憶する記憶部と、
前記第１プロセッサの第１稼働率及び前記第２プロセッサの第２稼働率を受け付ける受付部と、
前記第１稼働率と前記第１他プロセッサ選択閾値との第１大小関係、及び前記第２稼働率と前記第２他プロセッサ選択閾値との第２大小関係を判定可能な判定部と、
前記第１大小関係が第１条件を満たす場合に、前記第１他プロセッサ選択率に基づいて振り分け処理を行い、さらに前記第２大小関係及び前記第２他プロセッサ選択率が第２条件を満たす場合に、第２プロセッサに処理を割り当てる制御部と、を具備することを特徴とする稼働率平準化装置。
【請求項２】
さらに第１カウンタ及び第２カウンタを備え、
前記制御部は、前記第１大小関係が前記第１条件を満たす毎に、前記第１カウンタの値を増減させ、前記第１カウンタの値が第３条件を満たす場合に前記第１他プロセッサ選択率を増加させ、一方前記第１大小関係が前記第１条件を満たさない毎に、前記第２カウンタの値を増減させ、前記第２カウンタの値が第４条件を満たす場合に前記第１他プロセッサ選択率を減少させることを特徴とする請求項１記載の稼働率平準化装置。
【請求項３】
第１プロセッサの第１他プロセッサ選択閾値及び第１他プロセッサ選択率、並びに第２プロセッサの第２他プロセッサ選択閾値及び第２他プロセッサ選択率を記憶する記憶ステップと、
前記第１プロセッサの第１稼働率及び前記第２プロセッサの第２稼働率を受け付ける受付ステップと、
前記第１稼働率と前記第１他プロセッサ選択閾値との第１大小関係、及び前記第２稼働率と前記第２他プロセッサ選択閾値との第２大小関係を判定する判定ステップと、
前記第１大小関係が第１条件を満たす場合に、前記第１他プロセッサ選択率に基づいて行う振り分けステップと、
前記第２大小関係及び前記第２他プロセッサ選択率が第２条件を満たす場合に、第２プロセッサに処理を割り当てる処理割り当てステップと、を含むことを特徴とする稼働率平準化方法。
【請求項４】
さらに、前記第１大小関係が前記第１条件を満たす毎に、第１カウンタの値を増減させ、前記第１カウンタの値が第３条件を満たす場合に前記第１他プロセッサ選択率を増加させ、一方前記第１大小関係が前記第１条件を満たさない毎に、第２カウンタの値を増減させ、前記第２カウンタの値が第４条件を満たす場合に前記第１他プロセッサ選択率を減少させることを特徴とする請求項３記載の稼働率平準化方法。
【請求項５】
コンピュータに、
第１プロセッサの第１他プロセッサ選択閾値及び第１他プロセッサ選択率、並びに第２プロセッサの第２他プロセッサ選択閾値及び第２他プロセッサ選択率を記憶する記憶ステップと、
前記第１プロセッサの第１稼働率及び前記第２プロセッサの第２稼働率を受け付ける受付ステップと、
前記第１稼働率と前記第１他プロセッサ選択閾値との第１大小関係、及び前記第２稼働率と前記第２他プロセッサ選択閾値との第２大小関係を判定する判定ステップと、
前記第１大小関係が第１条件を満たす場合に、前記第１他プロセッサ選択率に基づいて行う振り分けステップと、
前記第２大小関係及び前記第２他プロセッサ選択率が第２条件を満たす場合に、第２プロセッサに処理を割り当てる処理割り当てステップと、を実行させることを特徴とする稼働率平準化プログラム。
【請求項６】
さらに、コンピュータに、
前記第１大小関係が前記第１条件を満たす毎に、第１カウンタの値を増減させ、前記第１カウンタの値が第３条件を満たす場合に前記第１他プロセッサ選択率を増加させ、一方前記第１大小関係が前記第１条件を満たさない毎に、第２カウンタの値を増減させ、前記第２カウンタの値が第４条件を満たす場合に前記第１他プロセッサ選択率を減少させることを特徴とする請求項５記載の稼働率平準化プログラム。
【請求項７】
コンピュータに、
第１プロセッサの第１他プロセッサ選択閾値及び第１他プロセッサ選択率、並びに第２プロセッサの第２他プロセッサ選択閾値及び第２他プロセッサ選択率を記憶する記憶ステップと、
前記第１プロセッサの第１稼働率及び前記第２プロセッサの第２稼働率を受け付ける受付ステップと、
前記第１稼働率と前記第１他プロセッサ選択閾値との第１大小関係、及び前記第２稼働率と前記第２他プロセッサ選択閾値との第２大小関係を判定する判定ステップと、
前記第１大小関係が第１条件を満たす場合に、前記第１他プロセッサ選択率に基づいて行う振り分けステップと、
前記第２大小関係及び前記第２他プロセッサ選択率が第２条件を満たす場合に、第２プロセッサに処理を割り当てる処理割り当てステップと、を実行させる稼働率平準化プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項８】
さらに、コンピュータに、
前記第１大小関係が前記第１条件を満たす毎に、第１カウンタの値を増減させ、前記第１カウンタの値が第３条件を満たす場合に前記第１他プロセッサ選択率を増加させ、一方前記第１大小関係が前記第１条件を満たさない毎に、第２カウンタの値を増減させ、前記第２カウンタの値が第４条件を満たす場合に前記第１他プロセッサ選択率を減少させる稼働率平準化プログラムを記録したことを特徴とする請求項７記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサ間において稼働率を平準化する装置、方法、プログラムおよびそのプログラムを記録した記録媒体に関し、特に処理能力の異なる複数のプロセッサによって処理を分散するシステムにおいて、複数のプロセッサの中から処理を実行するプロセッサを選択する技術に関する。
【０００２】
【従来の技術】
従来は、処理を実行するプロセッサを複数のプロセッサの中から単純ラウンドロビンによって選択している。この時、各プロセッサの処理能力、稼働率の差違は考慮せず、全てのプロセッサを均等にラウンドロビンによる選択の対象としている。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の単純ラウンドロビンによる選択方法においては、例えば処理能力の異なるプロセッサ間では稼働率の上昇傾向に違いがあるため、処理能力の高いプロセッサの稼働率に余裕がある段階で、処理能力の低いプロセッサの稼働率が限界に達してしまうという問題がある。
【０００４】
本発明は、上記課題に鑑みてなされたものであり、複数のプロセッサから構成されているシステム中の各プロセッサの稼働率を平準化する装置、方法、プログラムおよびそのようなプログラムが記録された記録媒体を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明は、上記課題を解決するためになされたものであり、その第１の特徴は（ａ）第１プロセッサの第１他プロセッサ選択閾値及び第１他プロセッサ選択率、並びに第２プロセッサの第２他プロセッサ選択閾値及び第２他プロセッサ選択率を記憶する記憶部と、（ｂ）前記第１プロセッサの第１稼働率及び前記第２プロセッサの第２稼働率を受け付ける受付部と、（ｃ）前記第１稼働率と前記第１他プロセッサ選択閾値との第１大小関係、及び前記第２稼働率と前記第２他プロセッサ選択閾値との第２大小関係を判定可能な判定部と、（ｄ）前記第１大小関係が第１条件を満たす場合に、前記第１他プロセッサ選択率に基づいて振り分け処理を行い、前記第２大小関係及び前記第２他プロセッサ選択率が第２条件を満たす場合に、第２プロセッサに処理を割り当てる制御部と、を具備することにある。
【０００６】
「第１大小関係が第１条件を満たす場合」には、例えば
・第１稼働率が第１他プロセッサ選択閾値より大の場合、
・第１稼働率が第１他プロセッサ選択閾値以上の場合などが含まれる。
【０００７】
「第１他プロセッサ選択率に基づく振り分け処理」とは、第１他プロセッサ選択率をＸ％とすると、Ｘ％の確率で第１プロセッサ以外のプロセッサを選択し、（１００−Ｘ）％の確率で第１プロセッサを選択することを言う。
【０００８】
「第２大小関係及び第２他プロセッサ選択率が第２条件を満たす場合」には、例えば、
・第２稼働率が第２他プロセッサ選択閾値より小で、かつ第２他プロセッサ選択率が０である場合、
・第２稼働率が第２他プロセッサ選択閾値以下で、かつ第２他プロセッサ選択率が２５％以下である場合などが含まれる。
【０００９】
このような第１の特徴によれば、例えば（１）第１プロセッサの第１稼働率が第１他プロセッサ選択閾値を超えた場合であって、（２）第２プロセッサの第２稼働率が第２他プロセッサ選択閾値未満であり、かつ第２他プロセッサ選択率が０％である場合などの所定条件下において、第１プロセッサの代わりに第２プロセッサが選択され、稼働率を平準化することが可能になる。
【００１０】
また、本発明の第２の特徴は、第１の特徴に加えて、さらに第１カウンタ及び第２カウンタを備え、前記制御部は、前記第１大小関係が前記第１条件を満たす毎に、前記第１カウンタの値を増減させ、前記第１カウンタの値が第３条件を満たす場合に前記第１他プロセッサ選択率を増加させ、一方前記第１大小関係が前記第１条件を満たさない毎に、前記第２カウンタの値を増減させ、前記第２カウンタの値が第４条件を満たす場合に前記第１他プロセッサ選択率を減少させることにある。
【００１１】
「前記第１大小関係が前記第１条件を満たす毎に、前記第１カウンタの値を増減させ、前記第１カウンタの値が第３条件を満たす場合に前記第１他プロセッサ選択率を増加させ」には、例えば第１稼働率が第１他プロセッサ選択閾値より大である場合に、第１カウンタの値を１増加させ、その結果、第１カウンタの値が３より大となる場合に、第１他プロセッサ選択率を増加させる場合が含まれる。
【００１２】
また、例えば第１カウンタの初期値を３とし、第１稼働率が第１他プロセッサ選択閾値より大である場合に、第１カウンタの値を１減少させ、その結果、第１カウンタの値が０となる場合に、第１他プロセッサ選択率を増加させる場合も含まれる。
【００１３】
「前記第１大小関係が前記第１条件を満たさない毎に、前記第２カウンタの値を増減させ、前記第２カウンタの値が第４条件を満たす場合に前記第１他プロセッサ選択率を減少させる」には、例えば第１稼働率が第１他プロセッサ選択閾値より大でない場合に、第２カウンタの値を１増加させ、その結果、第２カウンタの値が１より大となる場合に、第１他プロセッサ選択率を減少させる場合が含まれる。
【００１４】
また、例えば第２カウンタの初期値を２とし、第１稼働率が第１他プロセッサ選択閾値より大でない場合に、第２カウンタの値を１減少させ、その結果、第２カウンタの値が０となる場合に、第１他プロセッサ選択率を減少させる場合も含まれる。
【００１５】
このような第２の特徴によれば、例えば（１）プロセッサの稼働率が他プロセッサ選択閾値を３回連続して超えたら他プロセッサ選択率を上昇させ、（２）逆にプロセッサの稼働率が他プロセッサ選択閾値を２回連続して超えなかったら他プロセッサ選択率を下降させるなど、プロセッサの稼働率に応じて随時他プロセッサ選択率は上下動させることによって、各プロセッサの使用状況、環境変化に柔軟に対応して、稼働率のより一層の平準化が可能となる。
【００１６】
また、本発明の第３の特徴は、（ａ）第１プロセッサの第１他プロセッサ選択閾値及び第１他プロセッサ選択率、並びに第２プロセッサの第２他プロセッサ選択閾値及び第２他プロセッサ選択率を記憶する記憶ステップと、（ｂ）前記第１プロセッサの第１稼働率及び前記第２プロセッサの第２稼働率を受け付ける受付ステップと、（ｃ）前記第１稼働率と前記第１他プロセッサ選択閾値との第１大小関係、及び前記第２稼働率と前記第２他プロセッサ選択閾値との第２大小関係を判定する判定ステップと、（ｄ）前記第１大小関係が第１条件を満たす場合に、前記第１他プロセッサ選択率に基づいて行う振り分けステップと、（ｅ）前記第２大小関係及び前記第２他プロセッサ選択率が第２条件を満たす場合に、第２プロセッサに処理を割り当てる処理割り当てステップと、を含むことにある。
【００１７】
「第１他プロセッサ選択閾値及び第１他プロセッサ選択率」を記憶した直後に「第２他プロセッサ選択閾値及び第２他プロセッサ選択率」を記憶する必要はない。「第１他プロセッサ選択閾値及び第１他プロセッサ選択率」の記憶と、「第２他プロセッサ選択閾値及び第２他プロセッサ選択率」の記憶との間に他のステップが行われても良い。他プロセッサ選択閾値、他プロセッサ選択率および稼働率は、それらが必要とされるステップの前に読み込まれていれば良い。
【００１８】
このような第３の特徴によれば、第１の特徴と同様に、稼働率を平準化することができる。
【００１９】
さらに、第４の特徴は、前記第１大小関係が前記第１条件を満たす毎に、第１カウンタの値を増減させ、前記第１カウンタの値が第３条件を満たす場合に前記第１他プロセッサ選択率を増加させ、一方前記第１大小関係が前記第１条件を満たさない毎に、第２カウンタの値を増減させ、前記第２カウンタの値が第４条件を満たす場合に前記第１他プロセッサ選択率を減少させることにある。
【００２０】
このような第４の特徴によれば、第２の特徴と同様に、稼働率のより一層の平準化が可能となる。
【００２１】
【発明の実施の形態】
以下に本発明の実施の形態を図面を参照しつつ詳細に説明するが、本発明はこれらの実施の形態に限定されるものではない。
【００２２】
図１に示すように、本発明の実施の形態にかかる処理システムは、処理を実行する処理プロセッサ１，２，３，・・・Ｘ、これら処理プロセッサを制御する制御プロセッサ１０１から構成される。
【００２３】
図２に示すように、制御プロセッサ１０１は、パラメータ記憶部１１１、処理部１１３、判定部１１５、制御部１１７、要求部１１９、応答受付部１２１から構成される。図２では、処理プロセッサは１つだけ図示されているが、これは図２が制御プロセッサ１０１の構成を示すための図であって、処理プロセッサについては簡略化しているためである。
【００２４】
パラメータ記憶部１１１は、プロセッサ２（第１プロセッサ）の他プロセッサ選択閾値及び他プロセッサ選択率（第１他プロセッサ選択閾値及び第１他プロセッサ選択率）、並びにプロセッサ１（第２プロセッサ）の他プロセッサ選択閾値及び他プロセッサ選択率（第２他プロセッサ選択閾値及び第２他プロセッサ選択率）を記憶する。
【００２５】
処理部１１３は、他プロセッサ選択率や他プロセッサ選択閾値などの各種パラメータをパラメータ記憶部１１１に書き込み、またそれら各種パラメータをパラメータ記憶部１１１から読み出したりする。
【００２６】
判定部１１５は、稼働率と他プロセッサ選択閾値とを比較してその大小関係を判定したり、他プロセッサ選択率の値が０か否かを判定したりする。
【００２７】
制御部１１７は、パラメータ記憶部１１１、処理部１１３、判定部１１５、要求部１１９、応答受付部１２１を制御する。図示しないタイマに基づいて収集周期を監視したり、図示しないカウンタを用いて閾値オーバ回数や閾値下回り回数などをカウントする。
【００２８】
要求部１１９は、各処理プロセッサに対して稼働率を知らせるように所定周期で要求する。
【００２９】
応答受付部１２１は、各処理プロセッサから送られてくる稼働率を受け付ける。
【００３０】
図３（Ａ）は第１回目の通常のラウンドロビン処理の様子を示す。第１回目のラウンドロビン処理で選択されたプロセッサを「選択候補プロセッサ」と言う。制御プロセッサ１０１から処理プロセッサ１、処理プロセッサ３、処理プロセッサＸへ達している矢印３１１，３１５，３１７は、制御プロセッサ１０１が処理プロセッサ１、処理プロセッサ３、処理プロセッサＸのいずれかを選択可能であることを示す。また、制御プロセッサ１０１から処理プロセッサ２へ達している太い矢印３１３は、現在、制御プロセッサ１０１が処理プロセッサ２を選択候補としていることを示す。
【００３１】
プロセッサ１，Ｘは、プロセッサ２，３に比べて処理能力が高いものとする。このため、図３（Ａ）に示すように、プロセッサ１，Ｘの稼働率は閾値に達していないが、プロセッサ２，３の稼働率は閾値を超えてしまっている。選択候補プロセッサに関して「受け入れ判定」を行う。「受け入れ判定」とは、選択候補プロセッサを実際に選択するか否かを判定することを言う。この「受け入れ判定」は「他プロセッサ選択率」に基づいて行われる。「他プロセッサ選択率」とは、「選択候補プロセッサ」以外のプロセッサを選択する確率を示す。具体的には、他プロセッサ選択率が２５％の場合、４回につき１回は、選択候補プロセッサではなくて、受け入れ先プロセッサを選択する。「受け入れ先プロセッサ」とは、選択候補プロセッサ以外のプロセッサが選択される際に、新たな受け入れ先となるプロセッサのことである。例えば、第１回目のラウンドロビン処理ではプロセッサ２が選択され、第２回目のラウンドロビン処理ではプロセッサ１が選択される場合、このプロセッサ１を「受け入れ先プロセッサ」と言う。
【００３２】
図３（Ｂ）は第２回目のラウンドロビン処理の様子を示す。ここで「選択候補プロセッサ」以外のプロセッサ中のどれが「受け入れ先プロセッサ」となるかを決める基準として「他プロセッサ選択閾値」を用いる。例えば、選択候補プロセッサがプロセッサ２であり、プロセッサ２以外のプロセッサ１，３・・・Ｘのいずれか１つを「受け入れ先プロセッサ」として選択する場合に、プロセッサ３の稼働率は「他プロセッサ選択閾値」を超えているので、プロセッサ３は選択不可と判断される。ここで、矢印３２１は、所定要件を満たす複数のプロセッサのみを対象とするラウンドロビン選択を示し、矢印３２３は、そのようなラウンドロビン選択の結果としてプロセッサ１が選択されていることを示す。
【００３３】
図３（Ａ）においては、第１回目の通常のラウンドロビン選択の結果、プロセッサ２が選択候補プロセッサとして指定されている（太い矢印３１３）。しかし、プロセッサ２には他プロセッサ選択率２５％が設定されているため、受け入れ判定の結果、４回に３回はプロセッサ２が選択されるが、４回に１回は条件付きで第２回目のラウンドロビン選択が再度実施されることになる。
【００３４】
図３（Ｂ）の第２回目のラウンドロビン選択（矢印３２１）においては、選択条件が
・プロセッサ稼働率が他プロセッサ選択閾値以下である
・他プロセッサ選択率が０％である
・上記２要件を満たすプロセッサが複数ある場合は、ラウンドロビンで選択するという内容であるとする。このため、プロセッサ稼働率が他プロセッサ選択閾値を超えているプロセッサ２，３は選択対象からはずされる。そして、プロセッサ１，・・・Ｘを対象とするラウンドロビン選択となり、結果としてプロセッサ１が選択されている（矢印３２３）。
【００３５】
図４は、本実施の形態における稼働率平準化処理の流れを示す。図４に示すように、処理プロセッサ選択要求があると（ステップＳ４０１）、単純ラウンドロビンを開始し（ステップＳ４０３）、１つの処理プロセッサ（例えば、プロセッサ２）を選択する（ステップＳ４０５）。
【００３６】
ステップＳ４０７では、プロセッサ２のプロセッサ稼働率と他プロセッサ選択閾値とを比較し、プロセッサ２のプロセッサ稼働率が、他プロセッサ選択閾値より大であるか否かを判断する。具体的には、制御部１１７の制御下で、
・図２に示す要求部１１９が、処理プロセッサに対して稼働率の報告を要求し、
・応答受付部１２１が、処理プロセッサから稼働率の報告を受け付け、
・また、処理部１１３がパラメータ記憶部１１１から他プロセッサ選択閾値を読み出し、
・判定部１１５がこれら稼働率と他プロセッサ選択閾値とを比較することによって、プロセッサ稼働率が他プロセッサ選択閾値より大か否か判断する。
【００３７】
ステップＳ４０９では、プロセッサ２のプロセッサ稼働率が、他プロセッサ選択閾値より大である場合（ステップＳ４０７からＹＥＳへ分岐する場合）、プロセッサ２の他プロセッサ選択率（Ｘ％）によって振り分け処理を行う。他プロセッサ選択率が２５％であるなら、２５％の確率でステップＳ４１１へ進み、７５％の確率でステップＳ４１７へ進む。
【００３８】
かかる振り分け処理は、例えば各プロセッサが他プロセッサを選択した回数を記憶し、その記憶した回数を元に選択率に応じて行う。具体的には、他プロセッサ選択率が２５％の場合に、記憶されている他プロセッサ非選択回数が３回に達したら、次回振り分け処理時には他プロセッサを選択する。
【００３９】
ステップＳ４１１では、条件付きラウンドロビン選択に移行する。ここで、「条件付きラウンドロビン選択」とは、プロセッサ稼働率、他プロセッサ選択閾値、他プロセッサ選択率などを考慮に入れて行うラウンドロビン選択という意味である。例えば、
・プロセッサ稼働率が他プロセッサ選択閾値よりも小であり、かつ
・他プロセッサ選択率が０％
という２つの要件を満たすプロセッサだけを対象として行うラウンドロビン選択ということである。
【００４０】
ステップＳ４１３では、前記２つの要件を満たすプロセッサとしてプロセッサ１とプロセッサＸが選択される。ステップＳ４１５では、プロセッサ１とプロセッサＸを対象としてラウンドロビン選択を行う。
【００４１】
ステップＳ４１７では、該当プロセッサを選択する。ステップＳ４１５においてプロセッサ１またはＸを対象として単純ラウンドロビンを行った場合は、プロセッサ１またはプロセッサＸのいずれか一方が選択される。また、ステップＳ４０９から（１００−Ｘ）％の確率でステップＳ４１７へ分岐する場合は、プロセッサ２が選択される。
【００４２】
具体的には、制御部１１７の制御下で、
・要求部１１９が、処理プロセッサ１，３，・・・Ｘに対して稼働率の報告を要求し、
・応答受付部１２１が、処理プロセッサ１，３，・・・Ｘから稼働率の報告を受け付け、
・処理部１１３が、パラメータ記憶部１１１に記憶されている処理プロセッサ１，３，・・・Ｘの他プロセッサ選択閾値を読み出し、
・判定部１１５が、各処理プロセッサについて稼働率と他プロセッサ選択閾値とを比較して、稼働率＜他プロセッサ選択閾値が成立し、かつ他プロセッサ選択率＝０％のプロセッサを選択する。
【００４３】
図５は、他プロセッサ選択率決定処理の流れを示す。図５に示すように、ステップＳ５０１でプロセッサ稼働率をチェックし、ステップＳ５０３でプロセッサ稼働率が他プロセッサ選択閾値より大か否か判断する。具体的には、制御部１１７の制御下で、
・図２に示す要求部１１９から処理プロセッサに対して稼働率の報告を要求し、
・応答受付部１２１が処理プロセッサから稼働率の報告を受け付け、
・また、処理部１１３がパラメータ記憶部１１１から他プロセッサ選択閾値を読み出し、
・判定部１１５がこれら稼働率と他プロセッサ選択閾値とを比較することによって、プロセッサ稼働率が他プロセッサ選択閾値より大か否か判断する。
【００４４】
ステップＳ５０３でＹＥＳの場合、ステップＳ５０５へ進む。
ステップＳ５０５では、閾値オーバ回数を１増やすとともに、閾値下回り回数をゼロクリアする。具体的には、制御部１１７の制御下で、
・処理部１１３は、パラメータ記憶部１１１に記憶されている閾値オーバ回数の値を１増加させるとともに、パラメータ記憶部１１１に記憶されている閾値下回り回数の値をゼロにする。
【００４５】
ステップＳ５０７では、閾値オーバ回数＞３であるかを判断する。具体的には、制御部１１７の制御下で、判定部１１５がパラメータ記憶部１１１に記憶されている閾値オーバ回数と「３」とを比較する。
【００４６】
ステップＳ５０７でＹＥＳの場合、ステップＳ５０９へ進む。
ステップＳ５０９では、他プロセッサ選択率を１段階引き上げる。具体的には、制御部１１７の制御下で、処理部１１３がパラメータ記憶部１１１に記憶されている他プロセッサ選択率を１段階引き上げる。
【００４７】
ステップＳ５１１では、閾値オーバ回数をゼロにする。具体的には、制御部１１７の制御下で、処理部１１３がパラメータ記憶部１１１に記憶されている閾値オーバ回数の値を０にする。
【００４８】
ステップＳ５０３でＮＯの場合、ステップＳ５２１へ進む。
ステップＳ５２１では、閾値下回り回数を１増やすとともに、閾値オーバ回数をゼロクリアする。具体的には、制御部１１７の制御下で、
・処理部１１３は、パラメータ記憶部１１１に記憶されている閾値下回り回数の値を１増加させるとともに、パラメータ記憶部１１１に記憶されている閾値オーバ回数の値をゼロにする。
【００４９】
ステップＳ５２３では、閾値オーバ回数＞１であるかを判断する。具体的には、制御部１１７の制御下で、判定部１１５がパラメータ記憶部１１１に記憶されている閾値下回り回数と「１」とを比較する。
【００５０】
ステップＳ５２５では、他プロセッサ選択率を１段階引き下げる。具体的には、制御部１１７の制御下で、処理部１１３がパラメータ記憶部１１１に記憶されている他プロセッサ選択率を１段階引き下げる。
【００５１】
ステップＳ５２７では、閾値下回り回数をゼロにする。具体的には、制御部１１７の制御下で、処理部１１３がパラメータ記憶部１１１に記憶されている閾値下回り回数の値を０にする。
【００５２】
ステップＳ５３１では、収集周期を元にスタートへ戻る。つまり、制御部１１７が、図示しないタイマを監視し、収集周期が経過したらステップＳ５０１以下を再度実行する。
【００５３】
図６は、選択段階、他プロセッサ選択率及びプロセッサ選択比率の設定例を示す。他プロセッサ選択率は、選択候補プロセッサと受け入れ先プロセッサの選択比率を表すものである。図６の設定例は０〜４の５つの選択段階に応じて他プロセッサ選択率を定めており、
・選択段階＝４なら、他プロセッサ選択率は１００％、つまり４回中４回とも受入先プロセッサを選択し、
・選択段階＝３なら、他プロセッサ選択率は７５％、つまり４回中１回は選択候補プロセッサを選択し、４回中３回は受入先プロセッサを選択し、
・選択段階＝２なら、他プロセッサ選択率は５０％、つまり４回中２回は選択候補プロセッサを選択し、４回中２回は受入先プロセッサを選択し、
・選択段階＝１なら、他プロセッサ選択率は２５％、つまり４回中３回は選択候補プロセッサを選択し、４回中１回は受入先プロセッサを選択し、
・選択段階＝０なら、他プロセッサ選択率は０％、つまり４回中４回とも選択候補プロセッサを選択する。
【００５４】
図６の内容はあくまでも例であり、実際の設定値は、選択段階および他プロセッサ選択率の設定値ともに、マシンの使用状況やマシン環境により柔軟に変更される。つまり、選択段階を５より多い数に分けても良く、また５より少ない数に分けても良い。例えば、選択段階を０〜７までの合計８段階に増やしても良く、また０〜２までの合計３段階に減らしても良い。
【００５５】
前記の如く選択段階を増やした場合、プロセッサ選択の柔軟性が増し、処理の適切な分散化が可能となり、結果として、各処理プロセッサ間における処理負荷の差分が減少する。
【００５６】
また、選択段階が「１」変化することによって増減する他プロセッサ選択率の値は必ずしも均等で無くても良い。図６の例では、選択段階が「１」変化することによって、他プロセッサ選択率が常に２５％ずつ増減しているが、例えば
・選択段階１の他プロセッサ選択率は、選択段階０より２５％増加して、２５％となり、
・選択段階２の他プロセッサ選択率は、選択段階１より３０％増加して、５５％となり、
・選択段階３の他プロセッサ選択率は、選択段階２より３０％増加して、８５％となり、
・選択段階４の他プロセッサ選択率は、選択段階３より１５％増加して、１００％となる、としても良い。
【００５７】
選択段階が「１」変化することによって増減する他プロセッサ選択率の値を、このように段階に応じて変化させることにより、各処理プロセッサ間の処理負荷のわずかな違いにも対応可能となり、結果として、各処理プロセッサ間の処理負荷の差分の減少が実現できる。
【００５８】
図７は、他プロセッサ選択率を決定するための各パラメータ（他プロセッサ選択閾値、閾値オーバ回数、閾値下回り回数など）の設定例を示す。図７に示すように、他プロセッサ選択率の設定値は例えば、プロセッサ稼働率、他プロセッサ選択閾値、稼働率収集周期、閾値オーバー回数、閾値下回り回数を用いて決定する。ｗ秒周期（稼働率収集周期）でプロセッサ稼働率をチェックし、・連続ｘ回（閾値オーバー回数）、ｙ％（他プロセッサ選択閾値）を超えた場合は選択段階を１段上げ、一方
・連続ｚ回（閾値下回り回数）、ｙ％（他プロセッサ選択閾値）を下回った場合は選択段階を１段下げる。
【００５９】
図７の例では、
・１秒ごとにプロセッサ稼働率をチェックし、
・３回連続してプロセッサ稼働率が８０％を超えた場合は、選択段階を１段上げ、
・１回でもプロセッサ稼働率が８０％を下回った場合は、選択段階を１段下げる。
【００６０】
図７の例では、閾値オーバ回数の設定値３と、閾値下回り回数の設定値２とは異なるが、閾値オーバ回数の設定値と、閾値下回り回数の設定値とが同じであっても良い。また、閾値オーバ回数または下回り回数の設定値のいずれか一方または双方を１としても良い。その場合は、１度でも閾値をオーバしたらまたは下回ったら選択段階を１段上げるまたは下げることになる。
【００６１】
なお、機能が異なるため、一定の処理を行っていながらも、その負荷がプロセッサ稼働率として表れてこないプロセッサ（以下、「機能が異なるプロセッサ」という）に関しては、本来の、他プロセッサ選択閾値から「機能の異なるプロセッサ引き下げ基準値」を差し引く形で、他プロセッサ選択閾値を決定する他、機能の異なるプロセッサの稼働率限界値を表す「限界稼働率」を設定し、限界稼働率を超過した場合は当該プロセッサの選択を拒否する機能を付加しても良い。
【００６２】
これら「機能の異なるプロセッサ引き下げ基準値」や「限界稼働率」によって機能の異なるプロセッサの保護が実現する。ここで「機能の異なるプロセッサ」の具体例として、分散処理にすると多大な分割損が発生してしまう処理（分散処理に適さない処理）を主として担当するが、余力があれば、分散処理対象の処理も担当するプロセッサなどが例示される。
【００６３】
図８は、図６および図７に示す条件下における他プロセッサ選択率の推移例を示す。図８の内容を具体的に説明すると、
・１回目の稼働率収集時、プロセッサ稼働率は７５％、つまり閾値（８０％）以下であるから、他プロセッサ選択率は０％のままである
・２回目の稼働率収集時、プロセッサ稼働率は８０％、つまり閾値以下であるから、他プロセッサ選択率は０％のままである
・３回目の稼働率収集時、プロセッサ稼働率は８５％、つまり閾値オーバであるが、３回連続閾値オーバには該当しないので、他プロセッサ選択率は０％のままである
・４回目の稼働率収集時、プロセッサ稼働率は８５％、つまり２回連続閾値オーバとなるが、３回連続閾値オーバには該当しないので、他プロセッサ選択率は０％のままである
・５回目の稼働率収集時、プロセッサ稼働率は９０％、つまり閾値オーバである。これにより、３回連続閾値オーバに該当するので、選択段階は０から１へ上昇し、他プロセッサ選択率も０％から２５％に上昇する
・６回目の稼働率収集時、プロセッサ稼働率は９０％、つまり閾値オーバであるが、３回連続閾値オーバには該当しないので、他プロセッサ選択率は２５％のままである
・７回目の稼働率収集時、プロセッサ稼働率は８５％、つまり２回連続閾値オーバとなるが、３回連続閾値オーバには該当しないので、他プロセッサ選択率は２５％のままである
・８回目の稼働率収集時、プロセッサ稼働率は８５％、つまり閾値オーバであるこれにより、３回連続閾値オーバに該当するので、選択段階は１から２へ上昇し、他プロセッサ選択率も２５％から５０％に上昇する
・９回目の稼働率収集時、プロセッサ稼働率は８０％、つまり閾値以下であるが、２回連続閾値下回りに該当しないので、他プロセッサ選択率は５０％のままである
・１０回目の稼働率収集時、プロセッサ稼働率は７５％、つまり閾値以下であるから、２回連続閾値下回りに該当するので、選択段階は２から１へ下降し、他プロセッサ選択率も５０％から２５％に下降する。
【００６４】
つまり、当初、他プロセッサ選択閾値以下であったプロセッサ稼働率は第３回目の稼働率収集において閾値オーバとなり、以降６回連続で閾値オーバとなったためにプロセッサ選択率は５０％まで上昇している。その後は第９、１０回目の稼働率収集において閾値を下回ったために他プロセッサ選択率は２５％低下して２５％になる。
【００６５】
前記の如く、本実施の形態によれば、プロセッサ２の稼働率を監視し、稼働率が他プロセッサ選択閾値を上回ったら、プロセッサ２の他プロセッサ選択率に応じて他プロセッサ（プロセッサ１）が選択される。これによって、複数プロセッサ間の稼働率の平準化、均一化が図られる。
【００６６】
また、プロセッサの稼働率が他プロセッサ選択閾値を上回ったまたは下回った回数に応じて他プロセッサ選択率を増減することによって、プロセッサの稼働状況に応じたより一層の平準化、均一化を図ることが可能となる。
【００６７】
また、前記の稼働率平準化方法において必要とされる各ステップをコンピュータに実行させるプログラムを記録媒体に記録し、これをコンピュータに読み取らせ、実行させることにより、前記した稼働率平準化方法を実現することができる。ここで、記録媒体としては、例えばメモリ装置、磁気ディスク装置、光ディスク装置、磁気テープ装置などのプログラムを記録できるような装置が含まれる。
【００６８】
図９は、これら記録媒体に格納されたプログラムを読み取り、そこに記述されたステップに従ってデータの処理を実現するコンピュータシステムの一例を示す概観図である。図９に示すように、コンピュータシステム５００が読み取り可能な記録媒体は、例えば、フレキシブルディスク５１６、コンパクトディスク５１７、ＩＣチップ５１８、カセットテープ５１９等が挙げられる。このようなデータ一致判定プログラムを記録したコンピュータ読み取り可能な記録媒体によれば、稼働率平準化プログラムの保存、運搬、販売等を容易に行うことができる。
【００６９】
【発明の効果】
前記の如く、本発明によれば、各プロセッサの稼働率、他プロセッサ選択閾値、他プロセッサ選択率に応じて、仕事を割り当てるプロセッサを適宜変えることによって、複数プロセッサ間の稼働率平準化が達成される。
【図面の簡単な説明】
【図１】本発明の実施の形態にかかる処理システムの全体構成を示す図である。
【図２】図１に示す制御プロセッサの内部構成を示すブロック図である。
【図３】図１に示す各処理プロセッサの稼働率と時間と閾値、および選択可／不可の関係を説明するための図である。
【図４】図１に示す制御プロセッサが行う稼働率平準化処理の流れを示すフローチャートである。
【図５】他プロセッサ選択率決定処理の流れを示すフローチャートである。
【図６】選択段階、他プロセッサ選択率及びプロセッサ選択比率の設定例を示す図である。
【図７】他プロセッサ選択率を決定するための各パラメータの設定例を示す図である。
【図８】他プロセッサ選択率の推移例を示す図である。
【図９】記録媒体に格納されたプログラムを読み取り、そこに記述されたステップに従ってデータの処理を実現するコンピュータシステムの一例を示す概観図である。
【符号の説明】
１，２，３，，，Ｘ…処理プロセッサ
１０１…制御プロセッサ
１１１…パラメータ記憶部
１１３…処理部
１１５…判定部
１１７…制御部
１１９…要求部
１２１…応答受付部
【図１】
2004021287.tif 000003
【図２】
2004021287.tif 000004
【図３】
2004021287.tif 000005
【図４】
2004021287.tif 000006
【図５】
2004021287.tif 000007
【図６】
2004021287.tif 000008
【図７】
2004021287.tif 000009
【図８】
2004021287.tif 000010
【図９】
2004021287.tif 000011