(57)【特許請求の範囲】
【請求項１】
ビデオサーバにおいて、
コンテンツを保存する複数のディスクと、
前記複数のディスクへのアクセスをスケジューリングするスケジューリング装置と、
クライアントから配信速度を含む前記コンテンツの配信要求を受信すると、前記スケジューリング装置のスケジューリングにしたがって前記複数のディスクをアクセスし、前記クライアントに対して、前記配信要求における配信速度により前記コンテンツを配信する配信手段と
を具備し、
前記スケジューリング装置は、
前記コンテンツの配信に使用可能な最速の配信速度を２のべき乗で割った複数の配信速度毎に、前記複数のディスクのうちのあるディスクがアクセスされてから次に当該あるディスクがアクセスされるまでの周期であり、配信速度が速いほど短く、配信速度が遅いほど長いアクセス周期の間において、前記複数のディスクをアクセスするアクセス順序と、前記複数のディスクのそれぞれについて前記アクセス順序にしたがって次のディスクをアクセスするまでのアクセス間隔とを含むアクセスパターン情報を保持する手段と、
ディスクに対する一回のアクセスに対して許可される一定のアクセス時間であるスロットを複数連ねた配置テーブルを保持する手段と、
前記配信要求の配信速度に対応する前記アクセスパターン情報のアクセス順序、アクセス間隔に基づいて、前記複数のディスクへのアクセスを、同時期に同ディスクがアクセスされないように前記配置テーブルのスロットに割り当て、前記配置テーブルへの割り当てにそって前記複数のディスクへのアクセスを許可する許可発生手段と
を具備する
ことを特徴とするビデオサーバ。
【請求項２】
請求項１記載のビデオサーバにおいて、
前記許可発生手段は、各ディスク間でアクセス許可をオーバーラップさせて発することを特徴とするビデオサーバ。
【請求項３】
請求項１又は請求項２記載のビデオサーバにおいて、
前記アクセスパターン情報において、前記複数の配信速度のうち前記コンテンツの配信に使用可能な最速の配信速度ではない配信速度に設定されているアクセスパターンは、この配信速度の２倍の配信速度に対応付けされているアクセスパターンを、２つの同じアクセスパターンに分割した結果のうちの一方である
ことを特徴とするビデオサーバ。
【請求項４】
コンテンツを保存する複数のディスクを具備するビデオサーバを、
前記複数のディスクへのアクセスをスケジューリングするスケジューリング手段、
クライアントから配信速度を含む前記コンテンツの配信要求を受信すると、前記スケジューリング装置のスケジューリングにしたがって前記複数のディスクをアクセスし、前記クライアントに対して、前記配信要求における配信速度により前記コンテンツを配信する配信手段
として機能させ、
前記スケジューリング手段は、
前記コンテンツの配信に使用可能な最速の配信速度を２のべき乗で割った複数の配信速度毎に、前記複数のディスクのうちのあるディスクがアクセスされてから次に当該あるディスクがアクセスされるまでの周期であり、配信速度が速いほど短く、配信速度が遅いほど長いアクセス周期の間において、前記複数のディスクをアクセスするアクセス順序と、前記複数のディスクのそれぞれについて前記アクセス順序にしたがって次のディスクをアクセスするまでのアクセス間隔とを含むアクセスパターン情報を管理し、
ディスクに対する一回のアクセスに対して許可される一定のアクセス時間であるスロットを複数連ねた配置テーブルを管理し、
前記配信要求の配信速度に対応する前記アクセスパターン情報のアクセス順序、アクセス間隔に基づいて、前記複数のディスクへのアクセスを、同時期に同ディスクがアクセスされないように前記配置テーブルのスロットに割り当て、前記配置テーブルへの割り当てにそって前記複数のディスクへのアクセスを許可する許可発生手段を具備する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項５】
請求項４記載のプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記許可発生手段は、各ディスク間でアクセス許可をオーバーラップさせて発することを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
請求項４又は請求項５記載のプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記アクセスパターン情報において、前記複数の配信速度のうち前記コンテンツの配信に使用可能な最速の配信速度ではない配信速度に設定されているアクセスパターンは、この配信速度の２倍の配信速度に対応付けされているアクセスパターンを、２つの同じアクセスパターンに分割した結果のうちの一方である
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばビデオオンデマンドのコンテンツをアクセスする場合に、このアクセスに関するスケジューリングを行うスケジューリング装置を具備するビデオサーバ、及びプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
デジタル映像・音声データ等のコンテンツをハードディスクに備え、要求に応じて配信するビデオオンデマンド・システム（以下、「ＶＯＤシステム」という）では、コンテンツの配信速度（ビットレート）に応じてサーバのハードディスクが適宜アクセスされ、このコンテンツに関するデータが読み出されてユーザ側のクライアントに送信される。
【０００３】
コンテンツの配信速度はそのコンテンツ毎に異なり、例えば鮮明な映像からなるコンテンツの場合は配信速度が速く設定される。
【０００４】
ここで、例えばディスクへのアクセスに遅れが生じ、この結果サーバからクライアントへのデータ送信が遅れた場合には、ユーザに提供される映像・音声が不足し、乱れが生じることになる。
【０００５】
また、ディスクへのアクセスが早すぎた場合には、アクセスしたデータを送信するまで格納するサーバのバッファでオーバーフローが発生することがある。同様に、受信したデータを格納するクライアントのバッファでもオーバーフローが発生することがある。
【０００６】
さらに、ＶＯＤシステムにおいては、クライアント側の複数の配信要求タスクからそれぞれ別のコンテンツの配信要求を受ける場合があるが、この場合にディスクアクセスの重複を回避する必要がある。
【０００７】
したがって、ＶＯＤシステムにおいては、ディスクアクセスのタイミングを排他制御し、乱れが発生しないようにスケジューリングしている。
【０００８】
従来のスケジューリングでは、あるコンテンツに関するディスクアクセスを一定間隔毎に行うが、配信速度の遅いコンテンツの場合には一回のアクセス時間を短くしている。一方、配信速度の速いコンテンツの場合には一回のアクセス時間を長くしている。
【０００９】
図７は、この従来のスケジューリングの具体例を示す図である。
図７（ａ）は、配信速度の遅いコンテンツ（配信速度４Mbps）に関するアクセス状態を示しており、この場合サーバからクライアントに配信するデータの量は少なくてよいため、１秒間隔毎に６０msecのディスクアクセスを実行している。
【００１０】
一方、図７（ｂ）は、配信速度の速いコンテンツ（配信速度８Mbps）に関するアクセス状態を示しており、この場合サーバからクライアントに配信するデータの量が多くなるため、１秒間隔毎に１２０msecのディスクアクセスを実行している。
【００１１】
このように、従来のスケジューリングでは、サーバからクライアントへ、一定間隔毎に配信の要求されたコンテンツに適した時間のディスクアクセスが発生する。
【００１２】
【発明が解決しようとする課題】
上記のような従来のスケジューリングにおいては、配信速度に応じて一定間隔（上記の例では１秒）毎に実行されるディスクアクセス時間を変化させている。
【００１３】
しかしながら、この従来の手法においては、データの配信を極めて高速に行わなければならない場合であっても、上記一定間隔を超えるディスクアクセスを実行することができない。例えば、上記の例においては１秒を超えるディスクアクセスが必要となる配信速度のコンテンツを取り扱うことができない。
【００１４】
また、従来のスケジューリングにおいては、配信速度の遅いコンテンツほど一回のディスクアクセスを実行する時間が短くてよいため、ディスクアクセスの空き時間に他のコンテンツに関するディスクアクセスを許可することが可能である。したがって、各コンテンツの配信速度が遅いほど、サーバからクライアントへ配信可能なコンテンツの数を増加させることができる。
【００１５】
しかしながら、従来の手法において、１回のディスクアクセスを実行する時間には最小値があり、その最小値において配信可能なコンテンツの数よりも多くのコンテンツを配信することはできず、コンテンツの配信速度にも下限ができてしまう。
【００１６】
さらに、従来のスケジューリングにおいては、コンテンツの配信速度が速いほど、１回当たりのディスクアクセス実行時間が長くなる。
【００１７】
したがって、配信要求がサーバに受け付けられてから実際に配信が開始されるまでの遅れ時間が、配信速度の速いコンテンツほど長くなるという問題がある。また、この問題は複数の配信要求がサーバに受け付けられた場合に一層顕著に表れる。
【００１８】
本発明は、以上のような実情に鑑みてなされたもので、配信速度が高速なコンテンツを取り扱うことが可能であり、また配信可能なコンテンツの本数の下限を持たず、配信開始までの時間がコンテンツの配信速度で変化しないビデオサーバ、及びプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【００１９】
【課題を解決するための手段】
本発明の骨子は、コンテンツの配信速度に関係なく１回のアクセス時間を一定（データ読み込み量も一定）とし、コンテンツの配信速度に応じてアクセス間隔を変更する点にある。
【００２０】
以下、本発明を実現するにあたって講じた具体的手段について説明する。
【００２１】
第１の発明は、ビデオサーバに関する。
【００２２】
この第１の発明のビデオサーバは、コンテンツを保存する複数のディスクと、複数のディスクへのアクセスをスケジューリングするスケジューリング装置と、クライアントから配信速度を含むコンテンツの配信要求を受信すると、スケジューリング装置のスケジューリングにしたがって複数のディスクをアクセスし、クライアントに対して、配信要求における配信速度によりコンテンツを配信する配信手段とを具備する。スケジューリング装置は、コンテンツの配信に使用可能な最速の配信速度を２のべき乗で割った複数の配信速度毎に、複数のディスクのうちのあるディスクがアクセスされてから次に当該あるディスクがアクセスされるまでの周期であり、配信速度が速いほど短く、配信速度が遅いほど長いアクセス周期の間において、複数のディスクをアクセスするアクセス順序と、複数のディスクのそれぞれについてアクセス順序にしたがって次のディスクをアクセスするまでのアクセス間隔とを含むアクセスパターン情報を保持する手段と、ディスクに対する一回のアクセスに対して許可される一定のアクセス時間であるスロットを複数連ねた配置テーブルを保持する手段と、配信要求の配信速度に対応するアクセスパターン情報のアクセス順序、アクセス間隔に基づいて、複数のディスクへのアクセスを、同時期に同ディスクがアクセスされないように配置テーブルのスロットに割り当て、配置テーブルへの割り当てにそって複数のディスクへのアクセスを許可する許可発生手段とを具備する。
【００２３】
したがって、配信速度が速くても遅くても１回のアクセスで読み出されるデータの量は等しくなるため、いかなる配信速度であっても配信開始までの時間を一定とすることができる。
【００２４】
第２の発明では、第１の発明のビデオサーバにおいて、許可発生手段が、各ディスク間でアクセス許可をオーバーラップさせて発する。
【００２５】
このように、一回のアクセスを一定時間とし、ディスクへのアクセス処理を先回り制御によりオーバーラップさせることで、アクセス可能なデータ量を増加させることができ、配信速度の高速なデータを扱うことができる。
【００２６】
特に、ディスク間のアクセスをオーバーラップさせることで、アクセス間隔をアクセスを実行する一定時間よりも短くすることができる。
【００２７】
第１又は第２の発明のビデオサーバにおいては、アクセスパターン情報が、配信可能な最大の配信速度を２のべき乗で割った配信速度毎に、アクセス間隔を設定している。
【００２８】
なお、配信要求されたコンテンツの配信速度が配信可能な最大の配信速度を２のべき乗で割った配信速度に一致しない場合には、例えば配信可能な最大の配信速度を２のべき乗で割った配信速度のいずれかに一致するまで配信要求されたコンテンツの配信速度を高速側に繰り上げて適用すればよい。
【００２９】
したがって、配信要求されたコンテンツの配信速度に応じて、適切なアクセス間隔を求め、アクセスを実行させることができる。
【００３０】
第１又は第２の発明では、アクセスパターン情報が、配信速度毎に、各ディスクをアクセスする順序と、各ディスクをアクセスしてから前記アクセスする順序にしたがって次のディスクをアクセスするまでの各アクセス間隔とを設定している。
【００３１】
したがって、複数のディスクに対するアクセスに関してスケジューリングを行うことができる。
【００３２】
第３の発明では、第１又は第２の発明のビデオサーバにおいて、アクセスパターン情報において、複数の配信速度のうちコンテンツの配信に使用可能な最速の配信速度ではない配信速度に設定されているアクセスパターンは、この配信速度の２倍の配信速度に対応付けされているアクセスパターンを、２つの同じアクセスパターンに分割した結果のうちの一方であるとしている。
【００３３】
このように、配信速度を半分に分割していき、各アクセス順序とアクセス間隔も分割していくことは、何回も繰り返して適用可能であるため、配信速度の下限をなくすことができる。ゆえに、配信可能なコンテンツの本数の制限もなくすことができる。
【００３５】
第１から第３の発明では、複数の配信要求に対し同一のディスクへのアクセスを許可することを防止することができる。
【００３９】
第１から第３の発明では、ディスクが異なれば同一時間であってもアクセスを許可することができ、同一のディスクに対して同一時間にアクセスが許可されることを防止することができる。
【００４０】
配信速度を半分に分割していき、各アクセス順序とアクセス間隔も分割してスケジューリングを行うと、各ディスク間のアクセス状況は同様な状態となる。したがって、一つのディスクに対する排他制御を行うことで、他のディスクの排他制御も実行できる。
【００５５】
第４の発明は、プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【００５６】
この第４の発明は、コンテンツを保存する複数のディスクを具備するビデオサーバを、複数のディスクへのアクセスをスケジューリングするスケジューリング手段、クライアントから配信速度を含むコンテンツの配信要求を受信すると、スケジューリング装置のスケジューリングにしたがって複数のディスクをアクセスし、クライアントに対して、配信要求における配信速度によりコンテンツを配信する配信手段として機能させる。スケジューリング手段は、コンテンツの配信に使用可能な最速の配信速度を２のべき乗で割った複数の配信速度毎に、複数のディスクのうちのあるディスクがアクセスされてから次に当該あるディスクがアクセスされるまでの周期であり、配信速度が速いほど短く、配信速度が遅いほど長いアクセス周期の間において、複数のディスクをアクセスするアクセス順序と、複数のディスクのそれぞれについてアクセス順序にしたがって次のディスクをアクセスするまでのアクセス間隔とを含むアクセスパターン情報を管理し、ディスクに対する一回のアクセスに対して許可される一定のアクセス時間であるスロットを複数連ねた配置テーブルを管理し、配信要求の配信速度に対応するアクセスパターン情報のアクセス順序、アクセス間隔に基づいて、複数のディスクへのアクセスを、同時期に同ディスクがアクセスされないように配置テーブルのスロットに割り当て、配置テーブルへの割り当てにそって複数のディスクへのアクセスを許可する許可発生手段を具備する。
【００５７】
第５の発明では、第４の発明のプログラムを記録したコンピュータ読み取り可能な記録媒体において、許可発生手段は、各ディスク間でアクセス許可をオーバーラップさせて発する。
【００６０】
第６の発明では、第４又は第５の発明のプログラムを記録したコンピュータ読み取り可能な記録媒体において、アクセスパターン情報において、複数の配信速度のうちコンテンツの配信に使用可能な最速の配信速度ではない配信速度に設定されているアクセスパターンは、この配信速度の２倍の配信速度に対応付けされているアクセスパターンを、２つの同じアクセスパターンに分割した結果のうちの一方である。
【００６５】
上記第４乃至第６の発明は、それぞれ第１乃至第３の発明で説明したビデオサーバの機能をコンピュータにより実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００６６】
このようなプログラムを記録した記録媒体を用いることによって、上述した機能を有していない計算機、計算機システムに対しても、簡単に上述した機能を付加することができる。
【００６７】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００６８】
（第１の実施の形態）
本実施の形態においては、１回のアクセス時間はコンテンツの配信速度に関係なく一定であるが、アクセスを実行してから次にアクセスを実行するまでのアクセス間隔（周期）をコンテンツの配信速度に応じて可変とするディスクアクセス用のスケジューリング装置について説明する。
【００６９】
図１は、本実施の形態に係るスケジューリング装置を搭載したＶＯＤシステムを示すブロック図である。
【００７０】
ＶＯＤシステム４は、３つのクライアント５ａ〜５ｃとビデオサーバ６とがネットワーク７を介して接続されて構成されている。なお、クライアントの数はいくつでもよい。
【００７１】
クライアント５ａ〜５ｃは、ユーザの入力に基づいて配信要求タスク８ａ〜８ｃを発生し、ユーザの要求したコンテンツに関するデータの配信をビデオサーバ６に対して要求する。ここでは、各クライアント５ａ〜５ｃに１つの配信要求タスク８ａ〜８ｃが発生した場合を示しているが、各クライアント５ａ〜５ｃでは複数の配信要求タスクが発生可能であってもよい。
【００７２】
また、クライアント５ａ〜５ｃは、配信を要求したコンテンツに関するデータをビデオサーバ６からネットワーク７を介して受け付け、図示しないバッファに蓄え、映像・音声として逐次再生する。
【００７３】
この図１において配信要求タスク８ａは配信速度３２Mbpsのコンテンツの配信を要求している。また、配信要求タスク８ｂは配信速度６４Mbpsのコンテンツの配信を要求している。さらに、配信要求タスク８ｃは配信速度３２Mbpsのコンテンツの配信を要求している。
【００７４】
ビデオサーバ６は、クライアント５ａ〜５ｃの配信要求タスク８ａ〜８ｃから配信要求を受け付けると、それぞれに対応する配信タスク９ａ〜９ｃを発生する。ここでは、各クライアント５ａ〜５ｃ毎に１つの配信要求タスク８ａ〜８ｃが発生しているため、これに応じて各クライアント５ａ〜５ｃ毎に１つの配信タスク９ａ〜９ｃが発生することになる。
【００７５】
また、ビデオサーバ６は、クライアント５ａ〜５ｃから配信要求を受け付けると、スケジューリング装置１０によりディスクアクセスのスケジューリングをしつつデータ保存用のディスク０〜３のいずれかから順次データを読み出す。そして、読み出したデータを配信要求元のクライアントに適宜送信する。なお、ディスクの数はいくつでもよいが、ここでは４つとしている。
【００７６】
配信タスク９ａ〜９ｃは、それぞれクライアント５ａ〜５ｃの配信要求タスク８ａ〜８ｃから配信要求を受け付けると、スケジューリング装置１０にアクセス要求を発し、このアクセス要求に対する応答としてアクセス許可を受け付けると、ディスク０〜３のうちアクセス許可の示す該当ディスクをアクセスしてデータをバッファ１１に蓄える。そして、配信タスク９ａ〜９ｃは、バッファ１１に蓄えられたデータをこのデータに関する配信速度にしたがった一定レートでネットワーク７を介してクライアント５ａ〜５ｃに提供する。ここでは、配信タスク９ａは配信速度３２Mbpsでコンテンツを配信する。また、配信タスク９ｂは配信速度６４Mbpsでコンテンツを配信する。さらに、配信タスク９ｃは配信速度３２Mbpsでコンテンツを配信する。
【００７７】
スケジューリング装置１０は、配信タスク９ａ〜９ｃからアクセス要求を受け付けると、同一ディスクを同時期にアクセスしないように排他制御を行う。そして、配信タスク９ａ〜９ｃに対してコンテンツの配信速度に応じたアクセス間隔でアクセス許可を返す。
【００７８】
このスケジューリング装置１０は、配置テーブル１２、アクセスパターンテーブル１３とを保持しており、時刻カウンタ１４を備えている。また、配信タスク９ａ〜９ｃからアクセス要求を受け付ける要求受付ルーチン１５及び配信タスク９ａ〜９ｃに対してアクセス許可を発するイベント発生ルーチン１６を備える。そして、いずれかの配信タスク９ａ〜９ｃからアクセス要求を受け付けた際に、各配信タスク９ａ〜９ｃに関するタスクリスト１７を登録する。
【００７９】
アクセスパターンテーブル１３は、配信速度毎のアクセスパターンを保持するテーブルである。配置テーブル１３は、アクセス要求に対するディスクアクセスの排他割付を管理するテーブルである。タスクリスト１７は、アクセス要求毎の管理情報を保持する。時刻カウンタ１４は、現在の内部時間を自動的にカウントアップしていき、カウントアップ時にイベント発生ルーチン１６を起動する。要求受付ルーチン１５は、アクセスの要求を受け付け、配置テーブル１２とタスクリスト１７を設定する。イベント発生ルーチン１６は、毎時刻毎に起動され、アクセスが可能になった配信タスクに対してイベントを発生する。
【００８０】
図２は、本実施の形態に係るスケジューリング装置１０の各要素の関係を詳細に示すブロック図である。
【００８１】
配置テーブル１２は、各配信タスク９ａ〜９ｃ毎のアクセスタイミングを保持し、各配信タスク９ａ〜９ｃ間で同時期に同一ディスクがアクセスされないように管理する。
【００８２】
ここでは、配置テーブル１２が、各配信タスク９ａ〜９ｃによって実行されるディスク０に対するアクセス時間を排他的に管理するとしている。なお、この配置テーブル１２ではディスク０をアクセス時間の排他管理用の対象ディスクとしているが、各ディスクに対する配信タスク９ａ〜９ｃによるアクセスは各ディスクで同様の周期で実行されるため、ディスク０〜３のうちのいずれかを対象として排他的に管理すればよい。
【００８３】
この配置テーブル１２は、複数のスロットの連なりから構成されている。このスロットとは、１回のアクセスにおいてディスクに対して許可されるアクセス時間に相当し、全てのスロットは一定の長さである。各スロットには一つの配信タスクによるアクセスしか割り当てられない。スロットに配置タスクが割り当てられるとその旨を示すフラグが付される。
【００８４】
配置テーブル１２を構成するスロットの数は、このＶＯＤシステム４で使用される最低の配信速度の場合に、あるディスクがアクセスされ再びこのディスクがアクセスされるまでのアクセス間隔（周期）分のスロット数にディスク数をかけた数である。その後に関しては、それ以前の状態の繰り返しとなるため不要である。
【００８５】
なお、このスケジューリング装置１０においては、使用可能な最速の配信速度を２のべき乗で割った配信速度を扱うが、この最速の配信速度を２のべき乗で割った配信速度と実際の配信速度とが一致しない場合には、実際の配信速度を高速側に切り上げて扱う。上記最低の配信速度もこの最速の配信速度を２のべき乗で割った配信速度である。
【００８６】
ここで、切り上げた結果が最低の配信速度に一致するか、あるいは実際の配信速度が最低の配信速度に一致する場合には、この配信タスクは配置テーブル上の一つのスロットに配置される。
【００８７】
一方、切り上げた結果が最低の配信速度より速い配信速度となるか、あるいは最速の配信速度を２のべき乗で割った配信速度のうち最低速度ではない配信速度と一致する場合には、この配信タスクは配置テーブル上の等間隔の複数のスロットに配置される。この場合、この等間隔の複数のスロットの全てにおいて未だにフラグが付されていないように配信タスクが割り当てられる。
【００８８】
図２の配置テーブル１２は、配信速度３２Mbpsの配信タスク９ａがディスク０を４スロットでアクセスし、その後１６スロット間隔でディスク０に対してアクセスする旨を示す。また、配信速度３２Mbpsの配信タスク９ｃがディスク０に対して１スロットでアクセスし、その後１６スロット間隔でディスク０に対してアクセスする旨を示す。
【００８９】
一方、この配信テーブル１２は、配信速度６４Mbpsの配信タスク９ｂが６スロットでアクセスし、その後８スロット間隔でディスク０に対してアクセスする旨を示す。
【００９０】
アクセスパターンテーブル１３は、使用可能な最速の配信速度（ここでは６４Mbpsとしている）を２のべき乗で割った配信速度毎に、あるディスクがアクセスされてから次にこのディスクが再びアクセスされるまでの周期（スロット数）と、ディスクをアクセスする際の順序（アクセス順序）と、各ディスクをアクセスしてからアクセス順序にしたがって次のディスクをアクセスするまでのアクセス間隔（スロット数）とが保持されている。
【００９１】
アクセスパターンテーブル１３の項目１３１には、配信速度「６４Mbps」のコンテンツの場合のアクセスパターン（主に、アクセス順序とアクセス間隔）が記憶されている。配信速度「６４Mbps」の場合には、各ディスク０〜３に対してはそれぞれ「８」スロット毎にアクセスを許可することになる。また、各ディスク０〜３のアクセス順序は「０→１→２→３」であり、ディスク０をアクセスすると、そのディスク０のアクセスから「２」スロット後にディスク１をアクセスし、そのディスク１のアクセスから「２」スロット後にディスク２をアクセスし、そのディスク２のアクセスから「２」スロット後にディスク３をアクセスし、そのディスク３のアクセスから「２」スロット後に再びディスク０をアクセスする旨を示す。
【００９２】
項目１３２には、配信速度「３２Mbps」のコンテンツの場合のアクセスパターンが記憶されている。配信速度「３２Mbps」の場合には。各ディスク０〜３に対してはそれぞれ「１６」スロット毎にアクセスを許可することになる。また、各ディスク０〜３のアクセス順序は「１→３→０→２」であり、ディスク１をアクセスすると、そのディスク１のアクセスから「４」スロット後にディスク３をアクセスし、そのディスク３のアクセスから「２」スロット後にディスク０をアクセスし、そのディスク０のアクセスから「４」スロット後にディスク２をアクセスし、そのディスク２のアクセスから「６」スロット後に再びディスク１をアクセスする旨を示す。
【００９３】
項目１３３には、配信速度「１６Mbps」のコンテンツの場合のアクセスパターンが記憶されている。配信速度「１６Mbps」の場合には、各ディスク０〜３に対してはそれぞれ「３２」スロット毎にアクセスを許可することになる。また、各ディスク０〜３のアクセス順序は「３→２→１→０」であり、ディスク３をアクセスすると、そのディスク３のアクセスから「６」スロット後にディスク２をアクセスし、そのディスク２のアクセスから「６」スロット後にディスク１をアクセスし、そのディスク１のアクセスから「６」スロット後にディスク０をアクセスし、そのディスク０のアクセスから「１４」スロット後に再びディスク３をアクセスする旨を示す。
【００９４】
このように、アクセスパターンテーブル１３には各配信速度（６４／２nMbps：ｎは整数）用のアクセスパターンが記憶されている。
【００９５】
このアクセステーブル１３において、各配信速度毎に求められているアクセス順序とアクセス間隔は、データ保存用のディスクの数を考慮し、それぞれ適したパターンが設定される。
【００９６】
タスクリスト１７は、発生した各配信タスク９ａ〜９ｃ毎のノード１７ａ〜１７ｃが作成され、登録される。
【００９７】
各ノード１７ａ〜１７ｃは、アクセス要求を発した配信タスクの番号、次にアクセスするディスクの番号、次にアクセスを行うべき時間、自ノードの対応する配信速度に関するアクセスパターンテーブル１３の項目へのポインタ、アクセス要求を発した配信タスクの配置テーブル１２内における配置位置を記憶する。
【００９８】
例えば、タスクリスト１７のノード１７ａは、配信タスク９ａに対応する情報であるため配信タスク番号「９ａ」が記憶されている。また、このノード１７ａの対応する配信タスク９ａで扱うコンテンツの配信速度は３２Mbpsであるため、アクセスパターンテーブル１３の項目へのポインタ「１３２」が記憶されている。また、このアクセスパターンテーブル１３におけるアクセス順序と先でアクセスしたディスクとに基づいて得られる次アクセス番号「０」が記憶されている。また、このアクセスパターンテーブル１３におけるアクセス間隔と先でアクセスしたディスク及び先のアクセス時間とに基づいて得られる次アクセス時間「１０２３４」が記憶されている。そして、配置テーブル１２内における配信タスク９ａの配置位置「４」が記憶されている。
【００９９】
同様に、ノード１７ｂに配置タスク番号「９ｂ」、対応するアクセスパターンテーブル１３の項目へのポインタ「１３１」、次ディスク番号「３」、次アクセス時間「１０２３０」、配置テーブルの位置「６」が記憶されている。
【０１００】
さらに、ノード１７ｃに配置タスク番号「９ｃ」、対応するアクセスパターンテーブル１３の項目へのポインタ「１３２」、次ディスク番号「０」、次アクセス時間「１０２３１」、配置テーブルの位置「１」が記憶されている。
【０１０１】
要求受付ルーチン１５は、各配信タスク９ａ〜９ｃからアクセス要求を受け付け、アクセスパターンテーブル１３と配置テーブル１２とを参照してアクセススケジュールを設定し、タスクリスト１７のノード１７ａ〜１７ｃとして登録する。この要求受付ルーチン１５は、アクセススケジュール設定の際に排他制御を行う排他制御部１５ａを含む。
【０１０２】
時刻カウンタ１４は、内部的な現在の時間を保持し、自動的に時間をカウントアップする。また、カウントアップ時には、イベント発生ルーチン１６を起動する。
【０１０３】
イベント発生ルーチン１６は、単位時間毎に時刻カウンタ１４によって起動され、起動するとタスクリスト１７をサーチし、時刻カウンタ１４で示される現時間と一致する次アクセス時間を持つノードを求める。そして、この求めたノードに対応する配信タスクに対して次ディスク番号の示すディスクへのアクセスを１スロットの時間だけ許可する。
【０１０４】
また、イベント発生ルーチン１６は、アクセスパターンテーブル１３を参照してこのタスクリスト１７のノードを適宜更新設定する。
【０１０５】
ここで、本実施の形態に係るスケジューリング装置１においては、１回のアクセス時間が一定であるため、異なるディスクに関するアクセスを許可する場合には、アクセス許可をオーバーラップさせて発する。
【０１０６】
図３は、アクセス許可をオーバーラップさせる場合の状態を示す図である。
【０１０７】
要求受付ルーチン１５及びイベント発生ルーチン１６は、タスクリスト１７の各ノードの設定を行う場合に、この図３のように、異なるディスクに対するアクセス許可をオーバーラップするようにスケジュールする。
【０１０８】
上記のような構成を持つ本実施の形態に係るスケジューリング装置１０を備えたＶＯＤシステム４の動作について以下に説明する。
【０１０９】
まず、ビデオサーバ６に備えられるディスク数に基づいて、配信速度毎の周期、アクセス順序、各ディスク間でのアクセス間隔とが設定され、スケジューリング装置１０にアクセスパターンテーブル１３として登録される。
【０１１０】
本実施の形態に係るスケジューリング装置１０においては、１回のアクセス時間は配信速度にかかわらず一定（１回のアクセスでのデータ読み込み量一定）とする。ゆえに、アクセスパターンテーブル１３登録の際には、配信速度毎に、アクセスが許可されてから次にアクセスが許可されるまでのアクセス間隔が可変となるように設定される（配信速度の速いコンテンツほどアクセス間隔が短く、配信速度の遅いコンテンツほどアクセス間隔が長く設定される）。
【０１１１】
具体的なアクセスパターンテーブル１３の設定手法の例を以下で説明する。
【０１１２】
図４は、アクセスパターンテーブル１３におけるアクセスパターンの設定手法の例を示す図である。
【０１１３】
配信速度毎にアクセス間隔を変える場合において、複数のディスクを常に同じ順序でアクセスするように設定すると、アクセスの重複が発生してしまう。
【０１１４】
そこで、本実施の実施の形態においては、図４に示すように、基準となる配信速度のアクセスパターン（アクセス順序、アクセス間隔）を分割するが、分割した結果が同じアクセスパターンとなるように分割する。そして、この分割した結果で示されるアクセスパターンを基準となる配信速度の半分の配信速度のアクセスパターンとし、同様の設定を繰り返す。
【０１１５】
この図４では、基準となる配信速度「ｂ」のアクセス順序が「０→１→２→３」の場合、その半分の配信速度「ｂ／２」のアクセス順序を「０→２→１→３」としている。すると、配信速度「ｂ」のアクセスパターンを２つの配信速度「ｂ／２」のアクセスパターンに分割することができる。
【０１１６】
同様に、配信速度「ｂ／２」のアクセスパターンも、アクセス順序を「０→３→２→１」とするで２つの配信速度「ｂ／４」のアクセスパターンに分割することができる。
【０１１７】
ここで、基準となる配信速度「ｂ」におけるアクセスが重複しなければ、各基準を分割して得られるアクセススケジュールによるアクセスも重複しない。
【０１１８】
このように、各配信速度のアクセスパターンを決定する場合には、この配信速度の２倍となる速度のスケジュールを２つに分割するが、この２つの分割結果が同じアクセスパターンとなるような分割を行い、アクセスパターンを決定する。
【０１１９】
なお、上記のように、各配信速度のアクセスパターンを分割する場合には、各ディスク間のアクセス間隔が一定ではなくなる場合がある。したがって、アクセスパターンテーブル１３には、アクセス順序及びアクセス間隔も登録するとしている。
【０１２０】
このように、配信速度を半分に分割したスケジュールは、何回も繰り返し設定可能である。使用可能な最大の配信速度「ｂ」とすると、配信速度「ｂ／２」、「ｂ／４」、「ｂ／８」…「ｂ／２n」のアクセスパターンが、各配信速度の２倍のアクセスパターンから求められ、アクセスパターンテーブル１３に設定される。
【０１２１】
以上のような手法により、アクセスパターンテーブル１３に対して各配信速度毎のアクセスパターンが登録されると、ＶＯＤシステム４では、コンテンツの配信が可能となる。
【０１２２】
各クライアント５ａ〜５ｃを操作するユーザによってコンテンツの配信が要求されると、各クライアント５ａ〜５ｂに配信要求タスク８ａ〜８ｃが発生し、配信要求がビデオサーバ６の配信タスク９ａ〜９ｃに受け付けられる。
【０１２３】
すると、配信タスク９ａ〜９ｃからスケジューリング装置１０の要求受付ルーチン１５にアクセスが要求される。
【０１２４】
アクセス要求を受け付けた要求受付ルーチン１５では、アクセスパターンテーブル１３が参照され、各配信タスク９ａ〜９ｃによるディスク０のアクセス時間が一意に決定される。そして、この要求受付ルーチン１５では、決定されたディスク０のアクセス時間が重複しないように配置テーブル１２上にフラグが立てられ、排他的に管理される。
【０１２５】
先に述べたように、配置テーブル１２は複数のスロットの連なりから成り立っており、１つのスロットはその時間におけるディスク０へのディスクアクセス１回に相当する。各スロットにはただ１つの配信タスクによるアクセスが割り当てられ、これによりアクセスの重複が防止される。
【０１２６】
また、アクセス要求を受け付けた要求受付ルーチン１５では、要求されたコンテンツの配信速度に関するアクセスパターンテーブル１３が検索され、アクセスパターンが求められる。そして、アクセス要求を発した各配信タスク９ａ〜９ｃ毎のノード１７ａ〜１７ｃが要求受付ルーチン１５によって生成され、タスクリスト１７に登録される。
【０１２７】
なお、アクセス終了要求が配信タスクから要求受付ルーチン１５に受け付けられた場合には、このアクセス終了要求を発した配信タスクに関する配置テーブル１２の割当フラグ、及びタスクリスト１７のノードが削除される。
【０１２８】
時刻カウンタ１４では、一定間隔で保持しているカウンタ値が自動的にカウントアップされ、カウントアップされる度に時刻カウンタ１４によってイベント発生ルーチン１６が起動される。
【０１２９】
起動されたイベント発生ルーチン１６では、タスクリスト１７の各ノード１７ａ〜１７ｃがサーチされ、時刻カウンタ１４の示す現在の時間とノードに記憶されている次アクセス時間とが等しいか否かが判定される。
【０１３０】
判定の結果、等しい場合には、このノードに対応する配信タスクに対し、当該ノードに登録されている次ディスク番号のディスクへのアクセスが一定の時間許可される。
【０１３１】
その後、このイベント発生ルーチン１６により、この配信タスクに対応するノードの内容のうち、次ディスク番号と次アクセス時間とがアクセスパターンテーブル１３を用いて更新設定される。
【０１３２】
アクセス許可を受けた配信タスク９ａ〜９ｃでは、この許可された内容にしたがってディスクのアクセスが実行され、そのアクセスしたデータの内容が所定の配信速度によりクライアント５ａ〜５ｃに提供される。これにより、ユーザに映像、音声が提供される。
【０１３３】
以上説明したように、本実施の形態に係るスケジューリング装置１０においては、配信速度にかかわらず１回のアクセス時間を一定としており、ディスクへのアクセスを実行する間隔を配信速度の速い場合ぼど短くし、配信速度の遅い場合ほど長くしている。
【０１３４】
したがって、配信速度に関係なくアクセスしたデータを送信するまでの送信開始時間を一定とすることができる。これにより、配信速度の高いコンテンツほどアクセスを開始してから送信するまでの時間が長くなることを防止することができる。
【０１３５】
特に、本実施の形態においては、１回のアクセス時間を従来のディスクアクセス時間の最小時間に設定することにより、高い配信速度のコンテンツほど配信開始までの遅れの改善効果を大きくすることができる。
【０１３６】
また、本実施の形態に係るスケジューリング装置１０においては、最速の配信速度の場合にアクセス間隔とアクセス時間とが等しいアクセスパターンが採用され、他の配信速度の場合にはこのアクセスパターンの分割が繰り返して決定される。
【０１３７】
このアクセスパターンの分割は限度なく繰り返すことができるため、配信可能な配信速度の下限をなくすことができ、これにより配信可能なコンテンツ本数の制限をなくすことができる。したがって、ＶＯＤシステム４で同時に提供できるコンテンツの本数を増加することができる。
【０１３８】
さらに、本実施の形態に係るスケジューリング装置１０においては、先の図３に示すように、各ディスクに対するアクセスをオーバーラップさせるため、アクセス間隔をアクセス時間よりも短縮させることができ、高速な配信速度のコンテンツを取り扱うことができる。
【０１３９】
なお、本実施の形態に係るスケジューリング装置１０は、同様の作用・機能を実現可能であれば各構成要素の配置を変更させてもよく、また各構成要素を自由に組み合わせてもよい。
【０１４０】
また、本実施の形態におけるスケジューリングはソフトウェアで実現してもよいし、ハードウェアで実現してもよい。
【０１４１】
また、本実施の形態に係るスケジューリング装置１０の各機能、各要素は、例えば磁気ディスク（フロッピーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで適用したり、通信媒体により伝送して計算機あるいは計算機システムに適用してもよい。上記各機能を実現するコンピュータは、記録媒体に記録されたプログラムを読み込み、プログラムによって動作が制御されることにより、上述した処理を実行する。
【０１４２】
（第２の実施の形態）
本実施の形態においては、先の第１の実施の形態に係るスケジューリング装置１０のアクセスパターンテーブル１３の登録についてさらに詳しく説明する。
【０１４３】
先で述べたように、アクセスパターンテーブル１３に登録されるアクセス順序とアクセス間隔は、ディスクの数により変化する。
【０１４４】
先の第１の実施の形態で説明したように、スケジューリング装置１０では、ディスクアクセスについて配信速度によってアクセス間隔（アクセス周期）が変化するが１回のアクセス時間は一定という方式を採用している。
【０１４５】
ここで、アクセス間隔として自由な値がとれるとすると、様々なアクセス間隔が混在し、うまく配信タスク間の排他を取ることが困難となる。
【０１４６】
そこで、図５に示すように、使用可能な最速の配信速度からその半分、またその半分と配信速度を区切っていき、各区切り内では、同じアクセス間隔を用い、またその間隔が倍、倍となるようにする。この図５は、１回当たりのアクセス時間が２スロット、アクセスサイズが５１２KB、ディスク数２の場合を示している。
【０１４７】
使用可能な最大の配信速度からその半分を超えた配信速度までの階層をレベル０とし、配信速度が下がる毎にレベルが大きくなっていくとする。最下層のレベルＭにおける最大の配信速度以下の配信タスクは、全てレベルＭに含まれる。このレベルＭの最大配信速度がデフォルトの最小割当配信速度となる。
【０１４８】
使用可能最大の配信速度は、ディスクアクセス１回分のデータ量を１スロットで転送する速度で定義される。この定義により得られる値がデフォルトの使用可能最大の配信速度となる。
【０１４９】
レベル０の周期は、ディスク数と等しくなる。ここで周期とは、あるディスクにアクセスが発生してから次に同じディスクにアクセスが発生するまでの時間（スロット）をいう。
【０１５０】
この周期は、ディスクアクセス時間の倍数でなければならない制限があるため、常にレベル０から使用できるとは限らない。例えば、アクセス時間が２スロットで、ディスク数が奇数の時はレベル１以上しか使用することができない。このように、周期がアクセス時間の倍数となる最小のレベルをトップレベルとする。
【０１５１】
ディスクが複数ある場合に、コンテンツの格納順に各ディスクをアクセスする場合を考えると、１つのレベルｎのアクセスパターンが２つのレベルｎ＋１のアクセスパターンに分解することができれば、複数のレベルのタスクが混在してもディスクアクセスの排他をとることが容易となる。
【０１５２】
この点については、先の図４に示すように、各レベルでアクセス順序を変えることで可能となる。
【０１５３】
また、アクセス間隔も等間隔ではなくなるが、アクセス順序及びあるディスクから次のディスクへのアクセス間隔（これらをまとめてアクセスパターンという）は同一レベルでは常に一定となる。
【０１５４】
レベルｎのアクセスパターンは、レベルｎ−１のパターンから一定の法則にしたがって求めることができる。これは、レベルｎ−１のアクセス順序の何番目から始めるか（開始位置）、及び次にアクセスするディスクがレベルｎ−１において何個先であるかを示すパターンで決定される。以下の説明において、a[n]はａの数字又はパターンがｎ回繰り返されることを表す。
【０１５５】
（ディスク数が奇数の場合）
開始位置  ０
パターン  （2[ディスク数]）
レベルｎ−１の順序を１つ跳びに取っていったものになる。また、アクセス間隔は常に等間隔となる。
【０１５６】
（ディスク数が偶数の場合）
ディスク数＝ｏｄｄ×２nの形式にする（ｏｄｄは奇数を表す）
開始位置  １
パターン  ((2[2(n-1)-1],1,2[2(n-1)-1],3)[odd])
例えばディスク数が４のとき、パターンは(2,1,2,3)なので、レベルｎ−１の順序が０→１→２→３のときレベルｎの順序は１→３→０→２となる。
【０１５７】
アクセス間隔は、レベルｎ−１の間隔をパターンにしたがって加算して求める。
【０１５８】
以下に具体例を挙げてアクセスパターンの設定手法について説明する。ここでは、ディスク数が奇数の場合の例としてディスク数３について説明し、またディスク数が偶数の場合の例としてディスク数４について説明する。
【０１５９】
まず、ディスク数３の場合もディスク数４の場合も、レベル０は常にアクセス順序「０→１→２…」、アクセス間隔「１、１、１…」より始まる。また、アクセス間隔はトップレベルまでは等間隔になるように前レベルでの間隔を２倍する。以下の例ではレベル１をトップレベルとする。
【０１６０】
（ディスク数３の場合）
開始位置  ０
パターン  (2[3])=(2,2,2)
まず、レベル０の場合、アクセス順序「０→１→２」、アクセス間隔「１、１、１」となる。
【０１６１】
次に、レベル１の場合、開始位置０なので、レベル０のアクセス順序の先頭のディスク０がアクセス順序の最初となる。
パターンの１番目が２なので、レベル０の順序に基づいて０→１→２と２つ進み、次のディスクは２となる。
パターンの２番目も２なので、レベル０の順序に基づいて２→０→１と２つ進み、次のディスクは１となる。
パターンの３番目も２なので、レベル０の順序に基づいて１→２→０と２つ進み、０に戻る。よって、ディスク数３のレベル１のアクセス順序は「０→２→１」となる。
【０１６２】
また、レベル１はトップレベルであるため、アクセス間隔はレベル０の２倍となる。よって、ディスク数３のレベル１のアクセス間隔は「２、２、２」となる。
【０１６３】
次に、レベル２の場合、開始位置は０なので、レベル１のアクセス順序の先頭のディスク０がアクセス順序の最初となる。
パターンの１番目が２なので、レベル１の順序に基づいて０→２→１と２つ進み、次のディスクは１となる。
パターンの２番目も２なので、レベル１の順序に基づいて１→０→２と２つ進み、次のディスクは２となる。
パターンの３番目も２なので、レベル１の順序に基づいて２→１→０と２つ進み、０に戻る。よって、ディスク数３のレベル２のアクセス順序は「０→１→２」となる。
【０１６４】
また、アクセス順序における最初の「０→１」のアクセス間隔は、レベル１の間隔より２＋２で４となる。
アクセス順序における次の「１→２」のアクセス間隔は、レベル１の間隔より２＋２で４となる。
アクセス順序における次の「２→０」のアクセス間隔は、レベル１の間隔より２＋２で４となる。よって、ディスク数３のレベル２のアクセス間隔は「４、４、４」となる。
【０１６５】
次に、レベル３の場合、開始位置は０なので、レベル２のアクセス順序の先頭のディスク０がアクセス順序の最初となる。
パターンの１番目が２なので、レベル２の順序に基づいて０→１→２と２つ進み、次のディスクは２となる。
パターンの２番目も２なので、レベル２の順序に基づいて２→０→１と２つ進み、次のディスクは１となる。
パターンの３番目も２なので、レベル２の順序に基づいて１→２→０と２つ進み、０に戻る。よって、ディスク数３のレベル３のアクセス順序は「０→２→１」となる。
【０１６６】
また、アクセス順序における最初の「０→２」のアクセス間隔は、レベル２の間隔より４＋４で８となる。
アクセス順序における次の「２→１」のアクセス間隔は、レベル２の間隔より４＋４で８となる。
アクセス順序における次の「１→０」のアクセス間隔は、レベル２の間隔より４＋４で８となる。よって、ディスク数３のレベル２のアクセス間隔は「８、８、８」となる。
【０１６７】
レベル４の場合も同様にしてアクセス順序「０→１→２」、アクセス間隔「１６、１６、１６」が求められる。また、レベル５の場合も同様にしてアクセス順序「０→２→１」、アクセス間隔「３２、３２、３２」が求められる。以下のレベルにおいても同様である。
【０１６８】
0004006146.tif 000002
まず、レベル０の場合、アクセス順序「０→１→２→３」、アクセス間隔「１、１、１、１」である。
【０１６９】
次に、レベル１の場合、開始位置１なので、レベル０のアクセス順序における２番目のディスク１がアクセス順序の最初となる。
パターンの１番目は２なので、レベル０の順序の２番目から１→２→３と２つ進み、次のディスクは３となる。
パターンの２番目は１なので、レベル０の順序に基づいて３→０と１つ進み、次のディスクは０となる。
パターンの３番目は２なので、レベル０の順序に基づいて０→１→２と２つ進み、次のディスクは２となる。
パターンの４番目は３なので、レベル０の順序に基づいて２→３→０→１と３つ進み、１に戻る。よって、ディスク数４のレベル１のアクセス順序は「１→３→０→２」となる。
【０１７０】
また、レベル１はトップレベルであるため、アクセス間隔はレベル０の２倍とする。よって、ディスク数４のレベル１のアクセス間隔は「２、２、２、２」となる。
【０１７１】
次に、レベル２の場合、開始位置は１なので、レベル１のアクセス順序における２番目のディスク３がアクセス順序の最初となる。
パターンの１番目が２なので、レベル１の順序に基づいて３→０→２と２つ進み、次のディスクは２となる。
パターンの２番目は１なので、レベル１の順序に基づいて２→１と１つ進み、次のディスクは１となる。
パターンの３番目は２なので、レベル１の順序に基づいて１→３→０と２つ進み、次のディスクは０となる。
パターンの４番目は３なので、レベル１の順序に基づいて０→２→１→３と３つ進み、３に戻る。よって、ディスク数４のレベル２のアクセス順序は「３→２→１→０」となる。
【０１７２】
また、アクセス順序における最初の「３→２」のアクセス間隔は、レベル１の間隔より２＋２で４となる。
アクセス順序における次の「２→１」のアクセス間隔は、レベル１の間隔より２となる。
アクセス順序における次の「１→０」のアクセス間隔は、レベル１の間隔より２＋２で４となる。
アクセス順序における次の「０→３」のアクセス間隔は、レベル１の間隔より２＋２＋２で６となる。よって、ディスク数４のレベル２のアクセス間隔は「４、２、４、６」となる。
【０１７３】
次に、レベル３の場合、開始位置は１なので、レベル２のアクセス順序における２番目のディスク２がアクセス順序の最初となる。
パターンの１番目が２なので、レベル２の順序に基づいて２→１→０と２つ進み、次のディスクは０となる。
パターンの２番目は１なので、レベル２の順序に基づいて０→３と１つ進み、次のディスクは３となる。
パターンの３番目は２なので、レベル２の順序に基づいて３→２→１と２つ進み、次のディスクは１となる。
パターンの４番目は３なので、レベル２の順序に基づいて１→０→３→２と３つ進み、次のディスクは２に戻る。よって、ディスク数４のレベル３のアクセス順序は「２→０→３→１」となる。
【０１７４】
また、アクセス順序における最初の「２→０」のアクセス間隔は、レベル２の間隔より２＋４で６となる。
アクセス順序における次の「０→３」のアクセス間隔は、レベル２の間隔より６となる。
アクセス順序における次の「３→１」のアクセス間隔は、レベル２の間隔より４＋２で６となる。
【０１７５】
アクセス順序における次の「１→２」のアクセス間隔は、レベル２の間隔より４＋６＋４で１４となる。よって、ディスク数４のレベル２のアクセス間隔は「６、６、６、１４」となる。
【０１７６】
レベル４の場合も同様にしてアクセス順序「０→１→２→３」、アクセス間隔「１２、１４、１２、２６」が求められる。また、レベル５の場合も同様にしてアクセス順序「１→３→０→２」、アクセス間隔「２６、２６、２６、５０」が求められる。以下のレベルにおいても同様である。
【０１７７】
以上のように、アクセス対象のディスクの数に基づいて、各レベル（配信速度）毎のアクセス順序とアクセス間隔が求められ、アクセスパターンテーブル１３にはこの内容が登録される。
【０１７８】
（第３の実施の形態）
本実施の形態においては、先の第１及び第２の実施の形態に係るスケジューリング装置１０の配置テーブル１２の登録についてさらに詳しく説明する。
【０１７９】
先で説明したように、レベルｎの一つのアクセスパターンはレベルｎ＋１の２つのアクセスパターンに分割される。
【０１８０】
図６は、各レベルのアクセスパターンの分割状態を示す図である。
【０１８１】
各レベルのアクセスパターンは二分木構造で表現され、この二分木の頂点はトップレベルとなる。
【０１８２】
この二分木上の１つのノードがそのレベルにおいて、１つのディスクのアクセス時間の違いを示している。ある配信タスクに対し、１つのノードを割り当てることで、その配信タスクのアクセススケジュールが決定される。
【０１８３】
同一レベルにおいては、アクセスパターンは一意に決まっているため、同じノードを共有しない限り、各ノード間で同一のディスクへのアクセスが重複することはない。
【０１８４】
複数のレベルが混在する場合には、以下のルールに従っている限り、同一ディスクへのアクセスが重複することはない。
【０１８５】
（１）親ノードを辿っていき、割り当てられているノードが存在するノードには割当て不可
（２）全ての子ノードを辿っていき、割り当てられているノードが存在するノードには割当て不可
これにより、ある１つのディスクに対するアクセスのみを管理すればよいことになる。先の第１の実施の形態においては、ディスク０に関してアクセスの重複がないように管理するとしている。
【０１８６】
【発明の効果】
以上詳記したように本発明においては、ディスクへの１回当たりのアクセス時間が一定とされる。そして、アクセスを開始してから次にアクセスを行うまでのアクセス間隔が配信速度の速いコンテンツほど短く設定され、配信速度の遅いコンテンツほど長く設定される。
【０１８７】
これにより、アクセスが行われてからコンテンツが配信されるまでの時間を配信速度によらず一定とすることができる。
【０１８８】
また、本発明においては、アクセス時間を一定とし、複数のディスクへのアクセスがオーバーラップされるため、高速な配信速度のコンテンツを扱うことができる。
【０１８９】
また、本発明においては、アクセスパターン情報において、複数の配信速度のうちコンテンツの配信に使用可能な最速の配信速度ではない配信速度に設定されているアクセスパターンは、この配信速度の２倍の配信速度に対応付けされているアクセスパターンを、２つの同じアクセスパターンに分割した結果のうちの一方である。
【０１９０】
このアクセスパターンの分割は限度なく繰り返すことができるため、配信可能な最低の配信速度の下限をなくすことができる。
【０１９１】
ゆえに、配信可能なコンテンツの本数が制限されることがない。したがって、同時に配信できるコンテンツの数を増加することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るスケジューリング装置を搭載したＶＯＤシステム。
【図２】同実施の形態に係るスケジューリング装置の各要素の関係を示すブロック図。
【図３】同実施の形態に係るスケジューリング装置がアクセス許可をオーバーラップさせる場合の状態を示す図。
【図４】アクセスパターンテーブルにおけるアクセスパターンの設定方法の例を示す図。
【図５】配信速度の階層を示す図。
【図６】各レベルのアクセスパターンの分割状態を示す図。
【図７】従来のスケジューリングの具体例を示す図。
【符号の説明】
０〜３…ディスク
４…ＶＯＤシステム
５ａ〜５ｃ…クライアント
６…ビデオサーバ
７…ネットワーク
８ａ〜８ｃ…配信要求タスク
９ａ〜９ｃ…配信タスク
１０…スケジューリング装置
１１…バッファ
１２…配置テーブル
１３…アクセスパターンテーブル
１４…時刻カウンタ
１５…要求受付ルーチン
１５ａ…排他制御部
１６…イベント発生ルーチン
１７…タスクリスト
【図１】
0004006146.tif 000003
【図２】
0004006146.tif 000004
【図３】
0004006146.tif 000005
【図４】
0004006146.tif 000006
【図５】
0004006146.tif 000007
【図６】
0004006146.tif 000008
【図７】
0004006146.tif 000009