(57)【要約】【課題】  単一システムで複数のジョブを実行する場合において、特定のジョブの負荷が増大した場合に、他のジョブが実行出来ない状況や、他のジョブへのシステムの割り当て時間が減少する状況が発生するという課題があった。【解決手段】  あらかじめ定められたジョブ毎のプロセッサ優先割り当て時間に基づいて、優先期間にある優先ジョブの切替を通知するタイマ１１３と、通知に基づいて、優先ジョブとして選択したジョブに対応する、情報処理システムが実行可能なプロセスをジョブ毎に待ち行列にしたレディーキューから、レディーキューの先頭のプロセスを取り出して、命令実行手段１１１に割り当てるディスパッチャ１１２と、割り当てられたプロセスを実行中プロセスとして実行中プロセスの命令を実行する命令実行手段１１１とを有する。【選択図】      図１
2008242510.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムにおいて、予め定められたジョブ毎のプロセッサ優先割り当て時間に基づいてジョブの切替を通知するタイマと、プロセスの命令を実行する命令実行手段と、前記タイマからの通知に基づいて優先ジョブとして選択したジョブに対応するプロセスを含むレディーキューから、先頭のプロセスを取り出して前記命令実行手段に割り当てて当該プロセスの命令を実行させるディスパッチャと、を備えたことを特徴とするジョブへの資源割当方式。
【請求項２】
前記ディスパッチャは、前記優先ジョブとして選択したジョブの前記レディーキューが空であった場合は、次の優先ジョブを選択することを特徴とする請求項１記載のジョブへの資源割当方式。
【請求項３】
前記プロセッサ優先割り当て時間は、一定時間の周期を前記ジョブ毎のシステム割り当て割合で分配した時間であることを特徴とする請求項１または２記載のジョブへの資源割当方式。
【請求項４】
前記ディスパッチャは、所定の処理を実行する例外プロセスを含む例外レディーキューに前記例外プロセスが存在する場合には、前記優先ジョブよりも前記例外プロセスに対応する最優先ジョブを優先して、前記例外レディーキューの先頭の例外プロセスを取り出して前記命令実行手段に割り当てて当該例外プロセスの命令を実行させることを特徴とする請求項１乃至３のいずれかに記載のジョブへの資源割当方式。
【請求項５】
前記ディスパッチャは、前記優先ジョブに対応するプロセス間で優先順位が変化した場合は、実行中のプロセスを対応する前記レディーキューに戻し、当該レディーキューの先頭のプロセスを取り出して前記命令実行手段に割り当てて当該プロセスの命令を実行させることを特徴とする請求項１乃至４のいずれかに記載のジョブへの資源割当方式。
【請求項６】
前記ディスパッチャは、前記最優先ジョブに対応する例外プロセス間で優先順位が変化した場合は、実行中の例外プロセスを対応する前記例外レディーキューに戻し、当該例外レディーキューの先頭の例外プロセスを取り出して前記命令実行手段に割り当てて当該例外プロセスの命令を実行させることを特徴とする請求項４または５に記載のジョブへの資源割当方式。
【請求項７】
前記タイマは、前記命令実行手段がプロセスの命令を一つ実行する度に、実行中のプロセスに対応するジョブの優先期間の計時値を更新し、当該ジョブの前記プロセッサ優先割り当て時間に達したか否かを確認することを特徴とする請求項１乃至６のいずれかに記載のジョブへの資源割当方式。
【請求項８】
前記ジョブの終了、追加の発生に対応して前記プロセッサ優先割り当て時間を再算出する手段を備えたことを特徴とする請求項１乃至７のいずれかに記載のジョブへの資源割当方式。
【請求項９】
情報処理システムにおけるジョブへの資源割り当て方法であって、予め定められたジョブ毎のプロセッサ優先割り当て時間に基づいてジョブの切替を通知し、前記通知に基づいて優先ジョブとして選択したジョブに対応するプロセスを含むレディーキューから、先頭のプロセスを取り出して当該プロセスの命令を実行することを特徴とするジョブへの資源割当方法。
【請求項１０】
前記通知に基づいて優先ジョブとして選択したジョブの前記レディーキューが空であった場合は、次の優先ジョブを選択することを特徴とする請求項９記載のジョブへの資源割当方法。
【請求項１１】
前記プロセッサ優先割り当て時間は、一定時間の周期を前記ジョブ毎のシステム割り当て割合で分配した時間であることを特徴とする請求項９または１０記載のジョブへの資源割当方法。
【請求項１２】
所定の処理を実行する例外プロセスを含む例外レディーキューに前記例外プロセスが存在する場合には、前記優先ジョブよりも前記例外プロセスに対応する最優先ジョブを優先して、前記例外レディーキューの先頭の例外プロセスを取り出して当該例外プロセスの命令を実行することを特徴とする請求項９乃至１１のいずれかに記載のジョブへの資源割当方法。
【請求項１３】
前記優先ジョブに対応するプロセス間で優先順位が変化した場合は、実行中のプロセスを対応する前記レディーキューに戻し、当該レディーキューの先頭のプロセスを取り出して当該プロセスの命令を実行することを特徴とする請求項９乃至１２のいずれかに記載のジョブへの資源割当方法。
【請求項１４】
前記最優先ジョブに対応する例外プロセス間で優先順位が変化した場合は、実行中の例外プロセスを対応する前記例外レディーキューに戻し、当該例外レディーキューの先頭の例外プロセスを取り出して当該例外プロセスの命令を実行することを特徴とする請求項１２または１３のいずれかに記載のジョブへの資源割当方法。
【請求項１５】
前記プロセスの命令を一つ実行する度に、実行中のプロセスに対応するジョブの優先期間の計時値を更新し、当該ジョブの前記プロセッサ優先割り当て時間に達したか否かを確認することを特徴とする請求項９乃至１４のいずれかに記載のジョブへの資源割当方法。
【請求項１６】
前記ジョブの終了、追加の発生に対応して前記プロセッサ優先割り当て時間を再算出する手段を備えたことを特徴とする請求項９乃至１５のいずれかに記載のジョブへの資源割当方法。
【請求項１７】
情報処理システムに、予め定められたジョブ毎のプロセッサ優先割り当て時間に基づいてジョブの切替を通知し、前記通知に基づいて優先ジョブとして選択したジョブに対応するプロセスを含むレディーキューから、先頭のプロセスを取り出して当該プロセスの命令を実行する処理を行わせることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブへの資源割当方式に関し、特に複数のジョブを単一システムで実行する場合に負荷のバランスを調整するジョブへの資源割当方式、ジョブへの資源割当方法およびプログラムに関する。
【背景技術】
【０００２】
従来のジョブへの資源割当の方法として、当該ジョブに対するＣＰＵの割り当て時間を保証するスケジュール方法を提供するものがある（例えば、特許文献１）。この従来のスケジュール方法は、ＣＰＵ割り当て保証対象ジョブを予め定め、当該ジョブのＣＰＵ使用時間を計測し、予め定めた単位時間内に一定時間以上のＣＰＵが割り当てられていなかった場合、優先的にＣＰＵを割り当てるものである。これを実現するために、ジョブ開始時に当該ジョブがＣＰＵ割り当て保証対象ジョブであるか否かを判断し、ＣＰＵ割り当て保証対象ジョブであると判断された場合は、当該ジョブのジョブ管理テーブルをＣＰＵ割り当て保証ジョブ管理テーブルに登録し、次に、当該ジョブが共用資源待ちになるか否かを判断し、共用資源待ちになると判断された場合には、先に共用資源を確保しているジョブがＣＰＵ割り当て保証対象ジョブであるか否かを判断し、ＣＰＵ割り当て保証対象ジョブでないと判断した場合には一時優先フラグを設定した当該ジョブのジョブ管理テーブルをＣＰＵ割り当て保証ジョブ管理テーブルに登録し、共用資源を解放させる処理を行う。また、タイマ処理部から起動されたＣＰＵ割り当て保証制御部が、当該ジョブが起動されてからのＣＰＵ使用時間、ＣＰＵ割り当て保証時間、ＣＰＵ割り当て監視時間を参照して優先スケジュールキューを更新し、その後、スケジューラにて当該ジョブへのＣＰＵ割り当て処理を行う構成を有している。
【０００３】
【特許文献１】特開２０００−１４８５１２
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、この従来の方法では、ジョブをスケジューリングしてＣＰＵを割り当てるためには、上述したようにジョブ管理テーブルを作成してＣＰＵ割り当て保証ジョブ管理テーブルに登録するというような煩雑な処理を実行する必要があり、その結果としてオーバヘッドが大きく汎用性に欠けるという問題があった。
【０００５】
本発明の目的は、複数のジョブを単一のシステムで実行する場合において、オーバヘッドの少ないシンプルな構成で汎用性に優れたジョブへの資源割当方式、ジョブへの資源割当方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の第１のジョブへの資源割当方式は、情報処理システムにおいて、予め定められたジョブ毎のプロセッサ優先割り当て時間に基づいてジョブの切替を通知するタイマと、プロセスの命令を実行する命令実行手段と、前記タイマからの通知に基づいて優先ジョブとして選択したジョブに対応するプロセスを含むレディーキューから、先頭のプロセスを取り出して前記命令実行手段に割り当てて当該プロセスの命令を実行させるディスパッチャと、を備えた。
【０００７】
本発明の第２のジョブへの資源割当方式は、前記第１のジョブへの資源割当方式に於いて、前記ディスパッチャは、前記優先ジョブとして選択したジョブの前記レディーキューが空であった場合は、次の優先ジョブを選択する。
【０００８】
本発明の第３のジョブへの資源割当方式は、前記第１または第２のジョブへの資源割当方式に於いて、前記プロセッサ優先割り当て時間は、一定時間の周期を前記ジョブ毎のシステム割り当て割合で分配した時間である。
【０００９】
本発明の第４のジョブへの資源割当方式は、前記第１乃至第３のいずれかのジョブへの資源割当方式に於いて、前記ディスパッチャは、所定の処理を実行する例外プロセスを含む例外レディーキューに前記例外プロセスが存在する場合には、前記優先ジョブよりも前記例外プロセスに対応する最優先ジョブを優先して、前記例外レディーキューの先頭の例外プロセスを取り出して前記命令実行手段に割り当てて当該例外プロセスの命令を実行させる。
【００１０】
本発明の第５のジョブへの資源割当方式は、前記第１乃至第４のいずれかのジョブへの資源割当方式に於いて、前記ディスパッチャは、前記優先ジョブに対応するプロセス間で優先順位が変化した場合は、実行中のプロセスを対応する前記レディーキューに戻し、当該レディーキューの先頭のプロセスを取り出して前記命令実行手段に割り当てて当該プロセスの命令を実行させる。
【００１１】
本発明の第６のジョブへの資源割当方式は、前記第４乃至第５のジョブへの資源割当方式に於いて、前記ディスパッチャは、前記最優先ジョブに対応する例外プロセス間で優先順位が変化した場合は、実行中の例外プロセスを対応する前記例外レディーキューに戻し、当該例外レディーキューの先頭の例外プロセスを取り出して前記命令実行手段に割り当てて当該例外プロセスの命令を実行させる。
【００１２】
本発明の第７のジョブへの資源割当方式は、前記第１乃至第６のいずれかのジョブへの資源割当方式に於いて、前記タイマは、前記命令実行手段がプロセスの命令を一つ実行する度に、実行中のプロセスに対応するジョブの優先期間の計時値を更新し、当該ジョブの前記プロセッサ優先割り当て時間に達したか否かを確認する。
【００１３】
本発明の第８のジョブへの資源割当方式は、前記第１乃至第７のいずれかのジョブへの資源割当方式に於いて、前記ジョブの終了、追加の発生に対応して前記プロセッサ優先割り当て時間を再算出する手段を備えた。
【００１４】
本発明の第１のジョブへの資源割当方法は、情報処理システムにおけるジョブへの資源割り当て方法であって、予め定められたジョブ毎のプロセッサ優先割り当て時間に基づいてジョブの切替を通知し、前記通知に基づいて優先ジョブとして選択したジョブに対応するプロセスを含むレディーキューから、先頭のプロセスを取り出して当該プロセスの命令を実行する。
【００１５】
本発明の第２のジョブへの資源割当方法は、前記第１のジョブへの資源割当方法に於いて、前記通知に基づいて優先ジョブとして選択したジョブの前記レディーキューが空であった場合は、次の優先ジョブを選択する。
【００１６】
本発明の第３のジョブへの資源割当方法は、前記第１または第２のジョブへの資源割当方法に於いて、前記プロセッサ優先割り当て時間は、一定時間の周期を前記ジョブ毎のシステム割り当て割合で分配した時間である。
【００１７】
本発明の第４のジョブへの資源割当方法は、前記第１乃至第３のいずれかのジョブへの資源割当方法に於いて、所定の処理を実行する例外プロセスを含む例外レディーキューに前記例外プロセスが存在する場合には、前記優先ジョブよりも前記例外プロセスに対応する最優先ジョブを優先して、前記例外レディーキューの先頭の例外プロセスを取り出して当該例外プロセスの命令を実行する。
【００１８】
本発明の第５のジョブへの資源割当方法は、前記第１乃至第４のいずれかのジョブへの資源割当方法に於いて、前記優先ジョブに対応するプロセス間で優先順位が変化した場合は、実行中のプロセスを対応する前記レディーキューに戻し、当該レディーキューの先頭のプロセスを取り出して当該プロセスの命令を実行する。
【００１９】
本発明の第６のジョブへの資源割当方法は、前記第１乃至第５のいずれかのジョブへの資源割当方法に於いて、前記最優先ジョブに対応する例外プロセス間で優先順位が変化した場合は、実行中の例外プロセスを対応する前記例外レディーキューに戻し、当該例外レディーキューの先頭の例外プロセスを取り出して当該例外プロセスの命令を実行する。
【００２０】
本発明の第７のジョブへの資源割当方法は、前記第１乃至第６のいずれかのジョブへの資源割当方法に於いて、前記プロセスの命令を一つ実行する度に、実行中のプロセスに対応するジョブの優先期間の計時値を更新し、当該ジョブの前記プロセッサ優先割り当て時間に達したか否かを確認する。
【００２１】
本発明の第８のジョブへの資源割当方法は、前記第１乃至第７のいずれかのジョブへの資源割当方法に於いて、前記ジョブの終了、追加の発生に対応して前記プロセッサ優先割り当て時間を再算出する手段を備えた。
【００２２】
本発明のプログラムは、情報処理システムに、予め定められたジョブ毎のプロセッサ優先割り当て時間に基づいてジョブの切替を通知し、前記通知に基づいて優先ジョブとして選択したジョブに対応するプロセスを含むレディーキューから、先頭のプロセスを取り出して当該プロセスの命令を実行する処理を行わせる。
【発明の効果】
【００２３】
本発明によれば、複数のジョブを単一のシステムで実行する場合において、特定のジョブの負荷が増大した場合でも、他のジョブの性能低下や実行出来ない状況が発生することを防止する、オーバヘッドの少ないシンプルな構成で汎用性に優れたジョブへの資源割当方式を提供することが可能になる。その理由は、あらかじめ定められたジョブ毎のプロセッサ優先割り当て時間に基づいて、ジョブの優先期間の切替を通知し、当該通知に基づいて、優先期間に実行されるジョブとして選択されたジョブの、プロセッサが実行可能なプロセスを待ち行列にしたレディーキューの先頭からプロセスを取り出して、プロセッサに割り当てて実行させるようにしたからである。
【発明を実施するための最良の形態】
【００２４】
次に、本発明について図面を参照して詳細に説明する。
【００２５】
図１を参照すると、本発明の第１の実施の形態は、命令実行手段１１１と、ディスパッチャ１１２と、タイマ１１３と、レディーキュー記憶部１１４と、割り当て時間記憶部１１５とで構成されている。
【００２６】
命令実行手段１１１は、ディスパッチャ１１２が選択した実行可能プロセスを構成する命令を実行する。
【００２７】
ディスパッチャ１１２は、図３に示す実行可能プロセス群３１１の中から、命令を実行すべき、当該実行可能プロセスを一つ選択する。ディスパッチャ１１２は、タイマ１１３にジョブの優先期間の割り当て時間を送信する。ディスパッチャ１１２は、タイマ１１３から切り替え指示を受信すると、当該優先期間のジョブを切り替える。
【００２８】
タイマ１１３は、当該割り当て時間を受信すると、ジョブの優先期間を計時し、当該優先期間が割り当て時間に達するとディスパッチャ１１２に切り替え指示を出力する。
【００２９】
レディーキュー記憶部１１４は、ジョブ毎に実行可能プロセスを待ち行列にしたレディーキュー群を記憶する。
【００３０】
図３を参照すると、レディーキュー群３０３は、レディーキュー３０４〜３０９およびレディーキュー３１０を含む。レディーキュー３０４〜３０９は、それぞれジョブＡ〜Ｆに対応し、実行可能プロセス群３１１の中で対応するジョブＡ〜Ｆの配下となる実行可能プロセスの待ち行列を構成する。例えば、レディーキュー３０６は、ジョブＣの配下となる実行可能プロセスの待ち行列を構成する。
【００３１】
レディーキュー３１０は、最優先ジョブに対応し、配下となる実行可能例外プロセスの待ち行列を構成する。最優先ジョブとは、ジョブＡ〜Ｆに対応していないシステム共通処理、あるいは、ジョブＡ〜Ｆに対応しているが緊急性を要する処理のプロセスを例外プロセスとして定義し、例外プロセスの集合を示す。
【００３２】
レディーキュー３１０に実行可能プロセスが繋げられると、ディスパッチャ１１２はその先頭に繋がれた実行可能プロセスを最優先で選択する。命令実行手段１１１は、選択された実行可能プロセスの命令を実行する。最優先ジョブには、ジョブＡ〜Ｆへの割り当て割合２０２〜２０７と対応するものは定義されないため、プロセッサ優先割り当て時間に相当するものはない。
【００３３】
実行可能プロセス群３１１は、ディスパッチャ１１２から選択され、命令実行手段１１１により実行されるのを待っているプロセス群である。
【００３４】
一般的に、プロセスがレディーキューに繋がって待ち行列を構成し、レディーキューから取り出されて実行される処理は、当業者にとって周知の技術であるが、本実施の形態の理解をより容易にする上で有用な点について説明する。本実施の形態においては、命令実行手段１１１による実行状態にあるプロセスを実行中プロセスと呼ぶ。ある時点での実行中プロセスは一つだけである。プロセスは、ジョブＡ〜Ｆ、あるいは、最優先ジョブ内での実行順序に関する優先順位を持っている。
【００３５】
レディーキュー３０４〜３０９およびレディーキュー３１０は、各々のレディーキューにおいて、この優先順位に従った、先入れ先出し方式により実行可能プロセスの待ち行列を構成する。優先順位が高いプロセスは低いプロセスより対応するレディーキューの先頭側に繋がれ、同一優先順位のプロセス同士であれば、時間的に先に繋がれたプロセスが対応するレディーキューの先頭側に繋がれる。
【００３６】
従って、レディーキュー３０４〜３０９およびレディーキュー３１０の先頭に繋がれた実行可能プロセスは、そのレディーキュー３０４〜３０９およびレディーキュー３１０を構成する実行可能プロセスの中では、一番優先度が高く、命令実行手段１１１による実行状態となり、実行中プロセスと成り得るプロセスである。
【００３７】
図２は、本実施の形態が動作するシステム構成の例である。本実施の形態は、プロセッサ１３１と、メモリ１３２と、入出力制御部１３３と、サービスプロセッサ１３４と、周辺装置群１３５と、コンソール１３６を有している。
【００３８】
プロセッサ１３１は、本実施の形態においては、プログラムの指示に従い演算をはじめとするデータ処理を実行するものである。命令実行手段１１１、ディスパッチャ１１２、タイマ１１３が、それぞれの対応するプログラムと、プロセッサ１３１とによって実現されている。
【００３９】
メモリ１３２は、本実施の形態においては、プログラム、および、当該プログラムのワークエリア、バッファ等を記憶するものであり、レディーキュー記憶部１１４と、割り当て時間記憶部１１５とを少なくとも有している。
【００４０】
入出力制御部１３３、サービスプロセッサ１３４、周辺装置群１３５、および、コンソール１３６は、一般のコンピュータシステムを構成する周知の技術であり、本実施の形態においては特別な位置づけを持たないため、説明を省略する。
【００４１】
図４は、本発明が本実施の形態を用いて適用されるシステムにおける、プロセス識別番号１０１の構造を示す図である。ジョブ識別番号１０２は、各ジョブに対応したシステム内でユニークな番号である。ジョブ内のプロセス識別番号１０３は、各プロセスに対応したジョブ内でユニークな番号である。システム内のプロセス識別番号１０１は、ジョブ識別番号１０２とジョブ内のプロセス識別番号１０３を組み合わせた番号であり、各プロセスに対応したシステム内でユニークな番号である。本発明が本実施の形態を用いて適用されるシステムにおいて実行される各ジョブおよび各プロセスは、システム内のプロセス識別番号１０１、ジョブ識別番号１０２、ジョブ内のプロセス識別番号１０３で識別され、管理および制御される。
【００４２】
次に、図１〜図１１を参照して、本発明の第１の実施の形態の動作について、具体的な実施例を示して詳細に説明する。
【００４３】
図５は、本発明が本実施の形態を用いて適用されるシステムにおける、プロセッサ優先割り当て時間算出の基となる周期２０１と、システム割り当て割合２０２〜２０７との例を示したものである。周期２０１は、システム割り当てを繰り返す一定時間の周期である。システム割り当て割合２０２〜２０７は、それぞれジョブＡ〜Ｆ毎に対応し、周期２０１内での各ジョブへのシステム割り当て割合を示すものである。例えば、周期を５００μＳ、ジョブＡに対するシステム割り当て割合２０２を２０％とすると、ジョブＡの優先期間であるプロセッサ優先割り当て時間は、５００μＳ×０．２＝１００μＳである。
【００４４】
図６は、本発明が本実施の形態を用いて適用されるシステムにおける、各ジョブに対する命令実行手段１１１の割り当てと、ディスパッチャ１１２、タイマ１１３の関係を示したイメージである。
【００４５】
ディスパッチャ１１２は、割り当て時間記憶部１１５の割り当て時間テーブル４０２をジョブ識別番号１０２に基づいて参照し、ジョブ識別番号１０２に対応する割り当て時間を取得する。ディスパッチャ１１２は、取得した割り当て時間を、タイマ１１３に出力する。
【００４６】
タイマ１１３は、割り当て時間を取得して、ジョブ識別番号１０２に対応するジョブの優先期間の計時を開始する。タイマ１１３は、優先期間の計時が割り当て時間に達すると、ディスパッチャ１１２に優先ジョブの切替指示４０５を出力する。ディスパッチャ１１２は、切り替え指示４０５を取得すると、優先ジョブを切り替える。即ち、切り替え指示４０５は、命令実行手段１１１により実行すべき実行可能プロセスの切替指示となる。
【００４７】
実行期間４０６〜４１９は、対応するジョブが優先期間となり命令実行手段１１１を割り当てられていることを表示している。実行期間４０６〜４１１では、ジョブＡ〜Ｆの割り当て時間に対応して命令実行手段１１１が割り当てられている。ジョブＡの実行期間４１２と４１４の間に最優先ジョブの実行期間４１３が存在するが、これは実行期間４１２中において、最優先ジョブのレディーキュー３１０に実行可能プロセスが繋げられ、その先頭の実行可能プロセスが最優先で、命令実行手段１１１を割り当てられている状態を表現したものである。レディーキュー３１０に繋げられた実行可能プロセスが存在しなくなると（レディーキュー３１０が空になると）、中断されたジョブＡの実行期間４１２の続きとして、実行期間４１４となる。実行期間４１４〜４１７までは、ジョブＡ〜Ｄの割り当て時間に対応して命令実行手段１１１が割り当てられている。実行期間４１７と４１８の間にジョブＥの実行期間が存在しないが、これはこの時点で、ジョブＥのレディーキュー３０８が空であることを表現している。ジョブＦの実行期間４１８が終了すると、ジョブＡの実行期間４１９になる。
【００４８】
図７は、本発明が本実施の形態を用いて適用されるシステムにおける、ジョブへの資源割当の基本の動作を示すフローチャートである。
【００４９】
以下の説明において、命令実行手段１１１の状態は、命令実行手段１１１による実行状態にあるプロセスである実行中プロセスが、命令実行手段１１１上にない状態（空き状態）と、命令実行手段１１１上に取り込んで、命令実行手段１１１上に存在している状態（プロセス状態）がある。プロセス状態では、一つだけ命令実行手段１１１上に存在している実行中プロセスを実行する。命令実行手段１１１に取り込む実行中プロセスは、レディーキュー群３０３に繋がれた実行可能プロセス群３１１の中から、その時点で最優先の実行可能プロセスが、ディスパッチャ１１２により一つだけ選択される。
【００５０】
以下の説明において、レディーキューｍ、レディーキューｎは、レディーキュー３０４〜レディーキュー３０９のいずれかのレディーキューであることを示す。
【００５１】
ディスパッチャ１１２は、命令実行手段１１１上に最優先ジョブに属する実行中プロセスが存在するか否かを確認し、存在すればステップ５１１に分岐し、否であればステップ５０２に進む（ステップ５０１）。
【００５２】
ディスパッチャ１１２は、最優先ジョブのレディーキュー３１０に実行可能プロセスが存在するか否かを確認し、存在すればステップ５１４に分岐し、否であればステップ５０３に進む（ステップ５０２）。
【００５３】
ディスパッチャ１１２は、タイマ１１３から優先ジョブの切り替え指示４０５があるかどうかを確認する。処理は、優先ジョブの切り替え指示４０５が存在すればステップ５１８に分岐し、否であればステップ５０４に進む（ステップ５０３）。
【００５４】
ディスパッチャ１１２は、命令実行手段１１１上に実行中プロセスが存在するか否かを確認し、存在すればステップ５０５に進み、否であればステップ５２３に分岐する（ステップ５０４）。
【００５５】
ディスパッチャ１１２は、同一のジョブ内でプロセススイッチ要因があるか確認する。プロセススイッチ要因があればステップ５０６に進み、否であればステップ５０７に進む（ステップ５０５）。プロセススイッチとは、命令実行手段１１１上の実行中プロセスを実行可能プロセス群３１１の中に戻し、実行可能プロセス群３１１の中から規定に従った一つの実行可能プロセスを選択し、命令実行手段１１１上の実行中プロセスとする処理を言う。
【００５６】
ディスパッチャ１１２は、命令実行手段１１１上の実行中プロセスを対応するレディーキューｍに戻すことにより実行可能プロセスとし、当該レディーキューｍの先頭に存在する実行可能プロセスを命令実行手段１１１上に取り込み実行中プロセスとする。これにより、同一のジョブ内でのプロセススイッチが実施され、ステップ５０７に進む（ステップ５０６）。
【００５７】
命令実行手段１１１は、命令実行手段１１１上の実行中プロセスの命令を一つ実行する。この命令はプロセスを構成する命令群のひとつであり、予め定められた規則に従って命令群の中から選択された命令である。その後、処理は、ステップ５０８に進む（ステップ５０７）。
【００５８】
タイマ１１３は、命令実行手段１１１上の実行中プロセスが属するジョブの計時値を更新し、当該ジョブに与えられた割り当て時間を計測する。その後、処理は、ステップ５０９に進む（ステップ５０８）。
【００５９】
ディスパッチャ１１２は、命令実行手段１１１上の実行中プロセスは継続して実行可能か否かを確認する。ステップ５０７の命令の実行結果によっては、該実行中プロセスが、実行可能状態から他の状態に遷移する規則になっているためである。処理は、継続して実行可能であればステップ５０１に分岐し、否であればステップ５１０に進む（ステップ５０９）。
【００６０】
ディスパッチャ１１２は、命令実行手段１１１上の実行中プロセスを、実行中の状態から規則により規定された適当な状態に遷移させる。これにより、命令実行手段１１１上には実行中プロセスが存在しなくなる。その後、処理は、ステップ５０１に分岐する（ステップ５１０）。
【００６１】
図８は、命令実行手段１１１上で最優先ジョブに属する実行中プロセスが存在した場合の動作を示すフローチャートである。ディスパッチャ１１２は、最優先ジョブ内でプロセススイッチ要因があるか確認する。処理は、要因があればステップ５１２に進み、否であればステップ５１３に進む（ステップ５１１）。
【００６２】
ディスパッチャ１１２は、命令実行手段１１１上の実行中プロセスを最優先ジョブのレディーキュー３１０に戻すことにより実行可能プロセスとし、同レディーキュー３１０の先頭に存在する実行可能プロセスを命令実行手段１１１上に取り込み、実行中プロセスとする（ステップ５１２）。
【００６３】
ディスパッチャ１１２は、命令実行手段１１１上の実行中プロセスの一つの命令を実行する。本ステップ５１３での実行中プロセスは最優先ジョブに属している。その後、処理は、ステップ５０９に進む。最優先ジョブにはプロセッサ優先割り当て時間に相当するものが無いため、ステップ５０８は実行しない（ステップ５１３）。
【００６４】
図９は、命令実行手段１１１上に最優先ジョブに属する実行中プロセスは存在せず、かつ最優先ジョブのレディーキュー３１０には実行可能プロセスが存在する場合の動作を示すフローチャートである。ディスパッチャ１１２は、命令実行手段１１１上にジョブＡ〜Ｆに属する実行中プロセスが存在するか否かを確認し、存在すれば、ステップ５１５に進み、否であればステップ５１６に進む（ステップ５１４）。
【００６５】
ディスパッチャ１１２は、命令実行手段１１１上のジョブＡ〜Ｆに属する実行中プロセスを対応するレディーキューｍに戻し実行可能プロセスとする。その後、処理は、ステップ５１６に進む（ステップ５１５）。
【００６６】
ディスパッチャ１１２は、最優先ジョブのレディーキュー３１０の先頭に存在する実行可能プロセスを命令実行手段１１１上に取り込み、実行中プロセスとする（ステップ５１６）。
【００６７】
ディスパッチャ１１２は、ステップ５１６で取り込んだ実行中プロセスの一つの命令を実行する。その後、処理は、ステップ５０９に分岐する。最優先ジョブにはプロセッサ優先割り当て時間に相当するものが無いため、ステップ５０８は実行しない（ステップ５１７）。
【００６８】
図１０は、最優先ジョブに属する実行中プロセスも実行可能プロセスも存在せず、かつタイマ１１３から優先期間の切り替え指示４０５がある場合の動作を示すフローチャートである。ディスパッチャ１１２は、命令実行手段１１１上に実行中プロセスが存在するか否かを確認する。この実行中プロセスはジョブＡ〜Ｆの何れかに属しているものである。処理は、命令実行手段１１１上に実行中プロセスが存在すればステップ５１９に進み、否であればステップ５２０に進む（ステップ５１８）。
【００６９】
ディスパッチャ１１２は、命令実行手段１１１上の実行中プロセスを対応するレディーキューｍに戻す。この実行中プロセスは、優先期間が終了したジョブに属したものである。その後、処理は、ステップ５２０に進む（ステップ５１９）。
【００７０】
ディスパッチャ１１２は、優先期間を次のジョブに切り替え、当該ジョブに対応した割り当て時間をタイマ１１３に出力する。対応する優先期間の優先ジョブの切替指示４０５はリセットされる。その後、処理は、ステップ５２１に進む（ステップ５２０）。
【００７１】
ディスパッチャ１１２は、優先期間の切替先のジョブに対応したレディーキューｎ（ｎ＝３０４〜３０９）に実行可能プロセスが存在するか否かを確認し、存在すればステップ５２２に進み、否であればステップ５０１に分岐する（ステップ５２１）。
【００７２】
ディスパッチャ１１２は、レディーキューｎの先頭に存在する実行可能プロセスを命令実行手段１１１上に取り込み、実行中プロセスとする。その後、処理は、ステップ５０７に分岐する（ステップ５２２）。
【００７３】
図１１は、最優先ジョブに属する実行中プロセスおよび実行可能プロセスが存在せず、タイマ１１３から優先期間の切り替え指示４０５も無く、かつ、命令実行手段１１１上にジョブＡ〜Ｆに属する実行中プロセスも無い場合の動作を示すフローチャートである。ディスパッチャ１１２は、優先期間をアサインされたジョブに対応したレディーキューｍに実行可能プロセスが存在するか否かを確認し、存在する場合はステップ５２４に進む。否であれば、処理は、ステップ５２０に分岐し、優先期間を次のジョブに切り替える（ステップ５２３）。
【００７４】
ディスパッチャ１１２は、優先期間をアサインされたジョブに対応したレディーキューｍの先頭に存在する実行可能プロセスを命令実行手段１１１上に取り込み、実行中プロセスとする。その後、処理は、ステップ５０７に分岐する（ステップ５２４）。
【００７５】
このようにして、ディスパッチャ１１２は、上記に述べた規則に従い、あるジョブの優先割り当て時間内で、規則に従い、当該ジョブのに対応するレディーキューの先頭から当該ジョブに属するプロセスを取り込み、命令実行手段１１１上の実行中プロセスとする。
【００７６】
本発明の第１の実施の形態によれば、あらかじめ定められたジョブ毎のシステム割り当て割合に基づいたプロセッサ割り当て時間をジョブ毎の優先期間とし、ジョブ毎に対応するレディーキューには、各ジョブに属する実行可能プロセスを繋ぎ、ジョブ毎の優先期間において、ジョブ毎に対応するレディーキューの先頭に繋がれた実行可能プロセスを選択し、プロセッサに割り当て実行させることができるようにしたことにより、各ジョブに対するプロセッサの割り当て時間は、予め設定された各ジョブへのシステム割り当て割合とほぼ同じになり、複数のジョブを単一のシステムで実行する場合において、特定のジョブの負荷が増大した場合でも、他のジョブが実行出来ない状況やシステムの割り当て割合が減少する状況を防止することが可能になるという効果を有している。
【００７７】
また、本発明の第１の実施の形態によれば、一つのジョブが、優先ジョブの期間であっても、実行すべき仕事が無くなり、優先ジョブのレディーキューが空であった場合、他のジョブが優先ジョブに切り替わるようにしたことにより、特定のジョブの負荷が軽くなり、ジョブのシステム使用時間が予め定めたシステム割り当て割合に満たない場合は、システム時間を無駄にすることなく、他のジョブにシステムを割り当てることが可能になるという効果を有している。
【００７８】
さらに、本発明の第１の実施の形態によれば、システム共通処理や緊急性を要するジョブを最優先ジョブと定義し、最優先ジョブに対応するレディーキューを備え、レディーキューに実行可能プロセスが繋がれた場合、即ちこの最優先ジョブで実行すべき仕事が発生すると、最優先でシステムを割り当てるようにしたことにより、最優先ジョブについては、一般のジョブが優先ジョブである期間か否かに関わらず、最優先でシステムを割り当てることが可能になるという効果を有している。
【００７９】
次に本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００８０】
図１２は、本発明の第２の実施の形態の構成を示すブロック図である。本発明の第２の実施の形態においては、本発明の第１の実施の形態の構成を示すブロック図である図１に対して、割り当て時間算出手段１１６が追加されていることが、本発明の第１の実施の形態と異なる。
【００８１】
割り当て時間算出手段１１６は、例えば図２に示すサービスプロセッサ１３４や、コンソール１３６から入力された、図５に示す周期２０１と、ジョブ毎のシステム割り当て割合２０２〜２０７を取得する。そして、割り当て時間算出手段１１６は、図５に示す周期２０１と、ジョブ毎のシステム割り当て割合２０２〜２０７に基づいて、ジョブ毎のプロセッサ優先割り当て時間を算出し、図６割り当て時間テーブル４０２に格納する。
【００８２】
第２の実施の形態の動作について、図５に示す例により、具体的な実施例を詳細に説明する。割り当て時間算出手段１１６は、図示しない何らかの手段から、図５に示す周期２０１＝Ｔ［μｓ］として『５００』を、ジョブＡのシステム割り当て割合２０２＝Ｒａ［％］として『２０』を、ジョブＢのシステム割り当て割合２０３＝Ｒｂ［％］として『１０』、ジョブＣのシステム割り当て割合２０４＝Ｒｃ［％］として『３０』を、ジョブＤのシステム割り当て割合２０５＝Ｒｄ［％］として『１２』を、ジョブＥのシステム割り当て割合２０６＝Ｒｅ［％］として『１８』を、ジョブＦのシステム割り当て割合２０７＝Ｒｆ［％］として『１０』、を取得する。そして、割り当て時間算出手段１１６は、これらに基づいて、ジョブＡのプロセッサ優先割り当て時間＝５００［μｓ］×０．２＝１００［μｓ］を、ジョブＢのプロセッサ優先割り当て時間＝５００［μｓ］×０．１＝５０［μｓ］を、ジョブＣのプロセッサ優先割り当て時間＝５００［μｓ］×０．３＝１５０［μｓ］を、ジョブＤのプロセッサ優先割り当て時間＝５００［μｓ］×０．１２＝６０［μｓ］を、ジョブＥのプロセッサ優先割り当て時間＝５００［μｓ］×０．１８＝９０［μｓ］を、ジョブＦのプロセッサ優先割り当て時間＝５００［μｓ］×０．１＝１０［μｓ］を算出する。そして、割り当て時間算出手段１１６は、図６に示す割り当て時間テーブル４０２に格納する。
【００８３】
さらに、割り当て時間算出手段１１６は、ジョブの終了、ジョブの追加が発生した場合にプロセッサ優先割り当て時間を再算出するための再算出機能を有する。
【００８４】
以下に、図５に示す状態に対して、ジョブＧが追加された場合の、プロセッサ優先割り当て時間を再算出する動作について具体的に説明する。ディスパッチャ１１２は、ジョブの追加を検出すると割り当て時間算出手段１１６にプロセッサ優先割り当て時間の再算出を指示する。割り当て時間算出手段１１６は、ジョブＧのシステム割り当て割合Ｒｇ［％］＝『１０』を取得する。ここで、図５に示す周期２０１＝『５００［μｓ］』は、既存のジョブＡ〜Ｆのシステム割り当て割合の合計『１００％』で配分されている。このため、割り当て時間算出手段１１６は、ジョブＧのシステム割り当て割合を合わせて、全体が１００％になるようにジョブＡ〜Ｆのシステム割り当て割合を再計算する。割り当て時間算出手段１１６は、ジョブＡのシステム割り当て割合２０２＝Ｒａ［％］＝２０［％］÷１．１＝１８［％］、ジョブＢのシステム割り当て割合２０３＝Ｒｂ［％］＝１０［％］÷１．１＝９［％］、ジョブＣ以下も同様であり、ジョブＧのシステム割り当て割合Ｒｇ［％］＝１０［％］÷１．１＝９［％］を算出する。
【００８５】
そして、割り当て時間算出手段１１６は、この再計算した各ジョブのシステム割り当て割合に基づいて、各ジョブのプロセッサ優先割り当て時間を再算出する。
【００８６】
尚、以上の例では、周期を変えずにシステム割り当て割合を再計算する場合を説明したが、周期２０１＝『５００［μｓ］』に対して、ジョブＧのシステム割り当て割合Ｒｇ［％］＝『１０』に当たる分のプロセッサ優先割り当て時間『５０μｓ』を周期に追加して周期２０１＝『５５０［μｓ］』として再算出しても良い。
【００８７】
また、ジョブが終了した場合も、容易に同様の方法を適用できる。
【００８８】
本発明の第２の実施の形態によれば、割り当ての周期とジョブ毎のシステム割り当て割合に基づいて、また、ジョブの終了、追加の発生に対応してジョブ毎のプロセッサ優先割り当て時間を算出するようにしたことにより、プロセッサ優先割り当て時間をあらかじめ計算する手間を省略できる汎用的な、ジョブへの資源割当方式を提供することが可能になるという効果を有している。
【産業上の利用可能性】
【００８９】
本発明は、一般の情報処理装置で活用可能であるが、特に一つのプロセッサ上で複数の機能を処理する場合などに有効である。
【００９０】
本発明の活用例として、一つのプロセッサ上において、ネットワーク、ディスク、テープ、コンソールなどの入出力処理を行わせる場合、各処理に対して、予め定めた割合で効率良くプロセッサを使用させることが出来る。
【図面の簡単な説明】
【００９１】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１および第２の実施の形態のシステム構成を示す図である。
【図３】本発明の第１の実施の形態におけるレディーキュー群および実行可能プロセス群のイメージを示す図である。
【図４】本発明の第１の実施の形態におけるプロセス識別番号の構造を示す図である。
【図５】本発明の第１の実施の形態における周期２０１と、システム割り当て時間との例である。
【図６】本発明の第１の実施の形態における各ジョブに対するプロセッサの割り当てと、ディスパッチャ、タイマの関係のイメージを示す図である。
【図７】本発明の第１の実施の形態におけるジョブへの資源割当の基本の動作を示すフローチャートである。
【図８】本発明の第１の実施の形態におけるプロセッサ上で最優先ジョブに属する実行中プロセスが存在した場合の動作を示すフローチャートである。
【図９】本発明の第１の実施の形態におけるプロセッサ上に最優先ジョブに属する実行中プロセスは存在せず、かつ最優先ジョブのレディーキューには実行可能プロセスが存在する場合の動作を示すフローチャートである。
【図１０】本発明の第１の実施の形態における最優先ジョブに属する実行中プロセスも実行可能プロセスも存在せず、かつタイマから優先期間の切り替え指示がある場合の動作を示すフローチャートである。
【図１１】本発明の第１の実施の形態における最優先ジョブに属する実行中プロセスおよび実行可能プロセスが存在せず、タイマから優先期間の切り替え指示も無く、かつ、プロセッサ上にジョブＡ〜Ｆに属する実行中プロセスも無い場合の動作を示すフローチャートである。
【図１２】本発明の第２の実施の形態の構成を示すブロック図である。
【符号の説明】
【００９２】
１０１    システム内のプロセス識別番号
１０２    ジョブ識別番号
１０３    ジョブ内のプロセス識別番号
１１１    命令実行手段
１１２    ディスパッチャ
１１３    タイマ
１１４    レディーキュー記憶部
１１５    割り当て時間記憶部
１１６    割り当て時間算出手段
１３１    プロセッサ
１３２    メモリ
１３３    入出力制御部
１３４    サービスプロセッサ
１３５    周辺装置群
１３６    コンソール
２０１    周期
２０２〜２０７    システム割り当て割合
３０４〜３０９    レディーキュー
３１０    レディーキュー
３１１    実行可能プロセス群
４０２    割り当て時間テーブル
４０５    優先ジョブの切替指示
４０６〜４１９    実行期間
【図１】
2008242510.tif 000003
【図２】
2008242510.tif 000004
【図３】
2008242510.tif 000005
【図４】
2008242510.tif 000006
【図５】
2008242510.tif 000007
【図６】
2008242510.tif 000008
【図７】
2008242510.tif 000009
【図８】
2008242510.tif 000010
【図９】
2008242510.tif 000011
【図１０】
2008242510.tif 000012
【図１１】
2008242510.tif 000013
【図１２】
2008242510.tif 000014