(57)【特許請求の範囲】
【請求項１】
複数の処理プログラムからの処理装置に対する入出力要求を集中制御する計算機システムにおける優先度制御機能を有する入出力制御方法であって、
前記処理プログラムが、前記処理装置における処理に要する処理時間と、その処理を終了すべき時刻である終了時刻と、他の入出力よりも優先して入出力を行う場合に指定する優先指定とを指定して、前記処理装置に対する入出力要求を行う入出力要求ステップと、
前記入出力要求を、前記優先指定がある場合には前記処理プログラムから受け付けた受付時刻から該入出力要求の開始時刻を算出して、前記優先指定がない場合には、該入出力要求に指定された前記処理時間及び終了時刻から、該入出力要求の開始時刻を算出して設定する開始時刻設定ステップと、
前記入出力要求を、前記開始時刻設定ステップで算出した開始時刻の順に、待ち行列に登録する登録ステップと、
前記待ち行列に登録された前記入出力要求を、前記開始時刻順に取り出す取り出しステップと、
前記取り出しステップで前記待ち行列から前記入出力要求を取り出したときに、その入出力要求を取り出した時刻がその入出力要求に設定された開始時刻を過ぎていない場合に、その入出力要求を前記処理装置に渡す処理開始ステップと、
前記取り出しステップで前記待ち行列から前記入出力要求を取り出したときに、その入出力要求を取り出した現在時刻がその入出力要求に設定された開始時刻を過ぎていた場合に、前記待ち行列に登録されている入出力要求について、その入出力要求の前記受付時刻及び前記開始時刻と前記現在時刻から遅延度を計算し、遅延度が最大の入出力要求を前記待ち行列から取り出して前記処理装置に渡す選択処理開始ステップと、
を備えることを特徴とする入出力要求制御方法。
【請求項２】
前記遅延度は、前記現在時刻と前記開始時刻の差を、前記現在時刻と前記受付時刻の差で除した値に基づくことを特徴とする請求項１に記載の入出力要求制御方法。
【請求項３】
複数の処理プログラムからの処理装置に対する入出力要求を集中制御する計算機システムであって、
前記処理プログラムが、前記処理装置における処理に要する処理時間と、その処理を終了すべき時刻である終了時刻と、他の入出力よりも優先して入出力を行う場合に指定する優先指定とを指定して、前記処理装置に対する入出力要求を行う入出力要求手段と、
前記入出力要求を、前記優先指定がある場合には前記処理プログラムから受け付けた受付時刻から該入出力要求の開始時刻を算出して、前記優先指定がない場合には、該入出力要求に指定された前記処理時間及び終了時刻から、該入出力要求の開始時刻を算出して設定する開始時刻設定手段と、
前記入出力要求を、前記開始時刻設定手段で算出した開始時刻の順に、待ち行列に登録する登録手段と、
前記待ち行列に登録された前記入出力要求を、前記待ち行列から取り出して前記処理装置に渡す処理制御手段と、
を備え、
前記処理制御手段は、
前記入出力要求を前記待ち行列から前記開始時刻の順に取り出し、
前記入出力要求を前記待ち行列から取り出したときに、その入出力要求を取り出した現在時刻がその入出力要求に設定された開始時刻を過ぎていない場合に、その入出力要求を前記処理装置に渡し、
前記現在時刻がその入出力要求に設定された開始時刻を過ぎていた場合に、前記待ち行列に登録されている入出力要求について、その入出力要求の前記受付時刻及び前記開始時刻と前記現在時刻から遅延度を計算し、遅延度が最大の入出力要求を前記待ち行列から取り出して前記処理装置に渡す、
ことを特徴とする計算機システム。
【請求項４】
前記遅延度は、前記現在時刻と前記開始時刻の差を、前記現在時刻と前記受付時刻の差で除した値に基づくことを特徴とする請求項３に記載の計算機システム。
【請求項５】
コンピュータを、
処理プログラムが、処理装置における処理に要する処理時間と、その処理を終了すべき時刻である終了時刻と、他の入出力よりも優先して入出力を行う場合に指定する優先指定とを指定して、前記処理装置に対する入出力要求を行う入出力要求手段と、
前記入出力要求を、前記優先指定がある場合には前記処理プログラムから受け付けた受付時刻から該入出力要求の開始時刻を算出して、前記優先指定がない場合には、該入出力要求に指定された前記処理時間及び終了時刻から、該入出力要求の開始時刻を算出して設定する開始時刻設定手段と、
前記入出力要求を、前記開始時刻設定手段で設定した開始時刻の順に、待ち行列に登録する登録手段と、
前記待ち行列に登録された前記入出力要求を、前記開始時刻順に取り出す取り出し手段と、
前記取り出し手段で前記待ち行列から前記入出力要求を取り出したときに、その入出力要求を取り出した時刻がその入出力要求に設定された開始時刻を過ぎていない場合に、その入出力要求を前記処理装置に渡す処理開始手段と、
前記取り出し手段で前記待ち行列から前記入出力要求を取り出したときに、その入出力要求を取り出した現在時刻がその入出力要求に設定された開始時刻を過ぎていた場合に、前記待ち行列に登録されている入出力要求について、その入出力要求の前記受付時刻及び前記開始時刻と前記現在時刻から遅延度を計算し、遅延度が最大の入出力要求を前記待ち行列から取り出して前記処理装置に渡す選択処理開始手段と、
して機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システムにおける入出力要求の処理順序を制御する方法、計算機システム及びコンピュータプログラムに関する。
【背景技術】
【０００２】
計算機システムにおいて、処理プログラムの入出力要求を処理するために、入出力要求が発生した順序で処理するのではなく、入出力要求の優先度、対象となる入出力装置などの処理装置の優先度などにもとづいて、入出力要求の処理順序を決定することが一般的に行われる。
【０００３】
例えば、特許文献１は、処理プログラムが入出力要求に対して任意の優先順位を設定し、優先順位の低い要求が長時間待たされることがないように制御する技術が記載されている。特許文献１の技術では、待ち行列に登録されている各入出力要求は、属性として、それ自身より高い優先順位をもつ要求に追い越された回数、追い越し許容回数の情報を有する。処理プログラムからの入出力要求受付時は、設定された優先順位順に並ぶように、優先度制御表にエントリを登録する。入出力要求を優先度制御表に登録するとき、その登録した入出力要求に追い越された入出力要求については、追い越された回数をカウントアップし、追い越された回数が許容回数を超えた場合は、待ち行列（キュー）の先頭側に移動する。入出力処理実行時は、キューの先頭の入出力要求を取り出して、入出力処理を行う。
【０００４】
特許文献２は、複数のジョブに関して資源をスケジューリングするための機能強化された方法および装置を提供する。ジョブ・スケジューラは、実質的に最適の遅延コスト関数に従って、資源へのアクセスの順序と頻度に関する決定を行う。遅延コスト関数は、１入力または複数入力の単一値関数であり、入力のうちの少なくとも１つは、ジョブがサービスを待つのにつれて増加する遅延時間である。遅延コスト関数は、任意の形状とすることができ、ユーザ定義のパフォーマンス目標、システム構成または作業負荷の所与の組に関して最適の遅延コストを生じるように動的に調節できる。
【０００５】
特許文献３は、所望する印刷完了期限を指定しておくだけで、その指定期限までに当該印刷が間に合わない場合には、その印刷要求ジョブの印刷を優先的に実行できると共に、当該印刷要求ジョブの印刷順位を繰り上げたことによって、後続する他の印刷待ち要求ジョブの印刷がその印刷完了期限までに間に合わなくなるような不都合が生じないように、全体として効率の良い印刷制御を実現する技術が記載されている。特許文献３の技術は、印刷要求の際に、何時までに当該印刷を完了して欲しいかを示す印刷完了期限を任意に指定すると、サーバコンピュータは、印刷待ちとなっている各印刷要求ジョブの印刷が当該期限内に間に合うような並び順に、各ジョブの印刷順番を変更する。そして、サーバコンピュータは、印刷順番を変更した際に、印刷完了期限内に間に合わない印刷要求ジョブが存在するかを判別し、存在すれば、他の代替えプリンタ装置を指定して、そのジョブの出力先を変更する。
【特許文献１】特開平１−１１２４６１号公報
【特許文献２】特開平７−１７５６６９号公報
【特許文献３】特開２００１−２３６１９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の技術では、入出力要求の処理順序を、優先順位と追い越し回数で管理しており、優先順位の高い入出力要求が一時的に大量に発行されると、既にキューイングされていた優先順位の低い入出力要求が次々と処理され、優先順位の高い入出力要求が大幅に遅延するという問題があった。
【０００７】
また、入出力要求を開始すべき時刻が考慮されていないため、まだ処理を開始する必要のない優先順位の低い入出力要求が、キューの先頭に移動するという問題があった。
【０００８】
特許文献３の技術は、印刷完了期限内に間に合わない印刷要求ジョブを処理する代替プリンタ装置が設けられている場合であって、代替処理装置がない場合については想定されていない。
【０００９】
本発明は、上記事情に鑑みてなされたものであり、特定の処理プログラムが要求した入出力要求が大幅に遅延することがなく、入出力を要求する処理プログラムの間で遅延を均等にする入出力要求の処理順序制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の観点に係る入出力要求制御方法は、
複数の処理プログラムからの処理装置に対する入出力要求を集中制御する計算機システムにおける優先度制御機能を有する入出力制御方法であって、
前記処理プログラムが、前記処理装置における処理に要する処理時間と、その処理を終了すべき時刻である終了時刻と、他の入出力よりも優先して入出力を行う場合に指定する優先指定とを指定して、前記処理装置に対する入出力要求を行う入出力要求ステップと、
前記入出力要求を、前記優先指定がある場合には前記処理プログラムから受け付けた受付時刻から該入出力要求の開始時刻を算出して、前記優先指定がない場合には、該入出力要求に指定された前記処理時間及び終了時刻から、該入出力要求の開始時刻を算出して設定する開始時刻設定ステップと、
前記入出力要求を、前記開始時刻設定ステップで算出した開始時刻の順に、待ち行列に登録する登録ステップと、
前記待ち行列に登録された前記入出力要求を、前記開始時刻順に取り出す取り出しステップと、
前記取り出しステップで前記待ち行列から前記入出力要求を取り出したときに、その入出力要求を取り出した時刻がその入出力要求に設定された開始時刻を過ぎていない場合に、その入出力要求を前記処理装置に渡す処理開始ステップと、
前記取り出しステップで前記待ち行列から前記入出力要求を取り出したときに、その入出力要求を取り出した現在時刻がその入出力要求に設定された開始時刻を過ぎていた場合に、前記待ち行列に登録されている入出力要求について、その入出力要求の前記受付時刻及び前記開始時刻と前記現在時刻から遅延度を計算し、遅延度が最大の入出力要求を前記待ち行列から取り出して前記処理装置に渡す選択処理開始ステップと、
を備えることを特徴とする。
【００１１】
特に、前記遅延度は、前記現在時刻と前記開始時刻の差を、前記現在時刻と前記受付時刻の差で除した値に基づくことを特徴とする。
【００１２】
本発明の第２の観点に係る計算機システムは、
複数の処理プログラムからの処理装置に対する入出力要求を集中制御する計算機システムであって、
前記処理プログラムが、前記処理装置における処理に要する処理時間と、その処理を終了すべき時刻である終了時刻と、他の入出力よりも優先して入出力を行う場合に指定する優先指定とを指定して、前記処理装置に対する入出力要求を行う入出力要求手段と、
前記入出力要求を、前記優先指定がある場合には前記処理プログラムから受け付けた受付時刻から該入出力要求の開始時刻を算出して、前記優先指定がない場合には、該入出力要求に指定された前記処理時間及び終了時刻から、該入出力要求の開始時刻を算出して設定する開始時刻設定手段と、
前記入出力要求を、前記開始時刻設定手段で算出した開始時刻の順に、待ち行列に登録する登録手段と、
前記待ち行列に登録された前記入出力要求を、前記待ち行列から取り出して前記処理装置に渡す処理制御手段と、
を備え、
前記処理制御手段は、
前記入出力要求を前記待ち行列から前記開始時刻の順に取り出し、
前記入出力要求を前記待ち行列から取り出したときに、その入出力要求を取り出した現在時刻がその入出力要求に設定された開始時刻を過ぎていない場合に、その入出力要求を前記処理装置に渡し、
前記現在時刻がその入出力要求に設定された開始時刻を過ぎていた場合に、前記待ち行列に登録されている入出力要求について、その入出力要求の前記受付時刻及び前記開始時刻と前記現在時刻から遅延度を計算し、遅延度が最大の入出力要求を前記待ち行列から取り出して前記処理装置に渡す、
ことを特徴とする。
【００１３】
好ましくは、前記遅延度は、前記現在時刻と前記開始時刻の差を、前記現在時刻と前記受付時刻の差で除した値に基づくことを特徴とする。
【００１４】
本発明の第３の観点に係るコンピュータプログラムは、コンピュータを、
処理プログラムが、処理装置における処理に要する処理時間と、その処理を終了すべき時刻である終了時刻と、他の入出力よりも優先して入出力を行う場合に指定する優先指定とを指定して、前記処理装置に対する入出力要求を行う入出力要求手段と、
前記入出力要求を、前記優先指定がある場合には前記処理プログラムから受け付けた受付時刻から該入出力要求の開始時刻を算出して、前記優先指定がない場合には、該入出力要求に指定された前記処理時間及び終了時刻から、該入出力要求の開始時刻を算出して設定する開始時刻設定手段と、
前記入出力要求を、前記開始時刻設定手段で設定した開始時刻の順に、待ち行列に登録する登録手段と、
前記待ち行列に登録された前記入出力要求を、前記開始時刻順に取り出す取り出し手段と、
前記取り出し手段で前記待ち行列から前記入出力要求を取り出したときに、その入出力要求を取り出した時刻がその入出力要求に設定された開始時刻を過ぎていない場合に、その入出力要求を前記処理装置に渡す処理開始手段と、
前記取り出し手段で前記待ち行列から前記入出力要求を取り出したときに、その入出力要求を取り出した現在時刻がその入出力要求に設定された開始時刻を過ぎていた場合に、前記待ち行列に登録されている入出力要求について、その入出力要求の前記受付時刻及び前記開始時刻と前記現在時刻から遅延度を計算し、遅延度が最大の入出力要求を前記待ち行列から取り出して前記処理装置に渡す選択処理開始手段と、
して機能させることを特徴とする。
【発明の効果】
【００１５】
本発明の入出力要求の処理順序制御方法によれば、処理プログラムの入出力要求を待ち行列に登録（エンキュー）する時、処理プログラムが指定した終了時刻、処理時間から求めた開始時刻の順番に並ぶようにエンキューするので、処理プログラムが指定した終了時刻を満たすように入出力が行われる。また、入出力要求の負荷が高い場合でも、特定の入出力が大幅に遅延することがなく、遅延を均等にする効果がある。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施の形態に係る入出力要求の処理順序制御方法及び計算機システムについて、図面を参照して説明する。
【００１７】
図１は、本発明の実施の形態に係る入出力要求制御方法に従う計算機システムの構成を示すブロック図である。図２は、図１の計算機システムの物理的構成の一例を示すブロック図である。図３は、本発明の実施の形態に係る入出力要求管理テーブルの構成例を示す図である。図４は、本発明の実施の形態に係る入出力要求エントリーの構成例を示す図である。図５は、本発明の実施の形態に係る遅延度の計算方法を説明する図である。
【００１８】
図１に示すように、本実施の形態に係る計算機システム１は、複数の処理プログラム２１、２２、２３を含む処理プログラム群２と、入出力要求受付部３と、入出力要求登録部４と、入出力要求管理テーブル５と、入出力要求選択部６と、遅延度計算部７と、入出力要求処理部８と、処理完了通知部９と、処理装置１０とから構成される。
【００１９】
処理装置１０は、一般的には処理プログラムが要求する処理を実行する装置であって、本実施の形態では、例えばディスク装置、テープ装置等の入出力装置を想定している。処理装置としては、例えば他に、画像データ入力装置、プリンタ装置、画像データの分析又は符号化等を行う画像処理装置、データの暗号化／復号化装置、ＦＦＴ等の信号処理装置等の場合が含まれる。
【００２０】
本発明の入出力制御方法は、１つの処理装置（又は、１種類の処理装置の群）に対する入出力の処理順序を制御する方法である。異なる種類の複数の処理装置（又は、複数の処理装置の群）がある場合は、処理装置の種類ごとに、入出力要求の処理順序を制御する。
【００２１】
入出力要求受付部３は、処理プログラム２１〜２３からの入出力要求を受け付ける。入出力要求を受け付けるとき、処理装置１０への入出力が可能であれば、入出力要求処理部８を起動する。入出力要求を受け付けるとき、処理装置１０への入出力が可能でなければ、受付時刻と、入出力要求の終了時刻とその処理処理における処理に要する時間から計算した、その入出力を開始すべき時刻（以下、開始時刻という）をその入出力要求に設定し、入出力要求登録部４を起動する。
【００２２】
入出力要求登録部４は、入出力要求に設定された開始時刻の順に配列されるように、入出力要求を入出力要求管理テーブル５に登録する。入出力要求管理テーブル５には、図３に示すように、入出力要求キュー（入出力要求待ち行列）５１と、目標終了時間５２が含まれる。入出力要求管理テーブル５に登録される入出力要求は、入出力要求キュー５１に、入出力要求エントリ（以下、エントリと略す）として開始時刻の順に並べられる。実際には、最初のエントリ５１２をヘッダ５１１のポインタが示し、２番目のエントリ５１３は、最初のエントリ５１２のポインタで示され、さらに次々と入出力要求エントリがその前の入出力要求エントリのポインタで示されるように構成してもよい。
【００２３】
目標終了時間５２は、入出力要求管理テーブル５の対象となっている処理装置１０において、入出力要求を受け付けてから処理装置１０で処理を完了するまでの標準的な時間である。例えば、処理装置１０における実質的な平均の処理時間に余裕度を加えた時間とする。また、処理時間が入出力要求のデータ量に比例するなど、データ量などに依存して変化する場合は、データ量などの関数としてもよい。
【００２４】
図４に示すように、入出力要求エントリ５１２〜５１４は、受付時刻、開始時刻、入出力内容から構成されている。受付時刻は、入出力要求受付部３が入出力要求を受け付けた時刻である。開始時刻は、終了時刻までにその処理を完了するために、入出力を開始しなければならない時刻であって、
開始時刻  ＝  終了時刻−処理時間
で表される。開始時刻は、入出力要求受付部３が終了時刻と処理時間から計算する。入出力内容は、処理装置１０に指令する書き込み、読み出し等の入出力と、処理装置１０の処理内容を示す情報である。
【００２５】
入出力要求選択部６は、入出力要求管理テーブル５の入出力要求キュー５１から、先頭の（図３でいえば、ヘッダ５１１で示される）入出力要求エントリ５１２を取り出す。ただし、エントリを取り出す現在時刻が、そのエントリの開始時刻を過ぎている場合は、登録されているエントリのうち、遅延度が最大となるエントリを入出力要求キュー５１から取り出す。
【００２６】
遅延度計算部７は、入出力要求エントリ５１２〜５１４の遅延度を計算する。図５の（ａ）は本実施の形態の遅延度の計算式を示す。図５（ｂ）は、時間軸上で受付時刻、開始時刻、終了時刻の関係の例と、図５（ａ）の遅延度の式の分母及び分子の時間を模式的に示す。遅延度は、図５（ａ）の計算式で求められる。本実施の形態では、遅延度は、
遅延度  ＝（現在時刻−開始時刻）／（現在時刻−受付時刻）
で計算される値である。すなわち、入出力要求を受け付けてからエントリを読み出すまでの時間に占める、現在時刻が開始時刻を超過している時間の割合である（図５（ｂ）参照）。終了時刻と処理時間の指定により、開始時刻が受付時刻より小さく（前に）なる場合は、遅延度を１とする。優先指定がある場合は、開始時刻を受付時刻とする。その場合、遅延度は１である。本実施の形態では、遅延度は１以下の数で表され、最大値は１である。
【００２７】
従って、受付時刻が早くても、開始時刻が遅ければ遅延度は小さくなり、優先処理されない。受付時刻が遅くても、開始時刻が受付時刻に近い、あるいは、受付時刻と同じかそれ以前であれば、遅延度は１に近くなるので、優先的に処理されることになる。終了時刻と処理時間から求めた開始時刻に基づいて遅延度が計算される。その処理装置に対する入出力要求が多く、実際の処理開始が設定した開始時刻を過ぎてしまう場合でも、遅延度の大きさで入出力要求が処理されるので、特定の優先度の入出力要求の処理が大幅に遅延するということがなく、優先度に応じて遅延は均等化される。
【００２８】
遅延度は、図５（ａ）の式以外に、例えば、
遅延度  ＝  （現在時刻−受付時刻）／（開始時刻−受付時刻）
や、
遅延度  ＝  （現在時刻−開始時刻）／（開始時刻−受付時刻）
などであってもよい。ただし、これらの場合は、開始時刻は受付時刻より遅くなるように設定する。
【００２９】
入出力要求処理部８は、入出力要求受付部３から起動された場合は、処理装置１０に対する入出力を実行する。処理完了通知部９から起動された場合は、入出力要求選択部６により入出力要求キュー５１からエントリを取り出して、処理装置１０に対する入出力を実行する。
【００３０】
処理完了通知部９は、処理装置１０から処理の完了通知を受け取ると、その入出力要求を発行した処理プログラムへ入出力の完了を通知する。また、入出力要求管理テーブル５の入出力要求キュー５１に登録されている入出力要求エントリを実行するために、入出力要求処理部８を起動する。
【００３１】
図１に示す本発明の入出力要求の処理順序制御方法に係る計算機システム１は、図２に示すように、制御部１１、主記憶部１２、外部記憶部１３、計時部１４、操作部１５、表示部１６、入出力部１７及び処理装置１０から構成される。主記憶部１２、外部記憶部１３、計時部１４、操作部１５、表示部１６および入出力部１７はいずれも内部バス１９を介して制御部１１に接続されている。
【００３２】
制御部１１はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部１３に記憶されているプログラムに従って、入出力要求受付部３と、入出力要求登録部４と、入出力要求選択部６と、遅延度計算部７と、入出力要求処理部８と、処理完了通知部９の処理を実行する。また、処理プログラム群２の処理も制御部１１で実行される。入出力要求受付部３、入出力要求登録部４、入出力要求選択部６、遅延度計算部７、入出力要求処理部８及び処理完了通知部９は、制御部１１とその上で実行されるプログラムで実現される。
【００３３】
主記憶部１２はＲＡＭ（Random-Access Memory）等から構成され、制御部１１の作業領域として用いられる。入出力要求管理テーブル５は、主記憶部１２の一部に記憶領域の構造体として記憶保持される。
【００３４】
外部記憶部１３は、フラッシュメモリ、ハードディスク、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random-Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc ReWritable）等の不揮発性メモリから構成され、前記の処理を制御部１１に行わせるためのプログラムを予め記憶し、また、制御部１１の指示に従って、このプログラムのデータを制御部１１に供給し、制御部１１から供給されたデータを記憶する。
【００３５】
計時部１４は、例えば、クロックパルスをカウントし、基準の時刻からのカウント値によって時間を計測する。制御部１１は、計時部１４のカウント値を参照することによって、そのときの時刻を知ることができる。例えば前記の、入出力要求を受け付けた受付時刻と、入出力要求エントリを取り出すときの現在時刻を計時部１４のカウント値で計測する。
【００３６】
操作部１５はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バス１９に接続するインターフェース装置から構成されている。操作部１５を介して、計算機システム１の起動・停止、処理プログラムの起動・停止、処理プログラム等の状況表示、入出力要求管理テーブル５の状態表示などの指令が入力され制御部１１に供給される。
【００３７】
表示部１６は、ＣＲＴ（Cathode Ray Tube）またはＬＣＤ（Liquid Crystal Display）などから構成され、操作部１５から入力された指令に応じた制御部１１の命令によって、処理プログラム群２の状況や入出力管理テーブル５の状態などを表示する。
【００３８】
入出力部１７は、シリアルインタフェース、パラレルインターフェース又はＬＡＮ（Local Area Network）インターフェース等から構成されている。入出力部１７を介して、処理装置１０へ処理要求を入力し、又は処理装置１０から処理結果の出力を受信する。
【００３９】
処理装置１０は、前述のとおり、ディスク装置やテープ装置等の入出力装置、画像データ入力装置、プリンタ装置、画像処理装置、データの暗号化／復号化装置、又は信号処理装置等であって、処理プログラムの要求に従った処理を実行し、その結果を出力する。
【００４０】
次に、図１〜５に示す計算機システム１の動作を、図６及び７を参照して説明する。なお、上述のように、計算機システム１の動作は、制御部１１が主記憶部１２、外部記憶部１３、計時部１４、操作部１５、表示部１６、入出力部１７及び処理装置１０と協働して行う。
【００４１】
図６は、入出力要求を受け付ける処理の動作を示すフローチャートである。入出力要求受付部３が、処理プログラム２１乃至２３のいずれかから入出力要求を受け取ると、処理装置１０への入出力が可能であるかをチェックし（ステップＡ１）、可能であれば（ステップＡ１；Ｙｅｓ）、入出力要求処理部８を起動し、処理装置１０へ入力する（ステップＡ２）。可能でなければ（ステップＡ１；Ｎｏ）、現在時刻を受付時刻として取得する（ステップＡ３）。
【００４２】
次に、入出力要求の優先指定をチェックし（ステップＡ４）、例えば処理プログラム２２の入出力要求のように、優先指定があれば（ステップＡ４；Ｙｅｓ）、開始時刻に受付時刻をセットする（ステップＡ１０）。処理プログラム２１又は処理プログラム２３の入出力要求のように、優先指定がなければ（ステップＡ４；Ｎｏ）、終了指定時刻をチェックし（ステップＡ５）、終了時刻指定がなければ（ステップＡ５；Ｎｏ）、受付時刻に目標終了時間５２を加えた値を終了時刻に設定する（ステップＡ６）。終了時刻指定があれば（ステップＡ５；Ｙｅｓ）、終了時刻の設定は行わない。
【００４３】
また、処理時間指定をチェックし（ステップＡ７）、処理時間指定がなければ（ステップＡ７；Ｎｏ）、処理装置１０の種別、入出力データサイズ等から計算した予測処理時間を処理時間に設定する（ステップＡ８）。処理時間指定があれば（ステップＡ７；Ｙｅｓ）、処理時間の設定は行わない。そして、終了時刻から処理時間を引いた値を開始時刻にセットする（ステップＡ９）。
【００４４】
入出力要求登録部４は、入出力要求エントリ５１２〜５１４の配列が開始時刻順となるよう、入出力要求を入出力管理テーブル５の入出力要求キュー５１へ登録する。
【００４５】
入出力要求処理部８は、入出力要求受付部３から起動された場合は、処理装置１０に対する入出力を実行する。処理完了通知部９から起動された場合は、入出力要求選択部６により、入出力要求キュー５１から入出力要求を取り出し、処理装置１０に対する入出力を実行する。処理完了通知部９は、処理装置１０から入出力の完了通知を受け取ると、入出力要求を発行したプログラムへ入出力の完了を通知し、入出力要求キュー５１にキューイングされている入出力要求を実行するために、入出力要求処理部８を起動する。
【００４６】
図７は、入出力要求管理テーブル５から入出力要求を選択する処理の動作を示すフローチャートである。入出力要求選択部６は、まず、内部変数であるｍに１、ｎに１、ｄに０をセットし（ステップＢ１）、現在時刻を取得する（ステップＢ２）。ｍは、各入出力要求の遅延度を計算するために、入出力要求の番号を表す変数である。ｎは、最大遅延度の入出力要求の番号を表す変数である。ｄは遅延度の最大値を比較するための変数で、最終的に遅延度の最大値となる。
【００４７】
次に、先頭の入出力要求の開始時刻が遅延していないかをチェックし（ステップＢ３）、遅延していなければ（ステップＢ３；Ｎｏ）、入出力要求キュー５１の先頭の入出力要求を取り出し（ステップＢ８）、入出力を実行する。遅延していれば（ステップＢ３；Ｙｅｓ）、遅延度計算部７を起動し、先頭の入出力要求の遅延度ｄ（１）を計算する（ステップＢ４)。
【００４８】
ｄ（１）の値がｄ（初期値＝０）より大きいかチェックし（ステップＢ５）、Ｙｅｓであれば、ｄにｄ（ｍ）、ｎにｍをセットする（ステップＢ６）。一方、Ｎｏであれば、ステップＢ６をスキップする。例えば、入出力要求の遅延度計算の最初の処理ループであるｍ＝１の場合、ｄ（１）は０より大きくなるため、Ｙｅｓとなって、ｄにｄ（１）、ｎに１をセットする（ステップＢ６）。そして、ｍにｍ＋１（＝２）をセットする（ステップＢ７）。２番目以降の入出力要求についても、遅延していない入出力要求を見つけるまで、入出力要求の開始時刻が遅延していないかチェックする（ステップＢ３）。
【００４９】
入出力要求キュー５１には、入出力要求エントリ５１２〜５１４が、開始時刻の順に並んでいるので、開始時刻が現在時刻より遅い入出力要求を見つけたら、それ以降の入出力要求は開始時刻を過ぎていない。開始時刻を過ぎていない入出力要求の遅延度は、図５の式で表されているとおり負となるから、それ以降の入出力要求の遅延度は計算するまでもない。
【００５０】
遅延していない入出力要求を見つけたときに（ステップＢ３；Ｎｏ）、遅延度が最大となるのはｎ番目の入出力要求であるため、ｎ番目の入出力要求を取り出し（ステップＢ８）、その入出力要求を実行する。
【００５１】
プログラム２２の入出力要求のように、優先指定があれば、入出力要求受付部３によって、開始時刻には受付時刻がセットされるため、入出力要求登録部４によるエンキュー時は、入出力要求キューの前方にエンキューされる。また、優先指定がある入出力要求の遅延度は必ず１となるため、遅延発生時は、入出力要求選択部６により、優先して選択処理される。
【００５２】
また、プログラム２１、プログラム２３の入力要求のように、優先指定がなければ、終了時刻（終了時刻指定がない場合は受付時刻に目標終了時間を加えた値）と処理時間（処理時間指定がない場合は予測処理時間）によって、開始時刻が決まる。そして、現在時刻と開始時刻の差から遅延度が決まる。よって、終了時刻が早いほど、処理時間が大きいほど、開始時刻が早くなり、入出力要求登録部４によるエンキュー時は、入出力要求キュー５１の前方にエンキューされる。また、開始時刻が早いほど、遅延度は大きくなるため、遅延発生時（現在時刻が開始時刻を過ぎている入出力要求がある時）は、入出力要求選択部６により、優先して選択されて処理される。
【００５３】
以上、説明したとおり、現在時刻が開始時刻を過ぎている入出力要求がなければ、開始時刻順に並べられた入出力要求キュー５１の先頭の入出力要求エントリ５１２が選択されて実行される。現在時刻が開始時刻を過ぎている入出力要求があれば、入出力要求を受け付けてからエントリを読み出すまでの時間に占める現在時刻が開始時刻を超過している時間の割合、として表される遅延度が最大の入出力要求が選択されて実行される。さらに、優先指定がある入出力要求は、受付時刻が開始時刻となって、遅延度は１で最大になるので、優先指定のない入出力要求に先立って処理される。
【００５４】
その結果、処理プログラム２１〜２３が指定した終了時刻を満たすように入出力が行われる。また、入出力要求の負荷が高い場合でも、特定の入出力が大幅に遅延することがなく、遅延を均等にする。
【００５５】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更及び修正が可能である。
【００５６】
計算機システム１は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読みとり可能な記録媒体（フレキシブルディスク、CD-ROM、DVD-ROM等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで本発明の計算機システム１を構成してもよい。
【００５７】
また、前記の各機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００５８】
また、搬送波に上述のコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施の形態に係る入出力要求制御方法に従う計算機システムの構成の一例を示すブロック図である。
【図２】本発明の実施の形態に係る計算機システムの物理的構成の一例を示すブロック図である。
【図３】本発明の実施の形態に係る入出力要求管理テーブルの構成例を示す図である。
【図４】本発明の実施の形態に係る入出力要求エントリーの構成例を示す図である。
【図５】本発明の実施の形態に係る遅延度の計算方法を説明する図である。
【図６】本発明の実施の形態に係る入出力要求を受け付ける処理の動作を示すフローチャートである。
【図７】本発明の実施の形態に係る入出力要求管理テーブルから入出力要求を選択する処理の動作を示すフローチャートである。
【符号の説明】
【００６０】
１  計算機システム
２  処理プログラム群（入出力要求手段）
３  入出力要求受付部（開始時刻設定手段）
４  入出力要求登録部（登録手段）
５  入出力要求管理テーブル（待ち行列）
６  入出力要求選択部（処理制御手段）
７  遅延度計算部
８  入出力要求処理部（処理制御手段）
９  処理完了通知部
１０  処理装置
１１  制御部
１２  主記憶部
１３  外部記憶部
１４  計時部
１５  操作部
１６  表示部
１７  入出力部
１９  内部バス
２１、２２、２３  処理プログラム
５１  入出力要求キュー（待ち行列）
【図１】
0004407654.tif 000002
【図２】
0004407654.tif 000003
【図３】
0004407654.tif 000004
【図４】
0004407654.tif 000005
【図５】
0004407654.tif 000006
【図６】
0004407654.tif 000007
【図７】
0004407654.tif 000008