(57)【要約】【課題】各外部装置のＩ／Ｏ要求が登録されるまでの時間の最大値を短縮できるＩ／Ｏ処理装置を提供する。【解決手段】Ｉ／Ｏ要求受信部５０１は、プロセス６００が発行するＩ／Ｏ要求を受信する。プロセス情報保持部５１０は、各外部装置について、Ｉ／Ｏ要求遅延時間５１２を保持する。優先プロセス判断部５２０は、受信済みＩ／Ｏ要求のうちで、Ｉ／Ｏ要求遅延時間５１２が最大のＩ／Ｏ要求を、Ｉ／Ｏ要求キュー５４０に登録する。【選択図】図１
2010218583.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から受信したＩ／Ｏ要求をＩ／Ｏ要求キューに登録し、該Ｉ／Ｏ要求キューに登録されたＩ／Ｏ要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するＩ／Ｏ処理装置において、
前記外部装置が発行するＩ／Ｏ要求を受け付けるＩ／Ｏ要求受付部と、
前記Ｉ／Ｏ要求受付部がＩ／Ｏ要求を受け付けると、１つの外部装置が発行したＩ／Ｏ要求が連続してＩ／Ｏ要求キューに登録されない連続登録失敗時間をＩ／Ｏ要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗時間に関する規定値を記憶する連続登録失敗時間規定値記憶部とを参照し、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録するか否かを決定する優先外部装置判断部を備えたことを特徴とするＩ／Ｏ要求処理装置。
【請求項２】
前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間のしきい値を保持し、前記優先外部装置判断部は、前記受け付けたＩ／Ｏ要求の発行元の外部装置の連続登録失敗時間が、前記しきい値以上であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する、請求項１に記載のＩ／Ｏ要求処理装置。
【請求項３】
前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間の順位のしきい値を保持し、前記優先外部装置判断部は、前記外部装置の連続登録失敗時間を降順に並べたときに、前記受け付けたＩ／Ｏ要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する、請求項１に記載のＩ／Ｏ要求処理装置。
【請求項４】
外部装置から受信したＩ／Ｏ要求をＩ／Ｏ要求キューに登録し、該Ｉ／Ｏ要求キューに登録されたＩ／Ｏ要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するＩ／Ｏ処理装置でＩ／Ｏ要求を処理する方法において、
前記Ｉ／Ｏ処理装置が、前記外部装置が発行するＩ／Ｏ要求を受け付けるステップと、
前記Ｉ／Ｏ処理装置が、１つの外部装置が発行したＩ／Ｏ要求が連続してＩ／Ｏ要求キューに登録されない連続登録失敗時間をＩ／Ｏ要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗時間に関する規定値を記憶する連続登録失敗時間規定値記憶部とを参照し、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録するか否かを決定するステップとを有することを特徴とするＩ／Ｏ要求処理方法。
【請求項５】
前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間のしきい値を保持し、前記登録するか否かを決定するステップは、前記受け付けたＩ／Ｏ要求の発行元の外部装置の連続登録失敗時間が、前記しきい値以上であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する、請求項４に記載のＩ／Ｏ要求処理方法。
【請求項６】
前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間の順位のしきい値を保持し、前記登録するか否かを決定するステップは、前記外部装置の連続登録失敗時間を降順に並べたときに、前記受け付けたＩ／Ｏ要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する、請求項４に記載のＩ／Ｏ要求処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ／Ｏ処理装置及び方法に関し、更に詳しくは、入出力装置に対するＩ／Ｏ要求を受け取り、外部装置と入出力装置との間で行われるデータの入出力を制御するＩ／Ｏ処理装置、及び、そのようなＩ／Ｏ処理装置におけるＩ／Ｏ要求の処理方法に関する。
【背景技術】
【０００２】
Ｉ／Ｏ処理装置は、プロセス等の外部装置が発行したＩ／Ｏ要求を受け取り、受け取ったＩ／Ｏ要求に基づいて、外部装置から入出力装置にデータを出力し、入出力装置から読み出したデータを外部装置に受け渡す。Ｉ／Ｏ処理装置は、通常Ｉ／Ｏ要求キューを有しており、同一の入出力装置に対して発行されたＩ／Ｏ要求を順次にキューに登録し、登録されたＩ／Ｏ要求を１つずつ読み出して、Ｉ／Ｏ処理を実行する。
【０００３】
Ｉ／Ｏ要求を処理するシステムにおける従来技術としては、特許文献１に記載された技術がある。この技術では、タスクを起動優先度で管理し、最も起動優先度が高いタスクを起動して、起動したタスクがＩ／Ｏリソースを優先的に使用している。また、Ｉ／Ｏ要求を含むタスクのディスパッチ制御を行う技術としては、特許文献２に記載された技術がある。この技術では、プロセスのＣＰＵ消費時間や、プロセスのＩ／Ｏ処理時間をパラメータとして、プロセスのディスパッチプライオリティーを制御する。例えば、Ｉ／Ｏ処理量の多いプロセスについては、ディスパッチプライオリティーを高く設定し、優先的にＩ／Ｏリソースを使用させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−１８０３３８号公報
【特許文献２】特開昭６３−３９０４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記各従来技術では、同一のＩ／Ｏリソースに対して、どのタスクの緊急度が高いかについては考慮されていない。このため、Ｉ／Ｏ要求の遅延時間が長いタスクや、Ｉ／Ｏ要求に失敗し続けているタスクがＩ／Ｏリソースを使用することができない事態が発生する。これにより、スルーレートの低下や遅延時間の増加が発生し、Ｉ／Ｏ要求発行元の上位のシステムやプロセスにおいて、バッファオーバフローやアンダーフローの発生を防止するためには、多量のバッファを備える必要があるという問題がある。
【０００６】
本発明は、上記従来技術の問題点を解消し、スルーレートを確保しつつ、各外部装置のＩ／Ｏ要求の遅延時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することにより、多量のバッファを備える必要がないＩ／Ｏ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の視点のＩ／Ｏ処理装置は、外部装置から受信したＩ／Ｏ要求をＩ／Ｏ要求キューに登録し、該Ｉ／Ｏ要求キューに登録されたＩ／Ｏ要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するＩ／Ｏ処理装置において、前記外部装置が発行するＩ／Ｏ要求を受け付けるＩ／Ｏ要求受付部と、前記Ｉ／Ｏ要求を受け付けてからＩ／Ｏ要求キューへ登録するまでの遅延時間を記憶する外部装置情報保持部を参照し、前記Ｉ／Ｏ要求受付部が受け付けたＩ／Ｏ要求のうちで、遅延時間が最大のＩ／Ｏ要求を、前記Ｉ／Ｏ要求キューに登録する優先外部装置判断部を備えることを特徴とする。
【０００８】
本発明の第１の視点のＩ／Ｏ要求処理方法は、外部装置から受信したＩ／Ｏ要求をＩ／Ｏ要求キューに登録し、該Ｉ／Ｏ要求キューに登録されたＩ／Ｏ要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するＩ／Ｏ処理装置でＩ／Ｏ要求を処理する方法において、前記Ｉ／Ｏ処理装置が、前記外部装置が発行するＩ／Ｏ要求を受け付けるステップと、前記Ｉ／Ｏ処理装置が、前記Ｉ／Ｏ要求を受け付けてからＩ／Ｏ要求キューへ登録するまでの遅延時間を記憶する外部装置情報保持部を参照し、前記受け付けたＩ／Ｏ要求のうちで、遅延時間が最大のＩ／Ｏ要求を、前記Ｉ／Ｏ要求キューに登録するステップとを有することを特徴とする。
【０００９】
本発明の第１の視点のＩ／Ｏ処理装置及び方法では、受信したＩ／Ｏ要求のうちで、遅延時間がもっとも長い、つまり、Ｉ／Ｏ要求受信時刻から現時刻までの時間が最も長い外部装置が発行したＩ／Ｏ要求を、優先的にＩ／Ｏ要求キューに登録する。このようにすることで、各外部装置のＩ／Ｏ要求の遅延時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することができる。
【００１０】
本発明の第２の視点のＩ／Ｏ処理装置は、外部装置から受信したＩ／Ｏ要求をＩ／Ｏ要求キューに登録し、該Ｉ／Ｏ要求キューに登録されたＩ／Ｏ要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するＩ／Ｏ処理装置において、前記外部装置が発行するＩ／Ｏ要求を受け付けるＩ／Ｏ要求受付部と、前記Ｉ／Ｏ要求受付部がＩ／Ｏ要求を受け付けると、１つの外部装置が発行したＩ／Ｏ要求が連続してＩ／Ｏ要求キューに登録されない連続登録失敗時間をＩ／Ｏ要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗時間に関する規定値を記憶する連続登録失敗時間規定値記憶部とを参照し、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録するか否かを決定する優先外部装置判断部を備えたことを特徴とする。
【００１１】
本発明の第２の視点のＩ／Ｏ要求処理方法は、外部装置から受信したＩ／Ｏ要求をＩ／Ｏ要求キューに登録し、該Ｉ／Ｏ要求キューに登録されたＩ／Ｏ要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するＩ／Ｏ処理装置でＩ／Ｏ要求を処理する方法において、前記Ｉ／Ｏ処理装置が、前記外部装置が発行するＩ／Ｏ要求を受け付けるステップと、前記Ｉ／Ｏ処理装置が、１つの外部装置が発行したＩ／Ｏ要求が連続してＩ／Ｏ要求キューに登録されない連続登録失敗時間をＩ／Ｏ要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗時間に関する規定値を記憶する連続登録失敗時間規定値記憶部とを参照し、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録するか否かを決定するステップとを有することを特徴とする。
【００１２】
本発明の第２の視点のＩ／Ｏ処理装置及び方法では、外部装置からＩ／Ｏ要求を受信すると、その外部装置がＩ／Ｏ要求の登録に連続失敗している時間と、登録連続失敗時間に関する規定値とに基づいて、Ｉ／Ｏ要求をＩ／Ｏ要求キューに登録するか否かを決定する。この場合、登録連続失敗時間が長い外部装置を発行元とするＩ／Ｏ要求を優先して、Ｉ／Ｏ要求キューに登録すると決定することで、各外部装置について、Ｉ／Ｏ要求が発行されてからＩ／Ｏ要求キューに登録されるまでの時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することができる。
【００１３】
本発明の第２の視点のＩ／Ｏ処理装置では、前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間のしきい値を保持し、前記優先外部装置判断部は、前記受け付けたＩ／Ｏ要求の発行元の外部装置の連続登録失敗時間が、前記しきい値以上であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する構成を採用できる。また、本発明の第２の視点のＩ／Ｏ要求処理方法では、前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間のしきい値を保持し、前記登録するか否かを決定するステップは、前記受け付けたＩ／Ｏ要求の発行元の外部装置の連続登録失敗時間が、前記しきい値以上であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する構成を採用できる。規定値として、登録連続失敗時間のしきい値を用いる場合には、連続登録失敗時間が、そのしきい値以上となる外部装置を発行元とするＩ／Ｏ要求を優先してＩ／Ｏ要求キューに登録することで、Ｉ／Ｏ要求がＩ／Ｏ要求キューに登録されるまでにかかる時間の最大値を最小化できる。
【００１４】
本発明の第２の視点のＩ／Ｏ処理装置では、前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間の順位のしきい値を保持し、前記優先外部装置判断部は、前記外部装置の連続登録失敗時間を降順に並べたときに、前記受け付けたＩ／Ｏ要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する構成を採用できる。また、本発明の第２の視点のＩ／Ｏ要求処理方法では、前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間の順位のしきい値を保持し、前記登録するか否かを決定するステップは、前記外部装置の連続登録失敗時間を降順に並べたときに、前記受け付けたＩ／Ｏ要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する構成を採用できる。規定値として、登録連続失敗時間を大きい順に並べた際の順位のしきい値を用いる場合には、連続登録失敗時間の順位が、そのしきい値以上となる外部装置を発行元とするＩ／Ｏ要求を優先してＩ／Ｏ要求キューに登録することで、Ｉ／Ｏ要求がＩ／Ｏ要求キューに登録されるまでの時間の最大値を最小化できる。
【００１５】
本発明の第３の視点のＩ／Ｏ処理装置は、外部装置から受信したＩ／Ｏ要求をＩ／Ｏ要求キューに登録し、該Ｉ／Ｏ要求キューに登録されたＩ／Ｏ要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するＩ／Ｏ処理装置において、前記外部装置が発行するＩ／Ｏ要求を受け付けるＩ／Ｏ要求受付部と、前記Ｉ／Ｏ要求受付部がＩ／Ｏ要求を受け付けると、１つの外部装置が発行したＩ／Ｏ要求が連続してＩ／Ｏ要求キューに登録されない連続登録失敗回数をＩ／Ｏ要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗回数に関する規定値を記憶する連続登録失敗回数規定値記憶部とを参照し、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録するか否かを決定する優先外部装置判断部を備えたことを特徴とする。
【００１６】
本発明の第３の視点のＩ／Ｏ要求処理方法は、外部装置から受信したＩ／Ｏ要求をＩ／Ｏ要求キューに登録し、該Ｉ／Ｏ要求キューに登録されたＩ／Ｏ要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するＩ／Ｏ処理装置でＩ／Ｏ要求を処理する方法において、前記Ｉ／Ｏ処理装置が、前記外部装置が発行するＩ／Ｏ要求を受け付けるステップと、前記Ｉ／Ｏ処理装置が、１つの外部装置が発行したＩ／Ｏ要求が連続してＩ／Ｏ要求キューに登録されない連続登録失敗回数をＩ／Ｏ要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗回数に関する規定値を記憶する連続登録失敗回数規定値記憶部とを参照し、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録するか否かを決定するステップとを有することを特徴とする。
【００１７】
本発明の第３の視点のＩ／Ｏ処理装置及び方法では、外部装置からＩ／Ｏ要求を受信すると、優先外部プロセス判断部は、その外部装置がＩ／Ｏ要求の登録に連続失敗している回数と、登録連続失敗回数に関する規定値とに基づいて、Ｉ／Ｏ要求をＩ／Ｏ要求キューに登録するか否かを決定する。優先外部装置判断部が、登録連続失敗回数が多い外部装置を発行元とするＩ／Ｏ要求を優先して、Ｉ／Ｏ要求キューに登録すると決定することで、各外部装置について、Ｉ／Ｏ要求が発行されてからＩ／Ｏ要求キューに登録されるまでの時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することができる。
【００１８】
本発明の第３の視点のＩ／Ｏ処理装置では、前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数のしきい値を保持し、前記優先外部装置判断部は、前記受け付けたＩ／Ｏ要求の発行元の外部装置の連続登録失敗回数が、前記連続登録失敗回数のしきい値以上であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する構成を採用できる。また、本発明の第３の視点のＩ／Ｏ要求処理方法では、前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数のしきい値を保持し、前記登録するか否かを決定するステップは、前記受け付けたＩ／Ｏ要求の発行元の外部装置の連続登録失敗回数が、前記連続登録失敗回数のしきい値以上であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する構成を採用できる。規定値として、登録連続失敗回数のしきい値を用いる場合には、連続登録失敗回数が、そのしきい値以上となる外部装置を発行元とするＩ／Ｏ要求を優先してＩ／Ｏ要求キューに登録することで、Ｉ／Ｏ要求がＩ／Ｏ要求キューに登録されるまでにかかる時間の最大値を最小化できる。
【００１９】
本発明の第３の視点のＩ／Ｏ処理装置では、前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数の順位のしきい値を保持し、前記優先外部装置判断部は、前記外部装置の連続登録失敗回数を降順に並べたときに、前記受け付けたＩ／Ｏ要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する構成を採用できる。また、本発明の第３の視点のＩ／Ｏ要求処理方法では、前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数の順位のしきい値を保持し、前記登録するか否かを決定するステップは、前記外部装置の連続登録失敗回数を降順に並べたときに、前記受け付けたＩ／Ｏ要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位あると、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録する構成を採用できる。規定値として、登録連続失敗回数を大きい順に並べた際の順位のしきい値を用いる場合には、連続登録失敗回数の順位が、そのしきい値以上となる外部装置を発行元とするＩ／Ｏ要求を優先してＩ／Ｏ要求キューに登録することで、Ｉ／Ｏ要求がＩ／Ｏ要求キューに登録されるまでの時間の最大値を最小化できる。
【００２０】
本発明の第２及び第３の視点のＩ／Ｏ処理装置は、前記優先外部装置判断部が、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録しないと判断すると、当該Ｉ／Ｏ要求の発行元の外部装置に、Ｉ／Ｏ要求キューへの登録に失敗した旨を返却する構成を採用できる。本発明の第２及び第３の視点のＩ／Ｏ要求処理方法では、前記登録するか否かを決定するステップで、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録しないと判断すると、前記Ｉ／Ｏ処理装置が、当該Ｉ／Ｏ要求の発行元の外部装置に、Ｉ／Ｏ要求キューへの登録に失敗した旨を返却するステップを更に有する構成を採用できる。この場合、失敗した旨の通知を受けた外部装置は、例えば所定時間だけ待機して、Ｉ／Ｏ要求を再送すればよい。
【００２１】
本発明の第２及び第３の視点のＩ／Ｏ処理装置では、前記優先判断部は、前記Ｉ／Ｏ要求キューの使用率を記憶するＩ／Ｏ要求キュー情報保持部と、前記使用率に関する規定値を記憶するＩ／Ｏ要求キュー規定値保持部とを参照し、前記使用率が、前記規定値よりも小さいと、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録すると決定する構成を採用できる。本発明の第２及び第３の視点のＩ／Ｏ要求処理方法は、前記Ｉ／Ｏ処理装置が、前記Ｉ／Ｏ要求キューの使用率を記憶するＩ／Ｏ要求キュー情報保持部と、前記使用率に関する規定値を記憶するＩ／Ｏ要求キュー規定値保持部とを参照して、前記使用率と前記使用率に関する規定値とを比較するステップと、前記使用率が前記使用率に関する規定値よりも小さいと、前記Ｉ／Ｏ処理装置が、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録するステップとを更に有する構成を採用できる。使用率が低い場合には、Ｉ／Ｏ要求キューの空きに余裕がある。このような状態では、規定値に基づくＩ／Ｏ要求登録の可否の決定を行わずに、Ｉ／Ｏ要求をＩ／Ｏ要求キューに登録する構成とすることができる。
【００２２】
本発明の第２及び第３の視点のＩ／Ｏ処理装置は、前記外部装置からＩ／Ｏ要求を受信した時間間隔と、前記時間間隔のしきい値を保持する時間間隔規定値保持部が保持するしきい値とを比較し、前記受信した時間間隔が、前記時間隔のしきい値を超えると判断すると、前記外部装置が発行するＩ／Ｏ要求の登録優先度を低下させる時間の終了時刻を示す減衰終了時刻を、当該外部装置と対応付けて記憶する減衰時刻設定部を更に備える構成を採用できる。この場合、前記優先外部装置判断部は、現時刻と、前記減衰終了時刻とを比較し、現時刻が、前記減衰終了時刻以後であると判断すると、前記前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録すると決定する構成を採用できる。本発明の第２及び第３の視点のＩ／Ｏ要求処理方法は、前記外部装置からＩ／Ｏ要求を受信した時間間隔と、前記時間間隔のしきい値を保持する時間間隔規定値保持部が保持するしきい値とを比較するステップと、前記受信した時間間隔が、前記時間隔のしきい値を超えると判断すると、前記Ｉ／Ｏ処理装置が、前記外部装置が発行するＩ／Ｏ要求の登録優先度を低下させる時間の終了時刻を示す減衰終了時刻を、当該外部装置と対応付けて記憶するステップとを更に有する構成を採用できる。この場合、この場合、前記Ｉ／Ｏ処理装置が、現時刻と前記減衰終了時刻とを比較するステップと、該比較ステップで現時刻が、前記減衰終了時刻以後であると判断すると、前記Ｉ／Ｏ処理装置が、前記受け付けたＩ／Ｏ要求を前記Ｉ／Ｏ要求キューに登録するステップとを更に有する構成を採用できる。この場合には、Ｉ／Ｏ要求の発行間隔（受信間隔）が長い外部装置について、減衰終了時刻を設定することで、その時刻となるまでの間、その外部装置からのＩ／Ｏ要求の登録の優先度を下げ、その他の外部装置からのＩ／Ｏ要求を、優先的に、Ｉ／Ｏ要求キューに登録することができる。減衰終了時刻は、例えば最後にＩ／Ｏ要求をＩ／Ｏ要求キューに登録した時刻に、所定の時刻を加えた時刻として算出できる。
【発明の効果】
【００２３】
本発明のＩ／Ｏ処理装置及び方法では、Ｉ／Ｏ要求の登録遅延時間、登録連続失敗回数、又は、登録連続失敗回数に基づいて、優先的にＩ／Ｏ要求キューに登録するＩ／Ｏ要求を判断する。このようにすることで、例えば、低速の入出力装置に対して読み込み又は書き込み等のアクセスを行う際に、各外部装置のＩ／Ｏ要求の遅延時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することができる。これにより、例えば、データ書き込み時に、書き込みデータ等を保存するためのバッファ量が少なくてすむため、外部装置が備えるバッファ量を削減できる。また、データ読み込み時には、映像データ等を再生する際に、先読み量を少なくすることが可能となり、外部装置が備えるバッファ量を削減できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態のＩ／Ｏ処理装置の構成を示すブロック図。
【図２】遅延時間が長いＩ／Ｏ要求を、優先的にＩ／Ｏ要求キュー５４０に登録する際のＩ／Ｏ処理装置５００の動作手順を示すフローチャート。
【図３】Ｉ／Ｏ要求の登録に失敗している時間が長いプロセスの要求を、優先的にＩ／Ｏ要求キューに登録する際のＩ／Ｏ処理装置５００の動作手順を示すフローチャート。
【図４】プロセス情報保持部５１０が保持する情報の具体例を示す表。
【図５】規定値保持部５５０が保持する規定値の具体例を示す表。
【図６】Ｉ／Ｏ要求キュー情報保持部５３０が保持する情報の具体例を示す表。
【図７】Ｉ／Ｏ要求の具体例を示す表。
【図８】Ｉ／Ｏ要求の登録に失敗している回数が多いプロセス６００からのＩ／Ｏ要求を、優先的にＩ／Ｏ要求キュー５４０に登録する際のＩ／Ｏ処理装置５００の動作手順を示すフローチャート。
【図９】長時間Ｉ／Ｏ要求を発行しないプロセス６００については、しばらくの間、Ｉ／Ｏ要求のＩ／Ｏ要求キュー５４０への登録を減衰させる際のＩ／Ｏ処理装置５００の動作手順を示すフローチャート。
【発明を実施するための形態】
【００２５】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の一実施形態のＩ／Ｏ処理装置の構成を示している。Ｉ／Ｏ処理装置５００は、Ｉ／Ｏ要求受信部５０１、プロセス情報保持部５１０、優先プロセス判断部５２０、Ｉ／Ｏ要求キュー情報保持部５３０、Ｉ／Ｏ要求キュー５４０、及び、規定値保持部５５０を備える。Ｉ／Ｏ処理装置５００は、外部装置（プロセス）６００が、ＤＶＤ（Digital Versatile Disk）や、ハードディスク（ＨＤＤ）等の入出力装置７００に対して発行したＩ／Ｏ要求を受け付けてＩ／Ｏ要求キュー５４０に登録し、Ｉ／Ｏ要求キュー５４０に格納されたＩ／Ｏ要求を順次に入出力装置７００に受け渡す。Ｉ／Ｏ処理装置５００は、Ｉ／Ｏ要求のＩ／Ｏ要求キュー５４０への登録に失敗すると、その旨を、Ｉ／Ｏ要求の発行元のプロセスに返却する。或いは、Ｉ／Ｏ要求キュー５４０への登録に成功するまで、登録動作を繰り返し行う。
【００２６】
Ｉ／Ｏ要求受信部５０１は、プロセス６００から、書き込み又は読み込み要求を示すＩ／Ｏ要求を受信する。優先プロセス判断部５２０は、アルゴリズムで、優先プロセスを判断し、プロセスからのＩ／Ｏ要求をＩ／Ｏ要求キュー５４０に格納する。プロセス情報保持部５１０は、各プロセス６００について、所定のプロセス情報を保持する。より詳細には、各プロセス６００について、Ｉ／Ｏ要求の失敗回数を示すＩ／Ｏ要求失敗回数５１１、Ｉ／Ｏ要求を受信した時刻からＩ／Ｏ要求キュー５４０に登録されるまでの経過時間を示すＩ／Ｏ要求遅延時間５１２、Ｉ／Ｏ要求をＩ／Ｏ要求キュー５４０に登録することに成功した時刻を示すＩ／Ｏ登録成功時刻５１３、Ｉ／Ｏ要求のＩ／Ｏ要求キュー５４０への登録に成功したことを示すＩ／Ｏ登録成功フラグ５１４、Ｉ／Ｏ要求の登録の優先度を下げる処理の終了時刻を示すＩ／Ｏ減衰終了時刻５１５、Ｉ／Ｏ要求のあった時刻を示すＩ／Ｏ要求時刻５１６、Ｉ／Ｏ要求のＩ／Ｏ要求キュー５４０への登録の連続失敗時間を示すＩ／Ｏ要求連続失敗時間５１７を保持する。
【００２７】
Ｉ／Ｏ要求キュー５４０は、リスト構造で接続される、一つ又は複数のＩ／Ｏ要求を保持するキューとして構成される。Ｉ／Ｏ要求キュー情報保持部５３０は、Ｉ／Ｏ要求キュー５４０の使用状況に関する情報を保持する。より詳細には、Ｉ／Ｏ要求キュー５４０の使用率を示す使用率５３１と、Ｉ／Ｏ要求キュー５４０に登録済みのＩ／Ｏ要求数を示す使用数５３２と、登録可能な残りＩ／Ｏ要求数を示す残数５３３とを保持する。規定値保持部５５０は、優先プロセス判断部５２０が優先プロセスを判断する際に使用する規定値を保持する。より詳細には、Ｉ／Ｏ要求の遅延時間の比較、又は、Ｉ／Ｏ要求の連続失敗時間の比較に利用するＴｗ規定値５５１と、Ｉ／Ｏ要求の連続失敗回数の比較に利用するｗｃ規定値５５２と、Ｉ／Ｏ要求の使用率の比較に利用するＩ／Ｏ要求キュー率規定値５５３と、同一プロセスからのＩ／Ｏ要求を受信しない間隔を比較する際に利用するＴｄ規定値５５４とを保持する。
【００２８】
優先プロセス判断部５２０は、遅延時間検出部５２１、失敗回数検出部５２２、減衰判断部５２３、及び、連続失敗時間検出部５２４を備える。遅延時間検出部５２１は、Ｉ／Ｏ要求を受信してからＩ／Ｏ要求キュー５４０へ登録するまでの遅延時間の比較を行う。失敗回数検出部５２２は、Ｉ／Ｏ要求のＩ／Ｏ要求キュー５４０への登録の失敗回数の比較を行う。減衰判断部５２３は、プロセスのＩ／Ｏ要求の登録優先度を下げる時間を判断する。連続失敗時間検出部５２４は、Ｉ／Ｏ要求のＩ／Ｏ要求キュー５４０への登録に連続して失敗した時間の比較を行う。
【００２９】
以下、Ｉ／Ｏ処理装置５００がＩ／Ｏ要求を受信してからＩ／Ｏ要求キュー５４０に登録するまでの処理について説明する。図２は、遅延時間が長いＩ／Ｏ要求を、優先的にＩ／Ｏ要求キュー５４０に登録する際のＩ／Ｏ処理装置５００の動作手順を示している。この例では、Ｉ／Ｏ処理装置５００は、Ｉ／Ｏ要求キュー５４０にＩ／Ｏ要求が登録されるまで登録処理を繰り返し、Ｉ／Ｏ要求をＩ／Ｏ要求キュー５４０に登録するまで、Ｉ／Ｏ要求の発行元のプロセス６００の処理をブロックする。
【００３０】
優先プロセス判断部５２０は、まず、Ｉ／Ｏ要求受信部５０１がプロセス６００からＩ／Ｏ要求を新規に受信したか否かを判断する（ステップＳ１１）。新規にＩ／Ｏ要求を受信した場合には、そのプロセス６００についてのＩ／Ｏ要求遅延時間５１２（Ｔｗ）を０に設定し、Ｉ／Ｏ要求時刻５１６（Ｔｒ）を現時刻に設定する（ステップＳ１２）。時刻の単位には、例えばナノ秒や、中央演算処理のクロック数を用いることができる。その後、Ｉ／Ｏ要求キュー５４０へ未登録のＩ／Ｏ要求が残っているか否かを判断する（ステップＳ１３）。受信したＩ／Ｏ要求の全てをＩ／Ｏ要求キュー５４０に登録している場合には、ステップＳ１１に戻る。
【００３１】
受信済みＩ／Ｏ要求のうちで、まだ、Ｉ／Ｏ要求キュー５４０に登録していないＩ／Ｏ要求が残っている場合には、遅延時間検出部５２１により、各Ｉ／Ｏ要求に対応するプロセスのＩ／Ｏ要求遅延時間５１２（Ｔｗ）を比較し、そのうちで最大の遅延時間を有するものを選択する（ステップＳ１４）。その後、Ｉ／Ｏ要求キュー情報保持部５３０を参照してＩ／Ｏ要求キュー５４０が一杯であるか否か、つまりは残数５３３が０であるか否かを判断する（ステップＳ１５）。Ｉ／Ｏ要求キュー５４０が一杯であれば、全ての受信済みＩ／Ｏ要求の発行元プロセス６００に対応するＩ／Ｏ要求遅延時間５１２（Ｔｗ）を、現時刻からＩ／Ｏ要求時刻５１６（Ｔｒ）を減算した時間に設定し（ステップＳ１６）、ステップＳ１１に戻る。
【００３２】
Ｉ／Ｏ要求キュー５４０に登録可能なＩ／Ｏ要求格納エリアが残っているときには、ステップＳ１４で選択したＩ／Ｏ要求を、Ｉ／Ｏ要求キュー５４０に登録する（ステップＳ１７）。優先プロセス判断部５２０は、ステップＳ１７で登録されなかったＩ／Ｏ要求に対応するプロセスのＩ／Ｏ要求遅延時間５１２（Ｔｗ）を、現時刻からＩ／Ｏ要求時刻５１６（Ｔｒ）を減算した時間に設定し、ステップＳ１１に戻って、Ｉ／Ｏ要求の登録処理を継続する。このようにすることで、よりＩ／Ｏ要求の登録に失敗している時間が長いプロセス６００からのＩ／Ｏ要求を、優先的にＩ／Ｏ要求キュー５４０に登録することができ、プロセス６００の処理がブロックされる時間を短縮できる。
【００３３】
図３は、Ｉ／Ｏ要求の登録に失敗している時間が長いプロセスの要求を、優先的にＩ／Ｏ要求キュー５４０に登録する際のＩ／Ｏ処理装置５００の動作手順を示している。以下の例では、Ｉ／Ｏ処理装置５００は、Ｉ／Ｏ要求キュー５４０への登録に失敗すると、その旨を要求発行元のプロセス６００に返却する。各プロセス６００は、Ｉ／Ｏ処理装置５００から、Ｉ／Ｏ要求の登録に失敗した旨の通知を受けると、例えば所定時間だけ待機して、Ｉ／Ｏ要求を再送する。
【００３４】
優先プロセス判断部５２０は、Ｉ／Ｏ要求受信部５０１がプロセスからＩ／Ｏ要求を受信したか否かを判断し（ステップＳ２１）、Ｉ／Ｏ要求を受信していないときには、ステップＳ２１に戻って、Ｉ／Ｏ要求を受信するまで待機する。優先プロセス判断部５２０は、Ｉ／Ｏ要求受信部５０１がＩ／Ｏ要求を受信したと判断すると、その受信したＩ／Ｏ要求に対応するプロセス６００のＩ／Ｏ要求連続失敗時間５１７（Ｔｗ）が０であるか否かを判断する（ステップＳ２２）。Ｉ／Ｏ要求連続失敗時間５１７（Ｔｗ）が０であるということは、Ｉ／Ｏ要求を初めて受信したことを示しており、優先プロセス判断部５２０は、そのプロセス６００に対応するＩ／Ｏ要求時刻５１６（Ｔｒ）を、現時刻に設定する（ステップＳ２３）。
【００３５】
優先プロセス判断部５２０は、Ｉ／Ｏ要求キュー情報保持部５３０及び規定値保持部５５０を参照し、使用率５３１が、しきい値としてＩ／Ｏ要求キュー率規定値５５３に規定された“率１”以上であるか否かを判断する（ステップＳ２４）。ステップＳ２４で使用率５３１が“率１”よりも小さいと判断すると、受信したＩ／Ｏ要求を、Ｉ／Ｏ要求キュー５４０に登録し（ステップＳ２７）、Ｉ／Ｏ要求連続失敗時間５１７（Ｔｗ）を０に設定して（ステップＳ２８）、ステップＳ２１へ戻る。
【００３６】
優先プロセス判断部５２０は、ステップＳ２４で使用率５３１が“率１”以上であると判断すると、連続失敗時間検出部５２４により、受信したＩ／Ｏ要求に対応するプロセス６００のＩ／Ｏ要求連続失敗時間５１７（Ｔｗ）がＴｗ規定値５５１で規定された時間“Ｔｗ１”以上であるかを判断する（ステップＳ２５）。或いは、各プロセス６００のＩ／Ｏ要求連続失敗時間５１７（Ｔｗ）を大きい順にソートしたときに、受信したＩ／Ｏ要求に対応するプロセス６００のＩ／Ｏ要求連続失敗時間５１７（Ｔｗ）の順位が、Ｔｗ規定値５５１で規定された順位“Ｔｗ順位１”以上であるか否かを判断する。
【００３７】
優先プロセス判断部５２０は、ステップＳ２５で、“Ｔｗ１”以上である、又は、“Ｔｗ順位１”以上であると判断すると、ステップＳ２７へ進んでＩ／Ｏ要求をＩ／Ｏ要求キュー５４０に登録する。一方、“Ｔｗ１”よりも小さい、又は、“Ｔｗ順位１”よりも順位が低いと判断すると、Ｉ／Ｏ要求連続失敗時間５１７（Ｔｗ）を、現時刻からＩ／Ｏ要求時刻５１６（Ｔｒ）を減算した値に設定し（ステップＳ２６）、Ｉ／Ｏ要求を発行したプロセス６００にＩ／Ｏ要求キュー５４０への登録に失敗した旨を返却して、ステップＳ２１へ戻る。
【００３８】
ここで、Ｉ／Ｏ要求を発行するプロセスが、プロセスＰｘ、Ｐｙ、Ｐｚの３つある場合を例に挙げて説明する。プロセス情報保持部５１０は、各プロセスについて、図４に示す情報を記憶しているとする。また、規定値保持部５５０は、図５に示す規定値を記憶し、Ｉ／Ｏ要求キュー情報保持部５３０は、図６に示す情報を記憶しているとする。この状況において、ステップＳ２１で、Ｉ／Ｏ要求受信部５０１が、プロセスＰｘから、図７に示すようなＩ／Ｏ書き込み要求を受信すると、プロセスＰｘのＩ／Ｏ要求連続失敗時間５１７（Ｔｗ）は０ではないため、ステップＳ２２からステップＳ２３へと進む。
【００３９】
ステップＳ２４では、Ｉ／Ｏ要求キュー５４０の使用率５３１「８０％」が、規定値保持部５５０のＩ／Ｏ要求キュー率規定値５５３の“率１”「５０％」以上であるため、ステップＳ２５へと進む。ステップＳ２５で、プロセスＰｘのＩ／Ｏ要求連続失敗時間５１７（Ｔｗ：３００ｎｓ）と、Ｔｗ規定値５５１で規定された時間Ｔｗ１「２５０ｎｓ」とを比較すると、プロセスＰｘのＩ／Ｏ要求連続失敗時間５１７（Ｔｗ）の方が大きい。このため、ステップＳ２７へ進んで、プロセスＰｘのＩ／Ｏ要求が、Ｉ／Ｏ要求キュー５４０に登録される。その後、ステップＳ２８で、プロセスＰｘのＩ／Ｏ要求連続失敗時間５１７（Ｔｗ）は、０にリセットされる。
【００４０】
上記状況において、ステップＳ２１で、Ｉ／Ｏ要求受信部５０１がプロセスＰｙからのＩ／Ｏ要求を受信した場合には、上記と同様に、ステップＳ２２から、ステップＳ２３、Ｓ２４、Ｓ２５へと進む。プロセスＰｙのＩ／Ｏ要求連続失敗時間５１７（Ｔｗ：２００ｎｓ）は、Ｔｗ規定値５５１で規定された時間Ｔｗ１「２５０ｎｓ」よりも小さい。しかし、プロセスＰｙのＩ／Ｏ要求連続失敗時間５１７の遅延時間が長い方からの順位と、Ｔｗ規定値５５１で規定された “Ｔｗ順位１”「２位」とを比較すると、プロセスＰｙのＩ／Ｏ要求連続失敗時間５１７（Ｔｗ）の順位「２位」は、Ｔｗ１順位１「２位」以上である。このため、ステップＳ２５からステップＳ２７へと進んで、プロセスＰｙのＩ／Ｏ要求が、Ｉ／Ｏ要求キュー５４０に登録される。
【００４１】
上記状況において、ステップＳ２１で、Ｉ／Ｏ要求受信部５０１がプロセスＰｚからＩ／Ｏ要求を受信した場合、ステップＳ２５で、Ｉ／Ｏ要求連続失敗時間を比較すると、プロセスＰｚのＩ／Ｏ要求連続失敗時間５１７（Ｔｗ：１００ｎｓ）は、Ｔｗ規定値５５１で規定された時間Ｔｗ１「２５０ｎｓ」よりも小さい。また、プロセスＰｚのＩ／Ｏ要求連続失敗時間５１７の時間が長いほうからの順位「３位」は、Ｔｗ順位１「２位」よりも低い。このため、ステップＳ２５からステップＳ２６へ進んで、プロセスＰｚのＩ／Ｏ要求は、Ｉ／Ｏ要求キュー５４０には登録されない。
【００４２】
従来のＩ／Ｏ処理装置のように、起動優先度に従ってＩ／Ｏ要求をキューに登録する方式を採用する場合には、Ｉ／Ｏ要求の登録に失敗している時間が考慮されないため、例えばプロセスＰｚの起動優先度が最も高い場合には、プロセスＰｚが発行したＩ／Ｏ要求が先にキューに登録され、プロセスＰｚのＩ／Ｏ要求の登録に失敗している時間に比してＩ／Ｏ要求の登録に失敗している時間が長いプロセスＰｘ及びＰｙが発行したＩ／Ｏ要求は、その登録の機会を失う。図３に示す手順に従って、Ｉ／Ｏ要求をＩ／Ｏ要求キュー５４０に登録する構成を採用することにより、Ｉ／Ｏ要求の登録に失敗している時間が長いプロセス６００からのＩ／Ｏ要求を、優先的にＩ／Ｏ要求キュー５４０に登録することができ、各プロセス６００がＩ／Ｏ要求を発生してからＩ／Ｏ要求キュー５４０に登録されるまでの遅延時間の最大値を最小化できる。
【００４３】
図８は、Ｉ／Ｏ要求の登録に失敗している回数が多いプロセス６００からのＩ／Ｏ要求を、優先的にＩ／Ｏ要求キュー５４０に登録する際のＩ／Ｏ処理装置５００の動作手順を示している。優先プロセス判断部５２０は、Ｉ／Ｏ要求受信部５０１がプロセス６００からＩ／Ｏ要求を新規に受信したか否かを判断する（ステップＳ３１）。新規Ｉ／Ｏ要求を受信していないときには、ステップＳ２１に戻って、新規Ｉ／Ｏ要求を受信するまで待機する。優先プロセス判断部５２０は、Ｉ／Ｏ要求受信部５０１が新規Ｉ／Ｏ要求を受信したと判断すると、その受信したＩ／Ｏ要求に対応するプロセス６００が初めてＩ／Ｏ要求を行うプロセスであるか否かを判断する（ステップＳ３２）。初めてＩ／Ｏ要求を行うプロセス６００であれば、そのプロセスのＩ／Ｏ要求失敗回数５１１（ｗｃ）を０に設定する（ステップＳ３３）。
【００４４】
優先プロセス判断部５２０は、Ｉ／Ｏ要求キュー情報保持部５３０及び規定値保持部５５０を参照し、使用率５３１が、しきい値としてＩ／Ｏ要求キュー率規定値５５３に規定された“率２”以上であるか否かを判断する（ステップＳ３４）。例えば、規定値保持部５５０が図５に示す情報を保持する場合には、規定値保持部５５０から“率２”に対応する値（６０％）を取得して、使用率５３１が、その値（６０％）以上であるか否かを判断する。ステップＳ２４で、使用率５３１が“率２”よりも小さいと判断すると、受信したＩ／Ｏ要求を、Ｉ／Ｏ要求キュー５４０に登録し（ステップＳ３７）、Ｉ／Ｏ要求失敗回数５１１（ｗｃ）を０に設定して（ステップＳ３８）、ステップＳ３１へ戻る。
【００４５】
優先プロセス判断部５２０は、ステップＳ３４で使用率５３１が“率２”以上であると判断すると、失敗回数検出部５２２により、受信したＩ／Ｏ要求に対応するプロセス６００のＩ／Ｏ要求失敗回数５１１（ｗｃ）がｗｃ規定値５５２で規定された失敗回数“ｗｃ１”以上であるかを判断する（ステップＳ３５）。或いは、各プロセス６００のＩ／Ｏ要求失敗回数５１１（ｗｃ）を大きい順にソートしたときに、受信したＩ／Ｏ要求に対応するプロセスのＩ／Ｏ要求失敗回数５１１（ｗｃ）の順位が、ｗｃ規定値５５２で規定された順位“ｗｃ順位１”以上であるか否かを判断する。例えば、規定値保持部５５０が図５に示す情報を保持する場合には、優先プロセス判断部５２０は、Ｉ／Ｏ要求失敗回数５１１（ｗｃ）が、失敗回数“ｗｃ１”（６０回）以上であるか否か、又は、Ｉ／Ｏ要求失敗回数５１１（ｗｃ）の順位が“ｗｃ順位１”（４位）以上であるか否かを判断する。
【００４６】
ステップＳ３５で、“ｗｃ１”以上である、又は、“ｗｃ順位１”以上であると判断すると、ステップＳ３７へ進んでＩ／Ｏ要求をＩ／Ｏ要求キュー５４０に登録する。一方、“ｗｃ１”よりも小さい、又は、“ｗｃ順位１”よりも順位が低いと判断すると、Ｉ／Ｏ要求失敗回数５１１（ｗｃ）に１を加算し（ステップＳ３６）、Ｉ／Ｏ要求を発行したプロセスにＩ／Ｏ要求キュー５４０への登録に失敗した旨を返却して、ステップＳ３１へ戻る。このような手順でＩ／Ｏ要求をＩ／Ｏ要求キュー５４０に登録することで、Ｉ／Ｏ要求の登録に失敗している回数が多いプロセスからのＩ／Ｏ要求を、優先的にＩ／Ｏ要求キュー５４０に登録することができ、その結果、各プロセス６００のＩ／Ｏ要求遅延時間の最大値を最小化できる。
【００４７】
図９は、長時間Ｉ／Ｏ要求を発行しないプロセス６００については、しばらくの間、Ｉ／Ｏ要求のＩ／Ｏ要求キュー５４０への登録を減衰させる際のＩ／Ｏ処理装置５００の動作手順を示している。優先プロセス判断部５２０は、Ｉ／Ｏ要求受信部５０１がプロセス６００からＩ／Ｏ要求を受信したか否かを判断する（ステップＳ４０１）。Ｉ／Ｏ要求を受信していないときには、ステップＳ４０１に戻って、Ｉ／Ｏ要求を受信するまで待機する。
【００４８】
優先プロセス判断部５２０は、Ｉ／Ｏ要求受信部５０１がＩ／Ｏ要求を受信したと判断すると、その受信したＩ／Ｏ要求に対応するプロセス６００が初めてＩ／Ｏ要求を行うプロセスであるか否かを判断する（ステップＳ４０２）。初めてＩ／Ｏ要求を行うプロセスであれば、Ｉ／Ｏ登録成功時刻５１３（Ｔｓ）、及び、Ｉ／Ｏ減衰終了時刻５１５（Ｔｅ）を、それぞれ現在時刻を設定し、Ｉ／Ｏ登録成功フラグ５１４（ｓＦｌｇ）を、成功を示す「１」に設定して（ステップＳ４１０）、ステップＳ４０６へ進む。
【００４９】
優先プロセス判断部５２０は、ステップＳ４０２で、初めてＩ／Ｏ要求を行うプロセスではないと判断すると、Ｉ／Ｏ登録成功フラグ５１４（ｓＦｌｇ）が成功「１」を示しているか否かを判断する（ステップＳ４０３）。Ｉ／Ｏ登録成功フラグ５１４（ｓＦｌｇ）が成功「１」を示していないときには、ステップＳ４０６へ進む。優先プロセス判断部５２０は、Ｉ／Ｏ登録成功フラグ５１４（ｓＦｌｇ）が成功「１」示しているときには、現時刻から前回のＩ／Ｏ要求の登録に成功した時刻Ｔｓを減算し、プロセス６００からＩ／Ｏ要求がなかった時間Ｔｄを算出する（ステップＳ４０４）。
【００５０】
優先プロセス判断部５２０は、Ｔｄ規定値５５４を参照し、ステップＳ４０４で算出した時間Ｔｄが、規定値“Ｔｄ１”よりも大きいか否かを判断する（ステップＳ４０５）。例えば、規定値保持部５５０が図５に示す情報を保持する場合には、規定値保持部５５０から規定値“Ｔｄ１”（５００ｎｓ）を取得して、算出したＴｄが、５００ｎｓよりも大きいか否かを判断する。Ｉ／Ｏ要求がなかった時間Ｔｄが、規定値“Ｔｄ１”よりも大きい場合には、現時刻に、Ｔｄ規定値５５４で規定された減衰時間を加えた時刻を、Ｉ／Ｏ減衰終了時刻５１５（Ｔｅ）として設定する（ステップＳ４１１）。例えば、規定値保持部５５０が図５に示す情報を保持する場合には、現時刻に、規定値保持部５５０で規定された減衰時間（１，０００，０００ｎｓ）を加えた時刻を、Ｉ／Ｏ減衰終了時刻５１５（Ｔｅ）に設定する。Ｉ／Ｏ要求がなかった時間Ｔｄが、規定値“Ｔｄ１”以下であれば、そのままステップＳ４０６へ進む。
【００５１】
優先プロセス判断部５２０は、Ｉ／Ｏ要求キュー情報保持部５３０及び規定値保持部５５０を参照し、使用率５３１が、しきい値としてＩ／Ｏ要求キュー率規定値５５３に規定された“率３”以上であるか否かを判断する（ステップＳ４０６）。例えば、規定値保持部５５０が図５に示す情報を保持する場合には、規定値保持部５５０から“率３”に対応する値（７０％）を取得して、使用率５３１が、その値（７０％）以上であるか否かを判断する。ステップＳ４０６で、使用率５３１が“率３”よりも小さいと判断すると、受信したＩ／Ｏ要求を、Ｉ／Ｏ要求キュー５４０に登録し（ステップＳ４１２）、Ｉ／Ｏ登録成功時刻５１３（Ｔｓ）、及び、Ｉ／Ｏ減衰終了時刻５１５（Ｔｅ）を、それぞれ現在時刻を設定し、Ｉ／Ｏ登録成功フラグ５１４（ｓＦｌｇ）を成功「１」に設定して（ステップＳ４１３）、ステップＳ４０１へ戻る。
【００５２】
優先プロセス判断部５２０は、ステップＳ４０６で使用率５３１が“率３”以上であると判断すると、減衰判断部５２３により、現時刻と、Ｉ／Ｏ減衰終了時刻５１５（Ｔｅ）とを比較し、現時刻がＩ／Ｏ減衰終了時刻５１５（Ｔｅ）よりも前であるか否かを判断する（ステップＳ４０７）。現時刻がＩ／Ｏ減衰終了時刻５１５（Ｔｅ）よりも前ではない、つまり、現時刻がＩ／Ｏ減衰終了時刻５１５（Ｔｅ）以後であると判断すると、ステップＳ４１２へ進んで、Ｉ／Ｏ要求を、Ｉ／Ｏ要求キュー５４０に登録する。
【００５３】
優先プロセス判断部５２０は、ステップＳ４０７で、現時刻がＩ／Ｏ減衰終了時刻５１５（Ｔｅ）よりも前であると判断すると、図３に示す手順と同様な手順で計測されたＩ／Ｏ要求連続失敗時間５１７（Ｔｗ）が規定値保持部５５０で規定された規定値を超えるか否かを判断する（ステップＳ４０８）。或いは、図８に示す手順と同様な手順でカウントされたＩ／Ｏ要求失敗回数５１１（ｗｃ）が、規定値保持部５５０で規定された規定値を超えるか否か（または、規定値以上であるか）を判断する。
【００５４】
ステップＳ４０８では、例えば、規定値保持部５５０（図５）を参照して、Ｉ／Ｏ要求連続失敗時間５１７（Ｔｗ）が遅延時間“Ｔｗ２”（３００ｎｓ）以上であるか、又は、Ｉ／Ｏ要求連続失敗時間５１７（Ｔｗ）の順位が、“Ｔｗ順位２”（４位）以上であるか否かを判断する。或いは、Ｉ／Ｏ要求失敗回数５１１（ｗｃ）が失敗回数“ｗｃ２”（７０回）以上であるか、又は、Ｉ／Ｏ要求失敗回数５１１（ｗｃ）の順位が、“ｗｃ順位２”（５位）以上であるか否かを判断する。
【００５５】
優先プロセス判断部５２０は、ステップＳ４０８で、規定値を超えると判断すると、ステップＳ４１２へ進んで、Ｉ／Ｏ要求をＩ／Ｏ要求キュー５４０に登録する。ステップＳ４０８で、規定値を超えないと判断したときには、Ｉ／Ｏ登録成功フラグ５１４（ｓＦｌｇ）を０（失敗）に設定し（ステップＳ４０９）、ステップＳ４０１へ戻る。このような手順でＩ／Ｏ要求をＩ／Ｏ要求キュー５４０に登録することで、長時間Ｉ／Ｏ要求を送信しないプロセス６００については、Ｉ／Ｏ減衰終了時刻５１５までＩ／Ｏ要求キュー５４０への登録の優先度を下げて、他のプロセス６００からのＩ／Ｏ要求を、優先的にＩ／Ｏ要求キュー５４０に登録することができる。
【００５６】
本実施形態では、Ｉ／Ｏ要求キュー５４０の使用率が高い状態、つまり、登録可能な残数が少ない状態では、優先プロセス判断部５２０により、Ｉ／Ｏ要求遅延時間５１２又はＩ／Ｏ要求連続失敗時間５１７が長いプロセス６００からのＩ／Ｏ要求を優先的にＩ／Ｏ要求キュー５４０に登録する。或いは、Ｉ／Ｏ要求失敗回数５１１が多いプロセス６００からのＩ／Ｏ要求を、Ｉ／Ｏ要求キュー５４０に優先的に登録する。このようにすることにより、例えば低速なデバイスに対して、読み込み又は書き込み等のアクセスの遅延時間を大幅に小さくすることが可能になり、Ｉ／Ｏ処理装置５００にＩ／Ｏ要求を送信する上位のアプリケーションや装置において、書き込みデータを保存しておくためのバッファ量を小さくすることができる。また、読み出しにおいては、映像データ等を再生する際に、先読み量を小さくすることが可能となり、バッファ量を削減することができる。
【００５７】
なお、上記実施形態で説明したＩ／Ｏ要求キュー５４０への登録処理については、組み合わせて使用することも可能である。例えば、優先プロセス判断部５２０は、はじめ、図３に示す手順に従って、Ｉ／Ｏ要求遅延時間５１２に基づいてＩ／Ｏ要求キュー５４０への登録を行い、その後、図４に示す手順に従って、Ｉ／Ｏ要求失敗回数５１１に基づいてＩ／Ｏ要求キュー５４０への登録を行う構成としてもよい。また、特定の記憶装置に対しては、Ｉ／Ｏ要求を図３に示す手順で登録し、他の記憶装置に対しては、Ｉ／Ｏ要求を図４に示す手順で登録してもよい。ステップＳ２５等では、Ｉ／Ｏ要求遅延時間５１２が規定値以上であるか否かを判断したが、規定値を超えるか否かで判断してもよい。ステップＳ２４等では、使用率５３１が規定値以上であるか否かを判断したが、使用率５３１に代えて使用数５３２又は残数５３３を用い、使用数５３２が規定値よりも小さいか否か、又は、残数５３３が規定値以上残っているか否かで判断してもよい。
【００５８】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のＩ／Ｏ処理システムは、上記実施形態例にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【符号の説明】
【００５９】
５００：Ｉ／Ｏ処理装置（システム）
５０１：Ｉ／Ｏ要求受信部
５１０：プロセス情報保持部
５１１：Ｉ／Ｏ要求失敗回数
５１２：Ｉ／Ｏ要求遅延時間
５１３：Ｉ／Ｏ登録成功時刻
５１４：Ｉ／Ｏ登録成功フラグ
５１５：Ｉ／Ｏ減衰終了時刻
５１６：Ｉ／Ｏ要求時刻
５１７：Ｉ／Ｏ要求連続失敗時間
５２０：優先プロセス判断部
５２１：遅延時間検出部
５２２：失敗回数検出部
５２３：減衰判断部
５２４：連続失敗時間検出部
５３０：Ｉ／Ｏ要求キュー情報保持部
５３１：使用率
５３２：使用数
５３３：残数
５４０：Ｉ／Ｏ要求キュー
５５０：規定値保持部
５５１：Ｔｗ規定値
５５２：ｗｃ規定値
５５３：Ｉ／Ｏ要求キュー率規定値
５５４：Ｔｄ規定値
【図１】
2010218583.tif 000003
【図２】
2010218583.tif 000004
【図３】
2010218583.tif 000005
【図４】
2010218583.tif 000006
【図５】
2010218583.tif 000007
【図６】
2010218583.tif 000008
【図７】
2010218583.tif 000009
【図８】
2010218583.tif 000010
【図９】
2010218583.tif 000011