(57)【要約】【課題】  ビデオサーバの使用効率を向上し、ユーザからの要求に対して素早い応答時間で映像を提供し、様々な再生速度を要求するユーザをサポートするファイルシステムを提供する。【解決手段】  外部からゲットリソースメッセージが到着すると、リソース割り当て部１０２は、リソースの予約を行う。データの読み出し、書き込みに際しては、申告値管理部１１１にてパラメータをチェックし、スロット割り当て部１０３でリソースの割り当てを行うことにより、データの読み出しに関して、遅延品質を保証した、効率のよいファイルシステムを構築する。【選択図】  図１
2006065844.tif 000002
【特許請求の範囲】
【請求項１】
サーバから、複数のクライアントに、それぞれ周期的にサービスが提供されるよう、サービスリクエストのスケジューリングを行うスケジューリング装置であって、
前記複数のクライアントからのサービスリクエストをキューイングする第１のキュー手段と、
前記複数のクライアント毎の、実行権を発生させるべき周期を登録する登録手段と、
前記登録手段に登録された周期に関連して、サービスリクエストを実行するための実行権を発生させる実行権発生手段と、
前記第１のキュー手段にキューイングされているサービスリクエストのうち、前記実行権発生手段が発生させた実行権に対応するクライアントからのサービスリクエストを、前記サーバに指示して実行させる実行指示手段とを備えるスケジューリング装置。
【請求項２】
前記実行権発生手段は、所定の周期で起動され、起動時に、前記登録手段に登録された、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、実行権を発生させるか否かをクライアント毎に判定し、かつ、実行権を発生させると判定したクライアントの実行権を、一括して発生させることを特徴とする、請求項１に記載のスケジューリング装置。
【請求項３】
前記実行権発生手段は、前記登録手段に登録された、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、起動された現時刻から、次の実行権を発生させる時刻までの時間を算定し、算定して得た時間と、自己が起動される周期とを比較することにより、実行権を発生させるか否かを判定することを特徴とする、請求項２に記載のスケジューリング装置。
【請求項４】
前記実行権発生手段は、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、自己が起動される周期Ｔｓｌｔに対して、Ｔｏｆｓ＜Ｔｓｌｔであるクライアントの実行権を発生させ、さらに、当該クライアントのＴｏｆｓに、前記登録手段に登録された、実行権を発生させるべき周期Ｔｒｅｑを加算し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔである場合、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴とする、請求項３に記載のスケジューリング装置。
【請求項５】
前記実行権発生手段は、加算して得たＴｏｆｓが、Ｔｏｆｓ＜Ｔｓｌｔである場合には、さらに、実行権を発生させ、かつ当該ＴｏｆｓにＴｒｅｑを加算してＴｓｌｔと比較する動作を繰り返し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔとなった時点で、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴とする、請求項４に記載のスケジューリング装置。
【請求項６】
前記実行権発生手段は、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔであるか、または、サービスリクエストが、前記第１のキュー手段にキューイングされていないクライアントについては、実行権を発生させず、かつ、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴とする、請求項４に記載のスケジューリング装置。
【請求項７】
前記実行権発生手段は、算定して得た新たなＴｏｆｓが、Ｔｏｆｓ＜０である場合には、次回起動される際のＴｏｆｓを０とすることを特徴とする、請求項６に記載のスケジューリング装置。
【請求項８】
前記実行指示手段は、所定の周期で起動され、起動された現時刻から、次の実行権が発生される時刻までの時間が、より短いクライアントの実行権を選択することを特徴とする、請求項２に記載のスケジューリング装置。
【請求項９】
前記実行権発生手段は、優先度を示す評価指数を、前記登録手段に登録された、実行権を発生させるべき周期の関数として算定して、発生させた実行権に付与し、
前記実行指示手段は、付与された評価指数に基づいて、前記実行権発生手段が発生させた実行権のうち、優先されるべき実行権を選択することを特徴とする、請求項８に記載のスケジューリング装置。
【請求項１０】
前記実行権発生手段は、評価指数Ｎｓｆｔを、前記登録手段に登録された実行権を発生させるべき周期Ｔｒｅｑと、自己が起動される周期Ｔｓｌｔとに対して、関数Ｎｓｆｔ＝ｆ（Ｔｒｅｑ／Ｔｓｌｔ）（ただし、ｆ（ｘ）はｘ以上の最小の整数）により算定し、
前記実行指示手段は、付与された評価指数Ｎｓｆｔがより小さい実行権を選択することを特徴とする、請求項９に記載のスケジューリング装置。
【請求項１１】
前記実行権発生手段は、前記登録手段に登録された周期のうち、最も長いものよりは短い周期で、起動されることを特徴とする、請求項９に記載のスケジューリング装置。
【請求項１２】
前記実行権発生手段は、前記登録手段に登録された周期のうち、最も短いものよりさらに短い周期で、起動されることを特徴とする、請求項１０に記載のスケジューリング装置。
【請求項１３】
前記実行指示手段は、前記実行権発生手段が発生させた実行権を、付与された評価指数毎で、かつ発生された順に、キューイングする第２のキュー手段を含み、当該キュー手段にキューイングされている実行権のうち、付与された評価指数がより小さく、かつ、より先に発生されたものを選択することを特徴とする、請求項９に記載のスケジューリング装置。
【請求項１４】
前記実行指示手段は、起動時に実行を指示するサービスリクエストの最大数を認識しており、当該最大数に等しい個数だけサービスリクエストの実行を指示した時点で、実行の指示を停止し、かつ、残された実行権の評価指数を、より優先度の高いものに変更することを特徴とする、請求項９に記載のスケジューリング装置。
【請求項１５】
前記実行指示手段が認識している、起動時に実行を指示するサービスリクエストの最大数は、自己が起動される周期に等しい時間内に前記サーバが実行可能なサービスリクエストの最大数であることを特徴とする、請求項１４に記載のスケジューリング装置。
【請求項１６】
前記実行指示手段は、起動時に実行を指示するサービスリクエストの最大数を認識しており、当該最大数に等しい個数だけサービスリクエストの実行を指示した時点で、実行の指示を停止し、かつ、残された実行権の評価指数をディクリメントすることを特徴とする、請求項１０に記載のスケジューリング装置。
【請求項１７】
前記実行指示手段が認識している、起動時に実行を指示するサービスリクエストの最大数は、自己が起動される周期に等しい時間内に前記サーバが実行可能なサービスリクエストの最大数であることを特徴とする、請求項１６に記載のスケジューリング装置。
【請求項１８】
前記複数のクライアントからの申告に基づいて、実行権を発生させるべき周期を、前記登録手段に指示して登録させる登録指示手段をさらに備えることを特徴とする、請求項１４に記載のスケジューリング装置。
【請求項１９】
前記登録指示手段は、単位時間当たりに前記実行指示手段が実行を指示するサービスリクエストの最大数を認識しており、すでに登録されている周期に加えて、さらに他の周期を登録するよう申告された際、さらに登録されても、発生される実行権の単位時間当たりの平均数が、当該最大数を越えないと判定した場合、前記登録手段に指示して当該周期を登録させ、さらに登録されれば、越えると判定した場合には、登録させないことを特徴とする、請求項１８に記載のスケジューリング装置。
【請求項２０】
複数のサーバから、クライアントに、それぞれ周期的にサービスが提供されるよう、サービスリクエストのスケジューリングを行うスケジューリング装置であって、
前記複数のサーバへのサービスリクエストをキューイングする第１のキュー手段と、
前記複数のサーバ毎の、実行権を発生させるべき周期を登録する登録手段と、
前記登録手段に登録された周期に関連して、サービスリクエストを実行するための実行権を発生させる実行権発生手段と、
前記第１のキュー手段にキューイングされているサービスリクエストのうち、前記実行権発生手段が発生させた実行権に対応するサーバへのサービスリクエストを、当該サーバに指示して実行させる実行指示手段とを備えるスケジューリング装置。
【請求項２１】
前記実行権発生手段は、所定の周期で起動され、起動時に、前記登録手段に登録された、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、実行権を発生させるか否かをサーバ毎に判定し、かつ、実行権を発生させると判定したサーバの実行権を、一括して発生させることを特徴とする、請求項２０に記載のスケジューリング装置。
【請求項２２】
前記実行権発生手段は、前記登録手段に登録された、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、起動された現時刻から、次の実行権を発生させる時刻までの時間を算定し、算定して得た時間と、自己が起動される周期とを比較することにより、実行権を発生させるか否かを判定することを特徴とする、請求項２１に記載のスケジューリング装置。
【請求項２３】
前記実行権発生手段は、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、自己が起動される周期Ｔｓｌｔに対して、Ｔｏｆｓ＜Ｔｓｌｔであるサーバの実行権を発生させ、さらに、当該サーバのＴｏｆｓに、前記登録手段に登録された、実行権を発生させるべき周期Ｔｉｔｖを加算し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔである場合、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴とする、請求項２２に記載のスケジューリング装置。
【請求項２４】
前記実行権発生手段は、加算して得たＴｏｆｓが、Ｔｏｆｓ＜Ｔｓｌｔである場合には、さらに、実行権を発生させ、かつ当該ＴｏｆｓにＴｉｔｖを加算してＴｓｌｔと比較する動作を繰り返し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔとなった時点で、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴とする、請求項２３に記載のスケジューリング装置。
【請求項２５】
前記実行権発生手段は、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔであるか、または、サービスリクエストが、前記第１のキュー手段にキューイングされていないサーバについては、実行権を発生させず、かつ、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴とする、請求項２３に記載のスケジューリング装置。
【請求項２６】
前記実行権発生手段は、算定して得た新たなＴｏｆｓが、Ｔｏｆｓ＜０である場合には、次回起動される際のＴｏｆｓを０とすることを特徴とする、請求項２５に記載のスケジューリング装置。
【請求項２７】
前記実行指示手段は、所定の周期で起動され、起動された現時刻から、次の実行権が発生される時刻までの時間が、より短いサーバの実行権を選択することを特徴とする、請求項２１に記載のスケジューリング装置。
【請求項２８】
前記実行権発生手段は、優先度を示す評価指数を、前記登録手段に登録された、実行権を発生させるべき周期の関数として算定して、発生させた実行権に付与し、
前記実行指示手段は、付与された評価指数に基づいて、前記実行権発生手段が発生させた実行権のうち、優先されるべき実行権を選択することを特徴とする、請求項２７に記載のスケジューリング装置。
【請求項２９】
前記実行権発生手段は、評価指数Ｎｓｆｔを、前記登録手段に登録された実行権を発生させるべき周期Ｔｉｔｖと、自己が起動される周期Ｔｓｌｔとに対して、関数Ｎｓｆｔ＝ｆ（Ｔｉｔｖ／Ｔｓｌｔ）（ただし、ｆ（ｘ）はｘ以上の最小の整数）により算定し、
前記実行指示手段は、付与された評価指数Ｎｓｆｔがより小さい実行権を選択することを特徴とする、請求項２８に記載のスケジューリング装置。
【請求項３０】
前記実行権発生手段は、前記登録手段に登録された周期のうち、最も長いものよりは短い周期で、起動されることを特徴とする、請求項２９に記載のスケジューリング装置。
【請求項３１】
前記実行権発生手段は、前記登録手段に登録された周期のうち、最も短いものよりさらに短い周期で、起動されることを特徴とする、請求項２９に記載のスケジューリング装置。
【請求項３２】
前記実行指示手段は、前記実行権発生手段が発生させた実行権を、付与された評価指数毎で、かつ発生された順に、キューイングする第２のキュー手段を含み、当該キュー手段にキューイングされている実行権のうち、付与された評価指数がより小さく、かつ、より先に発生されたものを選択することを特徴とする、請求項２８に記載のスケジューリング装置。
【請求項３３】
前記実行指示手段は、起動時に実行を指示するサービスリクエストの最大数を認識しており、当該最大数に等しい個数だけサービスリクエストの実行を指示した時点で、実行の指示を停止し、かつ、残された実行権の評価指数を、より優先度の高いものに変更することを特徴とする、請求項２８に記載のスケジューリング装置。
【請求項３４】
前記実行指示手段が認識している、起動時に実行を指示するサービスリクエストの最大数は、自己が起動される周期に等しい時間内に、全サーバからクライアントに送信可能な最大の情報量に対応するサービスリクエストの個数であることを特徴とする、請求項３３に記載のスケジューリング装置。
【請求項３５】
前記実行指示手段は、起動時に実行を指示するサービスリクエストの最大数を認識しており、当該最大数に等しい個数だけサービスリクエストの実行を指示した時点で、実行の指示を停止し、かつ、残された実行権の評価指数をディクリメントすることを特徴とする、請求項２９に記載のスケジューリング装置。
【請求項３６】
前記実行指示手段が認識している、起動時に実行を指示するサービスリクエストの最大数は、自己が起動される周期に等しい時間内に、全サーバからクライアントに送信可能な最大の情報量に対応するサービスリクエストの個数であることを特徴とする、請求項３５に記載のスケジューリング装置。
【請求項３７】
前記クライアントからの申告に基づいて、実行権を発生させるべき周期を、前記登録手段に指示して登録／更新させる登録指示手段をさらに備えることを特徴とする、請求項３３に記載のスケジューリング装置。
【請求項３８】
前記登録指示手段は、単位時間当たりに前記実行指示手段が全サーバに実行を指示するサービスリクエストの最大数を認識しており、すでに登録されている周期に加えて、さらに他のサーバの周期を登録するよう申告された際、さらに登録されても、発生される、全サーバの実行権の単位時間当たりの平均数が、当該最大数を越えないと判定した場合、前記登録手段に指示して当該周期を登録させ、さらに登録されれば、越えると判定した場合には、登録させないことを特徴とする、請求項３７に記載のスケジューリング装置。
【請求項３９】
前記登録指示手段は、単位時間当たりに前記実行指示手段が各サーバに実行を指示するサービスリクエストの最大数を認識しており、すでに登録されている周期に加えて、さらに他のサーバの周期を登録するよう申告された際、さらに登録されても、発生される、当該サーバの実行権の単位時間当たりの平均数が、単位時間当たりに前記実行指示手段が当該サーバに実行を指示するサービスリクエストの最大数を越えないと判定した場合、前記登録手段に指示して当該周期を登録させ、さらに登録されれば、越えると判定した場合には、登録させないことを特徴とする、請求項３７に記載のスケジューリング装置。
【請求項４０】
前記登録指示手段が認識している、単位時間当たりに前記実行指示手段が各サーバに実行を指示するサービスリクエストの最大数は、単位時間当たりに前記各サーバが実行可能なサービスリクエストの最大数であることを特徴とする、請求項３９に記載のスケジューリング装置。
【請求項４１】
前記登録指示手段は、単位時間当たりに前記実行指示手段が全サーバに実行を指示するサービスリクエストの最大数と、単位時間当たりに前記実行指示手段が各サーバに実行を指示するサービスリクエストの最大数とを認識しており、すで登録されている、あるサーバの実行権を発生させるべき周期Ｔｉｔｖを、さらに周期Ｔｒｅｑを加えて実行権を発生させるものに更新するよう、申告を受けた際、更新されても、発生される、全サーバの実行権の単位時間当たりの平均数が、単位時間当たりに前記実行指示手段が前記全サーバに実行を指示するサービスリクエストの最大数を越えないと判定し、かつ、発生される、当該サーバの実行権の単位時間当たりの平均数が、単位時間当たりに前記実行指示手段が当該サーバに実行を指示するサービスリクエストの最大数を越えないと判定した場合、前記登録手段に指示して、すでに登録されているＴｉｔｖを、式Ｔｉｔｖ＝１／（１／Ｔｉｔｖ＋１／Ｔｒｅｑ）により算定される新たなＴｉｔｖに更新させ、更新されれば、越えると判定した場合には、更新させないことを特徴とする、請求項３７に記載のスケジューリング装置。
【請求項４２】
前記登録指示手段は、すで登録されている、あるサーバの実行権を発生させるべき周期Ｔｉｔｖを、周期Ｔｒｅｑを除いて実行権を発生させるものに更新するよう申告を受けた際、前記登録手段に指示して、すでに登録されているＴｉｔｖを、式Ｔｉｔｖ＝１／（１／Ｔｉｔｖ−１／Ｔｒｅｑ）により算定される新たなＴｉｔｖに更新させることを特徴とする、請求項３７に記載のスケジューリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムに関し、より特定的には、リアルタイム性が要求される映像、音声、動画といったマルチメディアデータの読み書きを扱うファイルシステムに関する。
【背景技術】
【０００２】
従来のコンピュータで用いられているファイルシステムは、主としてテキストデータを扱ってきた。例えば、「ＵＮＩＸカーネルの設計」（Ｍａｕｒｉｃｅ  Ｊ．Ｂａｃｈ著／坂本  文・多田好克・村井純訳；共立出版株式会社）によると、ＵＮＩＸ（登録商標）のファイルシステムでは、ファイルからデータを読み出し、またはファイルにデータを書き込む場合には、ｏｐｅｎシステムコールを用いてファイルを開き、ファイルの内容を、ｒｅａｄ、ｗｒｉｔｅといったシステムコールを用いて読み出しまたは書き込むようにしている。
【０００３】
ところで、ファイルシステムの一例として、ディジタル化された映像データを扱うビデオサーバがある。このようなビデオサーバには、特開平０７−１０７４２５号公報の「ビデオサーバ」に記載されているように、ビデオデータを格納した複数の記憶装置を、交換装置で接続した構成のものがある。また、ビデオサーバにおける映像の再生手順については、ＩＳＯ／ＩＥＣ標準１３８１８−６（Ｃｏｍｍｉｔｔｅｅ  Ｄｒａｆｔ）において記述されている。このＣｏｍｍｉｔｔｅｅ  Ｄｒａｆｔによれば、ユーザがビデオサーバに「Ｄｉｒｅｃｔｏｒｙ  Ｏｐｅｎ」を送出すると、ビデオサーバは、映像の連続再生の準備を完了し、「ＤＳＭ  Ｓｔｒｅａｍ  Ｐｌａｙ」「ＤＳＭ  Ｐａｕｓｅ  Ｒｅｓｕｍｅ」を送出すると、ビデオサーバからユーザへの映像データの送出が開始される。また、映像データの供給を停止させる場合には、ユーザからビデオサーバに「ＤＳＭ  Ｓｔｒｅａｍ  Ｐａｕｓｅ」が送出される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＵＮＩＸ（登録商標）のような従来のファイルシステムでは、ユーザからのアクセスが多数同時に発生した場合には、ユーザ側での読み出し待ち時間が増加する。このように、ユーザが読み出しコマンドを発行してから、データの受け取りを完了するまでの待ち時間は、他のユーザからのアクセス状況に影響を受けるため、予測不可能であった。特に、ビデオサーバのように、ファイルシステムが映像や、音声といった時間的に連続性が要求されるデータを管理しており、ユーザがデータの一部を一定時間おきに読み出して、ユーザ端末で再生を行う場合には、一定時間内に確実にデータを取得する必要があり、従来のファイルシステムでは対応できなかった。従って、映像データのように時間的に連続性が要求されるデータに関しては、ユーザ側で予め長いデータを取得しておき、全て取得した後に、映像の再生を行う必要があった。この場合には、ユーザ側で長いデータを格納できる大容量の記憶装置を保持する必要があり、また、映像の再生を開始するまでに長い待ち時間を要した。
【０００５】
それ故に、本発明の目的は、ユーザからの要求に対して素早い応答時間でデータを提供でき、しかも様々な再生速度を要求するユーザをサポートすることのできるファイルシステムを提供することである。
【課題を解決するための手段】
【０００６】
第１の発明は、サーバから、複数のクライアントに、それぞれ周期的にサービスが提供されるよう、サービスリクエストのスケジューリングを行うスケジューリング装置であって、
複数のクライアントからのサービスリクエストをキューイングする第１のキュー手段と、
複数のクライアント毎の、実行権を発生させるべき周期を登録する登録手段と、
登録手段に登録された周期に関連して、サービスリクエストを実行するための実行権を発生させる実行権発生手段と、
第１のキュー手段にキューイングされているサービスリクエストのうち、実行権発生手段が発生させた実行権に対応するクライアントからのサービスリクエストを、サーバに指示して実行させる実行指示手段とを備えている。
【０００７】
上記のように、第１のキュー手段は、各クライアントからのサービスリクエストをキューイングする。登録手段は、クライアント毎の、実行権を発生させるべき周期を登録する。実行権発生手段は、登録手段に登録された周期に関連して、実行権を発生させる。実行指示手段は、第１のキュー手段にキューイングされているサービスリクエストのうち、実行権発生手段が発生させた実行権に対応するクライアントからのサービスリクエストを、サーバに指示して実行させる。
【０００８】
第２の発明は、第１の発明において、実行権発生手段は、所定の周期で起動され、起動時に、登録手段に登録された、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、実行権を発生させるか否かをクライアント毎に判定し、かつ、実行権を発生させると判定したクライアントの実行権を、一括して発生させることを特徴としている。
【０００９】
第３の発明は、第２の発明において、実行権発生手段は、登録手段に登録された、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、起動された現時刻から、次の実行権を発生させる時刻までの時間を算定し、算定して得た時間と、自己が起動される周期とを比較することにより、実行権を発生させるか否かを判定することを特徴としている。
【００１０】
第４の発明は、第３の発明において、実行権発生手段は、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、自己が起動される周期Ｔｓｌｔに対して、Ｔｏｆｓ＜Ｔｓｌｔであるクライアントの実行権を発生させ、さらに、当該クライアントのＴｏｆｓに、登録手段に登録された、実行権を発生させるべき周期Ｔｒｅｑを加算し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔである場合、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴としている。
【００１１】
第５の発明は、第４の発明において、実行権発生手段は、加算して得たＴｏｆｓが、Ｔｏｆｓ＜Ｔｓｌｔである場合には、さらに、実行権を発生させ、かつ当該ＴｏｆｓにＴｒｅｑを加算してＴｓｌｔと比較する動作を繰り返し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔとなった時点で、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴としている。
【００１２】
第６の発明は、第４の発明において、実行権発生手段は、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔであるか、または、サービスリクエストが、第１のキュー手段にキューイングされていないクライアントについては、実行権を発生させず、かつ、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴としている。
【００１３】
第７の発明は、第６の発明において、実行権発生手段は、算定して得た新たなＴｏｆｓが、Ｔｏｆｓ＜０である場合には、次回起動される際のＴｏｆｓを０とすることを特徴としている。
【００１４】
第８の発明は、第２の発明において、実行指示手段は、所定の周期で起動され、起動された現時刻から、次の実行権が発生される時刻までの時間が、より短いクライアントの実行権を選択することを特徴としている。
【００１５】
第９の発明は、第８の発明において、実行権発生手段は、優先度を示す評価指数を、登録手段に登録された、実行権を発生させるべき周期の関数として算定して、発生させた実行権に付与し、
実行指示手段は、付与された評価指数に基づいて、実行権発生手段が発生させた実行権のうち、優先されるべき実行権を選択することを特徴としている。
【００１６】
第１０の発明は、第９の発明において、実行権発生手段は、評価指数Ｎｓｆｔを、登録手段に登録された実行権を発生させるべき周期Ｔｒｅｑと、自己が起動される周期Ｔｓｌｔとに対して、関数Ｎｓｆｔ＝ｆ（Ｔｒｅｑ／Ｔｓｌｔ）（ただし、ｆ（ｘ）はｘ以上の最小の整数）により算定し、
実行指示手段は、付与された評価指数Ｎｓｆｔがより小さい実行権を選択することを特徴としている。
【００１７】
第１１の発明は、第１０の発明において、実行権発生手段は、登録手段に登録された周期のうち、最も長いものよりは短い周期で、起動されることを特徴としている。
【００１８】
第１２の発明は、第１０の発明において、実行権発生手段は、登録手段に登録された周期のうち、最も短いものよりさらに短い周期で、起動されることを特徴としている。
【００１９】
第１３の発明は、第９の発明において、実行指示手段は、実行権発生手段が発生させた実行権を、付与された評価指数毎で、かつ発生された順に、キューイングする第２のキュー手段を含み、当該キュー手段にキューイングされている実行権のうち、付与された評価指数がより小さく、かつ、より先に発生されたものを選択することを特徴としている。
【００２０】
第１４の発明は、第９の発明において、実行指示手段は、起動時に実行を指示するサービスリクエストの最大数を認識しており、当該最大数に等しい個数だけサービスリクエストの実行を指示した時点で、実行の指示を停止し、かつ、残された実行権の評価指数を、より優先度の高いものに変更することを特徴としている。
【００２１】
第１５の発明は、第１４の発明において、実行指示手段が認識している、起動時に実行を指示するサービスリクエストの最大数は、自己が起動される周期に等しい時間内にサーバが実行可能なサービスリクエストの最大数であることを特徴としている。
【００２２】
第１６の発明は、第１０の発明において、実行指示手段は、起動時に実行を指示するサービスリクエストの最大数を認識しており、当該最大数に等しい個数だけサービスリクエストの実行を指示した時点で、実行の指示を停止し、かつ、残された実行権の評価指数をディクリメントすることを特徴としている。
【００２３】
第１７の発明は、第１６の発明において、実行指示手段が認識している、起動時に実行を指示するサービスリクエストの最大数は、自己が起動される周期に等しい時間内にサーバが実行可能なサービスリクエストの最大数であることを特徴としている。
【００２４】
第１８の発明は、第１４の発明において、複数のクライアントからの申告に基づいて、実行権を発生させるべき周期を、登録手段に指示して登録させる登録指示手段をさらに備えることを特徴としている。
【００２５】
第１９の発明は、第１８の発明において、登録指示手段は、単位時間当たりに実行指示手段が実行を指示するサービスリクエストの最大数を認識しており、すでに登録されている周期に加えて、さらに他の周期を登録するよう申告された際、さらに登録されても、発生される実行権の単位時間当たりの平均数が、当該最大数を越えないと判定した場合、登録手段に指示して当該周期を登録させ、さらに登録されれば、越えると判定した場合には、登録させないことを特徴としている。
【００２６】
第２０の発明は、複数のサーバから、クライアントに、それぞれ周期的にサービスが提供されるよう、サービスリクエストのスケジューリングを行うスケジューリング装置であって、
複数のサーバへのサービスリクエストをキューイングする第１のキュー手段と、
複数のサーバ毎の、実行権を発生させるべき周期を登録する登録手段と、
登録手段に登録された周期に関連して、サービスリクエストを実行するための実行権を発生させる実行権発生手段と、
第１のキュー手段にキューイングされているサービスリクエストのうち、実行権発生手段が発生させた実行権に対応するサーバへのサービスリクエストを、当該サーバに指示して実行させる実行指示手段とを備えている。
【００２７】
上記のように、第１のキュー手段は、各サーバへのサービスリクエストをキューイングする。登録手段は、サーバ毎の、実行権を発生させるべき周期を登録する。実行権発生手段は、登録手段に登録された周期に関連して、実行権を発生させる。実行指示手段は、第１のキュー手段にキューイングされているサービスリクエストのうち、実行権発生手段が発生させた実行権に対応するサーバのサービスリクエストを、当該サーバに指示して実行させる。
【００２８】
第２１の発明は、第２０の発明において、実行権発生手段は、所定の周期で起動され、起動時に、登録手段に登録された、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、実行権を発生させるか否かをサーバ毎に判定し、かつ、実行権を発生させると判定したサーバの実行権を、一括して発生させることを特徴としている。
【００２９】
第２２の発明は、第２１の発明において、実行権発生手段は、登録手段に登録された、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、起動された現時刻から、次の実行権を発生させる時刻までの時間を算定し、算定して得た時間と、自己が起動される周期とを比較することにより、実行権を発生させるか否かを判定することを特徴としている。
【００３０】
第２３の発明は、第２２の発明において、実行権発生手段は、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、自己が起動される周期Ｔｓｌｔに対して、Ｔｏｆｓ＜Ｔｓｌｔであるサーバの実行権を発生させ、さらに、当該サーバのＴｏｆｓに、登録手段に登録された、実行権を発生させるべき周期Ｔｉｔｖを加算し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔである場合、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴としている。
【００３１】
第２４の発明は、第２３の発明において、実行権発生手段は、加算して得たＴｏｆｓが、Ｔｏｆｓ＜Ｔｓｌｔである場合には、さらに、実行権を発生させ、かつ当該ＴｏｆｓにＴｉｔｖを加算してＴｓｌｔと比較する動作を繰り返し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔとなった時点で、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴としている。
【００３２】
第２５の発明は、第２３の発明において、実行権発生手段は、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔであるか、または、サービスリクエストが、第１のキュー手段にキューイングされていないサーバについては、実行権を発生させず、かつ、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとすることを特徴としている。
【００３３】
第２６の発明は、第２５の発明において、実行権発生手段は、算定して得た新たなＴｏｆｓが、Ｔｏｆｓ＜０である場合には、次回起動される際のＴｏｆｓを０とすることを特徴としている。
【００３４】
第２７の発明は、第２１の発明において、実行指示手段は、所定の周期で起動され、起動された現時刻から、次の実行権が発生される時刻までの時間が、より短いサーバの実行権を選択することを特徴としている。
【００３５】
第２８の発明は、第２７の発明において、実行権発生手段は、優先度を示す評価指数を、登録手段に登録された、実行権を発生させるべき周期の関数として算定して、発生させた実行権に付与し、
実行指示手段は、付与された評価指数に基づいて、実行権発生手段が発生させた実行権のうち、優先されるべき実行権を選択することを特徴としている。
【００３６】
第２９の発明は、第２８の発明において、実行権発生手段は、評価指数Ｎｓｆｔを、登録手段に登録された実行権を発生させるべき周期Ｔｉｔｖと、自己が起動される周期Ｔｓｌｔとに対して、関数Ｎｓｆｔ＝ｆ（Ｔｉｔｖ／Ｔｓｌｔ）（ただし、ｆ（ｘ）はｘ以上の最小の整数）により算定し、
実行指示手段は、付与された評価指数Ｎｓｆｔがより小さい実行権を選択することを特徴としている。
【００３７】
第３０の発明は、第２９の発明において、実行権発生手段は、登録手段に登録された周期のうち、最も長いものよりは短い周期で、起動されることを特徴としている。
【００３８】
第３１の発明は、第２９の発明において、実行権発生手段は、登録手段に登録された周期のうち、最も短いものよりさらに短い周期で、起動されることを特徴としている。
【００３９】
第３２の発明は、第２８の発明において、実行指示手段は、実行権発生手段が発生させた実行権を、付与された評価指数毎で、かつ発生された順に、キューイングする第２のキュー手段を含み、当該キュー手段にキューイングされている実行権のうち、付与された評価指数がより小さく、かつ、より先に発生されたものを選択することを特徴としている。
【００４０】
第３３の発明は、第２８の発明において、実行指示手段は、起動時に実行を指示するサービスリクエストの最大数を認識しており、当該最大数に等しい個数だけサービスリクエストの実行を指示した時点で、実行の指示を停止し、かつ、残された実行権の評価指数を、より優先度の高いものに変更することを特徴としている。
【００４１】
第３４の発明は、第３３の発明において、実行指示手段が認識している、起動時に実行を指示するサービスリクエストの最大数は、自己が起動される周期に等しい時間内に、全サーバからクライアントに送信可能な最大の情報量に対応するサービスリクエストの個数であることを特徴としている。
【００４２】
第３５の発明は、第２９の発明において、実行指示手段は、起動時に実行を指示するサービスリクエストの最大数を認識しており、当該最大数に等しい個数だけサービスリクエストの実行を指示した時点で、実行の指示を停止し、かつ、残された実行権の評価指数をディクリメントすることを特徴としている。
【００４３】
第３６の発明は、第３５の発明において、実行指示手段が認識している、起動時に実行を指示するサービスリクエストの最大数は、自己が起動される周期に等しい時間内に、全サーバからクライアントに送信可能な最大の情報量に対応するサービスリクエストの個数であることを特徴としている。
【００４４】
第３７の発明は、第３３の発明において、クライアントからの申告に基づいて、実行権を発生させるべき周期を、登録手段に指示して登録／更新させる登録指示手段をさらに備えることを特徴としている。
【００４５】
第３８の発明は、第３７の発明において、登録指示手段は、単位時間当たりに実行指示手段が全サーバに実行を指示するサービスリクエストの最大数を認識しており、すでに登録されている周期に加えて、さらに他のサーバの周期を登録するよう申告された際、さらに登録されても、発生される、全サーバの実行権の単位時間当たりの平均数が、当該最大数を越えないと判定した場合、登録手段に指示して当該周期を登録させ、さらに登録されれば、越えると判定した場合には、登録させないことを特徴としている。
【００４６】
第３９の発明は、第３７の発明において、登録指示手段は、単位時間当たりに実行指示手段が各サーバに実行を指示するサービスリクエストの最大数を認識しており、すでに登録されている周期に加えて、さらに他のサーバの周期を登録するよう申告された際、さらに登録されても、発生される、当該サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が当該サーバに実行を指示するサービスリクエストの最大数を越えないと判定した場合、登録手段に指示して当該周期を登録させ、さらに登録されれば、越えると判定した場合には、登録させないことを特徴としている。
【００４７】
第４０の発明は、第３９の発明において、登録指示手段が認識している、単位時間当たりに実行指示手段が各サーバに実行を指示するサービスリクエストの最大数は、単位時間当たりに各サーバが実行可能なサービスリクエストの最大数であることを特徴としている。
【００４８】
第４１の発明は、第３７の発明において、登録指示手段は、単位時間当たりに実行指示手段が全サーバに実行を指示するサービスリクエストの最大数と、単位時間当たりに実行指示手段が各サーバに実行を指示するサービスリクエストの最大数とを認識しており、すで登録されている、あるサーバの実行権を発生させるべき周期Ｔｉｔｖを、さらに周期Ｔｒｅｑを加えて実行権を発生させるものに更新するよう、申告を受けた際、更新されても、発生される、全サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が全サーバに実行を指示するサービスリクエストの最大数を越えないと判定し、かつ、発生される、当該サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が当該サーバに実行を指示するサービスリクエストの最大数を越えないと判定した場合、登録手段に指示して、すでに登録されているＴｉｔｖを、式Ｔｉｔｖ＝１／（１／Ｔｉｔｖ＋１／Ｔｒｅｑ）により算定される新たなＴｉｔｖに更新させ、更新されれば、越えると判定した場合には、更新させないことを特徴としている。
【００４９】
第４２の発明は、第３７の発明において、登録指示手段は、すでに登録されている、あるサーバの実行権を発生させるべき周期Ｔｉｔｖを、周期Ｔｒｅｑを除いて実行権を発生させるものに更新するよう申告を受けた際、登録手段に指示して、すでに登録されているＴｉｔｖを、式Ｔｉｔｖ＝１／（１／Ｔｉｔｖ−１／Ｔｒｅｑ）により算定される新たなＴｉｔｖに更新させることを特徴としている。
【発明の効果】
【００５０】
上記第１の発明によれば、各クライアントからのサービスリクエストをキューイングする一方、クライアント毎の、実行権を発生させるべき周期を登録しておいて、その周期に基づいて、実行権を発生させる。そして、キューイングしているサービスリクエストのうち、発生させた実行権に対応するクライアントからのものを、サーバに指示して実行させる。これにより、あるクライアントからのサービスリクエストが送信されてから実行されるまでの時間が、他のクライアントからのサービスリクエストの送信の状況に影響されることがなくなり、従って、送信されたサービスリクエストが実行されるまでの時間が不定となるのを防ぐことができる。
【００５１】
上記第２の発明によれば、実行権発生手段は、所定の周期で起動され、実行権を発生させる動作を行う。この際、実行権発生手段は、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、クライアント毎に、実行権を発生させるか否かを判定し、発生させると判定したクライアントの実行権を、一括して発生させるようにする。これにより、登録手段に登録された、実行権を発生させるべき周期で実行権を発生させるのに比べて、実行権発生手段の処理動作を軽減できる。
【００５２】
上記第３の発明によれば、各クライアントの実行権を発生させるか否かを判定することができる。
【００５３】
上記第４の発明によれば、実行権発生手段は、Ｔｏｆｓが、Ｔｓｌｔに対して、Ｔｏｆｓ＜Ｔｓｌｔであるクライアントの実行権を発生させる。さらに、当該クライアントのＴｏｆｓにＴｒｅｑを加算し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔである場合、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定し、算定して得たＴｏｆｓを、次回起動される際のＴｏｆｓとする。これにより、実行権を発生させるべきクライアントを判定して、実行権を発生させることができる。
【００５４】
上記第５の発明によれば、実行権発生手段は、加算して得たＴｏｆｓが、Ｔｏｆｓ＜Ｔｓｌｔである場合には、さらに、実行権を発生させるとともに、当該ＴｏｆｓにＴｒｅｑを加算してＴｓｌｔと比較する動作を繰り返す。そして、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔとなった時点で、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとする。これにより、複数の実行権を発生させるべきクライアントをさらに判定して、必要な数の実行権を発生させることができる。
【００５５】
上記第６の発明によれば、実行権発生手段は、Ｔｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔであるか、または、サービスリクエストが、第１のキュー手段にキューイングされていないクライアントについては、実行権を発生させない。そして、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとする。このように、サービスリクエストがキューイングされていないクライアントについては、実行権を発生させないことにより、サービスリクエストを送信しなかったクライアントにサービスが提供されないようにすることができる。
【００５６】
上記第７の発明によれば、サービスリクエストがキューイングされていないクライアントのＴｏｆｓが、繰り返しＴｓｌｔを減算されて小さな値となり、サービスリクエストがキューイングされた時点で当該クライアントの実行権が多数発生されるのを防ぐことができる。
【００５７】
上記第８の発明によれば、起動された現時刻から、次の実行権が発生される時刻までの時間が、より短いクライアントの実行権を選択することにより、遅延が発生する回数を、より少なくすることができる。
【００５８】
上記第９の発明によれば、実行権発生手段は、発生させた実行権に、実行権を発生させるべき周期の関数として算定した、優先度を示す評価指数を付与し、実行指示手段は、付与された評価指数に基づいて、優先されるべき実行権を選択する。これにより、実行権が競合する場合、実行権を発生させるべき周期に関連して、より優先されるべきものを選択することができる。
【００５９】
上記第１０の発明によれば、実行権が競合する場合、実行権を発生させるべき周期がより短いものを選択することができる。
【００６０】
上記第１１の発明によれば、全てのクライアントの実行権に、同一の評価指数が付与されることがない。
【００６１】
上記第１２の発明によれば、各クライアントの実行権に、より詳細な評価指数が付与される。
【００６２】
上記第１３の発明によれば、実行指示手段は、発生された実行権のうち、優先されるべきものを容易に選択することができ、従って、実行指示手段の処理動作を軽減できる。
【００６３】
上記第１４の発明によれば、実行指示手段は、最大数の実行指示を行った時点で、実行指示を停止し、かつ、残された実行権の評価指数を、より優先度の高いものに変更する。これにより、最大数を超えて、実行指示が行われないようにすることができるとともに、残された実行権が、長時間、選択されないのを防ぐことができる。
【００６４】
上記第１５の発明によれば、サーバの処理能力を超えて、実行指示が行われないようにすることができる。
【００６５】
上記第１６の発明によれば、実行指示手段は、最大数の実行指示を行った時点で、実行指示を停止し、かつ、残された実行権の評価指数をディクリメントする。これにより、最大数を超えて、実行指示が行われないようにすることができるとともに、残された実行権の評価指数がＴｓｌｔ毎にディクリメントされるため、発生されてから、遅くともＴｒｅｑ＋Ｔｓｌｔ後までに、当該実行権が選択されるようにすることができる。
【００６６】
上記第１７の発明によれば、サーバの処理能力を超えて、実行指示が行われないようにすることができる。
【００６７】
上記第１８の発明によれば、実行権を発生させるべき周期を、必要に応じて、登録手段に登録させることができる。
【００６８】
上記第１９の発明によれば、登録指示手段は、すでに登録されている周期に加えて、申告された周期がさらに登録されても、実行権発生手段が発生させる実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が実行を指示するサービスリクエストの最大数を超えないと判定した場合にのみ、登録手段に指示して、申告された周期を登録させる。これにより、新たな周期を登録した際、発生される実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が実行を指示するサービスリクエストの最大数を越えるのを防ぐことができる。
【００６９】
上記第２０の発明によれば、各サーバへのサービスリクエストをキューイングする一方、サーバ毎の、実行権を発生させるべき周期を登録しておいて、その周期に基づいて、実行権を発生させる。そして、キューイングしているサービスリクエストのうち、発生させた実行権に対応するサーバへのものを、そのサーバに指示して実行させる。これにより、あるサーバへのサービスリクエストが送信されてから実行されるまでの時間が、他のサーバへのサービスリクエストの送信の状況に影響されることがなくなり、従って、送信されたサービスリクエストが実行されるまでの時間が不定となるのを防ぐことができる。
【００７０】
上記第２１の発明によれば、実行権発生手段は、所定の周期で起動され、実行権を発生させる動作を行う。この際、実行権発生手段は、実行権を発生させるべき周期と、自己が起動される周期とに基づいて、サーバ毎に、実行権を発生させるか否かを判定し、発生させると判定したサーバの実行権を、一括して発生させるようにする。これにより、登録手段に登録された、実行権を発生させるべき周期で実行権を発生させるのに比べて、実行権発生手段の処理動作を軽減できる。
【００７１】
上記第２２の発明によれば、各サーバの実行権を発生させるか否かを判定することができる。
【００７２】
上記第２３の発明によれば、実行権発生手段は、Ｔｏｆｓが、Ｔｓｌｔに対して、Ｔｏｆｓ＜Ｔｓｌｔであるサーバの実行権を発生させる。さらに、当該サーバのＴｏｆｓにＴｉｔｖを加算し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔである場合、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定し、算定して得たＴｏｆｓを、次回起動される際のＴｏｆｓとする。これにより、実行権を発生させるべきサーバを判定して、実行権を発生させることができる。
【００７３】
上記第２４の発明によれば、実行権発生手段は、加算して得たＴｏｆｓが、Ｔｏｆｓ＜Ｔｓｌｔである場合には、さらに、実行権を発生させるとともに、当該ＴｏｆｓにＴｉｔｖを加算してＴｓｌｔと比較する動作を繰り返す。そして、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔとなった時点で、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとする。これにより、複数の実行権を発生させるべきサーバをさらに判定して、必要な数の実行権を発生させることができる。
【００７４】
上記第２５の発明によれば、実行権発生手段は、Ｔｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔであるか、または、サービスリクエストが、第１のキュー手段にキューイングされていないサーバについては、実行権を発生させない。そして、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定して、次回起動される際のＴｏｆｓとする。このように、サービスリクエストがキューイングされていないサーバについては、実行権を発生させないことにより、サービスリクエストを送信されなかったサーバが、サービスを提供するのを防ぐことができる。
【００７５】
上記第２６の発明によれば、サービスリクエストがキューイングされていないサーバのＴｏｆｓが、繰り返しＴｓｌｔを減算されて小さな値となり、サービスリクエストがキューイングされた時点で当該サーバの実行権が多数発生するのを防ぐことができる。
【００７６】
上記第２７の発明によれば、起動された現時刻から、次の実行権が発生される時刻までの時間が、より短いサーバの実行権を選択することにより、遅延が発生する回数を、より少なくすることができる。
【００７７】
上記第２８の発明によれば、実行権発生手段は、発生させた実行権に、実行権を発生させるべき周期の関数として算定した、優先度を示す評価指数を付与し、実行指示手段は、付与された評価指数に基づいて、優先されるべき実行権を選択する。これにより、実行権が競合する場合、実行権を発生させるべき周期に関連して、より優先されるべきものを選択することができる。
【００７８】
上記第２９の発明によれば、実行権が競合する場合、実行権を発生させるべき周期がより短いものを選択することができる。
【００７９】
上記第３０の発明によれば、全てのサーバの実行権に、同一の評価指数が付与されることがない。
【００８０】
上記第３１の発明によれば、各サーバの実行権に、より詳細な評価指数が付与される。
【００８１】
上記第３２の発明によれば、実行指示手段は、発生された実行権のうち、優先されるべきものを容易に選択することができ、従って、実行指示手段の処理動作を軽減できる。
【００８２】
上記第３３の発明によれば、実行指示手段は、最大数の実行指示を行った時点で、実行指示を停止し、かつ、残された実行権の評価指数を、より優先度の高いものに変更する。これにより、最大数を超えて、実行指示が行われないようにすることができるとともに、残された実行権が、長時間、選択されないのを防ぐことができる。
【００８３】
上記第３４の発明によれば、全サーバからクライアントに送信可能な最大の情報量を超えるような数の実行指示が行われないようにすることができる。
【００８４】
上記第３５の発明によれば、実行指示手段は、最大数の実行指示を行った時点で、実行指示を停止し、かつ、残された実行権の評価指数をディクリメントする。これにより、最大数を超えて、実行指示が行われないようにすることができるとともに、残された実行権の評価指数がＴｓｌｔ毎にディクリメントされるため、発生されてから、遅くともＴｒｅｑ＋Ｔｓｌｔ後までに、当該実行権が選択されるようにすることができる。
【００８５】
上記第３６の発明によれば、全サーバからクライアントに送信可能な最大の情報量を超えるような数の実行指示が行われないようにすることができる。
【００８６】
上記第３７の発明によれば、実行権を発生させるべき周期を、必要に応じて、登録手段に登録／更新させることができる。
【００８７】
上記第３８の発明によれば、登録指示手段は、すでに登録されている周期に加えて、申告された周期がさらに登録されても、実行権発生手段が発生させる、全サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が全サーバに実行を指示するサービスリクエストの最大数を超えないと判定した場合にのみ、登録手段に指示して、申告された周期を登録させる。これにより、申告されたサーバの周期を登録した際、発生される、全サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が全サーバに実行を指示するサービスリクエストの最大数を越えるのを防ぐことができる。
【００８８】
上記第３９の発明によれば、登録指示手段は、すでに登録されている周期に加えて、申告されたサーバの周期がさらに登録されても、実行権発生手段が発生させる、当該サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が当該サーバに実行を指示するサービスリクエストの最大数を超えないと判定した場合にのみ、登録手段に指示して、申告された周期を登録させる。これにより、申告されたサーバの周期を登録した際、発生される、当該サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が当該サーバに実行を指示するサービスリクエストの最大数を越えるのを防ぐことができる。
【００８９】
上記第４０の発明によれば、申告されたサーバの周期を登録した際、発生される、当該サーバの実行権の単位時間当たりの平均数が、単位時間当たりに当該サーバが実行可能なサービスリクエストの最大数を越えるのを防ぐことができる。
【００９０】
上記第４１の発明によれば、あるサーバのＴｉｔｖを、さらに周期Ｔｒｅｑを加えて実行権を発生させるものに更新するよう、申告を受けた際、更新されても、発生される、全サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が全サーバに実行を指示するサービスリクエストの最大数を越えず、かつ、発生される、当該サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が当該サーバに実行を指示するサービスリクエストの最大数を越えないと判定した場合にのみ、登録手段に指示して、当該サーバのＴｉｔｖを更新させる。これにより、当該サーバのＴｉｔｖを更新した際、発生される、全サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が全サーバに実行を指示するサービスリクエストの最大数を超えないようにすることができるとともに、発生される、当該サーバの実行権の単位時間当たりの平均数が、単位時間当たりに実行指示手段が当該サーバに実行を指示するサービスリクエストの最大数を超えないようにすることができる。
【００９１】
上記第４２の発明によれば、すでに登録されている、実行権を発生させるべき周期を、周期Ｔｒｅｑを除いて発生させるものに更新するよう申告を受けた際、すでに登録されている周期を、新たなものに更新することができる。
【発明を実施するための最良の形態】
【００９２】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るファイルシステムの構成を示すブロック図である。図１において、本ファイルシステムは、交換装置１と、ファイルマネージャ２と、複数のサーバユニット３とを備えている。
【００９３】
ファイルマネージャ２は、ファイルシステム全体を管理する。各サーバユニット３は、ユーザからのファイルの読み出しまたは書き込みの要求を受け付け、ファイルシステムが管理する記憶装置から読み出したデータやメッセージをユーザに対して送信する。各サーバユニット３間、および各サーバユニット３とファイルマネージャ２との間では、交換装置１を介してデータがやりとりされる。当該ファイルシステムが管理するデータは、各サーバユニット３内に存在する記憶装置に格納されている。
【００９４】
図２は、各サーバユニット３におけるファイルアクセスに関連する部分の構成を示すブロック図である。図２において、各サーバユニット３は、外部メッセージインターフェース部１０１と、リソース割り当て部１０２と、スロット割り当て部１０３と、アドレス検索部１０４と、要求送出部１０５と、外部ネットワークＩ／Ｏ制御部１０６と、内部メッセージインターフェース部１０７と、記憶装置１０８と、記憶制御部１０９と、内部ネットワークＩ／Ｏ制御部１１０と、申告値管理部１１１とを含む。
【００９５】
外部メッセージインターフェース部１０１は、外部とやりとりされるメッセージを識別し、サーバユニット内の各機能ブロックに対して処理の指示を与える。リソース割り当て部１０２は、ファイルシステム内のリソースの割り当てを行う。スロット割り当て部１０３は、サーバユニット３で管理しているスロットの割り当てを行う。なお、スロットについての説明は後述する。アドレス検索部１０４は、要求されたデータの格納位置を検索する。要求送出部１０５は、固定長のデータブロックの読み出しを要求するブロック読み出し要求や、書き込みを要求するブロック書き込み要求の送出を指示する。内部メッセージインターフェース部１０７は、ファイルシステム内部のファイルマネージャ２や、他のサーバユニットに対するメッセージの送受信を制御する。記憶装置１０８は、データブロックや、ファイル毎のデータの格納位置情報を記憶する。記憶制御部１０９は、記憶装置１０８へのアクセスを制御する。内部ネットワークＩ／Ｏ制御部１１０は、ブロック読み出し要求により要求されたデータブロックを交換装置１に送出するタイミングを制御する。申告値管理部１１１は、外部から到着したメッセージのパラメータが妥当なものであるかどうかをチェックする。
【００９６】
図３は、ファイルマネージャ２におけるファイルアクセスに関連する部分の構成を示すブロック図である。図３において、ファイルマネージャ２は、メッセージインターフェース部２０１と、リソース管理部２０２とを含む。メッセージインターフェース部２０１は、交換装置１を介して各サーバユニット３とやりとりされるメッセージを識別し、ファイルマネージャ２内の機能に対して処理の指示を与える。リソース管理部２０２は、ファイルシステムにおける、記憶装置の読み出し帯域、交換装置の入出力帯域の容量と使用量とを管理する。
【００９７】
ここで、ファイルシステムには、外部からファイルアクセスに関連して、以下のメッセージが到着する。
（１）ＧｅｔＲｅｓｏｕｒｃｅ
（２）ＦｉｌｅＯｐｅｎ
（３）ＲｅａｄＢｌｏｃｋ
（４）ＷｒｉｔｅＢｌｏｃｋ
【００９８】
上記メッセージを受け取ったときの、ファイルマネージャ２および各サーバユニット３での、ファイルアクセスに関連する部分の動作について、以下に説明する。
【００９９】
ＧｅｔＲｅｓｏｕｒｃｅメッセージが到着すると、サーバユニット３内の外部メッセージインターフェース部１０１は、リソース割り当て部１０２にその旨を通知する。リソース割り当て部１０２は、ファイルマネージャ２に対するリソース割り当て要求の送出を、内部メッセージインターフェース部１０７に指示する。リソース割り当て要求がファイルマネージャ２に到着すると、リソース管理部２０２では、リソース割り当て要求の受け付け可否を判断し、その結果をサーバユニット３に送出する。サーバユニット３内のリソース割り当て部１０２では、割り当て可能の判断結果を受け取ると、リソースの予約を行う。
【０１００】
ＦｉｌｅＯｐｅｎメッセージが到着すると、サーバユニット３は、ファイル内のデータの格納位置情報を記憶装置１０８から取得し、ファイルアクセス可能な状態に移行する。
【０１０１】
ＲｅａｄＢｌｏｃｋメッセージが到着すると、サーバユニット３内のスロット割り当て部１０３は、予約したリソースを割り当てて、要求されたデータの読み出しを行う。
【０１０２】
ＷｒｉｔｅＢｌｏｃｋメッセージが到着すると、サーバユニット３内のスロット割り当て部１０３は、予約したリソースを割り当てて、要求されたデータの書き込みを行う。
【０１０３】
図４は、リソースの予約および割り当てと、データ読み出し動作との関係を示した図である。以下には、この図４を参照しつつ、リソース予約および割り当てを行ってデータの読み出し，書き込みを行うファイルシステムの動作について説明する。まず始めに、リソースの予約および割り当てに用いるＭＳ到着スロットおよび書き込み用スロットについて説明した後、ファイルシステムの動作について説明する。
【０１０４】
（１）ＭＳ到着スロット
本ファイルシステムでは、数１０ｍｓｅｃおきに区切られた「ＭＳ到着スロット」という概念を用いる。図４において、線８０１は、時間をＭＳ到着スロットに区切って管理していることを示している。また、データの読み出しに際しては、要求されたデータを固定長のデータブロック（ＭＳブロック）に区切り、ＭＳ毎にブロック読み出し要求を記憶装置１０８または他のサーバユニットに送出し、読み出しを行う。あるサーバユニットが他のサーバユニットに対してブロック読み出し要求を送出する場合には、ＭＳ到着スロットを割り付ける。１つのスロットに割り付けることができるブロック読み出し要求の個数には、最大値が設定されている。本ファイルシステムでは、ユーザへのストリーム提供を保証するために、ブロック読み出し要求を受け付けたユーザについて、予めＭＳ到着スロットを予約する。ブロック読み出し要求に割り付けるＭＳ到着スロットは、予約されたＭＳ到着スロットの中から選定する。ＭＳ到着スロットを予約する動作は、一定時間おきにまとめて行う。「ＭＳ到着スロット」を形成するパラメータを以下に示す。
Ｔ＿ｓｌｔ：スロットの時間間隔
Ｎｍａｘ１：スロットに割り当て可能な要求数
Ｔ＿ｒｓｖＭＳ：到着スロット予約動作の間隔
【０１０５】
図４において、参照番号８０２は、Ｔ＿ｓｌｔの間隔を示している。図５は、ＭＳ到着スロットの状態を管理するＭＳ到着スロット管理テーブルの一例を示している。図５に示したように、ＭＳ到着スロット管理テーブルは、スロットを識別する「スロット番号」、スロットの予約の有無および予約しているユーザを識別する「予約ユーザ番号」、ブロック読み出し要求を割り付けているかどうかおよび割り当てている要求を識別する「割り当て要求番号」、非優先のブロック読み出し要求を割り付けてよいかどうかを識別する「非優先フラグ」といった項目を情報として持つ。ＧｅｔＲｅｓｏｕｒｃｅメッセージによってリソースが割り当てられたユーザは、予約したスロットを利用する。また、リソース割り当てなしにブロックの読み出しを要求したユーザに対しては、ブロックの読み出しをする場合には、非優先フラグを参照して、割り当てることが可能なスロットを割り当てる。
【０１０６】
（２）書き込み用スロット
ブロックの書き込みに際しては、「書き込み用スロット」という概念が用いられる。各サーバユニット３において、書き込み用スロットは、宛先サーバユニット毎に設けられている。外部からＷｒｉｔｅＢｌｏｃｋコマンドと共に到着するデータは、固定長のデータブロック（ＭＳブロック）に分割され、記憶装置１０８の空き領域リストに従って宛先が決定され、ブロック書き込み要求として送出される。ここで、ブロック書き込み要求には、宛先となるサーバユニットの書き込み用スロットを必ず割り付ける。書き込み用スロットの状態を管理する書き込み用スロット管理テーブルの一例を図６に示す。図６に示したように、書き込み用スロット管理テーブルは、宛先サーバユニットを識別する「宛先ユニット番号」、書き込み用スロットを特定する「スロット番号」、スロットに割り当てた要求の有無と割り当てた要求を識別する「割り当て要求識別番号」といった項目を情報として持つ。
【０１０７】
（３）ユーザ毎のリソース管理
サーバユニット３では、ＧｅｔＲｅｓｏｕｒｃｅを受け付けているユーザを、Ｒｅａｄ／Ｗｒｉｔｅ別に、確保した帯域が大きいものより小さいものの順に「ストリーム管理テーブル」で管理している。確保した帯域により、ユーザは、単数または複数のファイルを読み出すことができる。図７は、ストリーム管理テーブルの一例を示している。このストリーム管理テーブルは、各サーバユニット３内のリソース割り当て部１０２で管理されている。「ストリーム管理テーブル」は、ユーザ毎のリソースの獲得状況を管理するために、図７に示したような項目を情報として持つ。図７において、「リソース記述子」は、ＧｅｔＲｅｓｏｕｒｃｅメッセージ受け付け毎に割り付けられる識別子である。「ストリーム管理テーブル」は、この「リソース記述子」毎に、読み出し用か書き込み用かを識別する「読み出し・書き込みの別」と、要求帯域を提供するために必要となるスロットの平均予約間隔とを記憶している。さらに、「ストリーム管理テーブル」は、確保した帯域を記憶する「確保されたファイルシステム内の内部帯域」、確保した帯域のうち現在使っていない帯域量を記憶する「現在使用可能なファイルシステム内部帯域」といった項目を情報として持つ。
【０１０８】
（４）リソース獲得受け付け制御
リソース獲得受け付け制御は、外部からのＧｅｔＲｅｓｏｕｒｃｅメッセージの受け付け可否を判断し、判断結果を外部に返す制御である。受け付け可否の判断は、メッセージによって申告されるパラメータに基づいて、リソース管理部２０２にて行われる。ＧｅｔＲｅｓｏｕｒｃｅメッセージは、以下の申告パラメータを持つ。
Ｒｅａｄ／Ｗｒｉｔｅの別
ブロックの最小Ｒｅａｄ／Ｗｒｉｔｅ間隔Ｔ
ＲｅａｄＢｌｏｃｋ到着から、ブロック送出までの遅延要求値Ｄ＿ｌｉｍ
【０１０９】
図８は、図３に示すリソース管理部２０２のより詳細な構成を示すブロック図である。図８において、リソース管理部２０２は、申告パラメータ処理部４０１と、書き込み帯域算出部４０２と、受付判断部４０３と、リソース記憶部４０４とを含む。申告パラメータ処理部４０１は、コマンドによって申告されるパラメータを、受け付け判断に必要な数値に置き換える。書き込み帯域算出部４０２は、書き込み用の帯域を算出する。受付判断部４０３は、メッセージの受付の可否を判断する。リソース記憶部４０４は、現在のリソースの使用状況と、提供可能なリソースの最大値とを記憶する。
【０１１０】
申告パラメータ処理部４０１では、まず、遅延要求値Ｄ＿ｌｉｍに基づき、次式（１）を満たす値Ｔ＿ｍａｘを求める。
Ｄ＿ｌｉｍ＝Ｄ＿ｎｅｔ＋Ｄ＿ｄｓｋ＿ｍｉｎ＋２×Ｔ＿ｍａｘ…（１）
上式（１）において、交換装置１での遅延許容値をＤ＿ｎｅｔ、記憶装置１０８での遅延限界値の最小値をＤ＿ｄｓｋ＿ｍｉｎとする。また、Ｔ＿ｍａｘとＴを比較した場合に、小さい方をＴ＿ｍｉｎとする。
【０１１１】
申告パラメータ処理部４０１は、Ｔ＿ｍｉｎの値から、必要な帯域量を算出する。読み出しの場合、申告パラメータ処理部４０１は、算出した帯域量を受付判断部４０３に通知する。書き込みの場合、申告パラメータ処理部４０１は、交換装置１からサーバユニット３への出入口の帯域として申告値を採用し、記憶装置１０８の処理能力の部分として、申告値に記憶装置毎に決められている一定値を乗じた数値（書き込み帯域算出部４０２にて計算される）を、ピーク提供速度として求める。受付判断部４０３は、交換装置１からサーバユニット３への入口側および出口側、ならびに記憶装置１０８において、ＧｅｔＲｅｓｏｕｒｃｅを受け付けた場合の獲得リソースの総和が一定以下となるかどうかを判断する。受け付けが可能な場合、受付判断部４０３は、その旨をリソース記憶部４０４に格納すると共に、リソース割り当て部１０２が管理するストリーム管理テーブルに情報を追加する。このとき、ストリーム管理テーブルの記述順序（Ｔ＿ｍｉｎが小さいものから大きいものの順）を乱さない位置に情報を追加する。
【０１１２】
（５）読み出し用リソースの確保
ＧｅｔＲｅｓｏｕｒｃｅメッセージが受け付けられ、かつ読み出し用のリソースが獲得されているユーザのために使用する、ＭＳ到着スロットの予約が行われる。ＭＳ到着スロットの予約は、一定時間おきに行われる。ストリーム管理テーブルに記述された順序（提供ストリームの速度が速いものから遅いものの順）で、時間区間Ｔ＿ｒｓｖの間のＭＳ到着スロットの予約が行われる。各Ｔ＿ｍｉｎの設定値に従って、予約が行われる。図４において、参照番号８０３〜８０６は、予約動作を行うタイミングを示しており、参照番号８０７は、時間区間Ｔ＿ｒｓｖを示している。予約スロットの決定方法を以下に示す。
【０１１３】
１）それぞれのユーザについて、Ｔ＿ｍｉｎの時間間隔でスロットを選択し、選択したスロットのそれぞれを期待スロットとする。
２）タイミング８０３〜８０６では、時間区間Ｔ＿ｒｓｖ内に、Ｔ＿ｍｉｎの時間間隔で、予約の期待スロットを決定する。
３）期待スロットに予約可能であれば、予約する。
４）期待スロットに予約できなければ、期待スロットの次のスロットを参照する。参照したスロットに予約可能であれば、予約する。予約できなければ、次のスロットを参照する。これを繰り返す。
５）予約する区間を外れてしまった場合にも、上記規則に従い、次の時間区間Ｔ＿ｒｓｖ内のスロットに、予約を行う。
【０１１４】
図４において、参照番号８０８〜８２０は、予約の期待スロットを示している。そして、参照番号８２１〜８３３は、実際に予約を行ったスロットを示している。新たにＧｅｔＲｅｓｏｕｒｃｅコマンドを受け付けたときには、Ｔ＿ｍｉｎの設定値に従って、既に予約されている区間のスロット予約を直ちに行う。スロットの予約方法は、これまでに説明した方法と同一とする。すべてのユーザについて、予約動作を行った時刻のＭＳ到着スロットで、予約されていないものについては、図５における非優先フラグをＯＮとする。
【０１１５】
なお、ＭＳ到着スロットの予約を、次の期待スロットが到来するタイミングが早いものから順番に行うようにしてもよい。この場合、ストリーム管理テーブルには、ＧｅｔＲｅｓｏｕｒｃｅを受け付けたユーザに関する情報が、次の期待スロットの到来するタイミングが早いものの順番で記述されている。ＭＳ到着スロットの予約が行われると、ストリーム管理テーブルの記述順序は更新される。
【０１１６】
（６）ブロック読み出し動作
外部からＲｅａｄＢｌｏｃｋメッセージが到着すると、その旨が、メッセージインターフェース部１０１を介して申告値管理部１１１に通知される。 ＲｅａｄＢｌｏｃｋメッセージは、以下の申告パラメータを持つ。
リソース記述子
ブロックのＲｅａｄ間隔
ＲｅａｄＢｌｏｃｋ到着からブロック送出までの遅延要求値Ｄ＿ｌｉｍ
ファイル識別子
ファイル内の位置情報
【０１１７】
申告値管理部１１１では、ユーザからのＲｅａｄＢｌｏｃｋコマンドによるブロックの取得要求間隔が、ＧｅｔＲｅｓｏｕｒｃｅによる申告通りとなっているかどうかを調べる。ＲｅａｄＢｌｏｃｋの到着時刻に、コマンドに付与された遅延要求値を加算した時刻が、ブロックの要求到着時刻となる。このブロックの要求到着時刻の間隔が、申告通りになっているかどうかを調べる。違反している場合には、違反通知を行う。また、遅延要求値が、小さ過ぎないことを確認する。すなわち、交換装置１での遅延許容値をＤ＿ｎｅｔとし、記憶装置１０８での遅延限界値の最小値をＤ＿ｄｓｋ＿ｍｉｎとして、次式（２）が成立する場合には、ユーザに対して違反通知を行う。
Ｄ＿ｌｉｍ＜Ｄ＿ｎｅｔ＋Ｄ＿ｄｓｋ＿ｍｉｎ＋２×Ｔ＿ｍｉｎ  …（２）一方、ＧｅｔＲｅｓｏｕｒｃｅによる申告通りとなっている場合には、スロット割り当て部１０３、アドレス検索部１０４、外部ネットワークＩ／Ｏ制御部１０６にＲｅａｄＢｌｏｃｋの到着が通知される。スロット割り当て部１０３では、要求された帯域で、連続的にデータブロックを提供できるように、ブロック読み出し要求送出間隔を決定する。ブロック読み出し要求送出により、ＭＳブロックを取得する間隔（ＭＳ到着間隔）は、平均間隔となるようにする。ブロック読み出し要求送出時刻に達したときに、それぞれのコマンドの遅延要求値をもとに、ＭＳ到着スロットの割り付けおよび遅延限界値算出を行う。
【０１１８】
ただし、同一サーバユニット内宛の場合には、スロットの割り付けは行わない。ブロック読み出し要求に付与する遅延限界値Ｄ＿ｄｓｋは、次式（３）のように規定される。
Ｄ＿ｄｓｋ＝Ｄ＿ｌｉｍ  …（３）
【０１１９】
他のサーバユニット宛の場合には、割り付けるスロットは、以下の方法で選択する。ブロック読み出し要求を送出する時刻をＴ＿ｒｅｑとする。次式（４）を満たす時刻Ｔの間で、このユーザのために予約されているスロットを割り付ける。予約されているスロットが複数存在する場合には、最も早い時刻を選択する。
Ｔ＿ｒｅｑ＋Ｄ＿ｌｉｍ−２×Ｔ＿ｍｉｎ＜ｔ≦Ｔ＿ｒｅｑ＋Ｄ＿ｌｉｍ  …（４）
【０１２０】
ブロック読み出し要求に付与する遅延限界値Ｄ＿ｄｓｋは、割り付けたスロットの時刻をｔ＿ａｒｖ、交換装置１での遅延許容値をＤ＿ｎｅｔとして、次式（５）で求められる。
Ｄ＿ｄｓｋ＝ｔ＿ａｒｖ−Ｔ＿ｒｅｑ−Ｄ＿ｎｅｔ  …（５）
【０１２１】
スロット割り当て部１０３は、要求送出部１０５に、遅延限界値をパラメータとした、ブロック読み出し要求の送出を指示する。スロット割り当て部１０３は、また、予約されたが、割り当てられなかった到着スロットをＯＮとする。図４において、矢印８３４〜８３８は、ＲｅａｄＢｌｏｃｋメッセージの到着を示している。参照番号８３９〜８４３は、それぞれのＲｅａｄＢｌｏｃｋメッセージに割り当てたＭＳ到着スロットを示している。矢印８４４〜８４８は、ブロック読み出し要求の送出の指示を行うタイミングを示している。要求送出部１０５では、アドレス検索部１０４により申告された宛先に、ブロック読み出し要求を送出する。内部メッセージインターフェース部１０７では、ブロック読み出し要求の送信を実行する。宛先となったサーバユニット３においては、内部メッセージインターフェース部１０７を介して内部ネットワーク制御部１１０に、ブロック読み出し要求が到着する。内部ネットワーク制御部１１０では、パラメータとして付与された遅延限界値をもとに、読み出したＭＳの送出を指示する時刻を算出し、記憶する。また、記憶制御部１０９に対してＭＳの読み出しを指示する。記憶制御部１０９では、記憶装置１０８より要求されたＭＳの読み出しを行う。内部ネットワークＩ／Ｏ制御部１１０では、記憶装置より読み出されたＭＳについて、ブロック読み出し要求が到着してから遅延限界値に示された時間の後に、サーバユニットから交換装置への出力を許可する。読み出されたＭＳは、内部メッセージインターフェース部１０７を介して外部ネットワークＩ／Ｏ制御部１０６に到着する。外部ネットワークＩ／Ｏ制御部１０６では、時刻Ｔ＿ｒｅｑ＋Ｄ＿ｌｉｍにユーザへの送出を指示する。図４において、参照番号８４９〜８５３は、ＭＳが外部ネットワークＩ／Ｏ制御部１０６に到着したタイミングを示し、参照番号８５４〜８５８は、ＭＳをユーザに送出するタイミングを示している。
【０１２２】
リソース記述子による指定がないＲｅａｄＢｌｏｃｋメッセージについては、図５における非優先フラグがＯＮとなっているスロットに割り当てを行い、ブロック読み出し要求を送出する。
【０１２３】
（７）ブロック書き込み動作
外部からＷｒｉｔｅＢｌｏｃｋコマンドと共に到着するストリームデータは、申告値管理部１１１において、ＧｅｔＲｅｓｏｕｒｃｅにより確保した帯域を越えて到着していないかどうかチェックされる。違反している場合には、違反通知が行われる。ＧｅｔＲｅｓｏｕｒｃｅにより確保した帯域の範囲内で到着している場合には、スロット割り当て部１０３において、ＭＳに分割され、アドレス検索部１０４において、宛先が決定され、ブロック書き込み要求として送出される。ここで、ブロック書き込み要求には、スロット割り当て部１０３にて、宛先となるサーバユニットの書き込み用スロットを必ず割り付ける。ブロック書き込み要求は、割り付けられた時刻に送出される。
【０１２４】
（第２の実施形態）
図９は、本発明の第２の実施形態に係るファイルシステムの構成を示すブロック図である。図９において、本ファイルシステムは、ファイルマネージャ９０１と、複数のＩ／Ｏユニット９０２と、複数のブロック格納ユニット９０５と、交換装置９０８とを備えている。
【０１２５】
ファイルマネージャ９０１は、ファイルシステム全体を管理する。すなわち、このファイルマネージャ９０１は、図１に示すファイルマネージャ２と同様の機能を有する。各Ｉ／Ｏユニット９０２は、ユーザからのファイルの読み出しや、書き込みの要求を受け付けて、ユーザに対して、ファイルシステムが管理する記憶装置から読み出したデータやメッセージを送信する。各ブロック格納ユニット９０５は、ファイルシステムが管理するデータを記憶する記憶装置を保持し、記憶装置からのデータの読み出しや書き込みを制御する。交換装置９０８は、ファイルマネージャ９０１、各Ｉ／Ｏユニット９０２、各ブロック格納ユニット９０５を接続し、データやメッセージのやりとりを制御する。
【０１２６】
本ファイルシステムが管理するデータは、ブロック格納ユニット９０５内に存在する記憶装置に格納されている。各Ｉ／Ｏユニット９０２におけるファイルアクセス部の構成は、図１０に示すようになっている。図１０に示した各ブロックの機能は、図２における同一名称のブロックの機能と同様である。各ブロック格納ユニット９０５におけるファイルアクセス部の構成は、図１１に示すようになっている。図１１に示した各ブロックの機能もまた、図２における同一名称のブロックと同様の機能を有している。すなわち、Ｉ／Ｏユニット９０２およびブロック格納ユニット９０５は、協働して、図１のサーバユニット３と同様の機能を果たしている。
【０１２７】
（第３の実施形態）
図１２は、本発明の第３の実施形態に係るファイルシステムの構成を示すブロック図である。図１２において、本ファイルシステムは、メッセージインターフェース部１２０１と、リソース管理部１２０２と、読み出し／書き込み制御部１２０３と、記憶装置１２０４と、申告値管理部１２０５とを備えている。
【０１２８】
メッセージインターフェース部１２０１は、ユーザからのメッセージの送受信を制御する。リソース管理部１２０２は、リソースの使用状況を管理する。読み出し／書き込み制御部１２０３は、記憶装置１２０４からの読み出しや書き込みを制御する。記憶装置１２０４には、データが格納されている。申告値管理部１２０５は、読み出し、書き込みメッセージのパラメータをチェックする。前述した第１の実施形態と同様に、図１２におけるファイルシステムにおいても、ＧｅｔＲｅｓｏｕｒｃｅメッセージによりリソースの確保を行う。リソース管理部１２０２は、記憶装置１２０４へのアクセス可能量と、現在の使用量とを管理している。
【０１２９】
以上、本発明をいくつかの実施形態について説明したが、本発明は上記各実施形態に限定されないのは勿論である。例えば、以下のようなことが言える。
（１）メッセージの名称は、一例を示したものであり、各実施形態で使用した名称に限定されない。また、その発行順序についても規定しない。
（２）各メッセージのパラメータは、関連する部分の一例を挙げており、これに限定されない。例えば、予めＧｅｔＲｅｓｏｕｒｃｅメッセージで確保する帯域量が決まっている場合には、Ｔは、パラメータとして与えず、システムで記憶していてもよい。
（３）記憶装置１０８は、物理的に複数に分かれている場合もあり得る。
（４）リソース管理部２０２では、処理能力の最大値および使用量を単位時間当たりの読み出しデータ量であるとしたが、この方法に限らない。単位時間当たりの書き込みデータ量にする方法や、読み出し、書き込み別に最大値を定める方法も考えられる。
【０１３０】
以上説明したように、第１〜第３の実施形態では、ＧｅｔＲｅｓｏｕｒｃｅメッセージを受け取ったときに、ファイルシステム内部の帯域を確保することによって、ファイルの読み出し、書き込みについて、遅延品質を保証することが可能となる。そして、確保した帯域を用いて複数のファイルの読み出しまたは書き込みを実現することにより、無駄な帯域を確保する必要がなく、ファイルシステム内部のリソースを有効利用することができる。
【０１３１】
また、書き込み時には、要求帯域に一定値を乗じたものを確保する帯域とすることにより、予め書き込み用と、読み出し用にファイルシステムの処理能力を分割しておく必要がなく、ユーザからの要求に応じて容易に比率を変えることができ、リソースを効率よく使用することができる。
【０１３２】
さらに、ゲットリソースメッセージにより申告された遅延時間を満たす帯域と、ゲットリソースメッセージの要求に従って確保すべき帯域との内、大きい方の帯域を確保可能かを判断して、帯域の割り当てを行うことにより、複数の遅延品質をサポートすることが可能となる。
【０１３３】
また、ブロック読み出し要求に対してＭＳ到着スロットを割り当てることにより、ブロック格納ユニットから交換装置に入力されるブロックの個数を時間的に平滑化することができる。その結果、複数のブロック格納ユニットから読み出されて交換装置に入力されるブロックが、Ｉ／Ｏユニットへの入力側でぶつかって交換装置内部で廃棄されることを回避することができる。また、ブロックのトラヒックの時間による変動を少なくすることができ、交換装置を効率よく利用することが可能となる。
【０１３４】
また、ＭＳ到着スロットの予約を、確保された帯域が大きいものから小さいものの順で行うことにより、すべての帯域の遅延品質を保証しつつ、各スロットの最大登録数を一定にして、スロットを１００％利用することが可能となる。このとき、要求送出数の時間変動はなくなり、最も効率良く交換装置を利用することが可能となる。
【０１３５】
さらに、使用しないＭＳ到着スロットを、リソースの獲得を行っていないユーザからのデータの読み出しに割り当てることにより、さらにファイルシステムの使用効率を向上させることが可能となる。
【０１３６】
例えばビデオサーバのように、大規模でかつ連続性を要求されるデータを扱うファイルシステムにおいては、通常、複数の記憶装置が設けられ、１つのファイルのデータが各記憶装置に分散して格納されている。このような状況下では、１つのファイルシステムに対して、帯域や記憶容量（以下、単に容量と称する）の異なる記憶装置が複数個設けられた場合、入出力帯域の制御が問題となる。従来は、各記憶装置が持つ能力（帯域、容量）の差を考慮した制御をしていなかったため、各記憶装置の能力を効率的に活用することができなかった。そこで、以下には、容量や入出力帯域の異なる複数の記憶装置の制御を容易にし、しかも要求される入出力帯域に合わせて記憶装置の使用効率を最適化できるようなディスク管理装置およびそれを用いたファイルシステムについて説明する。
【０１３７】
（第４の実施形態）
図１３は、本発明の第４の実施形態に係るディスク管理装置の構成を示すブロック図である。図１３において、本ディスク管理装置１３００は、ディスク帯域管理部１３０１と、ディスク容量管理部１３０２と、分配比率決定部１３０３と、帯域計算部１３０４と、容量計算部１３０５と、全ディスク帯域制御部１３０６と、全ディスク容量制御部１３０７とを備えている。
【０１３８】
ディスク帯域管理部１３０１は、ファイルシステムに設けられた各記憶装置の入出力帯域を管理している。ディスク容量管理部１３０２は、ファイルシステムに設けられた各記憶装置の容量を管理している。分配比率決定部１３０３は、ファイルシステムで規定されたアルゴリズムに従って、各記憶装置にデータを分配する比率を決定する。帯域計算部１３０４は、ディスク帯域管理部１３０で管理している各記憶装置の帯域に、分配比率決定部１３０３で決定された分配比率の逆数を掛けた値の中で、最も値が小さいものを、全記憶装置をまとめた場合の帯域として計算する。容量計算部１３０５は、ディスク容量管理部１３０２で管理している各記憶装置の容量に、分配比率決定部１３０３で決定された分配比率の逆数を掛けた値の中で、最も値が小さいものを、全記憶装置をまとめた場合の容量として計算する。全ディスク帯域制御部１３０６は、分配比率決定部１３０３と帯域計算部１３０４とによって決められた入出力帯域に基づき、全記憶装置の帯域制御を行う。全ディスク容量制御部１３０７は、分配比率決定部１３０３と容量計算部１３０５とによって決められた容量に基づき、全記憶装置の容量制御を行う。
【０１３９】
以上のように構成されたディスク管理装置１３００について、その動作を以下に説明する。まず、分配比率決定部１３０３で実行される帯域設定アルゴリズムの一例について説明する。
【０１４０】
図１４は、記憶装置の帯域に比例してデータを分配する比率を決定する、帯域優先レイアウトについて示している。例えば、容量と帯域とが異なる３つの記憶装置がある場合に、各記憶装置へのデータの分配を、帯域に比例して行うと、各記憶装置への分配の比率は、図１４に示す分配比率の値になる。また、分配比率の逆数を各記憶装置の帯域に掛けた値を実効帯域とし、分配比率の逆数を各記憶装置の容量に掛けた値を実効容量とする。また、全記憶装置まとめた場合の帯域を、各記憶装置の実効帯域の中で最も値が小さいもの、全記憶装置まとめた場合の容量を、各記憶装置の実効容量の中で最も値が小さいものと定義する。すると、全記憶装置まとめた場合は、帯域が６Ｍｂｐｓ、容量が６ＧＢの記憶装置と等価と見なすことができる。
【０１４１】
図１５は、記憶装置の容量に比例してデータを分配する比率を決定する、容量優先レイアウトについて示している。例えば、容量と帯域とが異なる３つの記憶装置がある場合に、各記憶装置へのデータの分配を、容量に比例して行うと、各記憶装置への分配の比率は、図１５に示す分配比率の値になる。また、分配比率の逆数を各記憶装置の帯域に掛けた値を実効帯域とし、分配比率の逆数を各記憶装置の容量に掛けた値を実効容量とする。また、全記憶装置まとめた場合の帯域を、各記憶装置の実効帯域の中で最も値が小さいもの、全記憶装置まとめた場合の容量を、各記憶装置の実効容量の中で最も値が小さいものと定義する。すると、全記憶装置まとめた場合は、帯域が４Ｍｂｐｓ、容量が８ＧＢの記憶装置と等価と見なすことができる。
【０１４２】
図１６は、帯域優先レイアウトと容量優先レイアウトとを混在させてデータを分配する比率を決定する、帯域設定レイアウトについて示している。例えば、容量と帯域とが異なる３つの記憶装置がある場合に、各記憶装置への分配を、帯域優先レイアウトの比率がα、容量優先レイアウトの比率が（１−α）で実行すると、各記憶装置への分配の比率は、図１６に示す分配比率の値になる。また、分配比率の逆数を各記憶装置の帯域に掛けた値を実効帯域とし、分配比率の逆数を各記憶装置の容量に掛けた値を実効容量とする。また、全記憶装置まとめた場合の帯域を、各記憶装置の実効帯域の中で最も値が小さいもの、全記憶装置まとめた場合の容量を、各ディスクの実効容量の中で最も値が小さいものと定義する。このとき、全ての記憶装置の実効帯域が５Ｍｂｐｓを越えるように指示された場合は、αが３／５以上であることが必要である。今、αを３／５に設定すると、全記憶装置まとめた場合は、帯域が５Ｍｂｐｓ、容量が２０／３ＧＢの記憶装置と等価と見なすことができる。
【０１４３】
次に、図１３に示すディスク管理装置全体の動作について説明する。予めディスク帯域管理部１３０１には、ファイルシステムに接続された各記憶装置の帯域が設定されている。また、予めディスク容量管理部１３０２には、ファイルシステムに接続された各記憶装置の容量が設定されている。ファイルシステムとして必要とされる帯域が指示されると、分配比率決定部１３０３は、ディスク帯域管理部１３０１に設定されている各記憶装置の帯域の情報と、ディスク容量管理部１３０２に設定されている各記憶装置の容量の情報とに基づき、上記の帯域設定アルゴリズムに従って、帯域計算部１３０４および容量計算部１３０５によって記憶装置全体としての帯域と容量を計算させる。実際にデータの入出力要求が発生すると、全ディスク帯域制御部１３０６は、帯域計算部１３０４で計算した記憶装置全体としての帯域によって、各記憶装置の入出力の帯域制御を行う。また、全ディスク容量制御部１３０７は、容量計算部１３０５で計算した記憶装置全体としての容量によって、各記憶装置の入出力の容量制御を行う。
【０１４４】
なお、上記第４の実施形態において個々に扱っている複数の記憶装置を、論理的に１つの記憶装置と見なしたものに置き換えて処理することも可能である。
また、上記第４の実施形態においては、全記憶装置をまとめて処理しているが、まとめる対象を全部の記憶装置ではなく一部の記憶装置に限定しても良い。
【０１４５】
このように、入出力帯域、容量の異なる記憶装置を組み合わせて使用する場合に、個々の記憶装置を意識することなく、複数の記憶装置をまとめて帯域、容量の管理を行うことによって、管理が容易となり、また要求される帯域に合わせて使用効率を最適化することができる。
【０１４６】
（第５の実施形態）
図１７は、図１３に示すディスク管理装置を用いたファイルシステムの構成を示すブロック図である。図１７において、本ファイルシステムは、記憶装置１７０８ａ，１７０８ｂと、ファイル属性管理部１７０９と、帯域管理部１７１０と、ファイルオープン処理部１７１１と、帯域獲得部１７１２と、入出力制御部１７１３とを備えている。
【０１４７】
ハードディスク、ＣＤ−ＲＯＭ、ＭＯＤ、ＤＶＤ、半導体メモリ等の記憶媒体を含む記憶装置１７０８ａ，１７０８ｂには、各ファイルのデータが、それぞれ分散して格納されている。ファイル属性管理部１７０９は、ファイルの属性として帯域特性を管理している。帯域管理部１７１０は、図１３に示すディスク管理装置１３００の機能をその一部に含み、ファイルシステムの入出力帯域を管理している。ファイルオープン処理部１７１１は、データファイルのオープン処理を行う。帯域獲得部１７１２は、データ入出力に使用する帯域の獲得を行う。入出力制御部１７１３は、ファイルオープン処理部１７１１でオープンした複数のファイルに、帯域獲得部１７１２で獲得した帯域を組み合わせて、複数のファイルから任意のファイルデータを選んで入出力を行う。
【０１４８】
実際は、上記以外にも、帯域特性以外のファイル属性を管理する機能、入出力データを送受信する機能など、種々の構成要素を必要とするが、本発明とは直接の関係がないので、その説明を省略する。
【０１４９】
以上のように構成された第５の実施形態のファイルシステムについて、その動作を以下に説明する。
まず、ディスク管理装置１３００は、前述した帯域設定アルゴリズムに従って、各記憶装置へのファイルデータの分配比率を計算する。この分配比率は、レイアウトプロファイル情報中に記述され、ファイルの属性の帯域特性としてファイル属性管理部１７０９に格納される。
【０１５０】
今、ビデオデータを記録した第１のファイルと、音声データを記録した第２のファイルとが存在するものとする。第１のファイルの帯域特性は、入出力に必要な帯域が６Ｍｂｐｓであり、そのレイアウトプロファイルは、記憶装置１７０８ａ，１７０８ｂに均等に分配されている。第２のファイルの帯域特性は、入出力に必要な帯域が０．５Ｍｂｐｓであり、そのレイアウトプロファイルは、記憶装置１７０８ａ，１７０８ｂに均等に分配されている。
【０１５１】
このとき、記憶装置１７０８ａおよび１７０８ｂには、第１および第２のファイルのデータが、それぞれ均等に分配されて格納されている。ファイル属性管理部１７０９は、第１および第２のファイルの帯域特性を管理している。
【０１５２】
ファイルオープン処理部１７１１は、ユーザから第１のファイルのファイルオープン要求コマンドを受け取ると、所定のオープン処理を行って、ファイル属性管理部１７０９から対応する帯域特性を取得する。また、ファイルオープン処理部１７１１は、ユーザから第２のファイルのファイルオープン要求コマンドを受け取ると、所定のオープン処理を行って、ファイル属性管理部１７０９から対応する帯域特性を取得する。
【０１５３】
次に、帯域獲得部１７１２は、ユーザから帯域獲得要求コマンドを受け取ると、ファイルオープン処理部１７１１が取得した帯域特性に従って、第１および第２のファイルを同時に読み出すために必要な帯域を、帯域管理部１７１０から獲得する。
【０１５４】
次に、入出力制御部１７１３は、ユーザから読出要求コマンドを受け取ると、ファイルオープン処理部１７１１がオープンした第１および第２のファイルに、帯域獲得部１７１２が獲得した帯域を分割して個別的に割り当て、第１のファイルのビデオデータと、第２のファイルの音声データとを、同期を取りながら記憶装置１７０８ａおよび１７０８ｂから同時に読み出す。これによって、映像と音声との同期が取れたストリームデータが作成される。
【０１５５】
なお、上記第５の実施形態においては、各ファイルのデータは、記憶装置１７０８ａおよび１７０８ｂに均等に分配されているが、記憶装置の帯域、容量に応じて偏って分配することも可能である。
【０１５６】
また、上記第５の実施形態においては、帯域特性の異なる２つファイルのデータを、２つのファイルの帯域特性を加算した帯域を用いて、同時に読み出しているが、複数のファイルのデータを、いずれか１つのファイルの帯域特性により決まる帯域（最も大きい帯域）を用いて、交互に読み出すようにしても良い。このように、複数のファイルのデータを、１つの帯域を用いて交互に読み出すことにより、ＡＶ同期などのアプリケーションの作成を容易にすることができる。
【０１５７】
ところで、ファイルシステムの一例として、複数のクライアントに映像情報を提供する形態の映像情報提供システムでは、一般に、各クライアントにおいて、送信された情報を一時記憶するためのバッファが設けられている。各クライアントは、それぞれのバッファの容量と、受信する映像のビットレートで定まる周期で、ファイルシステム内のサーバにサービスリクエストを送信し、当該サーバは、サービスリクエストに応じて、所定の量の映像情報を、各クライアントに送信する。しかしながら、サーバには、一度に送信可能な情報量の上限があるため、サービスリクエストが競合する場合、映像の不連続が発生することのないよう、各クライアントからのサービスリクエストのスケジューリングを行う必要がある。
【０１５８】
そのため、従来の映像情報提供システムにおけるサーバには、周期的に処理することが求められるサービスリクエストのスケジューリングを行うためのスケジューリング装置が設けられている。従来のスケジューリング装置としては、特公平７−１０４７９２号公報に記載されたものが知られている。この装置は、スケジュール制御プログラムが、各タスク毎でかつ優先順位毎に、優先順位対応処理待ちキューを設けるようにし、これにより、より優先順位の高い処理を先に実行し得るようにするものである。
【０１５９】
上記従来のスケジューリング装置を用いて、優先度の高いクライアント、すなわち、サービスリクエストを送信する周期がより短いクライアントからのサービスリクエストが優先して実行されるようにすることにより、遅延が発生する回数を少なくすることができ、従って、映像の不連続が発生する頻度を低くすることができる。
【０１６０】
しかしながら、上記従来のスケジューリング装置は、より短い周期で送信される、優先順位が上位のクライアントからのサービスリクエストを、常に優先して実行させるため、下位のクライアントからのものが、長時間、実行されない場合がある。
【０１６１】
しかも、上記下位のクライアントからのサービスリクエストが実行されるまでの時間は、他のクライアントからのサービスリクエストの個数により変動する。このため、上記下位のクライアント側で、遅延時間を考慮に入れた周期でサービスリクエストの送信を行うようにして、映像の不連続が発生するのを防ぐことができない。
【０１６２】
また、全クライアントから送信されるサービスリクエストの個数の時間的な平均が、サーバの処理能力を超えている場合には、時間の経過とともに、処理しきれずに残されるサービスリクエストの数が増加する。この場合、当然ながら、どのような順序でサービスリクエストを実行させても、映像の不連続が発生するのを防ぐことができない。
【０１６３】
また、複数のサーバが、共通の伝送路を介して、クライアントに映像情報を提供する形態の映像情報提供システムでは、伝送路に、一度に伝送可能な情報量の上限があるため、各サーバへのサービスリクエストのスケジューリングを行う必要がある。そこで、上記従来のスケジューリング装置を用いてスケジューリングを行った場合、上記と同様の課題が生じる。
【０１６４】
そこで、以下には、サーバから複数のクライアントに、映像情報などの連続した情報が分割して提供される際、情報の不連続が発生しないよう、各クライアントからのサービスリクエストのスケジューリングを行うことができるスケジューリング装置について説明する。
【０１６５】
また、複数のサーバからクライアントに、連続した情報が分割して提供される際、情報の不連続が発生しないよう、各サーバへのサービスリクエストのスケジューリングを行うことができるスケジューリング装置について説明する。
【０１６６】
（第６の実施形態）
以下、本発明の第６の実施形態について、図面を参照しながら説明する。
図１８は、本発明の第６の実施形態に係るスケジューリング装置の構成を示すブロック図である。図１８の装置は、登録指示部１８１１、実行権発生周期テーブル１８１２、実行権発生部１８１３、処理待ちキュー１８１４および実行指示部１８１５を備えている。実行指示部１８１５は、実行権キュー１８１６を含む。
【０１６７】
図１９は、図１８のスケジューリング装置を用いた、映像情報提供システムの構成を示すブロック図である。図１９のシステムは、ファイルシステムの一例の映像情報提供装置１９２０および複数のクライアント（１〜ｎ）１９２１で構成される。映像情報提供装置１９２０は、スケジューリング装置１８１０およびサーバ１９２２を含む。
【０１６８】
図１９のクライアント（１〜ｎ）１９２１はそれぞれ、映像情報提供装置１９２０のサーバ１９２２に、周期的に読み出し要求を送信する。クライアント（１〜ｎ）１９２１にはバッファおよびモニタが設けられており、クライアント（１〜ｎ）１９２１は、提供される映像情報をこのバッファに一時蓄え、蓄えた情報を読み出しながら、モニタに映像を表示する。スケジューリング装置１８１０は、サーバ１９２２から、クライアント（１〜ｎ）１９２１に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う。サーバ１９２２は、スケジューリング装置１８１０の指示に応じて、クライアント（１〜ｎ）１９２１に、映像情報を所定の量ずつ送信する。
【０１６９】
図１８の登録指示部１８１１は、図１９のクライアント（１〜ｎ）１９２１からの申告を受けて、クライアント（１〜ｎ）１９２１毎の、実行権を発生させるべき周期を、実行権発生周期テーブル１８１２に指示して登録させる。実行権発生周期テーブル１８１２は、実行権を発生させるべき周期を登録する。実行権発生部１８１３は、所定の周期（以下、Ｔｓｌｔ）で起動され、実行権発生周期テーブル１８１２に登録された周期に基づいて、クライアント（１〜ｎ）１９２１毎の実行権を発生させる。実行権発生部１８１３はまた、発生させた実行権に、優先度を示す評価指数（以下、Ｎｓｆｔ）を付与する。処理待ちキュー１８１４は、クライアント（１〜ｎ）１９２１からの読み出し要求をキューイングする。実行指示部１８１５は、周期Ｔｓｌｔで起動され、処理待ちキュー１８１４にキューイングされている読み出し要求のうち、実行権発生部１８１３が発生させた実行権に対応するクライアント１９２１からの読み出し要求を取得して、その読み出し要求を実行するよう、サーバ１９２２に指示する。
【０１７０】
図２０は、図１９の映像情報提供装置１９２０とクライアント（１〜ｎ）１９２１との間で、信号が送受信される様子を示すシーケンス図である。図２０のリソース獲得要求３１は、送信元のクライアント１９２１を識別するための情報（以下、クライアントＩＤ）と、読み出しを希望する映像情報名および読み出し位置とを通知するために、クライアント（１〜ｎ）１９２１が映像情報提供装置１９２０に送信する信号である。リソース獲得要求３１には、さらに、クライアント（１〜ｎ）１９２１がそれぞれ希望する、読み出し要求を送信する周期、すなわち、上記実行権を発生させるべき周期（以下、Ｔｒｅｑ）が含まれる。リソース獲得応答３２は、希望されたＴｒｅｑで、映像情報を提供できるか否かを通知するために、映像情報提供装置１９２０がクライアント（１〜ｎ）１９２１に送信する信号である。
【０１７１】
読み出し要求３３は、読み出しを希望する際に、クライアント（１〜ｎ）１９２１が映像情報提供装置１９２０に送信する信号である。読み出し応答３４は、読み出し要求３３に応じて、映像情報提供装置１９２０がクライアント（１〜ｎ）１９２１に送信する映像情報である。リソース開放要求３５は、希望する映像情報の読み出しが完了したことを通知するために、クライアント（１〜ｎ）１９２１が映像情報提供装置１９２０に送信する信号であって、クライアントＩＤが含まれる。リソース解放応答３６は、リソース開放要求３５に応じて、映像情報の提供を停止することを通知するために、映像情報提供装置１９２０がクライアント（１〜ｎ）１９２１に送信する信号である。
【０１７２】
図２１は、図１８の実行権発生周期テーブル１８１２の登録内容を示す図である。図２１に示すように、実行権発生周期テーブル１８１２は、クライアント（１〜ｎ）１９２１毎のクライアントＩＤ、Ｔｒｅｑおよび実行権発生周期オフセット（以下、Ｔｏｆｓ）を登録する。
図２２は、図１８の処理待ちキュー１８１４のキューイング内容を示す図である。図２２に示すように、処理待ちキュー１８１４は、クライアント（１〜ｎ）１９２１からの読み出し要求を、クライアント（１〜ｎ）１９２１毎に、キューイングする。
【０１７３】
図２３は、図１８の実行権キュー１８１６のキューイング内容を示す図である。図２３に示すように、実行権キュー１８１６は、発生された実行権を、付与されたＮｓｆｔ毎に、キューイングする。
図２４は、図１８の実行権発生部１８１３が、実行権を発生させる動作を説明するためフローチャートである。
【０１７４】
図２５は、図１８の実行指示部１８１５が、図１９のサーバ１９２２に、読み出し要求の実行を指示する動作を説明するためのフローチャートである。
【０１７５】
以下には、図１９のスケジューリング装置１８１０が、サーバ１９２２から、複数のクライアント（１〜ｎ）１９２１に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う動作について、図１８〜２５を参照しながら説明する。
最初、図１８の登録指示部１８１１が、実行権発生周期テーブル１８１２に指示して、クライアントＩＤ、ＴｒｅｑおよびＴｏｆｓを登録させる動作について説明する。
【０１７６】
いま、実行権発生周期テーブル１８１２には、複数のクライアント１９２１のクライアントＩＤ、ＴｒｅｑおよびＴｏｆｓが、すでに登録されているものとする。この時、他のクライアント１９２１が、図２０のリソース獲得要求３１を送信することにより、自己のクライアントＩＤおよびＴｒｅｑを映像情報提供装置１９２０に申告する。
【０１７７】
登録指示部１８１１は、サーバ１９２２の情報提供能力、すなわち、周期Ｔｓｌｔに等しい時間内にサーバ１９２２が実行可能な読み出し要求の最大数（以下、Ｎｍａｘ）を認識しており、すでに登録されているものに加えて、申告されたＴｒｅｑが登録された場合、発生される実行権のＴｓｌｔ当たりの平均数と、Ｎｍａｘとを比較することにより、サーバ１９２２が、時間的に平均して、情報を提供できるか否かを判定する。
【０１７８】
情報を提供できると判定した場合、登録指示部１８１１は、申告されたクライアントＩＤおよびＴｒｅｑを、実行権発生周期テーブル１８１２に指示して登録させ、また、Ｔｏｆｓの初期値として、"０"を登録させる。そして、登録指示部１８１１は、リソース獲得応答３２を送信することにより、申告されたＴｒｅｑで映像情報を提供できることを、リソース獲得要求３１の送信元のクライアント１９２１に通知する。
【０１７９】
情報を提供できないと判定した場合には、登録指示部１８１１は、リソース獲得応答３２を送信することにより、申告されたＴｒｅｑで情報を提供できないことを、送信元のクライアント１９２１に通知する。
【０１８０】
次に、図１８の実行権発生部１８１３が、実行権発生周期テーブル１８１２に登録されたＴｒｅｑおよびＴｏｆｓに基づいて、実行権を発生させる動作について、図２４を参照しながら説明する。なお、実行権発生周期テーブル１８１２には、複数のクライアント１９２１のクライアントＩＤ、ＴｒｅｑおよびＴｏｆｓが、上記のようにして登録されているものとする。
【０１８１】
実行権発生部１８１３は、最初、実行権発生周期テーブル１８１２に登録されたクライアントＩＤ、ＴｒｅｑおよびＴｏｆｓを一組取り出す（ステップＳ１）。次に、実行権発生部１８１３は、取り出したＴｏｆｓと、自己の動作の周期Ｔｓｌｔとを比較する（ステップＳ２）。
Ｔｏｆｓ≧Ｔｓｌｔである場合、実行権発生部１８１３は、ステップＳ９に進む。
【０１８２】
Ｔｏｆｓ＜Ｔｓｌｔである場合には、実行権発生部１８１３は、読み出したクライアントＩＤに対応するクライアント１９２１からの読み出し要求が、処理待ちキュー１８１４にキューイングされているか否かを判定する（ステップＳ３）。
キューイングされている場合、実行権発生部１８１３は、実行権を発生させるとともに、その読み出し要求に実行権が割り当てられたことを示す情報を付与する一方、次式（６）により、新たなＴｏｆｓを算定する（ステップＳ４）。
【０１８３】
Ｔｏｆｓ＝Ｔｏｆｓ＋Ｔｒｅｑ  …（６）
キューイングされていない場合には、実行権発生部１８１３は、ステップＳ９に進む。
【０１８４】
次に、実行権発生部１８１３は、算定して得た新たなＴｏｆｓと、Ｔｓｌｔとを比較する（ステップＳ５）。
Ｔｏｆｓ＜Ｔｓｌｔである場合、実行権発生部１８１３は、発生させた実行権に、評価指数として、Ｎｓｆｔ＝０を付与する（ステップＳ６）。発生された実行権を、実行指示部１８１５が、実行権キュー１８１６に指示して、Ｎｓｆｔの値が一致するキューの最後尾にキューイングさせると（ステップＳ７）、実行権発生部１８１３は、ステップＳ２に戻る。
【０１８５】
Ｔｏｆｓ≧Ｔｓｌｔである場合には、実行権発生部１８１３は、発生させた実行権に、評価指数として、次式（７）により算定されるＮｓｆｔを付与し（ステップＳ８）、ステップＳ７に進む。
Ｎｓｆｔ＝ｆ（Ｔｒｅｑ／Ｔｓｌｔ）  …（７）
ただし、上式（７）において、ｆ（ｘ）はｘ以上の最小の整数である。
【０１８６】
ステップＳ２で、Ｔｏｆｓ≧Ｔｓｌｔである場合、実行権発生部１８１３は、次式（８）により、新たなＴｏｆｓを算定する（ステップＳ９）。
Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔ  …（８）
【０１８７】
次に、実行権発生部１８１３は、算定して得た新たなＴｏｆｓが、Ｔｏｆｓ≧０であるか否かを判定する（ステップＳ１０）。
Ｔｏｆｓ≧０である場合、実行権発生部１８１３は、実行権発生周期テーブル１８１２に指示して、Ｔｏｆｓを、算定して得た新たなＴｏｆｓに更新させる（ステップＳ１１）。
【０１８８】
Ｔｏｆｓ＜０である場合には、実行権発生部１８１３は、Ｔｏｆｓを、０に更新させる（ステップＳ１２）。
【０１８９】
次に、実行権発生部１８１３は、実行権発生周期テーブル１８１２に登録されている全てのクライアントＩＤ、ＴｒｅｑおよびＴｏｆｓを取り出したか否かを判定する（ステップＳ１３）。
全て取り出したと判定した場合、実行権発生部１８１３は、動作を停止し、取り出すべきものがあると判定した場合には、ステップＳ１に戻る。
【０１９０】
次に、図１８の実行指示部１８１５が、上記のようにして発生された実行権に基づいて、サーバ１９２２に対して、キューイングされている読み出し要求の実行を指示する動作について、図２５を参照しながら説明する。
実行指示部１８１５は、サーバ１９２２に実行を指示した回数をカウントしており、カウントして得たカウント値Ｃを記憶している。実行指示部１８１５は、最初、このカウント値Ｃを初期化する（ステップＳ２１）。
【０１９１】
次に、実行指示部１８１５は、実行権キュー１８１６にキューイングされている実行権のうち、Ｎｓｆｔの値が最小のキューにキューイングされている実行権の先頭のもの、すなわち、付与されたＮｓｆｔが最小で、かつ、発生されてからの経過時間が最も長いものを取り出し（ステップＳ２２）、次いで、カウント値Ｃをインクリメントする（ステップＳ２３）。
【０１９２】
次に、実行指示部１８１５は、取り出した実行権に付与されたクライアントＩＤを参照して、処理待ちキュー１８１４から、その実行権に対応するクライアント１９２１からの読み出し要求を取り出して、サーバ１９２２に実行を指示する（ステップＳ２４）。そして、実行指示部１８１５は、インクリメントして得たカウント値Ｃを、Ｎｍａｘと比較する（ステップＳ２５）。
【０１９３】
Ｃ＜Ｎｍａｘである場合、実行指示部１８１５は、ステップＳ２２に戻り、Ｃ≧Ｎｍａｘである場合には、実行権キュー１８１６に指示して、残された実行権のＮｓｆｔの値をそれぞれディクリメントさせ（ステップＳ２６）、その後、処理を終了する。
【０１９４】
上記のようにして実行の指示を受けたサーバ１９２２は、指示を受けてから、ある一定の時間が経過した後、指定された映像情報を、読み出し要求の送信元であるクライアント１９２１に送信する。クライアント１９２１は、必要な映像情報の受け取りを完了すると、図２０のリソース解放要求３５を送信することにより、受け取りが完了した意を、映像情報提供装置１９２０に通知する。リソース解放要求３５には、送信元のクライアント１９２１のクライアントＩＤが付与されており、リソース解放要求３５を受信した登録指示部１８１１は、実行権発生周期テーブル１８１２から、付与されたクライアントＩＤと、そのクライアントＩＤに対応するＴｒｅｑおよびＴｏｆｓとを削除する。
【０１９５】
上記のように、本実施形態によれば、サーバ１９２２から、複数のクライアント（１〜ｎ）１９２１に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う際、処理待ちキュー１８１４は、各クライアント（１〜ｎ）１９２１からの読み出し要求をキューイングする。実行権発生周期テーブル１８１２は、クライアント（１〜ｎ）１９２１毎の、実行権を発生させるべき周期Ｔｒｅｑを登録し、実行権発生部１８１３は、実行権発生周期テーブル１８１２に登録された周期に基づいて、実行権を発生させる。実行指示部１８１５は、処理待ちキュー１８１４にキューイングされている読み出し要求のうち、実行権発生部１８１３が発生させた実行権に対応するクライアント１９２１からの読み出し要求を取得して、サーバ１９２２に実行を指示する。
【０１９６】
このように、各クライアント（１〜ｎ）１９２１からの読み出し要求をキューイングする一方、クライアント（１〜ｎ）１９２１毎の、実行権を発生させるべき周期を登録しておいて、その周期に基づいて、実行権を発生させる。そして、キューイングしている読み出し要求のうち、発生させた実行権に対応するクライアント１９２１からのものを、サーバ１９２２に指示して実行させる。これにより、あるクライアント１９２１からの読み出し要求が実行されるまでの時間が、他のクライアント１９２１からの読み出し要求の送信の状況に影響されることがなくなり、従って、送信された読み出し要求が実行されるまでの時間が不定となるのを防ぐことができる。
【０１９７】
また、実行権発生部１８１３は、周期Ｔｓｌｔで起動され、実行権発生周期テーブル１８１２を参照して、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、Ｔｏｆｓ＜Ｔｓｌｔであるクライアント１９２１の実行権を発生させる。さらに、当該クライアント１９２１のＴｏｆｓにＴｒｅｑを加算し、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔである場合、当該Ｔｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定し、算定して得たＴｏｆｓを、実行権発生周期テーブル１８１２に指示して登録させる。
【０１９８】
加算して得たＴｏｆｓが、Ｔｏｆｓ＜Ｔｓｌｔである場合には、実行権発生部１８１３は、さらに、実行権を発生させるとともに、ＴｏｆｓにＴｒｅｑを加算してＴｓｌｔと比較する動作を繰り返す。そして、加算して得たＴｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔとなった時点で、そのＴｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定し、算定して得たＴｏｆｓを、実行権発生周期テーブル１８１２に指示して登録させる。
【０１９９】
なお、起動された現時刻から、次の実行権を発生させる時刻までの時間Ｔｏｆｓが、Ｔｏｆｓ≧Ｔｓｌｔであるか、または、読み出し要求が、処理待ちキュー１８１４にキューイングされていないクライアント１９２１については、実行権を発生させず、そのＴｏｆｓに対して、式Ｔｏｆｓ＝Ｔｏｆｓ−Ｔｓｌｔにより、新たなＴｏｆｓを算定し、算定して得たＴｏｆｓを、実行権発生周期テーブル１８１２に指示して登録させる。
【０２００】
算定して得たＴｏｆｓが、Ｔｏｆｓ＜０である場合には、実行権発生部１８１３は、Ｔｏｆｓ＝０を、実行権発生周期テーブル１８１２に指示して登録させる。
【０２０１】
このように、実行権発生部１８１３は、周期Ｔｓｌｔで起動され、起動されると、実行権発生周期テーブル１８１２に登録されたＴｒｅｑと、Ｔｓｌｔとに基づいて、Ｔｏｆｓ、すなわち、起動された現時刻から、次の実行権を発生させる時刻までの時間を算定し、算定して得たＴｏｆｓと、Ｔｓｌｔとを比較することにより、実行権を発生させるべきクライアント１９２１を判定して、実行権を発生させる。さらに、実行権発生部１８１３は、ＴｏｆｓにＴｒｅｑを加算して、Ｔｓｌｔと比較する動作を繰り返すことにより、複数の実行権を発生させべきクライアント１９２１を判定して、必要な数の実行権を発生させる。実行権発生部１８１３は、これらの動作を、起動時に一括して行うことにより、実行権発生周期テーブル１８１２に登録された周期Ｔｒｅｑで実行権を発生させるのに比べて、実行権発生部１８１３の処理動作を軽減できる。
【０２０２】
また、読み出し要求がキューイングされていないクライアント１９２１については、実行権を発生させないことにより、読み出し要求を送信しなかったクライアント１９２１に、映像情報が提供されないようにすることができる。
【０２０３】
また、算定して得た新たなＴｏｆｓが、Ｔｏｆｓ＜０である場合には、Ｔｏｆｓ＝０を登録させることにより、読み出し要求がキューイングされていないクライアント１９２１のＴｏｆｓが、繰り返しＴｓｌｔを減算されて小さな値となり、読み出し要求がキューイングされた時点で、そのクライアント１９２１の実行権が多数発生されるのを防ぐことができる。
【０２０４】
さらに、実行権発生部１８１３は、上記のようにして発生させた実行権に、上記の式（７）により算定される評価指数Ｎｓｆｔを付与する。実行指示部１８１５は、実行権発生部１８１３が発生させた実行権をキューイングする実行権キュー１８１６を含んでおり、発生された実行権を、このキューに指示して、評価指数毎でかつ発生された順にキューイングさせる。そして、実行指示部１８１５は、キューイングされている実行権のうち、付与された評価指数Ｎｓｆｔがより小さく、かつ、より先に発生された実行権を選択して、その実行権に対応するクライアント１９２１からの読み出し要求の実行を、サーバ１９２２に指示する。
【０２０５】
実行指示部１８１５は、周期Ｔｓｌｔに等しい時間内にサーバ１９２２が実行可能な読み出し要求の最大数Ｎｍａｘを認識しており、このＮｍａｘに等しい個数だけ、実行を指示した時点で、実行の指示を停止し、かつ、実行権キュー１８１６に指示して、残された実行権の評価指数Ｎｓｆｔをディクリメントさせる。
【０２０６】
このように、実行権発生部１８１３が、発生させた実行権に、実行権を発生させるべき周期の関数として算定した、優先度を示す評価指数を付与し、実行指示部１８１５は、付与された評価指数に基づいて、優先されるべき実行権を選択して、実行を指示する。そして、実行指示部１８１５は、Ｎｍａｘ個の読み出し要求の実行を指示した時点で、実行の指示をいったん停止し、さらに、残された実行権については、その評価指数をディクリメントして、優先度をより高くする。
【０２０７】
これにより、実行指示部１８１５は、起動された現時刻から、次の実行権が発生される時刻までの時間が、より短いクライアント１９２１の実行権を、優先して選択することができ、従って、遅延が発生する回数をより少なくできる。また、処理能力を超える数の読み出し要求を、サーバ１９２２に実行させるのを防ぐことができるとともに、残された実行権については、評価指数がＴｓｌｔ毎にディクリメントされるため、発生されてから、遅くともＴｒｅｑ＋Ｔｓｌｔ後までに、当該実行権が選択されるようにすることができる。従って、クライアント（１〜ｎ）１９２１は、この最大遅延時間を考慮に入れた周期で、読み出し要求を送信することにより、映像情報の不連続が発生するのを防ぐことができる。
【０２０８】
ただし、時間的に平均して、サーバ１９２２の処理能力を超える数の実行権が発生される場合には、時間の経過に従って、残される実行権の数が増加する。この場合には、上記のような処理を行っても、映像の不連続が発生するのを防ぐことができない。
【０２０９】
そこで、登録指示部１８１１は、Ｔｒｅｑを登録するよう申告を受けると、すでに登録されているものに加えて、申告されたＴｒｅｑがさらに登録されても、発生される実行権のＴｓｌｔ当たりの平均数が、Ｎｍａｘを越えないと判定した場合にのみ、実行権発生周期テーブル１８１２に指示して、申告されたＴｒｅｑを登録させる。
【０２１０】
これにより、時間的に平均して、発生される実行権の総数がサーバ１９２２の処理能力を越えているために、時間の経過とともに、残される実行権の数が増加して、映像の不連続が発生するのを防ぐことができる。
【０２１１】
また、実行指示部１８１５に実行権キュー１８１６を設けて、評価指数毎でかつ発生された順にキューイングさせることにより、実行指示部１８１５は、実行権を選択する際、評価指数が最小のキューの先頭から順に選択すればよいため、実行指示部１８１５の処理動作を軽減できる。
【０２１２】
（第７の実施形態）
以下、本発明の第７の実施形態について、図面を参照しながら説明する。
図２６は、本発明の第７の実施形態に係るスケジューリング装置の構成を示すブロック図である。図２６の装置は、登録指示部２６９１、実行権発生周期テーブル２６９２、実行権発生部２６９３、処理待ちキュー２６９４および実行指示部２６９５を備えている。実行指示部２６９５は、実行権キュー２６９６を含む。
【０２１３】
図２７は、図２６のスケジューリング装置を用いた、映像情報提供システムの構成を示すブロック図である。図２７のシステムは、映像情報提供装置２７００およびクライアント２７０１で構成され、映像情報提供装置２７００とクライアント２７０１との間は、伝送路２７０３で接続されている。映像情報提供装置２７００は、スケジューリング装置２６９０および複数のサーバ（１〜ｍ）２７０２を含む。
【０２１４】
図２７のクライアント２７０１は、映像情報提供装置２７００の複数のサーバ（１〜ｍ）２７０２に、読み出し要求をそれぞれ周期的に送信する。クライアント２７０１には、複数のバッファおよびモニタが設けられており、クライアント２７０１は、提供される情報を、サーバ（１〜ｍ）２７０２毎に、各バッファに一時的に蓄え、蓄えた情報を読み出しながら、各モニタに映像を表示する。スケジューリング装置２６９０は、サーバ（１〜ｍ）２７０２から、クライアント２７０１に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う。サーバ（１〜ｍ）２７０２はそれぞれ、スケジューリング装置２６９０の指示に応じて、クライアント２７０１に、映像情報を所定の量ずつ送信する。なお、映像情報提供装置２７００に含まれるサーバ（１〜ｍ）２７０２の情報提供能力の合計は、伝送路２７０３の伝送能力を上回っているものとする。
【０２１５】
図２６の登録指示部２６９１は、図２７のクライアント２７０１からの申告を受けて、サーバ（１〜ｍ）２７０２毎の、実行権を発生させるべき周期を、実行権発生周期テーブル２６９２に指示して登録させる。実行権発生周期テーブル２６９２は、実行権を発生させるべき周期を登録する。実行権発生部２６９３は、所定の周期（以下、Ｔｓｌｔ）で起動され、実行権発生周期テーブル２６９２に登録された周期に基づいて、サーバ（１〜ｍ）２７０２毎の実行権を発生させる。実行権発生部２６９３はまた、発生させた実行権に、優先度を示す評価指数（以下、Ｎｓｆｔ）を付与する。処理待ちキュー２６９４は、サーバ（１〜ｍ）２７０２への読み出し要求をキューイングする。実行指示部２６９５は、周期Ｔｓｌｔで起動され、処理待ちキュー２６９４にキューイングされている読み出し要求のうち、実行権発生部２６９３が発生させた実行権に対応するサーバ２７０２への読み出し要求を取得して、その読み出し要求を実行するよう、対応するサーバ２７０２に指示する。
【０２１６】
また、第６の実施形態において図２０を用いて説明したものと同様の信号が、図２７の映像情報提供装置２７００とクライアント２７０１との間で送受信される。ただし、リソース獲得要求３１には、クライアントＩＤに代えて、サーバＩＤが含まれる。
【０２１７】
図２８は、図２６の実行権発生周期テーブル２６９２の登録内容を示す図である。図２８に示すように、実行権発生周期テーブル２６９２は、サーバ（１〜ｍ）２７０２毎のサーバＩＤ、Ｔｉｔｖおよび実行権発生周期オフセット（以下、Ｔｏｆｓ）を登録する。なお、図２１のテーブルのＴｒｅｑは、図１９のクライアント（１〜ｎ）１９２１から申告された値であるが、図２８のＴｉｔｖは、図２７のクライアント２７０１から申告されたＴｒｅｑに基づいて、所定の方法で算定された値である。
【０２１８】
図２９は、図２６の処理待ちキュー２６９４のキューイング内容を示す図である。図２９に示すように、処理待ちキュー２６９４は、サーバ（１〜ｍ）２７０２への読み出し要求を、サーバ（１〜ｍ）２７０２毎に、キューイングする。
【０２１９】
図３０は、図２６の実行権キュー２６９６のキューイング内容を示す図である。図３０に示すように、実行権キュー２６９６は、発生された実行権を、付与されたＮｓｆｔ毎に、キューイングする。
【０２２０】
以下には、図２７のスケジューリング装置２６９０が、複数のサーバ（１〜ｍ）２７０２から、クライアント２７０１へ、伝送路２７０３を介して、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う動作について、図２０、２４〜３０を参照しながら説明する。
最初、図２６の登録指示部２６９１が、実行権発生周期テーブル２６９２に指示して、サーバＩＤ、ＴｉｔｖおよびＴｏｆｓを登録させる動作について説明する。
【０２２１】
いま、実行権発生周期テーブル２６９２には、複数のサーバ２７０２のサーバＩＤ、ＴｉｔｖおよびＴｏｆｓが、すでに登録されているものとする。この時、クライアント２７０１が、図２０のリソース獲得要求３１を送信することにより、希望するサーバ２７０２のサーバＩＤおよびＴｒｅｑを、映像情報提供装置２７００に申告する。
【０２２２】
登録指示部２６９１は、サーバ（１〜ｍ）２７０２の情報提供能力および伝送路２７０３の伝送能力を認識しており、下記の（ａ）および（ｂ）について判定する。
（ａ）指定されたサーバ２７０２の情報提供能力が、すでに登録されているＴｉｔｖを、申告されたＴｒｅｑを含めた新たなＴｉｔｖに更新した場合、情報を提供できるものであるか。
（ｂ）伝送路２７０３の伝送能力が、すでに登録されているＴｉｔｖを、申告されたＴｒｅｑを含めた新たなＴｉｔｖに更新した場合、サーバ（１〜ｍ）２７０２から提供される情報を伝送できるものであるか。
【０２２３】
上記（ａ）および（ｂ）について、両方の能力があると判定した場合、登録指示部２６９１は、実行権発生周期テーブル２６９２に指示して、すでに登録されている、指定されたサーバ２７０２のＴｉｔｖを、下記の式（９）で算定される新たなＴｉｔｖに更新させるとともに、クライアント２７０１に対して、図２０のリソース獲得応答３２を送信することにより、要求を受け入れることを通知する。
Ｔｉｔｖ＝１／（１／Ｔｉｔｖ＋１／Ｔｒｅｑ）  …（９）
【０２２４】
また、登録指示部２６９１は、実行権発生周期テーブル２６９２に指示して、Ｔｏｆｓを、下記の式（１０）により算定される新たなＴｏｆｓに更新させる。
Ｔｏｆｓ＝Ｔｏｆｓ＋（Ｔｉｔｖ（ｎｅｗ）−Ｔｉｔｖ（ｏｌｄ））  …（１０）
ただし、上式（１０）において、Ｔｉｔｖ（ｎｅｗ）は、更新されたＴｉｔｖを、Ｔｉｔｖ（ｏｌｄ）は更新される前のＴｉｔｖを、それぞれ意味する。
【０２２５】
少なくとも一方の能力がないと判定した場合には、登録指示部２６９１は、クライアント２７０１に対して、リソース獲得応答３２を送信することにより、要求を受け入れないことを通知する。
【０２２６】
なお、上記（ａ）および（ｂ）について、両方の能力があると判定し、かつ指定されたサーバ２７０２のサーバＩＤが実行権発生周期テーブル２６９２に登録されていない場合には、登録指示部２６９１は、実行権発生周期テーブル２６９２に指示して、サーバＩＤ、ＴｉｔｖおよびＴｏｆｓを新たに登録させる。この場合、Ｔｉｔｖとして、申告されたＴｒｅｑが、Ｔｏｆｓとして、"０"が、それぞれ登録される。
【０２２７】
実行権発生部２６９３が、実行権発生周期テーブル２６９２に登録されたＴｉｔｖおよびＴｏｆｓに基づいて実行権を発生させる動作は、第６の実施形態において、図２４を用いて説明したものと同様である。ただし、実行権発生周期テーブル２６９２には、複数のサーバ（１〜ｍ）２７０２のサーバＩＤ、ＴｉｔｖおよびＴｏｆｓが、上記のようにして登録されている点が異なる。
【０２２８】
また、図２４のステップＳ４において、式（６）に代えて、下記の式（１１）により、新たなＴｏｆｓが算定される点も異なる。
Ｔｏｆｓ＝Ｔｏｆｓ＋Ｔｉｔｖ  …（１１）
【０２２９】
同様に、ステップＳ８において、式（７）に代えて、下記の式（１２）により、Ｎｓｆｔが算定される点も異なる。
【０２３０】
Ｎｓｆｔ＝ｆ（Ｔｉｔｖ／Ｔｓｌｔ）  …（１２）
ただし、上式（１２）において、ｆ（ｘ）はｘ以上の最小の整数である。
【０２３１】
次に、実行指示部２６９５は、付与された評価指数に基づいて実行権を選択し、処理待ちキュー２６９４にキューイングされている読み出し要求のうち、選択した実行権に対応するサーバ２７０２への読み出し要求を取得して、対応するサーバ２７０２に実行を指示する。その際の実行指示部２６９５の動作は、第６の実施形態において、図２５を用いて説明したものと同様である。ただし、カウント値Ｃは、実行指示部２６９５が全サーバ（１〜ｍ）２７０２に実行を指示した合計回数であり、Ｎｍａｘは、周期Ｔｓｌｔに等しい時間内に伝送路２７０３が伝送可能な最大の情報量に対応する読み出し要求の個数である。
【０２３２】
上記のようにして映像情報が提供され、提供が完了すると、クライアント２７０１は、第６の実施形態においてクライアント１９２１が行ったのと同様に、図２０のリソース解放要求３５を送信することにより、希望する映像情報の受け取りが完了したことを映像情報提供装置２７００に通知する。ただし、クライアント２７０１が送信するリソース解放要求３５には、サーバＩＤおよびＴｒｅｑが付加されており、図２６の登録指示部２６９１は、実行権発生周期テーブル２６９２に指示して、登録されているＴｉｔｖを、下記の式（１３）により算定される新たなＴｉｔｖに更新させる。
【０２３３】
Ｔｉｔｖ＝１／（１／Ｔｉｔｖ−１／Ｔｒｅｑ）  …（１３）
また、登録指示部２６９１は、実行権発生周期テーブル２６９２に指示して、Ｔｏｆｓを、上記の式（１０）により算定される新たなＴｏｆｓに更新させる。
【０２３４】
上記のように、本実施形態によれば、複数のサーバ（１〜ｍ）２７０２から、クライアント２７０１に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う際、第６の実施形態におけるものと同様の動作を行う。さらに、登録指示部２６９１は、すでに登録されている、あるサーバ２７０２の実行権を発生させるべき周期Ｔｉｔｖを、さらに周期Ｔｒｅｑで実行権を発生させるものに更新するよう申告を受けた際、すでに登録されているＴｉｔｖを、申告されたＴｒｅｑを含めた新たなＴｉｔｖに更新しても、伝送路２７０３の伝送能力が、全サーバ（１〜ｍ）２７０２から提供される情報を伝送できるものである場合にのみ、実行権発生周期テーブル２６９２に指示して、登録されているＴｉｔｖを、上記の式（９）により算定される新たな周期Ｔｉｔｖに更新させる。
【０２３５】
これにより、登録された周期を更新した際、発生される実行権のＴｓｌｔ当たりの平均数が、伝送路の伝送能力を越えているために、時間の経過ともなって、残される実行権の数が増加するのを防ぐことができる。
【０２３６】
また、登録指示部２６９１は、すで登録されている、あるサーバ２７０２の実行権を発生させるべき周期Ｔｉｔｖを、周期Ｔｒｅｑを除いて実行権を発生させるものに更新するよう申告を受けた際、実行権発生周期テーブル２６９２に指示して、登録されているＴｉｔｖを、上記の式（１３）により算定される新たな周期Ｔｉｔｖに更新させる。
【０２３７】
これにより、すでに登録されている、実行権を発生させるべき周期を、周期Ｔｒｅｑで発生させている実行権を除いて発生させるものに更新するよう申告を受けた場合、すでに登録されている周期を、新たなものに更新することができる。
【０２３８】
なお、本実施形態では、複数のバッファおよびモニタを備えたクライアント２７０１を、一つだけ含むようにしているが、共通の伝送路２７０３を介して、一つのバッファおよびモニタを備えたクライアント２７０１を、複数含むようにしてもよい。ただし、この場合、各クライアント２７０１は、それぞれに定められた周期で、読み出し要求を送信する必要がある。
【０２３９】
また、本実施形態では、伝送路２７０３の伝送能力の制限があるために、スケジューリングを行うとしているが、クライアント２７０１の受信能力（バッファの容量や処理速度など）の制限があるために、スケジューリングを行うとしてもよい。
【０２４０】
また、第６および第７の実施形態において、実行権発生部１８１３および２６９３ならびに実行指示部１８１５および２６９５は、ともに周期Ｔｓｌｔで起動されるとしているが、それぞれ互いに異なる周期で起動されるようにしてもよい。
【０２４１】
また、第６の実施形態において、Ｎｍａｘは、周期Ｔｓｌｔに等しい時間内にサーバ１９２２が実行可能な読み出し要求の最大数であるとしているが、単位時間にサーバ１９２２が実行可能な読み出し要求の最大数であるとしてもよい。同様に、第７の実施形態において、Ｎｍａｘは、周期Ｔｓｌｔに等しい時間内に伝送路２７０３が伝送可能な情報量に対応する読み出し要求の個数であるとしているが、単位時間に伝送路２７０３が伝送可能な情報量に対応する読み出し要求の個数であるとしてもよい。
【０２４２】
また、図１８のスケジューリング装置と、図２６のスケジューリング装置とを含む他のスケジューリング装置を用いることにより、複数のサーバから、複数のクライアントに、それぞれ周期的に映像情報が提供されるよう、スケジューリングを行うことができる。すなわち、最初、図１８のスケジューリング装置が、クライアント毎の実行権を発生させ、発生させた実行権のうち、あるクライアントの実行権を選択して、その実行権に対応する読み出し要求を、図２６のスケジューリング装置に入力する。次に、図２６のスケジューリング装置が、サーバ毎の実行権を発生させ、発生させた実行権のうち、あるサーバの実行権を選択して、入力された読み出し要求を実行するよう、そのサーバに指示する。
【０２４３】
また、第６および第７の実施形態において、実行権発生部１８１３および２６９３はそれぞれ、上記の式（７）、式（１２）により、Ｎｓｆｔを算定するとしたが、ＴｒｅｑをＴｓｌｔで除して得られる値の整数部分をＮｓｆｔとするとしてもよい。
【０２４４】
また、実行権発生周期テーブル１８１２および２６９２が、実行権発生周期オフセットＴｏｆｓに代えて、次の実行権を発生させる時間を示すＴｎｅｘｔを登録し、実行権発生部１８１３および２６９３は、現時間がＴｎｅｘｔに一致した時点で、実行権を発生させるようにしてもよい。
【０２４５】
また、実行権発生部１８１３および２６９３がＮｓｆｔを算定し、実行指示部１８１５および２６９５は、Ｎｓｆｔがより小さい実行権を選択するとしたが、実行権発生部１８１３および２６９３が上記のＴｎｅｘｔを算定し、実行指示部１８１５および２６９５は、Ｔｎｅｘｔが現時間により近い実行権を選択するとしてもよい。
【０２４６】
また、実行指示部１８１５および２６９５は、カウント値Ｃが、Ｃ≧Ｎｍａｘとなった場合、それぞれ実行権キュー１８１６、実行権キュー２６９６に指示して、残された実行権のＮｓｆｔをディクリメントさせるとしたが、実行権キュー１８１６および２６９６の代わりに、図３１に示すような他の実行権キューを用い、実行指示部１８１５および２６９５は、カウント値Ｃが、Ｃ≧Ｎｍａｘとなった場合、上記他の実行権キューに指示して、ポインタをずらさせるようにしてもよい。なお、図３１に示すように、上記他の実行権キューはリング構造を有しており、ポインタの位置が移動するのにともなって、Ｎｓｆｔの値が順次入れ替わる。
【０２４７】
前述したように、ＣＡＴＶネットワークにおけるビデオオンデマンドシステムや放送局の映像編集システム等のファイルシステムにおいては、映像や音声等のデータを扱うサーバ装置が設けられている。このサーバ装置は、ユーザ端末あるいはクライアントからデータの読み出し要求を受けたとき、内部の記憶装置を検索して要求に対応するデータを読み出し、読み出しを要求したユーザ端末あるいはクライアントに、当該データを送出する機能を有している。
【０２４８】
ところで、従来のサーバ装置は、送出するデータの連続性を保証するために、ユーザ端末へデータを送出する前に、送出するデータの量に見合う、サーバ装置内部のリソース（単位時間当たりにデータを処理または転送できる能力）の使用権と、サーバ装置とデータの取得を要求するユーザ端末との間の通信リソース（単位時間当たりにデータを送信できる能力）の使用権とを確保した上で、データの送出を実行するようになっている。
【０２４９】
しかしながら、上記のような従来のサーバ装置では、動画や音声のような連続性を必要とするデータのみならず、静止画のような連続性を必要としないデータの送出に関しても、データの送出前にリソース使用権を確保するようにしている。そのため、連続性を必要としないデータの送出量が増えるに従い、連続性を必要とするデータのリソース確保が困難になり、最悪の場合はデータの送出が行えなくなるという問題が生じていた。
【０２５０】
そこで、以下には、連続性を必要としないデータを送出する際に効率的にリソースを使用でき、しかも、連続性を必要としないデータの送出量が増加しても、連続性を必要とするデータを送出するためのリソース確保に影響を与えないサーバ装置について説明する。
【０２５１】
（第８の実施形態）
図３２は、本発明の第８の実施形態に係るサーバ装置を用いたデータ伝送システムの構成を示すブロック図である。図３２において、本データ伝送システムは、リソース管理部３２０１と、データ記憶部３２０２と、交換部３２０３と、入出力部３２０４と、複数のユーザ端末３２０８とを備えている。なお、本実施形態のサーバ装置は、リソース管理部３２０１と、データ記憶部３２０２と、交換部３２０３と、入出力部３２０４とによって構成される。そして、当該サーバ装置と各端末３２０８は、有線または無線の伝送路を介して接続されている。
【０２５２】
リソース管理部３２０１は、各ユーザ端末３２０８に対してデータを送出する際に、必要となるリソースを管理する。データ記憶部３２０２は、ランダムアクセスが可能な複数の記憶装置（例えば、ハードディスクドライブ、オートチェンジャー付き光ディスクドライバ）３２０５と、各記憶装置３２０５に接続されてデータの読み出しを制御する複数のＭＳＦＳ３２０６とを含む。交換部３２０３は、入出力部３２０４とデータ記憶部３２０２との間でデータの交換を行う。なお、本実施形態では、一例として、交換部３２０３にＡＴＭスイッチを使用している。入出力部３２０４は、複数のＩ／Ｏユニット３２０７を含み、サーバ装置と各ユーザ端末３２０８との間のデータの入出力を制御する。各ユーザ端末３２０８は、いずれかのＩ／Ｏユニット３２０７に接続されている。
【０２５３】
上記のような構成において、各Ｉ／Ｏユニット３２０７と各ＭＳＦＳ３２０６との間には、交換部３２０３によりメッシュ状にコネクションが設定される。なお、各コネクションの帯域は、リソース管理部３２０１が管理している。
【０２５４】
図３３は、図３２におけるＩ／Ｏユニット３２０７のより詳細な構成を示すブロック図である。図３３おいて、Ｉ／Ｏユニット３２０７は、優先入出力制御部３３０１と、非優先入出力制御部３３０２とを備えている。非優先入出力制御部３３０２は、コマンドキュー３３２１と、コマンドキュー制御部３３２２と、コマンド送出部３３２３と、データバッファ部３３２４と、バッファ管理部３３２５と、データ送出部３３２６と、コマンド受付部３３２７とを含む。
【０２５５】
優先入出力制御部３３０１は、例えば動画データのように連続性を必要とするデータ（以下、優先データと称する）の入出力を制御する。これに対し、非優先入出力制御部３３０２は、例えば静止画データのように連続性を必要としないデータ（以下、非優先データと称する）の入出力を制御する。
【０２５６】
非優先入出力制御部３３０２において、コマンドキュー３３２１は、ユーザ端末３２０８からの非優先データの読み出しを要求するコマンドを、ユーザ端末毎に蓄える。コマンドキュー制御部３３２２は、コマンドキュー３３２１からのコマンドの取り出しを制御する。コマンド送出部３３２３は、コマンドキュー制御部３３２２が取り出したコマンドを、対応する宛先のＭＳＦＳ３２０６に送出する。データバッファ部３３２４は、ＭＳＦＳ３２０６が記憶装置３２０５から読み出したデータを蓄える。バッファ管理部３３２５は、データバッファ部３３２４に格納されている（または、格納が予約されている）データを、読み出しを要求したユーザ端末毎にカウントする。データ送出部３３２６は、データバッファ部３３２４に蓄積されたデータを、対応する宛先のユーザ端末３２０８に送出し、送出が完了したデータバッファ部３３２４の領域を空きの状態に設定する。コマンド受付部３３２７は、ユーザ端末３２０８から到着したコマンドを、コマンドキュー３３２１に登録するか否かを管理している。
【０２５７】
以上のように構成されたサーバ装置について、以下にその動作を説明する。
まず、システムの起動時に行われるリソースの初期設定動作について説明する。リソース管理部３２０１は、システムの起動時において、データ伝送システムにおける各部のリソース、すなわち、各ＭＳＦＳ３２０６のデータ読み出し帯域、各Ｉ／Ｏユニット３２０７における外部との間の通信帯域、交換部３２０３における各ＡＴＭスイッチの通信帯域等を、
（１）優先データを出力するのに使用するリソース（以下、優先リソースと称す）と、
（２）非優先データを出力するのに使用するリソース（以下、非優先リソースと称す）と
に分離して割り当てる。以後、リソース管理部３２０１は、分離されたそれぞれのリソースを、個別に管理する。
【０２５８】
なお、ＭＳＦＳ３２０６のデータ読み出し帯域は、ＭＳＦＳ３２０６が要求する、読み出すデータの格納先がランダムで、かつ要求間隔がランダムな読み出し要求に応答してデータの読み出しを行うときに、予め定められた遅延時間以内に、予め定められた廃棄率以下で読み出し可能なデータの最大速度として定義される。
【０２５９】
次に、優先データの出力動作について説明する。各ユーザ端末３２０８は、サーバ装置に対して優先データの出力を要求する場合、当該優先データを送出するのに必要な帯域のリソースの確保を要求する。リソース確保の要求を受けた優先入出力制御部３３０１は、リソース管理部３２０１に対し、帯域量を指定してリソースの確保を要求する。リソース管理部３２０１では、要求された帯域量のデータを送信するために、ＡＴＭスイッチの通信帯域と、ＭＳＦＳ３２０６のデータ読み出し帯域と、Ｉ／Ｏユニット３２０７の通信帯域とを、優先リソースとして予め割り当てられている帯域量の中から確保する。
【０２６０】
現在、優先リソースが使用中で、要求された帯域量に見合う分の余りがない場合には、リソースの確保が失敗し、サーバ装置は、優先データの出力を実行できない。一方、リソースの確保に成功すると、ユーザ端末３２０８が出力を希望するデータ用に、Ｉ／Ｏユニット３２０７の通信帯域と、ＭＳＦＳ３２０６のデータ読み出し帯域と、交換部３２０３のＡＴＭスイッチの通信帯域とが、それぞれの機器に設定される。
【０２６１】
ユーザ端末３２０８は、リソース確保完了通知を優先入出力制御部３３０１から受けると、優先データの出力を要求するコマンドを発行する。コマンドを受信したＩ／Ｏユニット３２０７の優先入出力制御部３３０１は、出力したい優先データ用に確保されているリソースを用いてデータの出力を実行する。
【０２６２】
図３４は、図３３におけるコマンド受付部３３２７の動作を示すフローチャートである。図３５は、図３３におけるコマンドキュー制御部３３２２の動作を示すフローチャートである。図３６は、図３３におけるコマンド送出部３３２３の動作を示すフローチャートである。以下、これら図３４〜図３６を参照して、非優先データの出力動作について説明する。
【０２６３】
図３４に示すように、コマンド受付部３３２７は、ユーザ端末３２０８から非優先データの読み出しを要求するコマンドを受信すると（ステップＳ１０１）、当該コマンドを送信したユーザ端末３２０８に対応するコマンドキュー３３２１に空きがあるか否かを判断する（ステップＳ１０２）。対応するコマンドキュー３３２１に空きがない場合、コマンド受付部３３２７は、コマンドの受付を拒否し（ステップＳ１０３）、ステップＳ１０１の動作に戻る。一方、対応するコマンドキュー３３２１に空きがある場合、コマンド受付部３３２７は、受信したコマンドを対応するコマンドキュー３３２１の最後部に格納し（ステップＳ１０４）、その動作を終了する。なお、非優先入出力制御部３３０２は、前述した優先入出力制御部３３０１のように、ユーザ端末３２０８にデータを送出するためのリソースを確保する必要はない。
【０２６４】
図３５に示すように、コマンドキュー制御部３３２２は、バッファ管理部３３２５に格納されている管理情報を参照することにより、コマンドが蓄えられているユーザ端末３２０８毎のコマンドキュー３３２１の中から、データバッファ部３３２４に格納されているデータ量（実際に格納されているデータ量のみならず、格納することが予約されているデータ量も含む）が最も少ない（データが全く格納されていない場合も含む）ユーザ端末３２０８に対応するコマンドキューを選択する（ステップＳ２０１）。なお、データバッファ部３３２４に格納されているデータ量が同一であり、しかもそれぞれのデータ量が最小であるようなユーザ端末が複数存在する場合は、キュー長が最も長い（すなわち、最も多くのコマンドを格納している）コマンドキューが選択される。さらにこの場合であって、キュー長が同一のコマンドキューが複数存在する場合は、デフォルトで定められた順番に従ってコマンドキューがサイクリックに選択される。
【０２６５】
次に、コマンドキュー制御部３３２２は、選択したコマンドキューに注目し、その先頭部に格納さているコマンドをＣＯＭ（１）とする（ステップＳ２０２）。次に、コマンドキュー制御部３３２２は、コマンドカウンタＮｃに初期値１を設定すると共に、送出コマンドカウンタＮｓに初期値０を設定する（ステップＳ２０３）。次に、コマンドキュー制御部３３２２は、コマンドＣＯＭ（Ｎｃ）の宛先のＭＳＦＳ３２０６が、コマンドＣＯＭ（１）の宛先のＭＳＦＳ３２０６と等しいか否かを判断する（ステップＳ２０４）。両コマンドの宛先となるＭＳＦＳ３２０６が等しい場合、コマンドキュー制御部３３２２は、選択したコマンドキューからコマンドＣＯＭ（Ｎｃ）を取り出し、取り出したコマンドＣＯＭ（Ｎｃ）をコマンド送出部３３２３に出力する（ステップＳ２０５）。なお、コマンドカウンタＮｃの計数値の初期値は１であるため、最初は、コマンドＣＯＭ（Ｎｃ）＝ＣＯＭ（１）となる。従って、最初は、選択したコマンドキューから先頭のコマンドＣＯＭ（１）が取り出され、コマンド送出部３３２３に出力される。
【０２６６】
次に、コマンドキュー制御部３３２２は、送出コマンドカウンタＮｓをインクリメントする（ステップＳ２０６）。次に、コマンドキュー制御部３３２２は、送出コマンドカウンタＮｓの計数値が予め定められたしきい値Ｎよりも小さいか否かを判断する（ステップＳ２０７）。ここで、送出コマンドカウンタＮｓの計数値は、コマンドキュー制御部３３２２が、選択したコマンドキューの中から１つのＭＳＦＳ３２０６に対して送出したコマンドの数に対応している。１つのＭＳＦＳ３２０６に対してほぼ同時に多数のコマンドが送出されると、コマンドを受信したＭＳＦＳ３２０６で輻輳が生じるため、本実施形態では、１つのコマンドキュー３３２１からは、同時にＮ個以上のコマンドを送出しないようにしている。すなわち、コマンドキュー制御部３３２２は、送出コマンドカウンタＮｓの計数値が予め定められたしきい値Ｎよりも小さい場合のみ、選択したコマンドキュー内の次のコマンドに対する送出処理に移行することができる。
【０２６７】
上記ステップＳ２０７において、送出コマンドカウンタＮｓの計数値が予め定められたしきい値Ｎよりも小さい場合、コマンドキュー制御部３３２２は、選択したコマンドキュー内にＣＯＭ（Ｎｃ＋１）で示されるコマンドが存在するか否か、すなわち選択したコマンドキュー内に未だ送出すべきコマンドが存在するか否かを判断する（ステップＳ２０８）。選択したコマンドキュー内にコマンドＣＯＭ（Ｎｃ＋１）が存在する場合、すなわち選択したコマンドキュー内に未だ送出すべきコマンドが存在する場合、コマンドキュー制御部３３２２は、コマンドカウンタＮｃをインクリメントした後（ステップＳ２０９）、ステップＳ２０４の動作に戻る。従って、選択したコマンドキュー内において、次の位置に格納されているコマンドが、コマンド送出部３３２３への送出処理の対象となる。例えば、選択したコマンドキュー内において２番目の位置に格納されたコマンドＣＯＭ（２）について考えてみると、このコマンドＣＯＭ（２）が先頭位置のコマンドＣＯＭ（１）と等しい場合は、当該コマンドＣＯＭ（２）がステップＳ２０５においてコマンド送出部３３２３に出力される。一方、コマンドＣＯＭ（２）が先頭位置のコマンドＣＯＭ（１）と等しくない場合は、ステップＳ２０４の後、ステップＳ２０５〜Ｓ２０７がスキップされて、当該コマンドＣＯＭ（２）がコマンド送出部３３２３に出力されない。
【０２６８】
一方、選択したコマンドキュー内にコマンドＣＯＭ（Ｎｃ＋１）が存在しない場合、コマンドキュー制御部３３２２は、コマンド送出処理が完了したか否か、すなわちコマンド送出部３３２３に出力したコマンドに対応するデータがＭＳＦＳ３２０６からデータバッファ部３３２４に到着したか否かを判断し（ステップＳ２１０）、完了した場合はステップＳ２０１の動作に戻る。なお、コマンドキュー制御部３３２２は、コマンド送出部３３２３から受信完了通知（後述する図３６のステップＳ３０８参照）を受け取ったときに、コマンド送出処理が完了したものと判断する。
【０２６９】
なお、前述のステップＳ２０７において、送出コマンドカウンタＮｓの計数値が予め定められたしきい値Ｎ以上になった場合、コマンドキュー制御部３３２２は、ステップＳ２１０の動作に進み、次のコマンドに対する送出処理を実行しない。
【０２７０】
図３６に示すように、コマンド送出部３３２３は、コマンドキュー制御部３３２２から非優先データの読み出しを要求するコマンドを受け取ると、読み出し完了カウンタＮｒを初期化する（ステップＳ３０１）。すなわち、コマンド送出部３３２３は、読み出し完了カウンタＮｒに初期値として、コマンドキュー制御部３３２２から受け取った全コマンド数を設定する。次に、コマンド送出部３３２３は、ＭＳＦＳ３２０６に対して送出していないコマンドを内部に保有しているか否かを判断する（ステップＳ３０２）。コマンド送出部３３２３は、未送出のコマンドを保有している場合、保有している未送出のコマンドの中からいずれか１つのコマンド（通常は、次のコマンド）を選択して注目し、当該コマンドに対応するデータを記憶装置３２０５から読み出したときに、当該データを格納し得るだけの空き領域がデータバッファ部３３２４内に存在するか否かを判断する（ステップＳ３０３）。データバッファ部３３２４内に空き領域が存在するか否かは、バッファ管理部３３２５内の管理情報（具体的には、各カウンタの計数値）を参照することにより判断できる。
【０２７１】
データバッファ部３３２４内に空き領域が存在する場合、コマンド送出部３３２３は、データを格納するための領域をデータバッファ部３３２４内に予約すると共に、バッファ管理部３３２５に予約したことを通知し、さらに宛先のＭＳＦＳ３２０６に選択したコマンドを送出する（ステップＳ３０４）。仮に、予約できない場合には、予約できる状態になるまで、コマンド送出部３３２３は、非優先データの読み出しを要求するコマンドをＭＳＦＳ３２０６に送出しない。この処理を行うことにより、ＭＳＦＳ３２０６からのデータ受信時に、データバッファ部３３２４内に格納領域が無くて、データが廃棄されることを防止することができる。
【０２７２】
バッファ管理部３３２５は、ユーザ端末毎にカウンタを有しており、コマンド送出部３３２３から予約の通知を受けたとき、データバッファ部３３２４に格納領域を予約したデータの読み出しコマンドを送信したユーザ端末３２０８に対応するカウンタの計数値をインクリメントする。
【０２７３】
次に、コマンド送出部３３２３は、データバッファ部３３２４がＭＳＦＳ３２０６からデータを受信したか否かを判断する（ステップＳ３０５）。データバッファ部３３２４がＭＳＦＳ３２０６からのデータを受信していない場合、コマンド送出部３３２３は、ステップＳ３０２の動作に戻り、次の未送出コマンドに対する送出処理を行う。一方、データバッファ部３３２４がＭＳＦＳ３２０６からのデータを受信した場合、コマンド送出部３３２３は、読み出し完了カウンタＮｒをデクリメントする（ステップＳ３０６）。従って、読み出し完了カウンタＮｒの計数値は、今回の送出処理の対象となるコマンド（すなわち、コマンドキュー制御部３３２２から今回受け取った全コマンド）の内、ＭＳＦＳ３２０６からのデータ送出が完了していないコマンドの数を表すことになる。
【０２７４】
その後、コマンド送出部３３２３は、読み出し完了カウンタＮｒの計数値が０になったか否かを判断する（ステップＳ３０７）。読み出し完了カウンタＮｒの計数値が０になっていない場合、コマンド送出部３３２３は、ステップＳ３０２の動作に戻り、次の未送出コマンドに対する送出処理を行う。一方、読み出し完了カウンタＮｒの計数値が０になった場合、コマンド送出部３３２３は、受信完了通知をコマンドキュー制御部３３２２に送出し（ステップＳ３０８）、その動作を終了する。
【０２７５】
上記の説明から明らかなように、コマンド送出部３３２３は、コマンドキュー制御部３３２２から送られたコマンドを全て送出した後、送出したコマンドに対応するデータをＭＳＦＳ３２０６から全て受信完了するまでは、次のコマンドをコマンドキュー制御部３３２２から受け取らないことになる。
【０２７６】
非優先データの読み出しを要求するコマンドを受信したＭＳＦＳ３２０６は、当該コマンドを、内部に設けられた非優先コマンドキューに一旦蓄える。そして、当該ＭＳＦＳ３２０６は、非優先リソースとして確保されている読み出し帯域内で、非優先コマンドキューからコマンドを取り出し、記憶装置３２０５からのデータの読み出しを実行する。読み出されたデータは、読み出しを要求したＩ／Ｏユニット３２０７がＭＳＦＳ３２０６との間に確保している非優先リソースとしての通信帯域を用いて送信される。このとき、当該Ｉ／Ｏユニット３２０７は、非優先データの受信に関して、同時に複数のＭＳＦＳ３２０６との間で通信することがないため、ＭＳＦＳ３２０６は、Ｉ／Ｏユニット３２０７が持つ非優先リソースの通信帯域の全てを使用してデータを送信することが可能となる。
【０２７７】
ＭＳＦＳ３２０６からのデータがＩ／Ｏユニット３２０７に到着すると、当該データは、データバッファ部３３２４内の既に予約されている領域に格納される。データ送出部３３２６は、非優先リソースとして確保されているサーバ装置外部との間の通信帯域内でデータバッファ部３３２４からデータを取り出し、データが格納されていた領域を空き領域とする。同時に、データ送出部３３２６は、データの取り出しをバッファ管理部３３２５に通知する。通知を受けたバッファ管理部３３２５は、データバッファ部３３２４から取り出されたデータの読み出しコマンドを送信したユーザ端末３２０８に対応するカウンタをデクリメントする。そして、データ送出部３３２６は、対応するユーザ端末３２０８に、取り出したデータを送出する。
【０２７８】
以上説明したように、第８の実施形態によれば、システムの各部のリソースを、優先データを出力するのに使用するリソース（優先リソース）と、非優先データを出力するのに使用するリソース（非優先リソース）とに予め分離して管理するようにしているので、非優先データの読み出しに使用するリソースを、優先リソースとは独立して確保することができる。その結果、非優先データの読み出し量が増加しても、優先データの出力に影響を与えることがない。
【０２７９】
ところで、各ユーザ端末３２０８がサーバ装置からの非優先データを受信できる能力には限界がある。それにもかかわらず、あるユーザ端末３２０８が、自己の受信能力を超える量の非優先データの読み出しを要求した場合、そのユーザ端末３２０８からの要求に応答して記憶装置３２０５から読み出されたデータは、データバッファ部３３２４の内部において大量に蓄積されることになる。その結果、サーバ装置では、その他のユーザ端末３２０８からの読み出し要求に対する処理が遅くなる。以下、このことを具体例を挙げてより詳細に説明する。
【０２８０】
例えば、サーバ装置に１０台のユーザ端末３２０８が接続されており、各ユーザ端末３２０８の受信能力がそれぞれ１０Ｍｂｐｓであり、サーバ装置の外部との間の通信帯域が全体として１００Ｍｂｐｓであった場合を想定する。この場合、ある１台のユーザ端末３２０８が、サーバ装置に対して１００Ｍｂｐｓを越える量の非優先データの読み出し要求を出したとすると、データバッファ部３３２４内は、読み出し要求を出した１つのユーザ端末３２０８に対する蓄積データで満杯になる。しかも、このときデータバッファ部３３２４内に蓄積されたデータは、１０Ｍｂｐｓの速度でしか減少していかない。このような状況下では、他のユーザ端末３２０８から非優先データの読み出し要求があったとしても、データバッファ部３３２４内に読み出しデータを格納し得る空き領域ができるまでは、当該他のユーザ端末３２０８からの要求に対する送信処理を実行することができない。これでは、即時性を要求されるような読み出し要求コマンドに迅速に対応することができない。しかも、この場合、サーバ装置全体としては１００Ｍｂｐｓの通信能力を有しているにもかかわらず、実際には１０Ｍｂｐｓの通信能力しか発揮していないことになり、限られた通信帯域を有効に活用することができない。
【０２８１】
そこで、上記第８の実施形態では、バッファ管理部３３２５に格納されている管理情報を参照することにより、コマンドが蓄えられているユーザ端末３２０８毎のコマンドキュー３３２１の中から、データバッファ部３３２４に格納されているデータ量が最も少ないユーザ端末３２０８に対応するコマンドキューを選択し、当該選択したコマンドキューに蓄えられているコマンドの送出処理を優先的に実行するようにしているので、複数のユーザ端末３２０８が共通に使用している非優先リソースを、１つのユーザ端末３２０８が占有して使用することが少なくなり、サーバ装置が各ユーザ端末３２０８に対して有する通信能力を最大限に活用することができる。
【０２８２】
なお、コマンドキュー制御部３３２２は、データバッファ部３３２４に格納されている最も少ないデータ量が所定のしきい値を越えている場合、選択したコマンドキュー３３２１からのコマンド取り出しを中止するようにしてもよい。これによって、データバッファ部３３２４が特定のユーザ端末３２０８のデータで埋め尽くされ、他のユーザ端末３２０８の非優先のデータの読み出し要求が処理できなくなることをより一層効果的に防ぐことができる。
【０２８３】
また、上記第８の実施形態では、コマンド送出部３３２３は、データバッファ部３３２４内にデータを格納するための領域を予約した後に、非優先データの読み出しを要求するコマンドをＭＳＦＳ３２０６に送出するようにしている。すなわち、コマンド送出部３３２３は、格納領域を予約できない場合には、予約できるまで、非優先データの読み出しを要求するコマンドをＭＳＦＳ３２０６に送出しない。このようなコマンド送出部３３２３を設けたことにより、ＭＳＦＳ３２０６からのデータ受信時に、データバッファ部３３２４内に格納領域がなくてデータが廃棄されることを防止できる。
【０２８４】
さらに、上記第８の実施形態では、コマンド送出部３３２３は、コマンドキュー制御部３３２２から送られたコマンドを全て送出後、送出したコマンドに対応するデータをＭＳＦＳ３２０６から全て受信完了するまでは、次のコマンドをコマンドキュー制御部３３２２から受け取らない。これによって、Ｉ／Ｏユニット３２０７は、非優先データの受信に関して、同時に複数のＭＳＦＳ３２０６と通信することがないため、非優先データ同士のセルの衝突を考慮する必要がない。また、ＭＳＦＳ３２０６は、Ｉ／Ｏユニット３２０７が持つ非優先リソースの通信帯域の全てを使用して高速にデータを送信することが可能となる。
【０２８５】
（第９の実施形態）
図３７は、本発明の第９の実施形態に係るサーバ装置を用いたデータ伝送システムの構成を示すブロック図である。図３７において、本データ伝送システムは、リソース管理部３７０１と、データ記憶部３７０２と、交換部３７０３と、入出力部３７０４と、複数のユーザ端末３７０８とを備えている。なお、本実施形態のサーバ装置は、リソース管理部３７０１と、データ記憶部３７０２と、交換部３７０３と、入出力部３７０４とによって構成される。そして、当該サーバ装置と各端末３７０８は、有線または無線の伝送路を介して接続されている。
【０２８６】
リソース管理部３７０１は、各ユーザ端末３７０８に対してデータを送出する際に、必要となるリソースを管理する。データ記憶部３７０２は、ランダムアクセスが可能な複数の記憶装置（例えば、オートチェンジャー付き光ディスクドライバ）３７０５と、各記憶装置３７０５に接続されてデータの読み出しを制御する複数のＭＳＦＳ３７０６とを含む。交換部３７０３は、入出力部３７０４とデータ記憶部３７０２との間でデータの交換を行う。なお、本実施形態では、一例として、交換部３７０３にＡＴＭスイッチを使用している。入出力部３７０４は、複数のＩ／Ｏユニット３７０７を含み、サーバ装置と各ユーザ端末３７０８との間のデータの入出力を制御する。各ユーザ端末３７０８は、いずれかのＩ／Ｏユニット３７０７に接続されている。
【０２８７】
上記のような構成において、各Ｉ／Ｏユニット３７０７と各ＭＳＦＳ３７０６との間には、交換部３７０３によりメッシュ状にコネクションが設定される。なお、各コネクションの帯域は、リソース管理部３７０１が管理している。
【０２８８】
上記第９の実施形態は、以下の点で前述した第８の実施形態と相違する。
まず、リソース管理部３７０１は、システム全体のリソースを、優先リソースと非優先リソースとに分離して管理するが、必要となる優先リソース量の増減に応じて、優先リソースとして割り当てる量と、非優先リソースとして割り当てる量とを変更する。
【０２８９】
次に、交換部３７０３におけるＡＴＭスイッチの非優先リソースとしての通信帯域は、ＡＢＲモードによって確保されている。ここで、ＡＢＲとは、ＡＴＭでの通信の標準化を推進する業界団体である"Ｔｈｅ  ＡＴＭ  Ｆｏｒｕｍ"で審議されているサービスカテゴリである。ＡＢＲを用いた通信では、輻輳が生じた場合に送信レートがＡＴＭレイヤで自動的に調整され、それによって輻輳が解消される。また、帯域に空きがある場合には、自動的に送信レートが上げられ、通信帯域の有効利用が図られる。ＡＢＲについては、ＡＴＭ  Ｆｏｒｕｍ  Ｔｒａｆｆｉｃ  Ｍａｎａｇｅｍｅｎｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  ４．０，Ｏｃｔｏｂｅｒ  １９９５，ＡＴＭ  Ｆｏｒｕｍ／９５−００１３Ｒ８等に記述されている。
【０２９０】
図３８は、図３７におけるＩ／Ｏユニット３７０７のより詳細な構成を示すブロック図である。図３８おいて、Ｉ／Ｏユニット３７０７は、優先入出力制御部３８０１と、非優先入出力制御部３８０２とを備えている。非優先入出力制御部３８０２は、コマンドキュー３８４１と、コマンドキュー制御部３８４２と、コマンド送出部３８４３と、データバッファ部３８４４と、データ送出部３８４６と、コマンド受付部３８４７とを含む。コマンド送出部３８４３は、各ＭＳＦＳ３７０６毎に設けられた、複数のカウンタ３８４８および複数の送出キュー３８４９を含む。
【０２９１】
優先入出力制御部３８０１は、動画データ等の優先データの入出力を制御する。これに対し、非優先入出力制御部３８０２は、静止画データ等の非優先データの入出力を制御する。
【０２９２】
非優先入出力制御部３８０２において、コマンドキュー３８４１は、ユーザ端末３７０８からの非優先データの読み出しを要求するコマンドを一括的に蓄える。コマンドキュー制御部３８４２は、コマンドキュー３８４１からのコマンドの取り出しを制御する。コマンド送出部３８４３は、コマンドキュー制御部３８４２が取り出したコマンドを、対応する宛先のＭＳＦＳ３７０６に送出する。データバッファ部３８４４は、ＭＳＦＳ３７０６が記憶装置３７０５から読み出したデータを蓄える。データ送出部３８４６は、データバッファ部３８４４に蓄積されたデータを、対応する宛先のユーザ端末３７０８に送出する。コマンド受付部３８４７は、ユーザ端末３７０８から到着したコマンドを、コマンドキュー３８４１に登録するか否かを管理している。
【０２９３】
コマンド送出部３８４３において、各カウンタ３８４８は、送出したデータ読み出しのコマンドの内、未だＭＳＦＳ３７０６からデータが到着していないコマンドの数を、各ＭＳＦＳ３７０６毎にカウントする。各送出キュー３８４９は、各ＭＳＦＳ３７０６毎に、送出するコマンドを蓄える。
【０２９４】
図３９は、図３７におけるリソース管理部３７０１の動作を示すフローチャートである。図４０は、図３８におけるコマンド受付部３８４７の動作を示すフローチャートである。図４１は、図３８におけるコマンドキュー制御部３８４２の動作を示すフローチャートである。図４２は、図３８におけるコマンド送出部３８４３の動作を示すフローチャートである。以下、これら図３９〜図４２を参照して、第９の実施形態のサーバ装置の動作について説明する。
【０２９５】
まず、システムの起動時に行われるリソースの初期設定動作について説明する。リソース管理部３７０１は、システムの起動時において、データ伝送システム全体のリソース（各ＭＳＦＳ３７０６のデータ読み出し帯域、各Ｉ／Ｏユニット３７０７における外部との間の通信帯域、交換部３７０３における各ＡＴＭスイッチの通信帯域等を含む）の内、非優先リソースとして最低限確保すべき帯域量を決定する。本実施形態では、優先リソースは、非優先リソースよりも常に優先的に確保される。従って、非優先リソースとして最低限確保すべき帯域量を決めておかないと、優先データの読み出し要求が増えた場合、非優先リソースとして確保する帯域が無くなり、非優先データを送出することができなくなる。また、システムの起動時において、リソース管理部３７０１は、ＡＢＲモードによって、ＭＳＦＳ３７０６とＩ／Ｏユニット３７０７との間の、非優先リソースとしてのＡＴＭ通信路を設定する。
【０２９６】
次に、優先データの出力動作について説明する。各ユーザ端末３７０８は、サーバ装置に対して優先データの出力を要求する場合、当該優先データを送出するのに必要な帯域のリソースの確保を要求する。リソース確保の要求を受けた優先入出力制御部３８０１は、リソース管理部３７０１に対し、帯域量を指定してリソースの確保を要求する。リソース管理部３７０１では、要求された帯域量のデータを送信するために、交換部３７０３におけるＡＴＭスイッチの通信帯域と、ＭＳＦＳ３２０６のデータ読み出し帯域と、Ｉ／Ｏユニット３７０７の通信帯域とを、優先リソースとして予め割り当てられている帯域量の中から確保する。
【０２９７】
現在、優先リソースとして確保されている帯域の全てまたは大部分が使用中であり、要求された優先データを読み出して送出するのに必要な帯域量の余りがない場合、図３９に示すように、リソース管理部３７０１は、優先リソースとして確保している帯域量の変更要求が発生したものと判断する（ステップＳ４０１）。その後、リソース管理部３７０１は、もし優先リソースの帯域量を増加するように変更した場合、非優先リソースに対し、前述の最低帯域量（システムの起動時に設定されている）を確保することが可能か否かを判断する（ステップＳ４０２）。もし、優先リソースの帯域量を増加すると、非優先リソースに対して最低帯域量を確保することができない場合、リソース管理部３７０１は、優先リソースの増加を拒否し（ステップＳ４０３）、ステップＳ４０１の動作に戻る。この場合、優先リソースの確保が失敗し、サーバ装置は、優先データの出力を実行できない。
【０２９８】
一方、優先リソースの帯域量を増加しても非優先リソースに対して最低帯域量を確保することが可能な場合、リソース管理部３７０１は、変更後の優先リソースの残りとして割り当てられる非優先リソースの帯域量をＭＳＦＳ３７０６，Ｉ／Ｏユニット３７０７に設定すると共に、カウンタ３８４８のしきい値Ｌをコマンド送出部３８４３に通知する（ステップＳ４０４）。なお、リソース管理部３７０１は、優先入出力制御部３８０１が優先データの出力を完了すると、対応する帯域量を確保している優先リソースから減少させる。
【０２９９】
リソース管理部３７０１のその他の動作は、図３２に示すリソース管理部３２０１と同様であり、その説明を省略する。
【０３００】
次に、非優先データの出力動作について説明する。図４０に示すように、コマンド受付部３８４７は、ユーザ端末３７０８から非優先データの読み出しを要求するコマンドを受信すると（ステップＳ５０１）、コマンドキュー３８４１に空きがあるか否かを判断する（ステップＳ５０２）。コマンドキュー３８４１に空きがない場合、コマンド受付部３８４７は、コマンドを送信したユーザ端末３７０８に対してコマンドの受付を拒否し（ステップＳ５０３）、ステップＳ５０１の動作に戻る。一方、コマンドキュー３８４１に空きがある場合、コマンド受付部３８４７は、受信したコマンドをコマンドキュー３８４１の最後部に格納し（ステップＳ５０４）、その動作を終了する。
【０３０１】
図４１に示すように、コマンドキュー制御部３８４２は、コマンドキュー３８４１にコマンドが格納されているか否かを判断し（ステップＳ６０１）、格納されている場合は、ＭＳＦＳ毎に設けられた送出キュー３８４９の内、１つでも満杯状態（すなわち、最後尾までコマンドを格納した状態）になったキューがあるか否かを判断する（ステップＳ６０２）。もし、１つでも満杯状態になったキューがある場合、コマンドキュー制御部３８４２は、コマンドが送出され、送出キュー３８４９に空きができるまで、コマンドキュー３８４１からのコマンドの取り出しを停止する。一方、満杯状態の送出キュー３８４９が１つもない場合、コマンドキュー制御部３８４２は、コマンドキュー３８４１の先頭からコマンドを１つ取り出し、当該コマンドを送出先のＭＳＦＳ３７０６に対応する送出キュー３８４９に格納する（ステップＳ６０３）。
【０３０２】
次に、コマンドキュー制御部３８４２は、所定のデータ量に相当するコマンドをコマンド送出部３８４３に送出したか否かを判断する（ステップＳ６０４）。ここで、所定のデータ量とは、その時点でＩ／Ｏユニット３７０７に割り当てられている非優先リソースであって、ＭＳＦＳ３７０６との間の通信帯域と、ユーザ端末３７０８との通信帯域との内、小さい方の通信帯域を用いて、予め定められた時間Ｔの間に送信可能なデータ量と定義される。所定のデータ量に相当するコマンドをコマンド送出部３８４３に送出していない場合、コマンドキュー制御部３８４２は、ステップＳ６０１の動作に戻り、コマンドキュー３８４１から次のコマンドを取り出してコマンド送出部３８４３に送出する。一方、所定のデータ量に相当するコマンドをコマンド送出部３８４３に送出している場合、コマンドキュー制御部３８４２は、時間Ｔの間、コマンドキュー３８４１からコマンド送出部３８４３へのコマンドの送出を停止する（ステップＳ６０５）。
【０３０３】
例えば、Ｉ／Ｏユニット３７０７がサーバ装置外部にデータを出力するための非優先リソースとしての通信帯域がＭ（ＫＢ／ｓ）であり、Ｉ／Ｏユニット３７０７がＭＳＦＳ３７０６から読み出しデータを受信するための非優先リソースとしての通信帯域がＮ（ＫＢ／ｓ）であり、１つの読み出し要求コマンドで読み出されるデータ量がＳ（ＫＢ）であり、Ｍ＞Ｎである場合、コマンドキュー制御部３８４２は、Ｓ／Ｎ（ｓｅｃ）の周期でコマンドキュー３８４１からコマンドを取り出し、コマンド送出部３８４３に送ることになる。
【０３０４】
図４２に示すように、コマンド送出部３８４３は、コマンドの送出先ＭＳＦＳを表す値ｉを初期化、すなわち１に設定する（ステップＳ７０１）。次に、コマンド送出部３８４３は、ｉ番目のカウンタ３８４８のカウント値Ｃｏ（ｉ）が、リソース管理部３７０１によって設定されたしきい値Ｌ（前述のステップＳ４０４で設定されたしきい値）よりも小さいか否かを判断する（ステップＳ７０２）。カウント値Ｃｏ（ｉ）がしきい値Ｌよりも小さい場合（すなわち、Ｃｏ（ｉ）＜Ｌの場合）、コマンド送出部３８４３は、ｉ番目のカウンタ３８４８のカウント値Ｃｏ（ｉ）をインクリメントし（ステップＳ７０３）、ｉ番目の送出キュー３８４９からコマンドを１つ取り出して対応する宛先のＭＳＦＳ３７０６に送出する（ステップＳ７０４）。次に、コマンド送出部３８４３は、値ｉをインクリメントする（ステップＳ７０５）。
【０３０５】
その後、コマンド送出部３８４３は、データバッファ部３８４４がＭＳＦＳ３７０６からの読み出しデータを受信したか否かを判断し（ステップＳ７０６）、受信した場合は、当該受信データを送信した先のＭＳＦＳ３７０６に対応するカウンタ３８４８のカウント値をデクリメントする（ステップＳ７０７）。次に、コマンド送出部３８４３は、値ｉがＭＳＦＳ３７０６の総個数よりも大きいか否かを判断する（ステップＳ７０８）。値ｉがＭＳＦＳ３７０６の総個数以下の場合、コマンド送出部３８４３は、ステップＳ７０２の動作に戻り、次の送出キュー３８４９に対してコマンドの送出処理を実行する。
【０３０６】
ここで、前述のステップＳ７０２において、ｉ番目のカウンタ３８４８のカウント値Ｃｏ（ｉ）がしきい値Ｌ以上の場合（すなわち、Ｃｏ（ｉ）≧Ｌの場合）、コマンド送出部３８４３は、対応するｉ番目の送出キュー３８４９に対するコマンドの送出処理を行わない。これは、１つのＭＳＦＳ３７０６に対して読み出し処理が集中し、当該ＭＳＦＳ３７０６内でコマンドが滞留するのを避けるためである。
【０３０７】
ステップＳ７０８において、値ｉがＭＳＦＳ３７０６の総個数よりも大きい場合、コマンド送出部３８４３は、ステップＳ７０１の動作に戻る。従って、値ｉが初期値１に設定され、上記一連の動作が繰り返される。このように、コマンド送出部３８４３は、複数の送出キュー３８４９を１番目から順番にサーチし、注目している送出キュー３８４９がコマンドを格納している場合は、コマンドを１つだけ取り出して対応する宛先のＭＳＦＳ３７０６に送出するようにしている。これによって、各ＭＳＦＳ３７０６は、均等に読み出し処理を行うことになり、いずれか１つのＭＳＦＳ３７０６に負荷が集中するのを回避できる。さらに、偶然にユーザ端末３７０８からの読み出し要求が１つのＭＳＦＳ３７０６に偏った場合であっても、当該ＭＳＦＳ３７０６に対する未処理のコマンド（データの読み出しが実行されていないコマンド）がしきい値Ｌ以上になると、当該ＭＳＦＳ３７０６に対するコマンド送出処理を停止するようにしているので、このような不測の事態にも対応できる。
【０３０８】
非優先データ読み出し要求を受信したＭＳＦＳ３７０６は、当該要求を内部の非優先コマンドキューに一旦蓄る。そして、当該ＭＳＦＳ３７０６は、非優先リソースとして確保されている読み出し帯域内で、非優先コマンドキューからコマンドを取り出し、データの読み出しを実行する。
【０３０９】
読み出されたデータは、非優先リソースとして、読み出しを要求したＩ／Ｏユニット３７０７が、ＭＳＦＳ３７０６との間にＡＢＲモードで確保している通信帯域を用いて送信される。
【０３１０】
ＭＳＦＳ３７０６からのデータがＩ／Ｏユニット３７０７に到着すると、データバッファ部３８４４に格納される。このとき、送信元ＭＳＦＳ３７０６に対応するカウンタ３８４８のカウント値がデクリメントされる（前述のステップＳ７０７）。
【０３１１】
データ送出部３８４６は、非優先リソースとして確保されているサーバ装置外部との通信帯域に従い、データバッファ部３８４４からデータを取り出し、対応するユーザ端末３７０８に取り出したデータを送出する。
【０３１２】
以上のように、上記第９の実施形態によれば、優先リソースとして使用されていないリソースを全て非優先リソースとして管理し、優先リソースを新たに増やす必要が生じた場合には、非優先リソースが所定のリソース量（最低帯域量）以下にならない条件下で、非優先リソースから優先リソースを割り当てるようにしているので、非優先データの読み出しが増加しても、優先データの入出力が影響を受けることがなく、しかも、使用されていないリソースが全て非優先リソースとして使用されるため、非優先データの読み出しが効率的に実行される。
【０３１３】
また、上記第９の実施形態では、各ＭＳＦＳ３７０６が非同期で動作するため、各ＭＳＦＳ３７０６からＩ／Ｏユニット３７０７に送信されるデータの衝突が発生し、交換部３７０３におけるＡＴＭスイッチに輻輳が生じる恐れがある。しかしながら、第９の実施形態では、非優先リソースとしてのＡＴＭスイッチの通信帯域をＡＢＲモードを用いて確保し、データを読み出したＭＳＦＳ３７０６は、ＡＢＲモードで確保している通信帯域を用いてデータを送信するようにしているので、たとえ輻輳が生じた場合でも、即座にＭＳＦＳ３７０６からの送信レートが下がり、輻輳が解消される。従って、Ｉ／Ｏユニット３７０７は、常に正常にデータを受信できる。ただし、優先リソースとしての通信帯域の解放等により、通信帯域に空き帯域が生じた場合には、直ちに送信レートが上がり、帯域の有効利用が行われる。
【０３１４】
また、上記第９の実施形態では、コマンドキュー制御部３８４２は、Ｉ／Ｏユニット３７０７がサーバ装置外部にデータを出力するための非優先リソースとしての通信帯域と、Ｉ／Ｏユニット３７０７がＭＳＦＳ３７０６から読み出しデータを受信するための非優先リソースとしての通信帯域との内、小さい方の帯域に、データの読み出しコマンドが要求するデータ量が等しくなる周期で、コマンドキュー３８４１の先頭から順にコマンドを取り出して、コマンド送出部３８４３に送るようにしている。これによって、ＭＳＦＳ３７０６から送られてくるデータによって使用される平均帯域が、ＡＴＭスイッチがＭＳＦＳ３７０６と通信するための非優先リソースとしての通信帯域と等しくなるか、またはそれよりも小さくなるため、ＭＳＦＳ３７０６のデータ送信によるＡＴＭスイッチの輻輳を抑制する効果が期待できる。さらに、ＭＳＦＳ３７０６から送られてくるデータによって使用される平均帯域が、サーバ装置外部にデータを出力するための非優先リソースとしての通信帯域とも等しくなるか、またはそれよりも小さくなるため、Ｉ／Ｏユニット３７０７内のデータバッファ部３８４４に蓄積されるデータ量が増大していくことを抑えることができる。
【０３１５】
また、上記第９の実施形態では、コマンド送出部３８４３は、注目している送出キュー３８４９に対応するカウンタ３８４８のカウント値が、予め定められたしきい値Ｌ未満である場合にのみ、当該注目している送出キュー３８４９内のコマンドをＭＳＦＳ３７０６に送信するようにしているので、ＭＳＦＳ３７０６から同時に送信される可能性があるデータ数を制限していることになり、ＡＴＭスイッチの輻輳を抑制する効果が期待できる。
【０３１６】
なお、第９の実施形態では、ＭＳＦＳ３７０６は、非優先リソースとして確保されている読み出し帯域内で、内部の非優先コマンドキューからコマンドを取り出し、データの読み出しを実行するとしたが、優先リソースに対するデータのＩ／Ｏ処理が行われていないときに、非優先コマンドキューからコマンドを取り出し、非優先データの読み出しを実行するとしてもよい。この場合、非優先リソースの帯域量が変化した場合の各ＭＳＦＳ３７０６に対する非優先リソースとしてのデータの読み出し帯域の通知は、必要がなくなる。
【０３１７】
また、上記第９の実施形態では、カウンタ３８４８および送出キュー３８４９は、ＭＳＦＳ３７０６毎に設けるとしたが、これらを各Ｉ／Ｏユニット３７０７に１つずつ設けるようにし、送出先のＭＳＦＳを意識しない制御としても、第９の実施形態と同様にＭＳＦＳ３７０６から同時に送信される可能性があるデータ数を制限していることになり、ＡＴＭスイッチの輻輳を抑制する効果が期待できる。ただし、ユーザ端末３７０８からのデータの読み出しが特定のＭＳＦＳ３７０６にある程度集中した場合等には、読み出しの効率が悪くなることが考えられる。これは、要求が集中していないＭＳＦＳ３７０６に対しては、要求を送信できるとすぐに応答が得られるはずであるが、要求が集中しているＭＳＦＳからのデータを受信しないと、カウンタ３８４８のカウント値のしきい値制御により、要求をＭＳＦＳ３７０６に送信できなくなるためである。
【０３１８】
一般的に、ファイルシステムの利用者は、取得するファイルデータの範囲を指定して、ファイルシステム内のサーバに対してデータ送出要求を送る。サーバは、データ送出要求で指定された範囲のファイルデータをすべて利用者に送出する。従来のファイルシステムでは、利用者は、サーバの実行中のデータ送出処理を中断する操作は行えたが、実行中のデータ送出処理を一時停止し、一時停止したデータ送出処理を再開する操作を行うことはできなかった。
【０３１９】
ところで、ディジタル化された動画像データを扱うファイルシステムでは、任意のデータ伝送速度によるデータの連続送出処理が不可欠となっている。動画像データを扱うファイルシステムに関して、ＩＳＯ／ＩＥＣ標準１３８１８−９のドラフトでは、１つの動画像ファイルに関するデータの連続送出の一時停止および再開操作を定義している。このドラフトによれば、「ＤＳＭ  Ｓｔｒｅａｍ  Ｐａｕｓｅ」によりデータ送出の一時停止を行い、「ＤＳＭ  Ｓｔｒｅａｍ  Ｒｅｓｕｍｅ」によりデータ送出再開を実行するものと定義している。
【０３２０】
しかしながら、動画像データを扱う従来のファイルシステムにおいて、ある伝送速度によるデータの連続送出処理を一時停止するポーズ、および一時停止したデータ送出処理を再開するポーズ解除に関して、ポーズ解除時に任意に指定したデータ伝送速度でデータ送出を再開させるポーズ制御方式は確立されていなかった。
【０３２１】
また、従来のファイルシステムは、ポーズ解除でデータの送出を再開する場合、ポーズ解除後のデータ取得に必要となる時間を考慮していなかった。そのため、ポーズ処理前後でデータの伝送速度が変化すると、連続した送出に必要なデータの不足が生じたり、取得したデータのバッファからの溢れが生じたり、データ送出再開までにファイルシステムが次のデータを取得する時間が必要となる等の問題があった。
【０３２２】
そこで、データの連続送出処理の一時停止および再開を行うファイルシステムにおいて、ポーズ解除後の伝送速度を任意に指定した場合でも、データ送出時のデータ不足を生ずることがなく、かつ再開までの時間を短縮することのできる実施形態について以下に説明する。
【０３２３】
（第１０の実施形態）
図４３は、本発明の第１０の実施形態に係るファイルシステムの構成を示すブロック図である。図４３において、本ファイルシステムは、サーバ装置４３０１と、データ記憶装置４３０２とを備えている。
【０３２４】
データ記憶装置４３０２は、サーバ装置４３０１によって管理され、利用者４３０３によって利用されるるデータを格納している。利用者４３０３は、指定した範囲のデータの送出を要求するデータ送出要求と、データ送出の一時停止を要求するポーズ要求と、一時停止したデータ送出の再開を要求するポーズ解除要求とを、サーバ装置４３０１に対して発行する。サーバ装置４３０１は、利用者４３０３からのデータ送出要求を受けて、データ記憶装置４３０２からデータを取得し、当該データを利用者４３０３に送出するものであり、データ送出部４３１０と、データ取得部４３１１と、バッファ４３１２と、バッファ管理部４３１３と、ポーズ制御部４３１４とを含む。
【０３２５】
データ取得部４３１１は、指定した位置から順番に、かつ指定された速度で連続的に、データ記憶装置４３０２からデータを取得する。バッファ４３１２は、データ記憶装置４３０２から取得したデータを格納する。バッファ管理部４３１３は、バッファ４３１２に格納されたデータの操作とデータ量の管理とを行う。データ送出部４３１０は、バッファ４３１２に格納されているデータを、指定された順番で、かつ指定された任意の伝送速度で連続的に、データを利用者４３０３に送出する。ポーズ制御部４３１４は、利用者４３０３からのポーズ要求およびポーズ解除要求を受けて、データ送出部４３１０とデータ取得部４３１１とバッファ管理部４３１３とを制御する。また、サーバ装置４３０１およびデータ記憶装置４３０２で扱うデータは、すべて固定長のブロックを単位として操作され、各ブロックにはデータ中の位置を示すブロック番号が連続的に付与されるものとする。
【０３２６】
図４４は、サーバ装置４３０１のデータ送出動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。まず、この図４４を参照して、サーバ装置４３０１が利用者４３０３からデータ送出要求を受け付けたときの動作を説明する。
【０３２７】
図４４において、参照番号４４４１および４４４２は、時間軸を示しており、当該時間軸は、垂直方向の対応する位置が、互いに同一時刻を表している。参照番号４４３１は、サーバ装置４３０１が利用者４３０３から受け付けたデータ送出要求と、その受付時刻とを示している。参照番号４４０１Ａ〜４４０３Ａは、データ取得部４３１１がデータ記憶装置４３０２に対して発行するデータ取得要求と、その発行時刻とを示している。参照番号４４１１Ａ〜４４１３Ａは、データ取得要求４４０１Ａ〜４４０３Ａによって取得されたデータと、データ送出部４３１０が利用者４３０３へ当該データを送出する時刻とを示している。参照番号４４２１は、データ取得要求４４０１Ａを発行してから対応するデータ４４１１Ａがバッファ４３１２に格納されるまでの最大時間を示している。参照番号４４５１〜４４５４は、データ送出部４３１０が利用者４３０３にデータを送出する時間間隔を示している。
【０３２８】
利用者４３０３は、データ送出要求４４３１を発行し、データの範囲とデータを送出する際の伝送速度とを指定する。データの範囲は、開始ブロック番号と終了ブロック番号とで指定される。データの伝送速度は、送出するブロック間の平均時間間隔であるデータ送出間隔（以降Ｔsdと記述する）で指定される。
【０３２９】
データ取得部４３１１は、データ送出要求４４３１を受け付けると、当該データ送出要求４４３１で指定された開始ブロック番号に対応する１つのブロックを取得するためのデータ取得要求４４０１Ａを発行する。データ取得部４３１１は、データ取得要求４４０１Ａの発行時刻からデータ送出間隔Ｔsd後に、次の１つのブロックを取得するためのデータ取得要求４４０２Ａを、データ記憶装置４３０２に発行する。同様の手順により、データ取得部４３１１は、データ送出要求４４３１で指定された終了ブロック番号に到達するまで、データ送出要求を繰り返し発行する。
【０３３０】
データ取得要求４４０１Ａによってデータ記憶装置４３０２から取得されたブロックは、バッファ４３１２に格納される。データ取得時間Ｄは、データ取得部４３１１がデータ取得要求を発行してから対応する１つのブロックがバッファ４３１２に格納されるまでの最大時間であり、既知の値である。すなわち、データ取得時間Ｄの間に、必ず指定した１ブロックを取得できることが保証される。
【０３３１】
データ取得要求４４０１Ａによって取得され、バッファ４３１２に格納されたブロックは、データ取得要求４４０１Ａの発行時刻からデータ取得時間Ｄ経過後のデータ送出時刻４４１１Ａに、データ送出部４３１０により利用者４３０３に対して送出される。同様に、データ取得要求４４０２Ａによって取得されたブロックは、データ取得要求４４０２Ａの発行時刻からデータ取得時間Ｄ経過後の送出時刻４４１２Ａに、データ送出部４３１０により利用者４３０３に対して送出される。同様の手順により、データ送出要求４４３１で指定された終了ブロック番号に対応するデータが送出されるまで、データ送出が連続的に行われる。以上の動作により、利用者４３０３に指定された任意のデータ伝送速度による連続的なデータ送出が実現される。
【０３３２】
図４５は、サーバ装置４３０１のポーズ動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。次に、図４５を参照して、サーバ装置４３０１内のポーズ制御部４３１４が、利用者４３０３からポーズ要求を受け取ったときの動作を説明する。
【０３３３】
図４５において、参照番号４４３２は、ポーズ制御部４３１４が利用者４３０３から受け付けたポーズ要求と、その受付時刻とを示している。参照番号４４０４Ａ〜４４０６Ａは、データ取得部４３１１がデータ記憶装置４３０２に対して発行するデータ取得要求と、その発行時刻とを示している。参照番号４４１４Ａおよび４４１５Ａは、データ取得要求４０４４Ａおよび４０４５Ａによって取得されたデータと、データ送出部４３１０が利用者４３０３に当該データを送出する時刻とを示している。参照番号４４２２は、データ取得要求４４０４Ａを発行してから対応するデータ４４１４Ａがバッファ４３１２に格納されるまでの最大時間Ｄを示している。参照番号４４５５〜４４５７は、データ送出部４３１０が利用者４３０３にデータを送出する時間間隔を示している。
【０３３４】
利用者４３０３からのデータ送出要求に応答して、データ取得部４３１１がデータ取得要求４４０４Ａ〜４４０６Ａを発行しようとしているときであって、データ送出要求４４０４Ａおよび４４０５Ａが発行された後に、ポーズ制御部４３１４がポーズ要求４４３２を受け付けた場合、ポーズ制御部４３１４は、データ取得部４３１１に対して、直ちにデータ取得要求の発行を停止するように制御する。これにより、データ取得要求４４０６Ａは、データ取得部４３１１から発行されなくなる。同様に、ポーズ制御部４３１４は、データ送出部４３１０に対して、直ちにデータ送出を停止するように制御する。データ取得要求４４０４Ａおよび４４０５Ａによって取得されたブロック４４１４Ａおよび４４１５Ａの送出時刻は、ポーズ要求受付時刻よりも後であるため、当該ブロック４４１４Ａおよび４４１５Ａは、バッファ４３１２に格納されたままとなり、データ送出部４３１０から利用者４３０３に送出されなくなる。以上の動作により、連続的に送出されていたデータの一時停止が実現される。
【０３３５】
図４６は、サーバ装置４３０１のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。次に、図４６を参照して、ポーズ制御部４３１４が利用者４３０３からポーズ解除要求を受け取ったときの動作を説明する。
【０３３６】
図４６において、参照番号４４３３は、ポーズ制御部４３１４が利用者４３０３から受け付けたポーズ解除要求と、その受付時刻とを示している。参照番号４４０６Ａ〜４４０８Ａは、データ取得部４３１１がデータ記憶装置４３０２に対して発行するデータ取得要求と、その発行時刻とを示している。参照番号４４１４Ａおよび４４１５Ａは、ポーズ処理でバッファに格納されたままとなっている２つのブロックと、利用者４３０３への送出時刻とを示している。参照番号４４１６Ａおよび４４１７Ａは、ポーズ解除後のデータ取得要求４４０６Ａおよび４４０７Ａによって取得されたデータと、データ送出部４３１０が利用者４３０３に当該データを送出する時刻とを示している。参照番号４４２３は、データ取得要求４４０６Ａを発行してから対応するデータ４４１６Ａがバッファ４３１２に格納されるまでの最大時間Ｄを示している。参照番号４４５８〜４４６２は、データ送出部４３１０が利用者４３０３に対してデータを送出する時間間隔を示している。
【０３３７】
利用者４３０３は、ポーズ解除要求４４３３を発行し、ポーズ解除後のデータ伝送速度を指定する。データ伝送速度は、データ送出要求時と同様に、送出するブロック間の平均時間間隔である、データ送出間隔Ｔsd'で指定する。
【０３３８】
ポーズ制御部４３１４は、利用者４３０３からポーズ解除要求４４３３を受け付けると、バッファ管理部４３１３を参照することにより、ポーズ処理以降にバッファ４３１２に格納されたままとなっているブロックの数Ｎを取得する。
【０３３９】
ポーズ解除要求４４３３に応答して、ポーズ制御部４３１４がデータ取得部４３１１に対して、直ちにデータ取得を再開するよう制御する時刻を、データ取得再開時刻ｔrdと定義する。同様に、バッファ４３１２中に格納されているブロックの中で、次に送出するブロックの送出時刻、すなわち図４６のデータ送出時刻４４１４Ａを、データ送出再開時刻ｔsdと定義する。
【０３４０】
ポーズ制御部４３１４は、データ取得再開時刻ｔrdと、バッファ４３１２中のブロック数Ｎと、ポーズ解除後のデータ送出間隔Ｔsd'と、データ取得時間Ｄとを、次式（１４）に代入することにより、データ送出再開時刻ｔsdを求める。
ｔsd＝ｔrd＋Ｄ−Ｎ・Ｔsd'  …（１４）
【０３４１】
次に、ポーズ制御部４３１４は、上式（１４）を用いて求めたデータ送出再開時刻ｔsdと、データ取得再開時刻ｔrdとを比較し、当該データ送出再開時刻ｔsdがデータ取得再開時刻ｔrd以上の場合は、式（１４）で求めた時刻を、データ送出再開時刻ｔsdと決定する。また、データ送出再開時刻ｔsdがデータ取得再開時刻ｔrd未満の場合は、データ取得再開時刻ｔrdと等しい時刻を、データ送出再開時刻ｔsdと決定する。
【０３４２】
次に、ポーズ制御部４３１４は、データ取得再開時刻ｔrdにおいて、データ取得部４３１１に対し、バッファ４３１２に格納されている最後のブロック４４１５Ａの次のブロック４４１６Ａを取得するためのデータ取得要求４４０６Ａから順番に、終了ブロックに到達するまで、データ取得要求を発行するよう制御する。同様に、ポーズ制御部４３１４は、決定したデータ送出再開時刻ｔsdにおいて、データ送出部４３１０に対して、直ちにバッファ４３１２に格納されている先頭のブロック４４１４Ａから順番に終了ブロックを送出するまで、データを送出するよう制御する。
【０３４３】
以上のように、第１０の実施形態によれば、ポーズ解除後のデータ伝送速度として任意の伝送速度が指定された場合、ポーズ制御部４３１４が、前述の式（１４）を用いてデータ送出再開時刻を求めることにより、ポーズ解除後にデータが途切れることなく、指定された伝送速度でデータを送出することができる。
【０３４４】
（第１１の実施形態）
以下、本発明の第１１の実施形態に係るファイルシステムについて図面を参照しながら説明する。なお、第１１の実施形態は、図４３に示す第１０の実施形態と各ブロックの機能が異なるが、全体としての構成は同様である。従って、以下には、図４３に示す第１０の実施形態の構成を援用しつつ、第１１の実施形態について説明する。
【０３４５】
第１１の実施形態において、サーバ装置４３０１が利用者４３０３からデータ送出要求を受け付けたときの動作は、第１０の実施形態において、図４４を参照して説明した動作と同一である。同様に、ポーズ制御部４３１４が利用者４３０３からポーズ要求を受け取ったときの動作は、第１０の実施形態において、図４５を参照して説明した動作と同一である。従って、これらの動作の説明は、省略する。
【０３４６】
図４７は、サーバ装置４３０１のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。以下、図４７を参照して、ポーズ制御部４３１４が利用者４３０３からポーズ解除要求を受け付けたときの動作を説明する。
【０３４７】
図４７において、参照番号４７４１および４７４２は、時間軸を示しており、当該時間軸は、垂直方向の対応する位置が、互いに同一時刻を表している。参照番号４７３３は、ポーズ制御部４３１４が利用者４３０３から受け付けたポーズ解除要求と、その受付時刻とを示している。参照番号４７０６Ｂおよび４７０７Ｂは、データ取得部４３１１がデータ記憶装置４３０２に対して発行するデータ取得要求と、その発行時刻とを示している。参照番号４７１４Ｂおよび４７１５Ｂは、ポーズ処理でバッファ４３１２に格納されたままとなっている２つのブロックと、利用者４３０３への送出時刻とを示している。参照番号４７１６Ｂおよび４７１７Ｂは、データ取得要求４７０６Ｂおよび４７０７Ｂによって取得されたデータと、データ送出部４３１０が利用者４３０３に当該データを送出する時刻とを示している。参照番号４７２４は、データ取得要求４７０６Ｂを発行してから対応するデータ４７１６Ｂがバッファ４３１２に格納されるまでの最大時間Ｄを示している。４７６３〜４７６６は、データ送出部４３１０が利用者４３０３にデータを送出する時間間隔を示している。
【０３４８】
利用者４３０３は、ポーズ解除要求４７３３を発行し、ポーズ解除後のデータ伝送速度を指定する。データ伝送速度は、データ送出要求時と同様に、送出するブロック間の平均時間間隔であるデータ送出間隔Ｔsd'で指定する。
【０３４９】
ポーズ制御部４３１４は、利用者４３０３からポーズ解除要求４７３３を受け付けると、バッファ管理部４３１３を参照して、ポーズ処理以降にバッファ４３１２に格納されたままとなっているブロックの数Ｎを取得する。
【０３５０】
ポーズ解除要求４７３３に応答して、ポーズ制御部４３１４がデータ取得部４３１１に対して直ちにデータ取得再開するよう制御する時刻を、データ取得再開時刻ｔrdと定義する。同様に、バッファ４３１２中に格納されているブロックの中で、次に送出するブロックの送出時刻、すなわち図４７のデータ送出時刻４７１４Ｂを、データ送出再開時刻ｔsdと定義する。
【０３５１】
ポーズ制御部４３１４は、次式（１５）に、データ送出再開時刻ｔsdと、バッファ４３１２中のブロック数Ｎと、ポーズ解除後のデータ送出間隔Ｔsd'と、データ取得時間Ｄとを代入することにより、データ取得再開時刻ｔrdを求める。
ｔrd＝ｔsd＋Ｎ・Ｔsd'−Ｄ  …（１５）
【０３５２】
ポーズ制御部４３１４は、上式（１５）を用いて求めたデータ取得再開時刻ｔrdと、データ送出再開時刻ｔsdとを比較し、当該データ取得再開時刻ｔrdがデータ送出再開時刻ｔsd以上の場合は、式（１５）で求めた時刻を、データ取得再開時刻ｔrdと決定する。また、データ取得再開時刻ｔrdがデータ送出再開時刻ｔsd未満の場合は、第１０の実施形態を適用して、ポーズ制御部４３１４は、式（１４）に、データ取得再開時刻ｔrdと、バッファ４３１２中のブロック数Ｎと、ポーズ解除後のデータ送出間隔Ｔsd' と、データ取得時間Ｄを代入することにより、データ送出再開時刻ｔsdを求める。
【０３５３】
ポーズ制御部４３１４は、決定したデータ取得再開時刻ｔrdにおいて、データ取得部４３１１に対し、バッファに格納されている最後のブロック４７１５Ｂの次のブロック４７１６Ｂを取得するためのデータ取得要求４７０６Ｂから順番に、終了ブロックに到達するまで、データ取得要求を発行するよう制御する。同様に、ポーズ制御部４３１４は、データ送出再開時刻ｔsdにおいて、データ送出部４３１０に対し、直ちにバッファ４３１２に格納されている先頭のブロック４７１４Ｂから順番に、終了ブロックを送出するまで、データを送出するよう制御する。
【０３５４】
以上のように、第１１の実施形態によれば、ポーズ解除後のデータ伝送速度として任意の伝送速度が指定された場合、ポーズ制御部４３１４が、前述の式（１５）を用いてデータ取得再開時刻を求めることにより、ポーズ解除後にデータが途切れることなく、指定された伝送速度でデータを送出することができる。
【０３５５】
（第１２の実施形態）
以下、本発明の第１２の実施形態に係るファイルシステムについて図面を参照しながら説明する。なお、第１２の実施形態は、図４３に示す第１０の実施形態と各ブロックの機能が異なるが、全体としての構成は同様である。従って、以下には、図４３に示す第１０の実施形態の構成を援用しつつ、第１２の実施形態について説明する。
【０３５６】
第１２の実施形態において、サーバ装置４３０１が利用者４３０３からデータ送出要求を受け付けたときの動作は、第１０の実施形態において、図４４を参照して説明した動作と同一である。同様に、ポーズ制御部４３１４が利用者４３０３からポーズ要求を受け取ったときの動作は、第１０の実施形態において、図４５を参照して説明した動作と同一である。従って、これらの動作の説明は、省略する。
【０３５７】
図４８は、ポーズ解除動作におけるデータ送出再開時刻の算出方法を説明するためのタイムチャートである。図４９は、サーバ装置４３０１のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。以下、これら図４８および図４９を参照して、ポーズ制御部４３１４が利用者４３０３からポーズ解除要求を受け付けたときの動作を説明する。
【０３５８】
図４８において、参照番号４８４１および４８４２は、時間軸を示しており、当該時間軸は、垂直方向の対応する位置が、互いに同一時刻を表している。参照番号４８３３は、ポーズ制御部４３１４が利用者４３０３から受け付けたポーズ解除要求と、その受付時刻とを示している。参照番号４８０６Ｃは、データ取得部４３１１がデータ記憶装置４３０２に対して発行するデータ取得要求と、その発行予定時刻とを示している。参照番号４８１４Ｃおよび４８１５Ｃは、ポーズ処理でバッファ４３１２に格納されたままとなっている２つのブロックと、利用者４３０３への送出予定時刻とを示している。参照番号４８１６Ｃは、データ取得要求４８０６Ｃによって取得される予定のデータと、データ送出部４３１０が利用者４３０３に当該データを送出する予定時刻とを示している。参照番号４８２５は、データ取得要求４８０６Ｃを発行してから、対応するデータ４８１６Ｃがバッファ４３１２に格納されるまでの最大時間Ｄを示している。参照番号４８６７および４８６８は、データ送出部４３１０が利用者４３０３にデータを送出する時間間隔を示している。
【０３５９】
図４９において、参照番号４８３３は、ポーズ制御部４３１４が利用者４３０３から受け付けたポーズ解除要求と、その受付時刻とを示している。参照番号４８０５Ｃ'，４８０６Ｃおよび４８０７Ｃは、データ取得部４３１１がデータ記憶装置４３０２に対して発行するデータ取得要求の発行時刻を示している。参照番号４８１４Ｃ'は、ポーズ処理以降にバッファ４３１２に格納されたままとなっているブロックと、利用者４３０３への送出時刻とを示している。参照番号４８１５Ｃ'および４８１６Ｃは、データ取得要求４８０５Ｃ'および４８０６Ｃによって取得されたデータと、データ送出部４３１０が利用者４３０３に当該データを送出する時刻とを示している。参照番号４８２６は、データ取得要求４８０５Ｃ'を発行してから、対応するデータ４８１５Ｃ'がバッファ４３１２に格納されるまでの最大時間Ｄを示している。参照番号４８６９〜４８７２は、データ送出部４３１０が利用者４３０３にデータを送出する時間間隔を示している。
【０３６０】
利用者４３０３は、ポーズ解除要求４８３３を発行し、ポーズ解除後のデータ伝送速度を指定する。データ伝送速度は、データ送出要求時と同様に、送出するブロック間の平均時間間隔である、データ送出間隔Ｔsd'で指定する。
【０３６１】
ポーズ制御部４３１４は、利用者４３０３からポーズ解除要求４８３３を受け付けると、バッファ管理部４３１３を参照して、ポーズ処理以降にバッファ４３１２に格納されたままとなっているブロックの数Ｎを取得する。
【０３６２】
ポーズ解除要求４８３３に応答して、ポーズ制御部４３１４がデータ取得部４３１１に対して、直ちにデータ取得を再開するよう制御する時刻を、データ取得再開時刻ｔrdと定義する。同様に、バッファ４３１２中に格納されているブロックの中で、次に送出するブロックの送出時刻、すなわち図４８のデータ送出時刻４８１４Ｃおよび図４９のデータ送出時刻４８１４Ｃ'を、データ送出再開時刻ｔsdと定義する。
【０３６３】
ポーズ制御部４３１４は、前述の式（１４）を用いて、データ送出再開予定時刻ｔsdを求める。次に、ポーズ制御部４３１４は、式（１４）を用いて求めたデータ送出再開予定時刻ｔsdと、データ取得再開時刻ｔrdとを比較し、当該データ送出再開予定時刻ｔsdがデータ取得再開時刻ｔrd以上の場合は、式（１４）で求めた時刻を、データ取得再開時刻ｔsdと決定し、前述した第１０の実施形態で説明したポーズ解除処理と同様に、以下の処理を行う。すなわち、ポーズ制御部４３１４は、データ取得再開時刻ｔrdにおいて、データ取得部４３１１に対し、直ちにバッファ４３１２に格納されている最後のブロックの次のブロックを取得するためのデータ取得要求から順番に、終了ブロックに到達するまで、データ取得要求を発行するよう制御する。同様に、ポーズ制御部４３１４は、決定したデータ送出再開時刻ｔsdにおいて、データ送出部４３１０に対し、直ちにバッファ４３１２に格納されている先頭のブロックから順番に、終了ブロックを送出するまで、データを送出するよう制御する。
【０３６４】
式（１４）を用いて求めたデータ送出再開予定時刻ｔsdが、データ取得再開時刻ｔrd未満、すなわち図４８に示す場合は、以下の処理を行う。すなわち、ポーズ制御部４３１４は、図４８のデータ取得時間４８２５において、ポーズ解除後のデータ伝送速度Ｔsd'により送出することのできるブロック数Ｌ、すなわち限界データ量を、次式（１６）を用いて求める。ただし、次式（１６）において、［Ｘ］はＸを越えない最大の整数とする。
Ｌ＝［Ｄ／Ｔsd'］  …（１６）
【０３６５】
次に、ポーズ制御部４３１４は、バッファ４３１２から削除するブロック数Ｎd を、次式（１７）を用いて求め、バッファ管理部４３１３に対し、バッファ４３１２に格納されているブロックから、次式（１７）で求めたＮd 個のブロックを削除するよう制御する。
Ｎd＝Ｎ−Ｌ  …（１７）
【０３６６】
バッファ管理部４３１３は、バッファ４３１２からＮd 個のブロックを、最後にバッファに格納された順番、すなわちブロック番号の大きい順番に削除する。これにより、バッファ４３１２中のブロック数は、Ｌと一致する。この結果、図４８のブロック４８１５Ｃが、バッファ４３１２から削除される。
【０３６７】
ポーズ制御部４３１４は、次式（１８）に、データ取得再開時刻ｔrdと、バッファ４３１２中のブロック数Ｌと、ポーズ解除後のデータ送出間隔Ｔsd'と、データ取得時間Ｄとを代入することにより、新たにデータ送出再開時刻ｔsd'を求める。
ｔsd'＝ｔrd＋Ｄ−Ｌ・Ｔsd'  …（１８）
【０３６８】
次に、ポーズ制御部４３１４は、データ取得再開時刻ｔrdにおいて、データ取得部４３１１に対し、バッファ４３１２に格納されている最後のブロック４８１４Ｃ'の次のブロック４８１５Ｃ'を取得するためのデータ取得要求４８０５Ｃ'から順番に、終了ブロックに到達するまで、データ取得要求を発行するよう制御する。同様に、ポーズ制御部４３１４は、決定したデータ送出再開時刻ｔsd'において、データ送出部４３１０に対し、直ちにバッファ４３１２に格納されている先頭のブロック４８１４Ｃ'から順番に、終了ブロックを送出するまで、データを送出するよう制御する。
【０３６９】
以上のように、第１２の実施形態によれば、ポーズ解除後のデータ伝送速度として任意の伝送速度が指定された場合、限界データ量を越えるデータをバッファ４３１２から削除するようにしているので、サーバ装置４３０１は、限界データ量以上のバッファ容量を持つ必要がなく、ポーズ解除後にデータが途切れることなく、指定された伝送速度でデータを送出することができる。
【産業上の利用可能性】
【０３７０】
本発明に係るファイルシステムは、ユーザからの要求に対して素早い応答時間でデータを提供できるスケジューリング装置等を含むファイルシステムとして有用である。
【図面の簡単な説明】
【０３７１】
【図１】本発明の第１の実施形態に係るファイルシステムの構成を示すブロック図
【図２】図１の各サーバユニットにおけるファイルアクセスに関連する部分の構成を示すブロック図
【図３】図１のファイルマネージャにおけるファイルアクセスに関連する部分の構成を示すブロック図
【図４】第１の実施形態において、リソースの予約および割り当てと、データ読み出し動作との関係を示した図
【図５】ＭＳ到着スロットの状態を管理するＭＳ到着スロット管理テーブルの一例を示す図
【図６】書き込み用スロットの状態を管理する書き込み用スロット管理テーブルの一例を示す図
【図７】ストリーム管理テーブルの一例を示す図
【図８】図３に示すリソース管理部のより詳細な構成を示すブロック図
【図９】本発明の第２の実施形態に係るファイルシステムの構成を示すブロック図
【図１０】図９の各Ｉ／Ｏユニットにおけるファイルアクセス部の構成を示すブロック図
【図１１】図９の各ブロック格納ユニットにおけるファイルアクセス部の構成を示すブロック図
【図１２】本発明の第３の実施形態に係るファイルシステムの構成を示すブロック図
【図１３】本発明の第４の実施形態に係るディスク管理装置の構成を示すブロック図
【図１４】記憶装置の帯域に比例してデータを分配する比率を決定する、帯域優先レイアウトについて示す図
【図１５】記憶装置の容量に比例してデータを分配する比率を決定する、容量優先レイアウトについて示す図
【図１６】帯域優先レイアウトと容量優先レイアウトとを混在させてデータを分配する比率を決定する、帯域設定レイアウトについて示す図
【図１７】図１３に示すディスク管理装置を用いたファイルシステムの構成を示すブロック図
【図１８】本発明の第６の実施形態に係るスケジューリング装置の構成を示すブロック図
【図１９】図１８のスケジューリング装置を用いた映像情報提供システムの構成を示すブロック図
【図２０】図１９の映像情報提供装置１９２０とクライアント（１〜ｎ）１９２１との間で、信号が送受信される様子を示すシーケンス図
【図２１】図１８の実行権発生周期テーブル１８１２の登録内容を示す図
【図２２】図１８の処理待ちキュー１８１４のキューイング内容を示す図
【図２３】図１８の実行権キュー１８１６のキューイング内容を示す図
【図２４】図１８の実行権発生部１８１３が実行権を発生させる動作を説明するためフローチャート
【図２５】図１８の実行指示部１８１５が読み出し要求の実行を指示する動作を説明するためのフローチャート
【図２６】本発明の第７の実施形態に係るスケジューリング装置の構成を示すブロック図
【図２７】図２６のスケジューリング装置を用いた映像情報提供システムの構成を示すブロック図
【図２８】図２６の実行権発生周期テーブル２６９２の登録内容を示す図
【図２９】図２６の処理待ちキュー２６９４のキューイング内容を示す図
【図３０】図２６の実行権キュー２６９６のキューイング内容を示す図
【図３１】他の実行権キューの動作を説明するための図
【図３２】本発明の第８の実施形態に係るサーバ装置を用いたデータ伝送システムの構成を示すブロック図
【図３３】図３２におけるＩ／Ｏユニット３２０７のより詳細な構成を示すブロック図
【図３４】図３３におけるコマンド受付部３３２７の動作を示すフローチャート
【図３５】図３３におけるコマンドキュー制御部３３２２の動作を示すフローチャート
【図３６】図３３におけるコマンド送出部３３２３の動作を示すフローチャート
【図３７】本発明の第９の実施形態に係るサーバ装置を用いたデータ伝送システムの構成を示すブロック図
【図３８】図３７におけるＩ／Ｏユニット３７０７のより詳細な構成を示すブロック図
【図３９】図３７におけるリソース管理部３７０１の動作を示すフローチャート
【図４０】図３８におけるコマンド受付部３８４７の動作を示すフローチャート
【図４１】図３８におけるコマンドキュー制御部３８４２の動作を示すフローチャート
【図４２】図３８におけるコマンド送出部３８４３の動作を示すフローチャート
【図４３】本発明の第１０の実施形態に係るファイルシステムの構成を示すブロック図
【図４４】第１０の実施形態において、サーバ装置のデータ送出動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート
【図４５】第１０の実施形態において、サーバ装置のポーズ動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート
【図４６】第１０の実施形態において、サーバ装置のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート
【図４７】第１１の実施形態において、サーバ装置のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート
【図４８】第１２の実施形態において、サーバ装置のポーズ解除動作における、データ送出再開時刻の算出方法を説明するためのタイムチャート
【図４９】第１２の実施形態において、サーバ装置のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート
【符号の説明】
【０３７２】
１  交換装置
２  ファイルマネージャ
３  サーバユニット
１０１  外部メッセージインターフェース部
１０２  リソース割り当て部
１０３  スロット割り当て部
１０４  アドレス検索部
１０５  要求送出部
１０６  外部ネットワークＩ／Ｏ制御部
１０７  内部メッセージインターフェース部
１０８  記憶装置
１０９  記憶制御部
１１０  内部ネットワークＩ／Ｏ制御部
１１１  申告値管理部
２０１  メッセージインターフェース部
２０２  リソース管理部
４０１  申告パラメータ処理部
４０２  書き込み帯域算出部
４０３  受付判断部
４０４  リソース記憶部
９０１  ファイルマネージャ
９０２  Ｉ／Ｏユニット
９０５  ブロック格納ユニット
９０８  交換装置
１００１  外部メッセージインターフェース部
１００２  リソース割り当て部
１００３  スロット割り当て部
１００４  アドレス検索部
１００５  要求送出部
１００６  外部ネットワークＩ／Ｏ制御部
１００７  内部メッセージインターフェース部
１００８  申告値管理部
１１０１  内部メッセージインターフェース部
１１０２  内部ネットワークＩ／Ｏ制御部
１１０３  記憶制御部
１１０４  記憶装置
１２０１  メッセージインターフェース部
１２０２  リソース管理部
１２０３  読み出し、書き込み制御部
１２０４  記憶装置
１２０５  申告値管理部
１３００  ディスク管理装置
１３０１  ディスク帯域管理部
１３０２  ディスク容量管理部
１３０３  分配比率決定部
１３０４  帯域計算部
１３０５  容量計算部
１３０６  全ディスク帯域制御部
１３０７  全ディスク容量制御部
１７０８ａ，１７０８ｂ  記憶装置
１７０９  ファイル属性管理部
１７１０  帯域管理部
１７１１  ファイルオープン処理部
１７１２  帯域獲得部
１７１３  入出力制御部
１４１４ａ〜１４１４ｃ  記憶装置
１５１５ａ〜１５１５ｃ  記憶装置
１６１６ａ〜１６１６ｃ  記憶装置
１８１０、２６９０  スケジューリング装置
１８１１、２６９１  登録指示部
１８１２、２６９２  実行権発生周期テーブル
１８１３、２６９３  実行権発生部
１８１４、２６９４  処理待ちキュー
１８１５、２６９５  実行指示部
１８１６、２６９６  実行権キュー
１９２０、２７００  映像情報提供装置
１９２１、２７０１  クライアント
１９２２、２７０２  サーバ
２７０３  伝送路
３２０１，３７０１…リソース管理部
３２０２，３７０２…データ記憶部
３２０３，３７０３…交換部
３２０４，３７０４…入出力部
３２０５，３７０５…記憶装置
３２０６，３７０６…ＭＳＦＳ
３２０７，３７０７…Ｉ／Ｏユニット
３２０８，３７０８…ユーザ端末
３３０１，３８０１…優先入出力制御部
３３０２，３８０２…非優先入出力制御部
３３２１，３８４１…コマンドキュー
３３２２，３８４２コマンドキュー制御部
３３２３，３８４３…コマンド送出部
３３２４，３８４４…データバッファ部
３３２５…バッファ管理部
３３２６，３８４６…データ送出部
３３２７，３８４７…コマンド受付部
３８４８…カウンタ
３８４９…送出キュー
４３０１  サーバ装置
４３０２  データ記憶装置
４３１０  データ送出部
４３１１  データ取得部
４３１２  バッファ
４３１３  バッファ管理部
４３１４  ポーズ制御部
【図１】
2006065844.tif 000003
【図２】
2006065844.tif 000004
【図３】
2006065844.tif 000005
【図４】
2006065844.tif 000006
【図５】
2006065844.tif 000007
【図６】
2006065844.tif 000008
【図７】
2006065844.tif 000009
【図８】
2006065844.tif 000010
【図９】
2006065844.tif 000011
【図１０】
2006065844.tif 000012
【図１１】
2006065844.tif 000013
【図１２】
2006065844.tif 000014
【図１３】
2006065844.tif 000015
【図１４】
2006065844.tif 000016
【図１５】
2006065844.tif 000017
【図１６】
2006065844.tif 000018
【図１７】
2006065844.tif 000019
【図１８】
2006065844.tif 000020
【図１９】
2006065844.tif 000021
【図２０】
2006065844.tif 000022
【図２１】
2006065844.tif 000023
【図２２】
2006065844.tif 000024
【図２３】
2006065844.tif 000025
【図２４】
2006065844.tif 000026
【図２５】
2006065844.tif 000027
【図２６】
2006065844.tif 000028
【図２７】
2006065844.tif 000029
【図２８】
2006065844.tif 000030
【図２９】
2006065844.tif 000031
【図３０】
2006065844.tif 000032
【図３１】
2006065844.tif 000033
【図３２】
2006065844.tif 000034
【図３３】
2006065844.tif 000035
【図３４】
2006065844.tif 000036
【図３５】
2006065844.tif 000037
【図３６】
2006065844.tif 000038
【図３７】
2006065844.tif 000039
【図３８】
2006065844.tif 000040
【図３９】
2006065844.tif 000041
【図４０】
2006065844.tif 000042
【図４１】
2006065844.tif 000043
【図４２】
2006065844.tif 000044
【図４３】
2006065844.tif 000045
【図４４】
2006065844.tif 000046
【図４５】
2006065844.tif 000047
【図４６】
2006065844.tif 000048
【図４７】
2006065844.tif 000049
【図４８】
2006065844.tif 000050
【図４９】
2006065844.tif 000051