(57)【特許請求の範囲】
【請求項１】
情報処理装置が、クラスに類別された各ジョブにプロセッサを割り当てるプロセッサ資源選択方法において、
前記情報処理装置は、
前記クラスごとの、優先プロセッサと予備的に割当て可能な拡張プロセッサとを定義したプロセッサ配分定義表を少なくとも参照することにより、
実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがあるときには当該優先プロセッサを当該クラスのジョブに割り当て、
実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがないときには、当該クラスの空き状態の前記拡張プロセッサを求めてその中で、それを優先プロセッサとして定義する第２の前記クラスに資源待ちジョブが入っていない状況の拡張プロセッサを、第１の当該クラスのジョブに割り当てる、
ことを特徴とするプロセッサ資源選択方法。
【請求項２】
クラスに類別された各ジョブにプロセッサを割り当てるプロセッサ資源選択システムにおいて、
前記クラスごとの、優先プロセッサと予備的に割当て可能な拡張プロセッサとを定義したプロセッサ配分定義表と、
少なくとも前記プロセッサ配分定義表を参照して、実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがあるときには、当該優先プロセッサを当該クラスのジョブに割り当て、実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがないときには、当該クラスの空き状態の前記拡張プロセッサを求めてその中で、それを優先プロセッサとして定義する第２の前記クラスに資源待ちジョブが入っていない状況の拡張プロセッサを、第１の当該クラスのジョブに割り当てる資源割当て手段と、
を有することを特徴とするプロセッサ資源選択システム。
【請求項３】
クラスに類別された各ジョブにプロセッサを割り当てるプロセッサ資源選択に用いられるプログラムを格納した記録媒体において、
前記プログラムは、
前記クラスごとの、優先プロセッサと予備的に割当て可能な拡張プロセッサとを定義したプロセッサ配分定義表を少なくとも参照し、
実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがあるときには当該優先プロセッサを当該クラスのジョブに割り当て、
実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがないときには、当該クラスの空き状態の前記拡張プロセッサを求めてその中で、それを優先プロセッサとして定義する第２の前記クラスに資源待ちジョブが入っていない状況の拡張プロセッサを、第１の当該クラスのジョブに割り当てる、
機能をコンピュータに実現させるためのものであることを特徴とするコンピュータ読み取り可能なプログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クラスに類別された各ジョブにプロセッサを割り当てるプロセッサ資源選択処理に関し、特に、クラス単位で、優先利用できるプロセッサ資源（優先プロセッサ）と予備的に利用可能なプロセッサ資源（拡張プロセッサ）とをあらかじめ指定しておき、実行ジョブの該当クラスの優先プロセッサに空きがないときには拡張プロセッサの利用可能性を検討するプロセッサ資源選択処理に関する。
【０００２】
一般に、ジョブをその性質やそれが必要とするシステム資源の種類などで類別し、そのクラス単位で利用できるプロセッサ資源をあらかじめ決めておき、実行ジョブにはその該当クラスのプロセッサ資源を割り当てている。
【０００３】
このとき、
・プロセッサ資源の空きがなく当該資源の割当て待ちのジョブ（以下「資源待ちジョブ」という。）を持つクラスと、資源待ちジョブはなくプロセッサ資源にも空きがあるクラスと、が併存してプロセッサ資源の全体を有効に利用できないといった状態
・プロセッサ資源を共有するクラス間で当該資源を公平に利用できないといった状態
などの発生を防止することが望ましく、本発明はこのような要請に応えるものである。
【０００４】
【従来の技術】
図５および図６は、従来の、プロセッサ資源選択の概要を示す説明図であり、４１，４２，４３，４４は入力装置（図示省略）から読み込まれたジョブがそのジョブステ−トメントのクラス・パラメ−タに基づいて振り分けられるキュ−、４５はキュ−４１が使用するプロセッサ資源、４６はキュ−４２が使用するプロセッサ資源、４７はキュ−４３およびキュ−４４が共用するプロセッサ資源をそれぞれ示している。
【０００５】
図５の場合、キュ−４１に配分されたプロセッサ資源４５はそれぞれ使用中であり、当該キュ−には複数の資源待ちジョブがつながっている。
【０００６】
一方、キュ−４２に配分されたプロセッサ資源４６はそれぞれ空きのままであって、また当該キュ−には資源待ちジョブも存在せず、プロセッサ資源４５，４６の全体が有効利用されていない。
【０００７】
図６の場合、プロセッサ資源４７を共有するキュ−４３およびキュ−４４の前者（キュ−４３）に連続してジョブを投入し、その後でキュ−４４にジョブを投入したときの状況を示している。
【０００８】
ここで、共有のプロセッサ資源４７は最初に投入されたキュ−４３のジョブのみに割り当てられており、キュ−間でのプロセッサ資源の公平利用が確保されていない。
【０００９】
【発明が解決しようとする課題】
このように、従来の、クラス化された各ジョブにプロセッサを割り当てるプロセッサ資源選択手法では、各クラスで使用するプロセッサの設定範囲について柔軟性を持たせてない。
【００１０】
そのため、クラスＡのプロセッサは空いているのに、クラスＢのプロセッサはすべて使用中で当該ジョブクラスへの投入ジョブがプロセッサ資源の割当て待ち状態のままとなることや、複数のクラスで共有する各プロセッサが一方のクラスのジョブのみに割り当てられてしまうことなどが生じ、ジョブクラス間でプロセッサ資源が有効に、また公平に利用されていないという問題点があった。
【００１１】
そこで、本発明では、各ジョブクラスに、そこで優先使用するプロセッサ資源（優先プロセッサ）とは別に予備的利用が可能なプロセッサ資源（拡張プロセッサ）も分配しておき、資源待ちジョブの該当ジョブクラスに優先プロセッサの空きがないときには所定の条件下でこの資源待ちジョブに拡張プロセッサを割り当てることにより、プロセッサ資源全体の有効利用および公平利用を図ることを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、この課題を次のようにして解決する。
（１）情報処理装置が、クラスに類別された各ジョブにプロセッサを割り当てるプロセッサ資源選択方法において、
前記情報処理装置は、
前記クラスごとの、優先プロセッサと予備的に割当て可能な拡張プロセッサとを定義したプロセッサ配分定義表を少なくとも参照することにより、
実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがあるときには当該優先プロセッサを当該クラスのジョブに割り当て、
実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがないときには、当該クラスの空き状態の前記拡張プロセッサを求めてその中で、それを優先プロセッサとして定義する第２の前記クラスに資源待ちジョブが入っていない状況の拡張プロセッサを、第１の当該クラスのジョブに割り当てる。
（２）クラスに類別された各ジョブにプロセッサを割り当てるプロセッサ資源選択システムにおいて、
前記クラスごとの、優先プロセッサと予備的に割当て可能な拡張プロセッサとを定義したプロセッサ配分定義表と、
少なくとも前記プロセッサ配分定義表を参照して、実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがあるときには、当該優先プロセッサを当該クラスのジョブに割り当て、実行対象の第１の前記クラスに定義された前記優先プロセッサに空きがないときには、当該クラスの空き状態の前記拡張プロセッサの中で、それを優先プロセッサとして定義する第２の前記クラスに資源待ちジョブが入っていない状況の拡張プロセッサを、第１の当該クラスのジョブに割り当てる資源割当て手段と、
を設ける。
【００１３】
本発明によれば、このように例えば図２のジョブクラスのＣ対象ジョブ（資源待ちジョブ）にプロセッサを割り当てるに際して、少なくともプロセッサ配分定義表１４を参照することにより、
(a) ジョブクラスＣの優先プロセッサＰＥ２１〜３０がすべて使用中で、かつ、当該ジョブクラスの拡張プロセッサＰＥ２が空き状態の場合、
(b) この拡張プロセッサＰＥ２を対象ジョブに直ちに割り当てるのではなく、
(c) この拡張プロセッサＰＥ２が優先プロセッサとして定義されるジョブクラスＡをプロセッサ配分定義表１４から求め、キュー１２の当該ジョブクラスＡに資源待ちジョブが入っていないことを確認したときに初めて当該拡張プロセッサＰＥ２を対象ジョブに割り当てている。
【００１４】
これにより、本発明は、プロセッサ資源全体のいっそうの有効利用および公平利用を図っている。
【００１５】
本発明は、この機能をコンピュ−タに実現させるためのプログラムを格納したコンピュ−タ読み取り可能なプログラム記録媒体も対象としている。
【００１６】
【発明の実施の形態】
図１乃至図４を用いて本発明の実施の形態を説明する。
【００１７】
図１はプロセッサ資源選択システムの概要を示す説明図、図２はプロセッサ資源割当て処理を担当するプロセッサを示して説明図であり、
１は、入力装置から読み込まれたジョブにプロセッサを割り当てるプロセッサ資源割当て部，
１１は、ジョブをそのジョブステ−トメントで指定されたジョブクラスに基づいて後述のキュ−に投入するエントリ−プログラム，
１２は、投入された資源待ちジョブをジョブクラスごとに保持するキュ−，
１３は、資源待ちジョブをキュ−１２から取り出してプロセッサ資源を割り当てる資源割当てプログラム，
１４は、各ジョブクラスで優先使用するプロセッサ資源（優先プロセッサ）と、予備的利用が可能なプロセッサ資源（拡張プロセッサ）とを示すプロセッサ配分定義表（テ−ブル形式の記憶部），
１５は、プロセッサ資源がそれぞれが使用されているかどうかを示すプロセッサ使用状況表（テ−ブル形式の記憶部）、
２１乃至２５は、プロセッサ資源を構成する各プロセッサ，
をそれぞれ示している。
【００１８】
図１において、プロセッサ資源の各ジョブクラスへの配分状況は、
・クラスＡの場合、優先プロセッサはプロセッサ２１，２２，２３で拡張プロセッサはプロセッサ２４〜Ｎ、
・クラスＢの場合、優先プロセッサはプロセッサ２５〜Ｎ′で拡張プロセッサはプロセッサ２１，２２，２３、
・クラスＣの場合、優先プロセッサはプロセッサ２２，２３，２４で拡張プロセッサはプロセッサ２５〜Ｎ″、
となっている。なお、各ジョブクラスに配分する優先プロセッサ同士の重複や拡張プロセッサ同士の重複を認めるかどうかは任意である。
【００１９】
プロセッサ資源割当て部１は、入力装置から読み込まれたジョブに対し、この定義内容を参照しながら後述のプロセッサ資源割当て処理（図３参照）を実行して利用プロセッサを特定する。
【００２０】
図２において、
・キュー１２には、クラスＢおよびクラスＣの資源待ちキューが入っており、
・プロセッサ配分定義表１４は、例えばクラスＡの優先プロセッサがプロセッサＰＥ１乃至ＰＥ１０で、拡張プロセッサがプロセッサＰＥ１１乃至ＰＥ２０であることを示し、
・プロセッサ使用状況表１５は、例えばプロセッサＰＥ１が使用中で、プロセッサＰＥ１が空いていることを示している。
【００２１】
エントリ−プログラム１１は入力装置（図示省略）から送られる各ジョブをクラス分けした上でキュ−１２に投入する。
【００２２】
また、資源割当てプログラム１３は、ジョブステ−トメントで記述された開始優先権に基づいてキュ−１２から資源待ちジョブを取り出し、プロセッサ配分定義表１４およびプロセッサ使用状況表１５を参照して当該ジョブに優先プロセッサまたは拡張プロセッサを割り当てる。
【００２３】
図３は、ジョブクラスごとのプロセッサ資源割当て処理手順を示す説明図であり、その内容は次のようになっている。
(S1)キュ−１２に該当ジョブクラスのジョブ（資源待ちジョブ）が入っているかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合は一連の処理をいったん終了する。
(S2)プロセッサ配分定義表１４およびプロセッサ使用状況表１５を参照して該当ジョブクラスの優先プロセッサに空きがあるかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合はステップ(S5)に進む。
(S3)空き状態の優先プロセッサを一つ選択して、次のステップに進む。
(S4)キュ−１２から該当ジョブクラスのジョブ（資源待ちジョブ）をその開始優先権に基づいて一つ取り出し、このジョブに前のステップで選択した優先プロセッサを割り当てて、一連の処理をいったん終了する。
(S5)プロセッサ配分定義表１４の該当ジョブクラスで定義されている拡張プロセッサ中に、今回の割当て処理でまだ選択していないプロセッサが残っているかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合は一連の処理をいったん終了する。
(S6)この残りの中からプロセッサを一つ選択して、次のステップに進む。
(S7)プロセッサ使用状況表１５を参照してこの選択プロセッサが使用中であるかどうかを判断し、「YES 」の場合はステップ(S5)に戻り、「NO」の場合は次のステップに進む。
(S8)プロセッサ配分定義表１４を検索して、上記選択プロセッサが優先プロセッサとして定義されるジョブクラスを求め、次のステップに進む。
(S9)キュ−１２に、このジョブクラスのジョブ（資源待ちジョブ）が入っているかどうかを判断し、「YES 」の場合はステップ(S5)に戻り、「NO」の場合は次のステップに進む。
(S10) キュ−１２からステップ(S1)の該当ジョブクラスのジョブ（資源待ちジョブ）を開始優先権に基づいて一つ取り出し、このジョブにステップ(S6)で選択したプロセッサを割り当てて、一連の処理を終了する。
【００２４】
以上のプロセッサ資源割当て処理をクラスＣについてその優先プロセッサＰＥ２１乃至ＰＥ３０がすべて使用中という状況で実行すると、概略、
・キュ−１２にはクラスＣの資源待ちジョブが入っているので、ステップ(S1)は「YES 」となり、
・ステップ(S2)に進むと、上記のように優先プロセッサがすべて使用中なので、当該ステップは「NO」となり、
・ステップ(S5)に進んでプロセッサ配分定義表１４のクラスＣの拡張プロセッサ（プロセッサＰＥ１乃至ＰＥ１０）が例えばすべて未選択であるとき、当該ステップは「YES 」となり、
・ステップ(S6)に進んで例えばプロセッサＰＥ１を選択し、
・ステップ(S7)に進んでプロセッサ使用状況表１５を参照するとプロセッサＰＥ１は「１：使用中」なので、当該ステップは「YES 」となり、
・ステップ(S5)に戻ると、まだプロセッサＰＥ２乃至ＰＥ１０が未選択なので、当該ステップは「NO」となり、
・ステップ(S6)に進んで例えばプロセッサＰＥ２を選択し、
・ステップ(S7)に進んでプロセッサ使用状況表１５を参照するとプロセッサＰＥ２は「０：空き」なので、当該ステップは「NO」となり、
・ステップ(S8)に進んでプロセッサ配分定義表１４を検索すると、プロセッサＰＥ２を優先プロセッサとして定義するジョブクラス（クラスＡ）が求まり、
・ステップ(S9)に進んでキュー１２をみるとクラスＡの資源待ちジョブは入っていないので、当該ステップは「NO」となり、
・ステップ(S10) に進んでキュ−１２からクラスＣの資源待ちジョブを一つ取り出してプロセッサＰＥ２を割り当てる、
ことになる。
【００２５】
なお、図３のステップ(S5)の判断をするためには、例えばプロセッサ配分定義表１４の拡張プロセッサのそれぞれにフラグを１対１対応で用意して、これを、ステップ(S6)の選択時に変化させ、ステップ(S5)で「NO」の終了時に初期値に戻せばよい。
【００２６】
また、プロセッサ使用状況表１５を設けずに、ステップ(S2)やステップ(S7)の参照処理時に該当する各プロセッサに使用中かどうかを問い合わせるようにしてもよい。
【００２７】
図４は、コンピュ−タ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュ−タシステムの概要を示す説明図であり、３はコンピュ−タシステム、３１はＣＰＵやディスクドライブ装置などを内蔵した本体部、３２は本体部３１からの指示により画像を表示するディスプレイ、３３は表示画面、３４はコンピュ−タシステム３に種々の情報を入力するためのキ−ボ−ド、３５は表示画面３３上の任意の位置を指定するマウス、３６は外部のデ−タベ−ス（ＤＡＳＤなどの回線先メモリ）、３７は外部のデ−タベ−ス３６にアクセスするモデム、３８はＣＤ−ＲＯＭやフロッピ−ディスクなどの可搬型記録媒体をそれぞれ示している。
【００２８】
プログラムを格納する記録媒体としては、
・プログラム提供者側のデ−タベ−ス３６（回線先メモリ）
・可搬型記録媒体３８
・本体部３１側のメモリ
などのいずれでもよく、当該プログラムは本体部３１にロ−ディングされてその主メモリ上で実行される。
【００２９】
【発明の効果】
本発明は、このように、各ジョブの優先プロセッサに加えて予備的利用が可能な拡張プロセッサをクラス単位で定義した上で、ジョブにプロセッサ資源を割り当てるに際し、当該ジョブのクラスに優先プロセッサの空きがあるときにはこれを用い、また空きがないときには所定の条件下で当該クラスの拡張プロセッサを用いているので、プロセッサ資源全体の有効利用および公平利用を図ることができる。
【図面の簡単な説明】
【図１】本発明の、プロセッサ資源選択システムの概要を示す説明図である。
【図２】本発明の、プロセッサ資源割当て処理を担当するプロセッサを示す説明図である。
【図３】本発明の、ジョブクラスごとのプロセッサ資源割当て処理手順を示す説明図である。
【図４】本発明の、コンピュ−タ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュ−タシステムの概要を示す説明図である。
【図５】従来の、プロセッサ資源選択処理の概要（その１）を示す説明図である。
【図６】従来の、プロセッサ資源選択処理の概要（その２）を示す説明図である。
【符号の説明】
１：プロセッサ資源割当て部
１１：エントリ−プログラム
１２：投入されたジョブをジョブクラスごとに保持するキュ−
１３：資源割当てプログラム
１４：プロセッサ配分定義表
１５：プロセッサ使用状況表
２１，２２，２３，２４，２５
：プロセッサ資源を構成する各プロセッサ
３：コンピュ−タシステム
３１：ＣＰＵやディスクドライブ装置などを内蔵した本体部
３２：ディスプレイ
３３：表示画面
３４：キ−ボ−ド
３５：マウス
３６：外部のデ−タベ−ス（ＤＡＳＤなどの回線先メモリ）
３７：モデム
３８：可搬型記録媒体
４１，４２，４３，４４：キュ−
４５：キュ−４１が使用するプロセッサ資源
４６：キュ−４２が使用するプロセッサ資源
４７：キュ−４３およびキュ−４４が共用するプロセッサ資源
【図１】
0003733402.tif 000002
【図２】
0003733402.tif 000003
【図３】
0003733402.tif 000004
【図４】
0003733402.tif 000005
【図５】
0003733402.tif 000006
【図６】
0003733402.tif 000007