(57)【要約】【課題】情報記録再生システムにおいて、ライトコマンド処理の滞りによるバッファオーバーフローの発生を防止し、ライトデータの消失を防止する。【解決手段】終了時刻予測部２２０によりライトコマンドの終了予測時刻が算出され、その予測時刻がコマンド管理部２１０によって指定の時刻を過ぎると判断された場合に、スレッドスケジューラ部１３０がリードスレッドの優先度を下げるか、あるいはリードスレッドのその時点でのクォンタム値を削減することで、リードスレッドの実行を一時的に停止してシステム内のリソース割り当てをライト処理に集中させる。【選択図】図１
2009080690.tif 000002
【特許請求の範囲】
【請求項１】
複数あるスレッドの実行順序を制御するスレッドスケジューラ部を備え、書込みスレッド又は読出しスレッドを呼出して実行するスレッド実行部と、このスレッド実行部により実行されたスレッドに対応して書込みコマンド又は読出しコマンドを発行するデバイスドライバ部と、この各コマンドに従って情報の記録再生を行うディスク機構とを備えた情報記録再生システムにおいて、
前記発行された書込みコマンドの実行終了時刻を予測する終了時刻予測部を備えると共に、この予測された時刻がコマンド指定の終了時刻より大きいか否かを判定し大きいと判定した場合に記録危機通知を前記スレッドスケジューラ部へ送信するコマンド管理部を備え、
前記スレッドスケジューラ部が、前記記録危機通知を受信した場合に前記複数あるスレッドのうちの少なくとも１つの読出しスレッドの実行を一時的に停止する機能を備えたことを特徴とする情報記録再生システム。
【請求項２】
前記請求項１に記載の情報記録再生システムにおいて、
前記スレッドスケジューラ部が、各スレッドに設定された優先度に従って実行スレッドを選択する機能を備えると共に、前記記録危機通知を受信した場合に前記読出しスレッドの優先度を下げる機能を備えたことを特徴とする情報記録再生システム。
【請求項３】
前記請求項１又は２に記載の情報記録再生システムにおいて、
前記スレッドスケジューラ部が、前記記録危機通知を受信した場合に前記読出しスレッドに実行可能時間として割り当てられているクォンタム値を削減する機能を備えたことを特徴とする情報記録再生システム。
【請求項４】
前記請求項１乃至３のいずれか一項に記載の情報記録再生システムにおいて、
前記終了時刻予測部が、前記ディスク装置の駆動状況に基づいて前記書込みコマンドの実行終了時刻を予測する機能を備えたことを特徴とする情報記録再生システム。
【請求項５】
前記請求項１乃至４のいずれか一項に記載の情報記録再生システムにおいて、
前記デバイスドライバ部が、前記スレッド実行部により前記読出しスレッドが実行されると対応するスレッド番号を前記スレッドスケジューラ部へ送信する機能を備え、
前記スレッドスケジューラ部が、前記記録危機通知を受信した場合に、前記デバイスドライバ部からのスレッド番号を基に前記複数のスレッドから少なくとも１つの読出しスレッドを選択し、その読出しスレッドの実行を一時的に停止する機能を備えたことを特徴とする情報記録再生システム。
【請求項６】
複数あるスレッドの実行順序を制御するスレッドスケジューリングステップと、書込みスレッド又は読出しスレッドを呼出して実行するスレッド実行ステップと、前記スレッド実行ステップで実行されたスレッドに対応して書込みコマンド又は読出しコマンドを発行するコマンド発行ステップと、この発行されたコマンドに基づいてディスク機構の動作を制御し情報の記録再生を行う情報記録再生ステップとを設けた情報記録再生方法において、
前記発行された書込みコマンドの実行終了時刻を予測する終了時刻予測ステップと、前記終了時刻予測ステップで予測された時刻がコマンド指定の終了時刻より大きいか否かを判定する判定ステップと、前記予測された時刻がコマンド指定の終了時刻より大きいと判定された場合に前記複数あるスレッドのうちの少なくとも１つの読出しスレッドを一時的に停止する読出制限ステップことを特徴とする情報記録再生方法。
【請求項７】
前記請求項６に記載の情報記録再生方法において、
前記スレッドスケジューリングステップでは、スレッドに設定された優先度にしたがって実行スレッドを選択すると共に、前記読出制限ステップでは、前記予測時刻がコマンド指定の終了時刻より大きいと判定された場合に前記複数あるスレッドのうちの少なくとも１つの読出しスレッドの優先度を下げることを特徴とする情報記録再生方法。
【請求項８】
前記請求項６又は７に記載の情報記録再生方法において、
前記読出制限ステップでは、前記予測時刻がコマンド指定の終了時刻より大きいと判定された場合に前記複数あるスレッドのうちの少なくとも１つの読出しスレッドに実行可能時間として割り当てられているクォンタム値を削減することを特徴とする情報記録再生方法。
【請求項９】
前記請求項６乃至８のいずれか一項に記載の情報記録再生方法において、
前記終了時刻予測ステップでは、前記ディスク機構の駆動状況に基づいて前記書込みコマンドの実行終了時刻を予測することを特徴とする情報記録再生方法。
【請求項１０】
複数あるスレッドの実行順序を制御するスレッドスケジューリング処理と、書込みスレッド又は読出しスレッドを順序に従って呼出し実行するスレッド実行処理と、前記スレッドの実行に対応して書込みコマンド又は読出しコマンドを発行するコマンド発行処理と、各コマンドに従ってディスク機構の動作を制御し情報の記録再生を行う情報記録再生処理とをコンピュータに実行させる情報記録再生用プログラムにおいて、
前記発行された書込みコマンドの実行終了時刻の予測値を算出する終了時刻予測処理と、前記終了時刻予測処理で算出された予測時刻がコマンド指定の終了時刻より大きいか否かを判定する判定処理と、前記判定処理で前記予測時刻がコマンド指定の終了時刻より大きいと判定された場合に前記複数あるスレッドのうちの少なくとも１つの読出しスレッドの実行を一時的に停止する読出制限処理とを前記コンピュータに実行させることを特徴とする情報記録再生用プログラム。
【請求項１１】
前記請求項１０に記載の情報記録再生用プログラムにおいて、
前記読出制限処理を、前記判定処理で予測時刻がコマンド指定の終了時刻より大きいと判定された場合に前記複数あるスレッドのうちの少なくとも１つの読出しスレッドの優先度を下げるという内容に特定したことを特徴とする情報記録再生用プログラム。
【請求項１２】
前記請求項１０又は１１に記載の情報記録再生用プログラムにおいて、
前記読出制限処理を、前記判定処理で予測時刻がコマンド指定の終了時刻より大きいと判定された場合に前記複数あるスレッドのうちの少なくとも１つの読出しスレッドに実行可能時間として割り当てられているクォンタム値を削減するという内容に特定したことを特徴とする情報記録再生用プログラム。
【請求項１３】
前記請求項１０乃至１２のいずれか一項に記載の情報記録再生用プログラムにおいて、
前記終了時刻予測処理を、前記ディスク機構の駆動状況に基づいて前記書込みコマンドの実行終了時刻を予測するという内容に特定したことを特徴とする情報記録再生用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスク等の記録媒体に対してデータの読出し及び書込みを実行する情報記録再生システム，情報記録再生方法及びプログラムに関する。
【背景技術】
【０００２】
ハードディスクドライブ等を用いて情報の記録再生を行う情報記録再生システムは、情報の読み出し及び書き込みの処理に機械的動作を伴うが、その機械的動作を担う駆動系の処理速度は、コマンド処理等の演算を担う演算制御系のＣＰＵ処理速度と比べて段違いに遅いので、演算制御系から駆動系へのコマンドが滞ってしまう等、システムのレスポンスが不均衡になる恐れがある。
【０００３】
このため、通常の情報記録再生システムは、駆動系と演算制御系との処理速度の格差を補う様々な工夫をした上で、大容量の情報をハードディスクドライブ等に読み書きしている。これに関連して特許文献１に開示された装置は、リード／ライトコマンドを制御装置に格納してから、それぞれのコマンドの経過時間を監視し、所定の時間を経過してもなお、ディスク装置へ発行されないコマンドを早急にディスク装置に発行するようにする手段が採られている。
【０００４】
【特許文献１】特開２０００−１８１８５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された装置では、コマンド処理に遅れが生じてからそれに対処しているのみで、仮にライト（書込み）コマンド処理が滞ってしまうとライトデータを一時格納するバッファがオーバーフローする恐れがあり、バッファオーバーフローが生じてしまうとライトデータが消失してしまう問題があった。消失したデータが映像データであれば、この消失したデータを含む１ＧＯＰ（Group of Picture）分の再生が不可能になる可能性が高くこれは大きな問題である。
【０００６】
そこで、本発明は、上記関連技術の問題を改善し、ライトコマンド処理の滞りによるバッファオーバーフローにより生じるライトデータの消失を防止する情報記録再生システムを提供することを、その目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の情報記録再生システムは、複数あるスレッドの実行順序を制御するスレッドスケジューラ部を備え、書込みスレッド又は読出しスレッドを呼出して実行するスレッド実行部と、このスレッド実行部により実行されたスレッドに対応して書込みコマンド又は読出しコマンドを発行するデバイスドライバ部と、この各コマンドに従って情報の記録再生を行うディスク機構とを備えており、発行された書込みコマンドの実行終了時刻を予測する終了時刻予測部を備えると共に、この予測された時刻がコマンド指定の終了時刻より大きいか否かを判定し大きいと判定した場合に記録危機通知をスレッドスケジューラ部へ送信するコマンド管理部を備え、スレッドスケジューラ部が、記録危機通知を受信した場合に読出しスレッドの全て又は一部の実行を一時的に停止する機能を備えたことを特徴とする。
【０００８】
また、上記の情報記録再生システムにおいては、上述したスレッドスケジューラ部が、読出しスレッドの優先度を下げるか、あるいは、読出しスレッドに割り振られたクォンタム値を削減して、読出しスレッドの実行を制限してもよい。
【０００９】
次に、本発明の情報記録再生方法は、複数あるスレッドの実行順序を制御するスレッドスケジューリングステップと、書込みスレッド又は読出しスレッドを呼出して実行するスレッド実行ステップと、スレッド実行ステップで実行されたスレッドに対応して書込みコマンド又は読出しコマンドを発行するコマンド発行ステップと、この発行されたコマンドに基づいてディスク機構の動作を制御し情報の記録再生を行う情報記録再生ステップとを設けており、発行された書込みコマンドの実行終了時刻を予測する終了時刻予測ステップと、終了時刻予測ステップで予測された時刻がコマンド指定の終了時刻より大きいか否かを判定する判定ステップと、予測された時刻がコマンド指定の終了時刻より大きいと判定された場合に読出しスレッドの全て又は一部の実行を一時的に停止する読出制限ステップことを特徴とする。
【００１０】
また、本発明の情報記録再生用プログラムは、複数あるスレッドの実行順序を制御するスレッドスケジューリング処理と、書込みスレッド又は読出しスレッドを順序に従って呼出し実行するスレッド実行処理と、スレッドの実行に対応して書込みコマンド又は読出しコマンドを発行するコマンド発行処理と、各コマンドに従ってディスク機構の動作を制御し情報の記録再生を行う情報記録再生処理と、発行された書込みコマンドの実行終了時刻の予測値を算出する終了時刻予測処理と、終了時刻予測処理で算出された予測時刻がコマンド指定の終了時刻より大きいか否かを判定する判定処理と、判定処理で予測時刻がコマンド指定の終了時刻より大きいと判定された場合に読出しスレッドの全て又は一部の実行を一時的に停止する読出制限処理とをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明は以上のように構成され機能するため、これにより、情報記録再生システムにおいて、書込みコマンド処理の終了が指定の時刻を過ぎると予測した場合に読出しスレッドの実行を停止してシステム内のリソース割り当てをデータ書込み処理に集中させるので、十分な書込み速度を得ることができ、書込みデータ用バッファのオーバーフローを防止でき、バッファオーバーフローにより生じる書込みデータの消失を防止することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明における一実施例を、図面を参照して説明する。
【００１３】
図１は、本実施例の情報記録再生システムの構成を示すブロック図である。本実施例の情報記録再生システムは、ライトコマンド（書込みコマンド）またはリードコマンド（読出しコマンド）を出力する記録再生制御装置１００と、ライトコマンドまたはリードコマンドを受信しそのコマンドに従って情報の記録再生を実行する記録再生装置２００とからなる。
【００１４】
記録再生制御装置１００は、記録再生装置２００の情報記録再生処理を制御するＯＳ（オペレーティングシステム）部１１０と、アプリケーションの実行により生成された複数のスレッドを所有し各スレッドを実行するスレッド実行部としてのＡＰスレッド部１１０と、ＡＰスレッド部１１０によって実行されるスレッドに応じて記録再生装置２００へのコマンドを発行すると共に、各コマンドに対応するライトデータ及びリードデータを記録再生装置２００との間で送受信するデバイスドライバ部１５０とを備えて構成されている。ここで、スレッドとは、ソフトウェアの実行単位である。高度な処理を行なうアプリケーションソフトでは、スレッドを複数走らせることにより、複数の処理を平行して実行する。これにより、演算処理中にユーザの操作によるデータ入力を受け付けるといったことが可能になる。
【００１５】
記憶再生装置２００は、記録再生制御装置１００からのライト／リードコマンドを受信するコマンド管理部２１０と、発行されたライトコマンドの実行終了時刻を予測する終了時刻予測部２２０と、記憶再生装置のスペック等の情報を記憶した記録再生装置情報保存部２３０と、情報の読み書きを行うディスク機構２６０とを備えて構成されている。ディスク機構２６０は、記憶媒体であるディスク２３０と、ディスク２３０に対してデータ読み書きを行うためのアームやヘッド等を有しそれらを入力コマンドに応じて駆動制御するコマンド実行部２４０とで構成されている。
【００１６】
記録再生制御装置１００におけるＯＳ部１１０は、クォンタム値保持部１２０と、スレッドスケジューラ部１３０とからなる。クォンタム値保持部１２０は、各スレッドのクォンタム初期値とリアルタイムのクォンタム値とを記憶する。クォンタム値とは、スケジューリング間隔時間（エポック）内でのスレッドの実行可能時間を示す値である。実行中のスレッドのクォンタム値が初期値から単位時間ごとにカウントダウンしていき、値がゼロになると、このエポック内にこのスレッドが実行されることはない。
【００１７】
スレッドスケジューラ部１３０は、スレッドの優先度及びクォンタム値に基づいてＡＰスレッド部１４０へスレッドの起動／停止を指示し、複数あるスレッドの実行順序を制御する機能と、クォンタム値保持部１２０に対してクォンタム値の設定変更を行う機能とを備えている。スレッドには優先度が対応付けられており、スレッドスケジューラ部１３０は、優先度の高いスレッドから順に選択して実行を指示する。スレッドの実行中に、そのスレッドよりも優先度の高いスレッドが待機状態になると、実行中のスレッドのクォンタム値が残っていても、優先度の高いほうのスレッドが実行される。このような割り込みが発生しなければ、スレッドはクォンタム値がゼロになるまで連続的に実行される。
【００１８】
ＡＰスレッド部１４０は、ライトスレッド（書込みスレッド）又はリードスレッド（読出しスレッド）を複数所有し、スレッドスケジューラ部１３０からの指示に従ってスレッドを呼出して実行し、デバイスドライバ部１５０に対してライト／リードシステムコールを送信する機能を備えている。
【００１９】
デバイスドライバ部１５０は、ＡＰスレッド部１４０からライト／リードシステムコールを受信しそれに基づいてライトコマンド又はリードコマンドを発行する機能と、ライトコマンドと共にライトデータを送信し、リードコマンドに対応したリードデータを受信する機能と、リードシステムコールを受信した場合に対応するスレッド番号をスレッドスケジューラ部１３０に送信する機能を備えている。
【００２０】
記憶再生装置２００におけるコマンド管理部２１０は、記録再生制御装置１００からのライト／リードコマンドを実行順にソートされた状態で複数保持し、コマンド実行部２４０に対してライト／リードコマンドを送信すると共にライトデータを送信し、リードデータを受信して記録再生制御装置１００へ転送する機能と、ライトコマンドを終了時刻予測部２２０へも送信し算出されたこのコマンドの終了予測時刻を受信し、この予測時刻がコマンド指定の終了時刻より大きいか否かを判定し大きいと判定した場合に記録危機通知をスレッドスケジューラ部１３０へ送信する機能を備えている。
【００２１】
終了時刻予測部２２０は、コマンド管理部２１０からライトコマンドを受信し、記録再生装置情報保存部２３０から記録再生装置情報を取得し、コマンド実行部２４０から現時点のヘッド位置情報を取得する。そして、受信したライトコマンドの実行終了時刻の予測値を現時点のヘッド位置情報と記録再生装置情報とに基づいて算出する機能を備えている。
【００２２】
記録再生装置情報保存部２３０は、記録再生装置情報としてディスク機構２６０のスペックや現在のディスク機構２６０の状況を記憶し、終了時刻予測部２２０からの指示を受けて記録再生装置情報を送信する機能を備えている。記録再生装置情報としては、例えば、トラックジャンプ速度、ディスク回転速度、フルストロークシーク時間、現在のヘッド位置などがある。
【００２３】
コマンド実行部２４０は、コマンド管理部２１０からライト／リードコマンドを受信し、ディスク２５０にライトデータを書き込むか、ディスク２５０からリードデータを読み出してコマンド管理部２１０を介して記録再生制御装置１００へ送信する機能を備えている。コマンド実行部２４０は、さらに、現時点のヘッド位置情報を終了時刻予測部２２０へ送信する機能を備えている。
【００２４】
また、スレッドスケジューラ部１３０は、コマンド管理部２１０からの記録危機通知を受信した場合にリードスレッドの全て又は一部の実行を一時的に停止する機能を備えている。具体的には、記録危機通知を受信した場合にその時点でリードスレッドに割り当てられているクォンタム値を削減するか、あるいは、記録危機通知を受信した場合にリードスレッドそれぞれの優先度を下げる。このようにすることで、リードスレッドの実行順序を後回しにしてライトスレッドを優先的に実行させることができ、ライトコマンド処理の滞りを軽減することができる。
【００２５】
ここで、本実施例におけるスレッドスケジューラ部１３０，ＡＰスレッド部１４０，デバイスドライバ部１５０，コマンド管理部２１０，終了時刻予測部２２０については、その機能内容をプログラム化し、コンピュータに実行させる構成としてもよい。
【００２６】
次に、本実施形態の動作について説明する。ここで、情報記録再生方法についても、その各ステップを示して同時に説明する。
【００２７】
図２は、本実施例における記録再生装置２００の動作を示すフローチャートである。
【００２８】
図２に示すように、記録再生装置２００において、まず、コマンド管理部２１０がライト／リードコマンドを受信し（図２：ステップＳ１０１）、ライトコマンドか否かを判断する（図２：ステップＳ１０２）。ＮＯの場合は終了し、ＹＥＳの場合は、このライトコマンドの実行終了予測時刻を実行予測部２２０が計算する（図２：ステップＳ１０３，実行終了時刻予測ステップ）。
【００２９】
そして、算出された実行終了予測時刻がコマンド指定の終了時刻より大きいか否かをコマンド管理部２１０が判定する（図２：ステップＳ１０４，判定ステップ）。ＮＯの場合は終了し、ＹＥＳの場合は、コマンド管理部２１０が記録危機通知をスレッドスケジューラ部１３０に送信する（図２：ステップＳ１０５）。
【００３０】
上述したコマンド指定の終了時刻は、コマンドパケットに終了指示時刻として保持されている。この終了指示時刻はＡＰスレッド部１４０によって算出され、ライトコマンドシステムコールに含めてデバイスドライバ部１５０に送られる。デバイスドライバ部１５０は、この終了指示時刻をコマンドパケットに含めてコマンド管理部２１０へ送信する。
【００３１】
実行終了予測時刻，コマンド指定の終了時刻は、過去のある時点からの経過時間を、十分なビット数のデータでマイクロ秒単位で示しており、時間の経過とともに大きくなる。
【００３２】
図３は、本実施例におけるコマンド管理部２１０が保存しているコマンドの一例を示す図である。図３に示す例においては、実行順にコマンド１〜コマンド４が保存されており、コマンド１は、セクタ１０００から１セクタのライトであり、コマンド２は、セクタ２０００から５セクタのリードであり、コマンド３は、セクタ３０００から１セクタのライトであり、コマンド４は、セクタ４０００から１セクタのリードであることを示している。
【００３３】
図４は、本実施例における記録再生装置情報保存部２３０が保持するディスク２５０のトラック情報の一例であり、ディスク２５０の各トラックが含むセクタの範囲を示しており、トラック０はセクタ０からセクタ９９であり、トラック１はセクタ１００からセクタ１９９であり、トラック２はセクタ２００からセクタ２９９であり、その他も同様であることを示している。
【００３４】
図５は、本実施例における記録再生装置情報保存部２３０が保持するデータの一例である。記録再生装置情報保存部２３０は記録再生装置のスペックや、現在のドライブの状態を保持しており、図５は、トラックジャンプは１ミリ秒、ディスク回転速度は１００００回転毎分、フルストロークシークは１０ミリ秒、現在のヘッド位置はトラック２上であることを示している。
【００３５】
図６は、本実施例における終了時刻予測部２２０によるライトコマンドの実行終了予測時刻の算出動作を示したフローチャートであり、上述した図２のステップＳ１０３の内容を示した図である。
【００３６】
まず、Ｆ＿Ｔｉｍｅ（実行終了予測時刻）に現時刻を設定し（図６：ステップＳ２０１）、コマンド管理部２１０に受信されたコマンドがライトコマンドであるか否かを判断し（図６：ステップＳ２０２）、ＮＯの場合は終了し、ＹＥＳの場合は、ＣＴ（Current Track）に現時点のヘッド位置であるトラック番号を設定（図６：ステップＳ２０３）する。
【００３７】
続いて、コマンド管理部２１０に保持されているコマンドを実行予定順に選択し（図６：ステップＳ２０４）、この選択したコマンドに示されている先頭セクタのトラック番号をＮＴ（Next Track）に設定し（図６：ステップＳ２０５）、ＣＴとＮＴの差分にトラックジャンプ時間を乗算した値を、Ｄｉｆｆ．Ｔ（Difference Time）に設定する（図６：ステップＳ２０６）。
【００３８】
続いて、このＤｉｆｆ．Ｔがフルストロークシーク時間より大きいか否かを判断し（図６：ステップＳ２０７）、ＹＥＳの場合は、Ｄｉｆｆ．Ｔをフルストロークシーク時間に設定変更する（図６：ステップＳ２０８）。そして、Ｄｉｆｆ．Ｔとデータ量分のディスク回転時間とを加算した値をＦ＿Ｔｉｍｅとして算出する（図６：ステップＳ２０９）。
【００３９】
ＣＴの値をＮＴの値に設定し（図６：ステップＳ２１０）、コマンド管理部２１０が保持する全てのコマンドを選択したか否か判断し（図６：ステップＳ２１１）、ＹＥＳの場合は終了し、ＮＯの場合は、再びコマンドを順に選択する（図６：ステップＳ２０４）。
【００４０】
図７は、デバイスドライバ部１５０が、リードスレッド番号をスレッドスケジューラ部１３０に通知する動作を示すフローチャートである。
【００４１】
まず、デバイスドライバ部１５０は、ＡＰスレッド部１４０からシステムコールを受信し（図７：ステップＳ３０１）、そのシステムコールがリード要求かどうか判断する（図７：ステップＳ３０２）。ＮＯの場合は終了し、ＹＥＳの場合はシステムコールに含まれるスレッド番号をスレッドスケジューラ部１３０に送信し（図７：ステップＳ３０３）終了する。
【００４２】
これにより、スレッドスケジューラ部１３０が、デバイスドライバ部１５０から通知されたスレッド番号を基に、ＡＰスレッド部１４０に保持されている複数のスレッドからリードスレッドを選択することができる。
【００４３】
図９は、ＡＰスレッド部１４０が送信しデバイスドライバ部１５０が受信するシステムコールの一例を示す図である。
【００４４】
図９に示す一例によると、システムコール１は、セクタ１０００から１セクタのライトシステムコールをスレッド番号１００１のスレッドが発行したことを示しており、システムコール２は、セクタ２０００から５セクタのリードシステムコールをスレッド番号１００２のスレッドが発行したことを示しており、システムコール３は、セクタ３０００から１セクタのライトシステムコールをスレッド番号１００３のスレッドが発行したことを示しており、システムコール４は、セクタ４０００から１セクタのリードシステムコールをスレッド番号１００４のスレッドが発行したことを示している。
【００４５】
図８は、スレッドスケジューラ部１３０の動作を示すフローチャートである。
【００４６】
スレッドスケジューラ部１３０は、まず、最後の記録危機通知を受信した後、規定時間が経過したか否かを判断し（図８：ステップＳ４０１）、ＹＥＳの場合は、全てのリードスレッドのクォンタム初期値及び優先度を規定値に設定する（図８：ステップＳ４０７）。続いて、新規の記録危機通知を受信したか否かを判断し（図８：ステップＳ４０２）、ＹＥＳの場合は、デバイスドライバ部１５０から通知されたスレッド番号を基に、リードスレッドを選択し（図８：ステップＳ４０３）、選択したリードスレッドの現在のクォンタム値及びクォンタム初期値を０に設定してクォンタム値保持部１２０内の情報を更新するか、あるいは、選択したリードスレッドの優先度を下げる（図８：ステップＳ４０４，読出制限ステップ）。全てのリードスレッドを選択したか否かを判断し（図８：ステップＳ４０５）、ＹＥＳの場合は、再び、最後の記録危機通知を受信した後、規定時間が経過したか否かを判断し（図８：ステップＳ４０１）、ＹＥＳの場合は、全てのリードスレッドのクォンタム初期値及び優先度を規定値に設定する（図８：ステップＳ４０７）。
【００４７】
スレッドスケジューラ部１３０は、スケジューリング間隔時間（エポック）ごとに、エポック内での各スレッドの実行可能時間を示すクォンタム値にクォンタム初期値を設定する。クォンタム値はスレッドが選択され動作している間に減っていき、０になると、そのスレッドはそのエポック期間内に選択されることはなくなる。このようにクォンタム値はスレッドのエポック内での実行可能な時間を示している。
【００４８】
また、スレッドスケジューラ部１３０は、一方で、優先度に従って実行スレッドを選択し、スレッドの実行を指示する。スレッドそれぞれには優先度（プライオリティ）が設定されており、スレッドスケジューラ部１３０は優先度の高いスレッドから順に選択する。スレッドの実行中に、そのスレッドよりも優先度の高いスレッドが待機状態になると、実行中のスレッドのクォンタム値が残っていようと、そのスレッドは待機状態にされて、優先度の高いほうのスレッドが実行される。このような割り込みが発生しなければ、スレッドはクォンタム値がゼロになるまで連続的に実行される。
【００４９】
よって、本実施例の情報記録再生システムにおいては、終了時刻予測部２２０によりライトコマンド処理の終了時刻が予測され、その予測時刻がコマンド指定の時刻を上回るとコマンド管理部２１０により判断された場合に、スレッドスケジューラ部１３０がリードスレッドの優先度を下げるか、あるいはリードスレッドのその時点でのクォンタム値を削減するので、リードスレッドの実行を一時的に停止してシステム内のリソース割り当てをライト処理に集中させることができ、十分な書込み速度を得ることができる。よって、ライトコマンド処理の滞りによって起こるライトデータ用バッファのオーバーフローを防止し、バッファオーバーフローによるライトデータの消失を防止することができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施例の構成を示すブロック図である。
【図２】図１に開示された実施例の動作を示すフローチャートである。
【図３】図１に開示された実施例におけるコマンド管理部が保存するコマンドの一例を示す図である。
【図４】図１に開示された実施例における記録再生装置情報保存部が保存するトラック−セクタ位置情報を示す図である。
【図５】図１に開示された実施例における記録再生装置情報保存部が保存する記録再生装置情報を示す図である。
【図６】図１に開示された実施例における記録再生装置でライトコマンドの終了時刻を予測するフローチャートである。
【図７】図１に開示された実施例におけるデバイスドライバ部がリードスレッド番号をスレッドスケジューラに通知するフローチャートである。
【図８】図１に開示された実施例におけるスレッドスケジューラ部の動作を示すフローチャートである。
【図９】図１に開示された実施例におけるＡＰスレッド部がデバイスドライバ部に送信するシステムコールの一例を示す図である。
【符号の説明】
【００５１】
１００  記録再生制御装置
１１０  ＯＳ部
１２０  クォンタム値保持部
１３０  スレッドスケジューラ部
１４０  ＡＰスレッド部
１５０  デバイスドライバ部
２００  記憶再生装置
２１０  コマンド管理部
２２０  終了時刻予測部
２３０  記録再生装置情報保存部
２４０  コマンド実行部
２５０  ディスク
２６０  ディスク機構
【図１】
2009080690.tif 000003
【図２】
2009080690.tif 000004
【図３】
2009080690.tif 000005
【図４】
2009080690.tif 000006
【図５】
2009080690.tif 000007
【図６】
2009080690.tif 000008
【図７】
2009080690.tif 000009
【図８】
2009080690.tif 000010
【図９】
2009080690.tif 000011