JPH1091466A - タスクスケジューリング方法及び装置 - Google Patents
タスクスケジューリング方法及び装置Info
- Publication number
- JPH1091466A JPH1091466A JP9075054A JP7505497A JPH1091466A JP H1091466 A JPH1091466 A JP H1091466A JP 9075054 A JP9075054 A JP 9075054A JP 7505497 A JP7505497 A JP 7505497A JP H1091466 A JPH1091466 A JP H1091466A
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- video
- procedure
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 362
- 238000004364 calculation method Methods 0.000 description 30
- 238000007689 inspection Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 238000013459 approach Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17336—Handling of requests in head-ends
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】 ビデオスケジューリングの容易なストライピ
ング方式の提供。 【解決手段】 予め定められた個数のプロセッサ11を
有するビデオ・サーバ10においてビデオに対応するノ
ン・プリエンプティブなタスクグループの周期的スケジ
ューリングにおいて、各タスクは予め定められた周期で
始まり、且つ時間間隔によって隔てられたサブタスクの
セットを有する。このタスクグループをスケジューリン
グするために、単一のプロセッサ上でスケジューリング
可能なタスク・グループについては、これを1個以上の
互いに素のタスクセットに分割し、タスクの周期の最大
公約数を用いてこのグループのタスクのスケジューリン
グの可能性を点検する。互いに素のタスクに属する2個
以上のサブタスクが同じタイムスロットに割り当てられ
なければ、このグループのタスクはスケジューリング可
能である。
ング方式の提供。 【解決手段】 予め定められた個数のプロセッサ11を
有するビデオ・サーバ10においてビデオに対応するノ
ン・プリエンプティブなタスクグループの周期的スケジ
ューリングにおいて、各タスクは予め定められた周期で
始まり、且つ時間間隔によって隔てられたサブタスクの
セットを有する。このタスクグループをスケジューリン
グするために、単一のプロセッサ上でスケジューリング
可能なタスク・グループについては、これを1個以上の
互いに素のタスクセットに分割し、タスクの周期の最大
公約数を用いてこのグループのタスクのスケジューリン
グの可能性を点検する。互いに素のタスクに属する2個
以上のサブタスクが同じタイムスロットに割り当てられ
なければ、このグループのタスクはスケジューリング可
能である。
Description
【0001】
【発明の属する技術分野】本発明は、一般的にはビデオ
・オン・デマンド・サービスに関し、詳しくはディスク
・ストライピング手法を用いたビデオ・サーバに関す
る。 (関連出願)本出願は米国特許出願第08/624,01
3号(Ozden 8-8-13)(名称:Method and Apparatus f
or Providing Enhanced Pay Per View in a Video Serv
er) (本出願と同時に出願)及び米国特許出願第08/49
2,315号(名称:Coarse-Grained Disk Striping Me
thod for Use in Video Server Environments)(上記
出願は各々少なくとも1名の発明者を共有し、又出願人
が同一である)に関連する。ここに上記各米国出願を本
出願の参考文献とする。
・オン・デマンド・サービスに関し、詳しくはディスク
・ストライピング手法を用いたビデオ・サーバに関す
る。 (関連出願)本出願は米国特許出願第08/624,01
3号(Ozden 8-8-13)(名称:Method and Apparatus f
or Providing Enhanced Pay Per View in a Video Serv
er) (本出願と同時に出願)及び米国特許出願第08/49
2,315号(名称:Coarse-Grained Disk Striping Me
thod for Use in Video Server Environments)(上記
出願は各々少なくとも1名の発明者を共有し、又出願人
が同一である)に関連する。ここに上記各米国出願を本
出願の参考文献とする。
【0002】
【従来の技術】近年、ネットワーク関連技術並びにビデ
オ(映像、又は映像プログラム)のディジタル化及び圧
縮に関連する技術の両方に重要な進歩が生じている。例
えば、毎秒当たり数ギガビットのデータを光ファイバ・
ネットワーク上で、MPEG−1のような圧縮規格を用
いて伝送することが今や可能であり、伝送に要する帯域
幅も比較的狭い。このような進歩の結果として、ビデオ
・オン・デマンド、オンライン個人指導(チュートリア
ル)、対話型テレビ等、ビデオ・データの通信ネットワ
ーク上での伝送に関わる適用事例としてのサービスが多
数出現している。
オ(映像、又は映像プログラム)のディジタル化及び圧
縮に関連する技術の両方に重要な進歩が生じている。例
えば、毎秒当たり数ギガビットのデータを光ファイバ・
ネットワーク上で、MPEG−1のような圧縮規格を用
いて伝送することが今や可能であり、伝送に要する帯域
幅も比較的狭い。このような進歩の結果として、ビデオ
・オン・デマンド、オンライン個人指導(チュートリア
ル)、対話型テレビ等、ビデオ・データの通信ネットワ
ーク上での伝送に関わる適用事例としてのサービスが多
数出現している。
【0003】ビデオ・サーバは、上記サービスの供与に
必要な重要構成要素の1つである。サービスによって
は、ビデオ・サーバは、幾百ものビデオ・プログラムを
格納(記憶)することと、顧客に数百から数千のビデオ
についてのデータを同時に伝送することとが要求され
る。すぐ判るように、伝送レート(速度)は一般に、ビ
デオ・サーバが用いる圧縮手法によって決まる固定レー
トを取る。例えば、MPEG−1についての伝送速度は
約1.5Mbpsである。
必要な重要構成要素の1つである。サービスによって
は、ビデオ・サーバは、幾百ものビデオ・プログラムを
格納(記憶)することと、顧客に数百から数千のビデオ
についてのデータを同時に伝送することとが要求され
る。すぐ判るように、伝送レート(速度)は一般に、ビ
デオ・サーバが用いる圧縮手法によって決まる固定レー
トを取る。例えば、MPEG−1についての伝送速度は
約1.5Mbpsである。
【0004】映像、例えば映画及びその他のオン・デマ
ンドのプログラム、はビデオ・サーバのランダム・アク
セス・メモリ(RAM)から顧客に伝送される。しか
し、ビデオ・データはその量が膨大である(例えば、1
00分の長さのMPEG−1ビデオは約1.125GB
の格納容積(記憶容量)を要するという性質と、RAM
が比較的高いコストがかかることとから、RAMへのビ
デオ・データの格納は実行不可能な程度に高価なものに
なる。
ンドのプログラム、はビデオ・サーバのランダム・アク
セス・メモリ(RAM)から顧客に伝送される。しか
し、ビデオ・データはその量が膨大である(例えば、1
00分の長さのMPEG−1ビデオは約1.125GB
の格納容積(記憶容量)を要するという性質と、RAM
が比較的高いコストがかかることとから、RAMへのビ
デオ・データの格納は実行不可能な程度に高価なものに
なる。
【0005】ビデオ・データのビデオ・サーバへの格納
をよい費用効果で行う別案としては、RAMの代わりに
磁気又は光ディスクを用いる手法がある。しかし、ディ
スクに格納されたビデオ・データを顧客に伝送するに
は、その前にビデオ・データをRAMに取り出す必要が
ある。又、現在の磁気又は光ディスクは、記憶容量に限
度があり(例えば1GB〜9GB)、磁気又は光ディス
クからRAMへデータを取り出す際の転送速度も比較的
低い(例えば30Mbps〜60Mbps)。
をよい費用効果で行う別案としては、RAMの代わりに
磁気又は光ディスクを用いる手法がある。しかし、ディ
スクに格納されたビデオ・データを顧客に伝送するに
は、その前にビデオ・データをRAMに取り出す必要が
ある。又、現在の磁気又は光ディスクは、記憶容量に限
度があり(例えば1GB〜9GB)、磁気又は光ディス
クからRAMへデータを取り出す際の転送速度も比較的
低い(例えば30Mbps〜60Mbps)。
【0006】この記憶容量の限度は、ビデオ・サーバ上
で格納できるビデオの個数に影響し、更に転送速度の低
さと相まって、同時に取り出せるビデオの個数に影響を
与える。
で格納できるビデオの個数に影響し、更に転送速度の低
さと相まって、同時に取り出せるビデオの個数に影響を
与える。
【0007】任意に選択された1個のディスク上にビデ
オ・データ全体を格納する単純な格納方式を用いた場
合、人気の高いビデオ・プログラムを格納するディスク
が、サポート能力を超えたリクエスト(要求)で過負荷
になる一方、人気の低いプログラムを格納するディスク
は遊び(アイドル)状態にある、というような結果にな
る可能性が高い。このような方式においては、ディスク
帯域幅が有効に利用されないことになる。すぐ判るよう
に、ディスク帯域幅とは、或る時間長さの間に1個のデ
ィスクから取り出すことのできるデータの量を意味す
る。
オ・データ全体を格納する単純な格納方式を用いた場
合、人気の高いビデオ・プログラムを格納するディスク
が、サポート能力を超えたリクエスト(要求)で過負荷
になる一方、人気の低いプログラムを格納するディスク
は遊び(アイドル)状態にある、というような結果にな
る可能性が高い。このような方式においては、ディスク
帯域幅が有効に利用されないことになる。すぐ判るよう
に、ディスク帯域幅とは、或る時間長さの間に1個のデ
ィスクから取り出すことのできるデータの量を意味す
る。
【0008】ディスクがアイドル状態であったり、ディ
スクヘッドが位置決め中であったりして、ディスクから
データが取り出されないときには、ディスク帯域幅は利
用されておらず、したがって無駄にされていると考えら
れる。ディスク帯域幅が有効に利用されないと、ビデオ
・サーバがサポートすることができるビデオ・データ同
時進行ストリームの個数に悪影響を与える。
スクヘッドが位置決め中であったりして、ディスクから
データが取り出されないときには、ディスク帯域幅は利
用されておらず、したがって無駄にされていると考えら
れる。ディスク帯域幅が有効に利用されないと、ビデオ
・サーバがサポートすることができるビデオ・データ同
時進行ストリームの個数に悪影響を与える。
【0009】ディスク帯域幅をより有効に利用するため
に、負荷を多数のディスクにわたって均一に配分する、
すなわちビデオ・データを複数のディスク上に配置する
種々の方式が考え出された。複数のディスクにわたって
ビデオ・データを格納する方式で人気のあるものの1つ
は、周知のディスク・ストライピング手法である。
に、負荷を多数のディスクにわたって均一に配分する、
すなわちビデオ・データを複数のディスク上に配置する
種々の方式が考え出された。複数のディスクにわたって
ビデオ・データを格納する方式で人気のあるものの1つ
は、周知のディスク・ストライピング手法である。
【0010】この手法は、互いに連続する論理データユ
ニット(ストライプ・ユニットと称する)を複数の個別
にアクセス可能なディスクに、順次に配分するものであ
る。ディスク・ストライピング手法においては又、複数
のディスクにわたって負荷を均一に配分できるほかに、
1個のビデオについての多数の同時進行ストリームを、
ビデオの複製を必要とせずにサポートすることが可能で
ある。
ニット(ストライプ・ユニットと称する)を複数の個別
にアクセス可能なディスクに、順次に配分するものであ
る。ディスク・ストライピング手法においては又、複数
のディスクにわたって負荷を均一に配分できるほかに、
1個のビデオについての多数の同時進行ストリームを、
ビデオの複製を必要とせずにサポートすることが可能で
ある。
【0011】未処理すなわち処理待ちのビデオ要求は概
して、それらの要求が受領された順に、すなわち先入れ
先出し(FIFO)方式でビデオ・サーバによって処理
される。同時要求の個数が、そのビデオ・サーバによる
サポートの可能な同時進行ストリームの個数より少ない
か又は遥かに多くはない場合には、全ての処理待ち要求
に対して良好な全体応答時間を得ることが可能である。
して、それらの要求が受領された順に、すなわち先入れ
先出し(FIFO)方式でビデオ・サーバによって処理
される。同時要求の個数が、そのビデオ・サーバによる
サポートの可能な同時進行ストリームの個数より少ない
か又は遥かに多くはない場合には、全ての処理待ち要求
に対して良好な全体応答時間を得ることが可能である。
【0012】しかし、同時要求の個数がビデオ・サーバ
によるサポートの可能な同時進行ストリームの個数を遥
かに超えることが一般的なビデオ・オン・デマンド(V
OD)環境においては、先入れ先出し方式を用いて全て
の処理待ち要求に対して良好な全体応答時間を得ること
は不可能である。
によるサポートの可能な同時進行ストリームの個数を遥
かに超えることが一般的なビデオ・オン・デマンド(V
OD)環境においては、先入れ先出し方式を用いて全て
の処理待ち要求に対して良好な全体応答時間を得ること
は不可能である。
【0013】より良好な全体応答時間を得るために、強
化ペイ・パー・ビュー(EPPV)方式として知られる
手法が、ケーブル放送会社のようなビデオ・オン・デマ
ンド環境によって採用された。この強化ペイ・パー・ビ
ュー方式を利用して、ビデオ・サーバは、固定時間間隔
又は周期でビデオ・ストリームを取り出し、顧客に伝送
する。この方式の下では、1個の要求に対する平均応答
時間は、固定時間間隔の半分で、最も遅い応答時間は、
固定時間間隔と同じになる。
化ペイ・パー・ビュー(EPPV)方式として知られる
手法が、ケーブル放送会社のようなビデオ・オン・デマ
ンド環境によって採用された。この強化ペイ・パー・ビ
ュー方式を利用して、ビデオ・サーバは、固定時間間隔
又は周期でビデオ・ストリームを取り出し、顧客に伝送
する。この方式の下では、1個の要求に対する平均応答
時間は、固定時間間隔の半分で、最も遅い応答時間は、
固定時間間隔と同じになる。
【0014】更に、人気の高いビデオを高い頻度で取り
出し、人気の低いビデオを低い頻度で取り出すことによ
り、より良好な全体平均応答時間が達成できる。究極的
には、ビデオが取り出される周期と正確な時間を顧客に
知らせることによって、応答時間をゼロにまですること
が可能である。
出し、人気の低いビデオを低い頻度で取り出すことによ
り、より良好な全体平均応答時間が達成できる。究極的
には、ビデオが取り出される周期と正確な時間を顧客に
知らせることによって、応答時間をゼロにまですること
が可能である。
【0015】
【発明が解決しようとする課題】強化ペイ・パー・ビュ
ー方式を用いているビデオ・サーバ上でビデオの組み合
わせ(ビデオ・セット)をスケジューリングすることが
可能であっても、新たなビデオ・ストリームを開始させ
る正確なスケジュールを定めるのは困難がある。このこ
とは、特に、周期及び計算時間すなわちビデオ又はその
セグメントを伝送するのに要する時間が任意の場合にそ
うである。
ー方式を用いているビデオ・サーバ上でビデオの組み合
わせ(ビデオ・セット)をスケジューリングすることが
可能であっても、新たなビデオ・ストリームを開始させ
る正確なスケジュールを定めるのは困難がある。このこ
とは、特に、周期及び計算時間すなわちビデオ又はその
セグメントを伝送するのに要する時間が任意の場合にそ
うである。
【0016】目標は、同時に伝送されるようにスケジュ
ーリングされたビデオ・ストリームの個数がそのビデオ
・サーバによってサポートが可能な同時伝送ビデオ・ス
トリームの最大数を超えないように、そのビデオ・セッ
トをスケジューリングすることである。
ーリングされたビデオ・ストリームの個数がそのビデオ
・サーバによってサポートが可能な同時伝送ビデオ・ス
トリームの最大数を超えないように、そのビデオ・セッ
トをスケジューリングすることである。
【0017】強化ペイ・パー・ビュー方式においてビデ
オをスケジューリングすることには、「多項式アルゴリ
ズムが与えられていないために解が困難(NP-hard)」 の
ような、解を得るための複雑さがある。すなわち、スケ
ジューリングされるビデオの個数と、ビデオの伝送に用
いられるプロセッサの個数とが増加するにつれて、ビデ
オを周期的にスケジューリングする際の複雑さが増大す
る。
オをスケジューリングすることには、「多項式アルゴリ
ズムが与えられていないために解が困難(NP-hard)」 の
ような、解を得るための複雑さがある。すなわち、スケ
ジューリングされるビデオの個数と、ビデオの伝送に用
いられるプロセッサの個数とが増加するにつれて、ビデ
オを周期的にスケジューリングする際の複雑さが増大す
る。
【0018】したがって、強化ペイ・パー・ビュー方式
を用いているビデオ・サーバ上でのビデオのスケジュー
リングを有効に行うことが可能な方法及び装置が必要と
されている。
を用いているビデオ・サーバ上でのビデオのスケジュー
リングを有効に行うことが可能な方法及び装置が必要と
されている。
【0019】
【課題を解決するための手段】本発明は、ビデオ・サー
バにおいて強化ペイ・パー・ビュー方式を可能にする方
法を提供するものである。具体的には、本発明の方法
は、p個のプロセッサを有するビデオ・サーバにおいて
ビデオに対応するノン・プリエンプティブなタスクT
(Tiで表す)からなるタスクグループGを周期的にス
ケジューリングする。これらのタスクTi は各々、予め
定められた周期Pi(i番目のP)で始まり、且つ時間
間隔Fによって隔てられたwi 個のサブタスクを有す
る。
バにおいて強化ペイ・パー・ビュー方式を可能にする方
法を提供するものである。具体的には、本発明の方法
は、p個のプロセッサを有するビデオ・サーバにおいて
ビデオに対応するノン・プリエンプティブなタスクT
(Tiで表す)からなるタスクグループGを周期的にス
ケジューリングする。これらのタスクTi は各々、予め
定められた周期Pi(i番目のP)で始まり、且つ時間
間隔Fによって隔てられたwi 個のサブタスクを有す
る。
【0020】このタスクグループG内のタスクTi をス
ケジューリングするのに、本発明は4種類の手順を利用
する。第1の手順においては、1つのサーバに含まれる
タスクグループGのタスクが、単一のプロセッサ上でス
ケジューリングすることが可能でないタスクからなるタ
スク・サブグループG1と可能なタスクからなるタスク
・サブグループG2との2個のタスクサブグループ(又
は簡単に、サブグループ)に分割される。この第1の手
順は次に、サブグループG1及びG2の両方を別個にス
ケジューリングすることを試みる。
ケジューリングするのに、本発明は4種類の手順を利用
する。第1の手順においては、1つのサーバに含まれる
タスクグループGのタスクが、単一のプロセッサ上でス
ケジューリングすることが可能でないタスクからなるタ
スク・サブグループG1と可能なタスクからなるタスク
・サブグループG2との2個のタスクサブグループ(又
は簡単に、サブグループ)に分割される。この第1の手
順は次に、サブグループG1及びG2の両方を別個にス
ケジューリングすることを試みる。
【0021】単一のプロセッサ上でスケジューリングす
ることが可能でないサブグループ、すなわちサブグルー
プG1については、第1の手順が、p’個のプロセッサ
上でタスクをスケジューリングする。単一のプロセッサ
上でスケジューリングすることが可能なサブグループ、
すなわちサブグループG2については、第1の手順は、
第2の手順を呼び出し、残りのP”個のプロセッサの各
々について1個のサブセットG2−yが存在するように
サブグループG2をサブセットG2−yに分割させる。
ることが可能でないサブグループ、すなわちサブグルー
プG1については、第1の手順が、p’個のプロセッサ
上でタスクをスケジューリングする。単一のプロセッサ
上でスケジューリングすることが可能なサブグループ、
すなわちサブグループG2については、第1の手順は、
第2の手順を呼び出し、残りのP”個のプロセッサの各
々について1個のサブセットG2−yが存在するように
サブグループG2をサブセットG2−yに分割させる。
【0022】各サブセットG2−yについて、第1の手
順は、第3の手順を呼び出し、そのサブセットG2−y
がスケジューリング可能であるかどうかを判断させる。
第3の手順は、第4の手順を用いて、第3の手順による
サブセットG2−yのスケジューリング可能性の判断を
援助させる。
順は、第3の手順を呼び出し、そのサブセットG2−y
がスケジューリング可能であるかどうかを判断させる。
第3の手順は、第4の手順を用いて、第3の手順による
サブセットG2−yのスケジューリング可能性の判断を
援助させる。
【0023】もし第4の手順が、サブセットG2−yが
スケジューリング可能でないと判断し、第3の手順が、
その同じサブセットG2−yが更に分割可能であると判
断した場合、第3の手順は第2の手順を呼び出し、その
サブセットG2−yを更にサブ・サブセットSv に分割
させる。
スケジューリング可能でないと判断し、第3の手順が、
その同じサブセットG2−yが更に分割可能であると判
断した場合、第3の手順は第2の手順を呼び出し、その
サブセットG2−yを更にサブ・サブセットSv に分割
させる。
【0024】サブセットG2−yが分割された後、第3
の手順が自分自身を呼びだし、スケジューリング可能性
の再判断を行う。本発明は、第2のスケジューリング手
法によってタスクのサブグループ、サブセット等がスケ
ジューリング可能か又はもはや分割可能でないと判断さ
れるまで、タスクのサブグループ、サブセット等を反復
して分割する。
の手順が自分自身を呼びだし、スケジューリング可能性
の再判断を行う。本発明は、第2のスケジューリング手
法によってタスクのサブグループ、サブセット等がスケ
ジューリング可能か又はもはや分割可能でないと判断さ
れるまで、タスクのサブグループ、サブセット等を反復
して分割する。
【0025】図11に、本発明に基づく、ビデオ・オン
・デマンド(VOD)サービスを提供するためのビデオ
・サーバ10を示す。ビデオ・サーバ10は、プロセッ
サ11−1〜11−pとサイズDのRAMバッファメモ
リ12とデータ格納ユニット13とからなるコンピュー
タシステムである。
・デマンド(VOD)サービスを提供するためのビデオ
・サーバ10を示す。ビデオ・サーバ10は、プロセッ
サ11−1〜11−pとサイズDのRAMバッファメモ
リ12とデータ格納ユニット13とからなるコンピュー
タシステムである。
【0026】データ格納ユニット13は、複数のビデオ
(ビデオ・プログラム)Vi (i =1,...,Nにお
いてそれぞれ個々のビデオを示す)、又は互いに連鎖状
に連続する複数のビデオVi (以下、スーパ・ビデオ^
Vh と称する)(h =1,...,Pにおいてそれぞれ
個々のスーパ・ビデオを示す)、からなるスーパ・ビデ
オ・グループを、望ましくは圧縮された形で格納するた
めの複数のディスク13−1〜13−mからなる。
(ビデオ・プログラム)Vi (i =1,...,Nにお
いてそれぞれ個々のビデオを示す)、又は互いに連鎖状
に連続する複数のビデオVi (以下、スーパ・ビデオ^
Vh と称する)(h =1,...,Pにおいてそれぞれ
個々のスーパ・ビデオを示す)、からなるスーパ・ビデ
オ・グループを、望ましくは圧縮された形で格納するた
めの複数のディスク13−1〜13−mからなる。
【0027】尚、^Vh は、本来Vh の直上に^を配置
する表記を用いるところを、便宜上これに代わる簡易表
記として用いる(以下同様)。
する表記を用いるところを、便宜上これに代わる簡易表
記として用いる(以下同様)。
【0028】データ格納ユニット13は更に、ビデオV
i をディスク13−1〜13−mからRAMバッファメ
モリ12へ取り出すためのディスク・ヘッド(図示しな
い)からなる。尚、プロセッサの個数を示すpの値は、
RAMバッファメモリのサイズD、ディスクの個数m、
及び取り出されるデータの量に依る。pの値の定め方に
ついては下に述べる。
i をディスク13−1〜13−mからRAMバッファメ
モリ12へ取り出すためのディスク・ヘッド(図示しな
い)からなる。尚、プロセッサの個数を示すpの値は、
RAMバッファメモリのサイズD、ディスクの個数m、
及び取り出されるデータの量に依る。pの値の定め方に
ついては下に述べる。
【0029】プロセッサ11−1〜11−pは、1箇所
以上の受信者(顧客)15に予め定められた速度(r
disp)で高速のネットワーク14を介して伝送するよう
に作動する。しかし、ビデオVi が伝送可能になる前
に、ビデオVi をまずディスク13−1〜13−mから
RAMバッファメモリ12(ビデオVi は最終的にはこ
こから伝送される)へ取り出す必要がある。
以上の受信者(顧客)15に予め定められた速度(r
disp)で高速のネットワーク14を介して伝送するよう
に作動する。しかし、ビデオVi が伝送可能になる前
に、ビデオVi をまずディスク13−1〜13−mから
RAMバッファメモリ12(ビデオVi は最終的にはこ
こから伝送される)へ取り出す必要がある。
【0030】ディスク13−1〜13−mからRAMバ
ッファメモリ12へ(又はRAMバッファメモリ12か
ら顧客へ)のビデオVi の連続転送状態の流れを本明細
書では「ストリーム」と称する。ディスク13−1〜1
3−mから同時に(並行して)取り出すことのできるビ
デオVi すなわち同時ストリーム、の個数は、RAMバ
ッファメモリ12のサイズDによって制約される。すな
わち、RAMバッファメモリのサイズが、取り出し可能
な同時ストリームの個数に直接比例する。
ッファメモリ12へ(又はRAMバッファメモリ12か
ら顧客へ)のビデオVi の連続転送状態の流れを本明細
書では「ストリーム」と称する。ディスク13−1〜1
3−mから同時に(並行して)取り出すことのできるビ
デオVi すなわち同時ストリーム、の個数は、RAMバ
ッファメモリ12のサイズDによって制約される。すな
わち、RAMバッファメモリのサイズが、取り出し可能
な同時ストリームの個数に直接比例する。
【0031】多数の同時ストリームを取り出すように、
すなわちサポートするように作動するビデオ・サーバで
は、顧客によるビデオ要求に対して、より良好な全体応
答時間が得られる。理想的なのは、ビデオ・サーバが、
顧客からの同時要求の全てに対して要求受領時に即時に
サポートを行うのに十分なサイズDのRAMバッファメ
モリを備えることである。このような理想的な状態にお
いては、ビデオ・サーバは、顧客要求に対してその応答
時間がゼロである(ゼロ応答時間を有する)と表現され
る。
すなわちサポートするように作動するビデオ・サーバで
は、顧客によるビデオ要求に対して、より良好な全体応
答時間が得られる。理想的なのは、ビデオ・サーバが、
顧客からの同時要求の全てに対して要求受領時に即時に
サポートを行うのに十分なサイズDのRAMバッファメ
モリを備えることである。このような理想的な状態にお
いては、ビデオ・サーバは、顧客要求に対してその応答
時間がゼロである(ゼロ応答時間を有する)と表現され
る。
【0032】しかし、ビデオ・サーバ当たりの同時要求
の個数が大きいビデオ・オン・デマンド環境において
は、要求に即時にサービスを行うのに必要なRAMバッ
ファメモリのサイズを備えるには、実現不可能なほどの
高いコストがビデオ・サーバにかかることとなる。この
ような環境においては、要求の個数が、ビデオ・サーバ
の同時ストリーム伝送能力を遥かに超過するため、全体
応答時間に悪影響を及ぼすこととなる。
の個数が大きいビデオ・オン・デマンド環境において
は、要求に即時にサービスを行うのに必要なRAMバッ
ファメモリのサイズを備えるには、実現不可能なほどの
高いコストがビデオ・サーバにかかることとなる。この
ような環境においては、要求の個数が、ビデオ・サーバ
の同時ストリーム伝送能力を遥かに超過するため、全体
応答時間に悪影響を及ぼすこととなる。
【0033】より良好な全体応答時間を得るために、ケ
ーブル放送会社のようなビデオ・オン・デマンド環境に
おいては、周期的にビデオVi を取り出して顧客に伝送
するための、強化ペイ・パー・ビュー(EPPV)方式
として知られる非常に有効な手法が採用された。
ーブル放送会社のようなビデオ・オン・デマンド環境に
おいては、周期的にビデオVi を取り出して顧客に伝送
するための、強化ペイ・パー・ビュー(EPPV)方式
として知られる非常に有効な手法が採用された。
【0034】[強化ペイ・パー・ビュー(EPPV)方
式]強化ペイ・パー・ビュー方式は、ラウンドと称する
時間長さによって表される周期Pi で新たなストリーム
を取り出して顧客に伝送する手法に関わる。例えば、或
る(i番目の)ラウンド(ri で表す)から始めて、新
たなビデオVi のストリームについてのデータ取り出し
は、ri 、ri +Pi 、ri +2Pi 、等のラウンドの
間に開始される。
式]強化ペイ・パー・ビュー方式は、ラウンドと称する
時間長さによって表される周期Pi で新たなストリーム
を取り出して顧客に伝送する手法に関わる。例えば、或
る(i番目の)ラウンド(ri で表す)から始めて、新
たなビデオVi のストリームについてのデータ取り出し
は、ri 、ri +Pi 、ri +2Pi 、等のラウンドの
間に開始される。
【0035】しかし、周期Pi 及び利用可能なRAMバ
ッファメモリのサイズに依っては、周期Pi でビデオV
i についてのデータ取り出しをおこなうことは必ずしも
可能ではない。ビデオ・サーバによって周期的にビデオ
を取り出すことが可能かどうかを判断するすなわち定め
る問題は、或る1個のマルチプロセッサ上で周期的なタ
スク(Ti と称する)をスケジューリングする問題と同
じである。
ッファメモリのサイズに依っては、周期Pi でビデオV
i についてのデータ取り出しをおこなうことは必ずしも
可能ではない。ビデオ・サーバによって周期的にビデオ
を取り出すことが可能かどうかを判断するすなわち定め
る問題は、或る1個のマルチプロセッサ上で周期的なタ
スク(Ti と称する)をスケジューリングする問題と同
じである。
【0036】文献(J.A.Stankovic and K.Ramamritham,
"Hard Real-time Systems" published in IEEE Comput
er Society Press, Los Alamitos, California, 1988)
を参照されたい。
"Hard Real-time Systems" published in IEEE Comput
er Society Press, Los Alamitos, California, 1988)
を参照されたい。
【0037】本出願の目的上、タスクTi (又はタスク
^Th )は、単一ディスク上でビデオVi (又はスーパ
・ビデオ^Vh )の1個のストリームに属する全てのデ
ータを取り出すジョブに対応する。
^Th )は、単一ディスク上でビデオVi (又はスーパ
・ビデオ^Vh )の1個のストリームに属する全てのデ
ータを取り出すジョブに対応する。
【0038】尚、強化ペイ・パー・ビュー方式は、同時
要求の個数が、ビデオ・サーバによってサポートされる
同時ストリームの個数よりも遥かに多くはない環境や、
ビデオ要求が無作為であるために種々のビデオについて
の周期を定めることが困難な環境には不適切である。
要求の個数が、ビデオ・サーバによってサポートされる
同時ストリームの個数よりも遥かに多くはない環境や、
ビデオ要求が無作為であるために種々のビデオについて
の周期を定めることが困難な環境には不適切である。
【0039】[ディスク・ストライピング]本発明によ
れば、ディスク・ストライピング手法を用いるビデオ・
サーバにおいて強化ペイ・パー・ビュー方式を供与する
新しい方法及び装置が提供される。ディスク・ストライ
ピング手法は、ディスク帯域幅がより有効に利用される
ようにビデオを多数のディスクにわたって分散させる手
法に関わる。
れば、ディスク・ストライピング手法を用いるビデオ・
サーバにおいて強化ペイ・パー・ビュー方式を供与する
新しい方法及び装置が提供される。ディスク・ストライ
ピング手法は、ディスク帯域幅がより有効に利用される
ようにビデオを多数のディスクにわたって分散させる手
法に関わる。
【0040】具体的には、ディスク・ストライピング手
法は、互いに連続する論理データユニット(ストライプ
・ユニットと称する)を複数の個別にアクセス可能なデ
ィスクに、連鎖状に配分するものである。
法は、互いに連続する論理データユニット(ストライプ
・ユニットと称する)を複数の個別にアクセス可能なデ
ィスクに、連鎖状に配分するものである。
【0041】図2にディスク・ストライピング手法の例
示説明図を示す。図2に示すように、ビデオ20がサイ
ズsuを有するz個のストライプ・ユニット22−1〜
22−zに分割される。各ストライプ・ユニットを、V
i,j(Viのj番目のストライプ・ユニット) で表す。こ
こにj=1,...,zの場合のVi,j は、ビデオVi
の特定のストライプ・ユニットを意味する。
示説明図を示す。図2に示すように、ビデオ20がサイ
ズsuを有するz個のストライプ・ユニット22−1〜
22−zに分割される。各ストライプ・ユニットを、V
i,j(Viのj番目のストライプ・ユニット) で表す。こ
こにj=1,...,zの場合のVi,j は、ビデオVi
の特定のストライプ・ユニットを意味する。
【0042】説明の便宜上、本発明を、関連する米国特
許出願第08/492,315号(名称:Coarse-Grained
Disk Striping Method For Use In Video server Envi
ronments)に開示されている特定の、すなわち、きめを
細かくしたディスク・ストライピング手法及びきめを粗
くしたディスク・ストライピング手法に関連して述べる
が、このことが、本発明をこれら特定のディスク・スト
ライピング手法に限定するものと解釈してはならない。
許出願第08/492,315号(名称:Coarse-Grained
Disk Striping Method For Use In Video server Envi
ronments)に開示されている特定の、すなわち、きめを
細かくしたディスク・ストライピング手法及びきめを粗
くしたディスク・ストライピング手法に関連して述べる
が、このことが、本発明をこれら特定のディスク・スト
ライピング手法に限定するものと解釈してはならない。
【0043】(「きめを細かくした」ディスク・ストラ
イピング手法)図3に、ビデオVi を格納し、取り出す
ための「きめを細かくした(Fine-Grained)」ディスク
・ストライピング手法(以下、FGストライピング手法
とも表記)を例示する。図3に示すようなこのFGスト
ライピング手法において、1個以上のビデオVi に属す
るストライプ・ユニットVi,j (32−1〜32−m)
が、順次にディスク30−1〜30−m上に隣接して格
納される。すなわち、ストライプ・ユニットVi,1(3
2ー1)〜Vi,m(32ーm)がディスク30−1〜3
0−mにそれぞれ格納され、ストライプ・ユニットVi,
1+m(32−(1+m))〜Vi,2・m(32−2・m)
がディスク30−1〜30−mにそれぞれ格納され、以
下順次同様に格納される。
イピング手法)図3に、ビデオVi を格納し、取り出す
ための「きめを細かくした(Fine-Grained)」ディスク
・ストライピング手法(以下、FGストライピング手法
とも表記)を例示する。図3に示すようなこのFGスト
ライピング手法において、1個以上のビデオVi に属す
るストライプ・ユニットVi,j (32−1〜32−m)
が、順次にディスク30−1〜30−m上に隣接して格
納される。すなわち、ストライプ・ユニットVi,1(3
2ー1)〜Vi,m(32ーm)がディスク30−1〜3
0−mにそれぞれ格納され、ストライプ・ユニットVi,
1+m(32−(1+m))〜Vi,2・m(32−2・m)
がディスク30−1〜30−mにそれぞれ格納され、以
下順次同様に格納される。
【0044】そして、互いに連続するm個のストライプ
・ユニットからなる各グループが、それぞれのディスク
の同じ相対位置に格納される。例えば、ストライプ・ユ
ニットVi,1〜Vi,mがディスク30−1〜30−mの第
1トラックにそれぞれ格納され、ストライプ・ユニット
Vi,1+m〜Vi,2・mがディスク30−1〜30−mの第2
トラックにそれぞれ格納され、以下同様に格納される。
・ユニットからなる各グループが、それぞれのディスク
の同じ相対位置に格納される。例えば、ストライプ・ユ
ニットVi,1〜Vi,mがディスク30−1〜30−mの第
1トラックにそれぞれ格納され、ストライプ・ユニット
Vi,1+m〜Vi,2・mがディスク30−1〜30−mの第2
トラックにそれぞれ格納され、以下同様に格納される。
【0045】各ビデオVi は望ましくは、各ディスク3
0−1〜30−mについて、同じビデオVi に属するス
トライプ・ユニットの個数(wi で表す)がどのディス
クでも同じになるような、mの倍数である長さli(エルア
イ) を有するようにする。これは、末尾に広告又は埋草
ビデオを付加することによって実現できる。
0−1〜30−mについて、同じビデオVi に属するス
トライプ・ユニットの個数(wi で表す)がどのディス
クでも同じになるような、mの倍数である長さli(エルア
イ) を有するようにする。これは、末尾に広告又は埋草
ビデオを付加することによって実現できる。
【0046】同じビデオに属する、1つのディスク上の
ストライプ・ユニットのグループを本説明では、ブロッ
クと称する。したがって、各ブロックは、その同じビデ
オVi に属するwi 個のストライプ・ユニットを有す
る。
ストライプ・ユニットのグループを本説明では、ブロッ
クと称する。したがって、各ブロックは、その同じビデ
オVi に属するwi 個のストライプ・ユニットを有す
る。
【0047】本FGストライピング手法においては、ビ
デオVi の各ストリームについてのデータが、同時に全
てのディスク・ヘッドを用いてディスク13−1〜13
−mから取り出される。具体的には、各ディスク・ヘッ
ドが、一連のラウンドri の間に、各ストリームについ
てそれぞれのディスク上の同じ相対位置からサイズsu
のストライプ・ユニットを取り出す。
デオVi の各ストリームについてのデータが、同時に全
てのディスク・ヘッドを用いてディスク13−1〜13
−mから取り出される。具体的には、各ディスク・ヘッ
ドが、一連のラウンドri の間に、各ストリームについ
てそれぞれのディスク上の同じ相対位置からサイズsu
のストライプ・ユニットを取り出す。
【0048】すなわち、各ストリームについて1個のラ
ウンドri の間に取り出されるデータの量が、そのビデ
オVi に属し互いに連続するm個のストライプ・ユニッ
トからなるグループを形成する。m個のストライプ・ユ
ニットからなるグループは各々、ビデオVi の、サイズ
dを有する部分(又は、サイズd部分)を形成する。言
い換えれば、m・su=dである。
ウンドri の間に取り出されるデータの量が、そのビデ
オVi に属し互いに連続するm個のストライプ・ユニッ
トからなるグループを形成する。m個のストライプ・ユ
ニットからなるグループは各々、ビデオVi の、サイズ
dを有する部分(又は、サイズd部分)を形成する。言
い換えれば、m・su=dである。
【0049】尚、ビデオVi の1個のストリームについ
てのデータが取り出される間のラウンドの個数は、次式
[数1]で表され、ここに、li(エルアイ) はビデオVi の
長さに対応する。したがって、ビデオVi の各ストリー
ムは、[数1]で表される個数のサイズd部分からなる
と見ることができる。
てのデータが取り出される間のラウンドの個数は、次式
[数1]で表され、ここに、li(エルアイ) はビデオVi の
長さに対応する。したがって、ビデオVi の各ストリー
ムは、[数1]で表される個数のサイズd部分からなる
と見ることができる。
【数1】
【0050】ビデオVi の新たなストリームが開始され
るときには、サイズ2・dのバッファメモリが割り付け
られる。このことよって、新たなストリームの各々につ
いてのサイズd部分の同時取り出し及び伝送が可能とな
る。しかし、新たなストリームのデータ伝送は、割り付
けられたバッファメモリにビデオVi の第1のサイズd
部分の全部が取り出されるまでは開始されないことに留
意を要する。
るときには、サイズ2・dのバッファメモリが割り付け
られる。このことよって、新たなストリームの各々につ
いてのサイズd部分の同時取り出し及び伝送が可能とな
る。しかし、新たなストリームのデータ伝送は、割り付
けられたバッファメモリにビデオVi の第1のサイズd
部分の全部が取り出されるまでは開始されないことに留
意を要する。
【0051】例えば、もしラウンドli(エルアイ) を、割り
付けられたバッファメモリにビデオVi の第1のサイズ
d部分が取り出される時間長さとした場合、顧客への第
1のサイズd部分の速度rdispでの伝送は、ラウンド2
i までは開始されない。第1のサイズd部分のデータの
伝送に要する時間は、ラウンドri の時間長さに対応す
る。言い換えれば、ラウンドri の時間長さはd/r
dispである。
付けられたバッファメモリにビデオVi の第1のサイズ
d部分が取り出される時間長さとした場合、顧客への第
1のサイズd部分の速度rdispでの伝送は、ラウンド2
i までは開始されない。第1のサイズd部分のデータの
伝送に要する時間は、ラウンドri の時間長さに対応す
る。言い換えれば、ラウンドri の時間長さはd/r
dispである。
【0052】更に、ビデオVi の第1のサイズd部分が
伝送されるラウンド2i の間に、ビデオVi の第2のサ
イズd部分が、割り付けられたバッファメモリに取り出
される。
伝送されるラウンド2i の間に、ビデオVi の第2のサ
イズd部分が、割り付けられたバッファメモリに取り出
される。
【0053】一般的には、各ラウンドri についてビデ
オVi の次のサイズd部分が、割り付けられたバッファ
メモリに取り出される。そして、割り付けられたバッフ
ァメモリに現に在駐している同じビデオVi の前のサイ
ズd部分が、その割り付けられたバッファメモリから伝
送される。このサイズd部分の取り出し及び伝送を同時
に行う動作は、ビデオVi 全体が取り出され伝送される
まで継続される。
オVi の次のサイズd部分が、割り付けられたバッファ
メモリに取り出される。そして、割り付けられたバッフ
ァメモリに現に在駐している同じビデオVi の前のサイ
ズd部分が、その割り付けられたバッファメモリから伝
送される。このサイズd部分の取り出し及び伝送を同時
に行う動作は、ビデオVi 全体が取り出され伝送される
まで継続される。
【0054】尚、ビデオVi の次のサイズd部分の取り
出しは、ビデオVi の前のサイズd部分の伝送の完了時
と同時に又は完了時より前に完了する必要がある。すな
わち、サイズd部分1個の取り出し時間は、サイズd部
分の伝送時間に等しいか又はそれよりも短くなければな
らない。言い換えれば、データ取り出しは、ラウンドr
i の時間で完了する必要がある。
出しは、ビデオVi の前のサイズd部分の伝送の完了時
と同時に又は完了時より前に完了する必要がある。すな
わち、サイズd部分1個の取り出し時間は、サイズd部
分の伝送時間に等しいか又はそれよりも短くなければな
らない。言い換えれば、データ取り出しは、ラウンドr
i の時間で完了する必要がある。
【0055】このことが要求される理由は、全てのビデ
オについてのデータが速度rdispの連続ストリームとし
て顧客に伝送されることを確実にする必要があるからで
ある。各ラウンドri 内にデータ取り出しが完了しない
場合には、ビデオストリームが中断する結果となる。
オについてのデータが速度rdispの連続ストリームとし
て顧客に伝送されることを確実にする必要があるからで
ある。各ラウンドri 内にデータ取り出しが完了しない
場合には、ビデオストリームが中断する結果となる。
【0056】ビデオVi の各ストリームについてデータ
が取り出されるサイズ増分(データ取り出し量)は、均
一、すなわち値dで、この値は望ましくは、RAMバッ
ファメモリのサイズDとビデオVi がストライピングさ
れるディスクの個数mとに基づいて、ビデオ・サーバに
よってサポートすることのできる同時ストリームの個数
が最大になるように計算される。本FGストライピング
手法については、値dは次の数式[数2]で与えられ
る。
が取り出されるサイズ増分(データ取り出し量)は、均
一、すなわち値dで、この値は望ましくは、RAMバッ
ファメモリのサイズDとビデオVi がストライピングさ
れるディスクの個数mとに基づいて、ビデオ・サーバに
よってサポートすることのできる同時ストリームの個数
が最大になるように計算される。本FGストライピング
手法については、値dは次の数式[数2]で与えられ
る。
【0057】
【数2】
【0058】1個のビデオ・サーバによってサポートす
ることのできる同時ストリームの個数を最大にするには
又、ビデオ・サーバ内のプロセッサの個数も関連する。
前に述べたように、各プロセッサ11−1〜11−pは
速度rdispでデータを伝送するように作動する。ラウン
ドri の時間長さがd/rdispであるので、各プロセッ
サ11−1〜11−pはラウンドri 当たり1個のサイ
ズd部分しか伝送できない。
ることのできる同時ストリームの個数を最大にするには
又、ビデオ・サーバ内のプロセッサの個数も関連する。
前に述べたように、各プロセッサ11−1〜11−pは
速度rdispでデータを伝送するように作動する。ラウン
ドri の時間長さがd/rdispであるので、各プロセッ
サ11−1〜11−pはラウンドri 当たり1個のサイ
ズd部分しか伝送できない。
【0059】したがって、1個のビデオ・サーバによっ
てサポートすることのできる同時ストリームの最大個数
(qmax で表す)は、プロセッサの個数pによって制限
される。前に述べたように本発明においては、pの値
は、RAMバッファメモリのサイズD、ディスクの個数
m、及び取り出されるデータの量すなわちサイズd部分
に基づいて、ビデオ・サーバによってサポートすること
のできる同時ストリームの個数が最大になるように計算
される。
てサポートすることのできる同時ストリームの最大個数
(qmax で表す)は、プロセッサの個数pによって制限
される。前に述べたように本発明においては、pの値
は、RAMバッファメモリのサイズD、ディスクの個数
m、及び取り出されるデータの量すなわちサイズd部分
に基づいて、ビデオ・サーバによってサポートすること
のできる同時ストリームの個数が最大になるように計算
される。
【0060】本FGストライピング手法については、プ
ロセッサの個数pは、次の数式[数3]で与えられる。
これは、そのビデオ・サーバによってサポートすること
のできる同時ストリームの個数を最大にするのに必要な
最小個数である。言い換えれば、p=qmax である。
ロセッサの個数pは、次の数式[数3]で与えられる。
これは、そのビデオ・サーバによってサポートすること
のできる同時ストリームの個数を最大にするのに必要な
最小個数である。言い換えれば、p=qmax である。
【0061】
【数3】
【0062】ビデオVi の同時ストリームの各々につい
てのデータが、処理待ちの顧客要求からの各ラウンドに
ついてビデオ・サーバによって組み立てられたサービス
リストに基づいてディスクから取り出される。サービス
リストは、データがビデオVi のストリームについて現
に取り出されつつあるそのビデオVi のストリームの索
引である。より具体的には、サービスリストは、データ
が現に取り出されつつある箇所すなわちそのビデオVi
の各ストリームについてのディスク上のストライプ・ユ
ニットの相対位置を表示する。
てのデータが、処理待ちの顧客要求からの各ラウンドに
ついてビデオ・サーバによって組み立てられたサービス
リストに基づいてディスクから取り出される。サービス
リストは、データがビデオVi のストリームについて現
に取り出されつつあるそのビデオVi のストリームの索
引である。より具体的には、サービスリストは、データ
が現に取り出されつつある箇所すなわちそのビデオVi
の各ストリームについてのディスク上のストライプ・ユ
ニットの相対位置を表示する。
【0063】尚、もしストライプ・ユニットが、同じビ
デオVi には属するが異なるストリームについての異な
るストライプ・ユニットである場合には、サービスリス
トには、これら異なるストライプ・ユニットのデータ取
り出しを表示するエントリが含まれる。更に、サービス
リスト上の各ビデオVi の各ストリームは全て、そのラ
ウンドの完了前に取り出しを完了する必要があり、そう
でない場合には、ビデオVi のストリームが中断すると
いうことに留意を要する。
デオVi には属するが異なるストリームについての異な
るストライプ・ユニットである場合には、サービスリス
トには、これら異なるストライプ・ユニットのデータ取
り出しを表示するエントリが含まれる。更に、サービス
リスト上の各ビデオVi の各ストリームは全て、そのラ
ウンドの完了前に取り出しを完了する必要があり、そう
でない場合には、ビデオVi のストリームが中断すると
いうことに留意を要する。
【0064】本FGストライピング手法においては、前
に述べたように各ディスク・ヘッドがそれぞれのディス
ク上の同じ相対位置にあるストライプ・ユニットを同時
に取り出すので、m個のディスク・ヘッドの全てに対す
る、どのストライプ・ユニットを取り出すべきかの指令
は1個のサービスリストだけによって与えられる。
に述べたように各ディスク・ヘッドがそれぞれのディス
ク上の同じ相対位置にあるストライプ・ユニットを同時
に取り出すので、m個のディスク・ヘッドの全てに対す
る、どのストライプ・ユニットを取り出すべきかの指令
は1個のサービスリストだけによって与えられる。
【0065】サービスリスト上のエントリの個数(qで
表す)は、取り出されつつある同時ストリームの個数を
反映する。このことを考慮すると、サービスリスト上の
エントリの個数は、そのビデオ・サーバによってサポー
トすることのできる同時ストリームの最大個数を決して
超えてはならない。すなわち、q≦qmax である。
表す)は、取り出されつつある同時ストリームの個数を
反映する。このことを考慮すると、サービスリスト上の
エントリの個数は、そのビデオ・サーバによってサポー
トすることのできる同時ストリームの最大個数を決して
超えてはならない。すなわち、q≦qmax である。
【0066】しかし、サービスリスト上のビデオ・エン
トリの個数qがqmax を超えないという事実だけでは、
サービスリストに記入されているビデオVi がp個のプ
ロセッサ上でスケジューリングすることが可能であると
の保証にはならない。スケジュールの衝突すなわち競合
は一般に、ビデオVi の新たなストリームが始まる個々
の周期に起因する。
トリの個数qがqmax を超えないという事実だけでは、
サービスリストに記入されているビデオVi がp個のプ
ロセッサ上でスケジューリングすることが可能であると
の保証にはならない。スケジュールの衝突すなわち競合
は一般に、ビデオVi の新たなストリームが始まる個々
の周期に起因する。
【0067】本FGストライピング手法においては、ビ
デオVi についてのデータ取り出しをスケジューリング
する問題は、p個のプロセッサ上で周期P1,...,Pn と
計算時間Ci とを有するノン・プリエンプティブ・タス
クT1,...,Tn をスケジューリングするのと同じであ
る。
デオVi についてのデータ取り出しをスケジューリング
する問題は、p個のプロセッサ上で周期P1,...,Pn と
計算時間Ci とを有するノン・プリエンプティブ・タス
クT1,...,Tn をスケジューリングするのと同じであ
る。
【0068】前に述べたように、タスクTi は、単一デ
ィスク上でビデオVi の1個のストリームに属する全て
のデータを取り出すジョブに対応する。この定義を本F
Gストライピング手法に適用すると、タスクTi は、1
個のディスクから同じビデオVi に属するwi 個のスト
ライプ・ユニットからなるストライプ・ユニット・ブロ
ックを取り出す作業、例えばディスク30−1からVi,
j〜Vi,1+w・mのストライプ・ユニットを取り出す作業か
ら構成されることになる。
ィスク上でビデオVi の1個のストリームに属する全て
のデータを取り出すジョブに対応する。この定義を本F
Gストライピング手法に適用すると、タスクTi は、1
個のディスクから同じビデオVi に属するwi 個のスト
ライプ・ユニットからなるストライプ・ユニット・ブロ
ックを取り出す作業、例えばディスク30−1からVi,
j〜Vi,1+w・mのストライプ・ユニットを取り出す作業か
ら構成されることになる。
【0069】タスクTi を完了するに要する時間を、計
算時間Ci と称し、ラウンドを単位として表す。本FG
ストライピング手法においては、計算時間Ci は1個の
ディスク上でビデオVi に属するストライプ・ユニット
・ブロック全体を取り出すのに要するラウンドの個数に
等しい。すなわち次の数式で表される関係となる。
算時間Ci と称し、ラウンドを単位として表す。本FG
ストライピング手法においては、計算時間Ci は1個の
ディスク上でビデオVi に属するストライプ・ユニット
・ブロック全体を取り出すのに要するラウンドの個数に
等しい。すなわち次の数式で表される関係となる。
【数4】
【0070】尚、単位計算時間を有する周期的タスクが
単一のプロセッサ上でスケジューリング可能かどうかを
定めるという、より簡単な問題でも、解を得るには「NP
-hard」 レベルの複雑さがあることが、文献(S.Barua
h, et al."International Computer Symposium, Taiwa
n," pages 315-320, published 1990) に示されてい
る。ここに、「NP-hard」 は、技術的に周知の用語で、
「多項式アルゴリズムが与えられていないために解が困
難(NP-hard)」 のような、解を得るための複雑さのレベ
ルを意味する。
単一のプロセッサ上でスケジューリング可能かどうかを
定めるという、より簡単な問題でも、解を得るには「NP
-hard」 レベルの複雑さがあることが、文献(S.Barua
h, et al."International Computer Symposium, Taiwa
n," pages 315-320, published 1990) に示されてい
る。ここに、「NP-hard」 は、技術的に周知の用語で、
「多項式アルゴリズムが与えられていないために解が困
難(NP-hard)」 のような、解を得るための複雑さのレベ
ルを意味する。
【0071】(第1の「きめを粗くした」ディスク・ス
トライピング手法)図4に、ビデオVi を格納し、取り
出すための第1の「きめを粗くした(Coarse-Graine
d)」ディスク・ストライピング手法(以下、第1のC
Gストライピング手法とも表記)を例示する。第1のC
Gストライピング手法は、下に述べる点を除いてはFG
ストライピング手法に全ての面で類似する。
トライピング手法)図4に、ビデオVi を格納し、取り
出すための第1の「きめを粗くした(Coarse-Graine
d)」ディスク・ストライピング手法(以下、第1のC
Gストライピング手法とも表記)を例示する。第1のC
Gストライピング手法は、下に述べる点を除いてはFG
ストライピング手法に全ての面で類似する。
【0072】図4に示すように、1個以上のスーパ・ビ
デオ^Vh (すなわち互いに連鎖状に連続する複数のビ
デオからなるスーパ・ビデオ・グループ)に属するスト
ライプ・ユニット^Vh,j (42−1〜42−m)が、
順次にディスク40−1〜40−m上に隣接して格納さ
れる。
デオ^Vh (すなわち互いに連鎖状に連続する複数のビ
デオからなるスーパ・ビデオ・グループ)に属するスト
ライプ・ユニット^Vh,j (42−1〜42−m)が、
順次にディスク40−1〜40−m上に隣接して格納さ
れる。
【0073】FGストライピング手法と対照的に、この
第1のCGストライピング手法におけるストライプ・ユ
ニットのサイズsuは、dより大きく、望ましくはdに
等しい。各スーパ・ビデオ^Vh を構成する各ビデオV
i は全て、望ましくは、dとmとの倍数である長さ^l
i(エルアイ) を有し、この長さは、各ディスクがそのスーパ
・ビデオ^Vh に属するwh 個のストライプ・ユニット
からなるブロックを有するような長さにする。
第1のCGストライピング手法におけるストライプ・ユ
ニットのサイズsuは、dより大きく、望ましくはdに
等しい。各スーパ・ビデオ^Vh を構成する各ビデオV
i は全て、望ましくは、dとmとの倍数である長さ^l
i(エルアイ) を有し、この長さは、各ディスクがそのスーパ
・ビデオ^Vh に属するwh 個のストライプ・ユニット
からなるブロックを有するような長さにする。
【0074】CGストライピング手法は次の点でFGス
トライピング手法と根本的に異なる。すなわち、CGス
トライピング手法においては一般に、1度に1個のディ
スク・ヘッドを用いてスーパ・ビデオ^Vh の各ストリ
ームについてのデータを取り出す点である。このように
する理由は、本CGストライピング手法においては各ス
トライプ・ユニットのサイズがsu=dであるからであ
る。これは、各ストライプ・ユニットのサイズがsu=
d/mであるFGストライピング手法と対照的である。
トライピング手法と根本的に異なる。すなわち、CGス
トライピング手法においては一般に、1度に1個のディ
スク・ヘッドを用いてスーパ・ビデオ^Vh の各ストリ
ームについてのデータを取り出す点である。このように
する理由は、本CGストライピング手法においては各ス
トライプ・ユニットのサイズがsu=dであるからであ
る。これは、各ストライプ・ユニットのサイズがsu=
d/mであるFGストライピング手法と対照的である。
【0075】第1のCGストライピング手法の、互いに
連続するラウンドrh において、同じスーパ・ビデオ^
Vh に属する互いに連続するストライプ・ユニットが、
互いに連続するディスクからそれぞれのディスク・ヘッ
ドによって取り出される。例えば、ストライプ・ユニッ
トVh,1 (42ー1)が第1のラウンドにおいてディス
ク40−1から取り出され、ストライプ・ユニットVh,
2 (42ー2)が第2のラウンドにおいてディスク40
−2から取り出される(以下同様)。
連続するラウンドrh において、同じスーパ・ビデオ^
Vh に属する互いに連続するストライプ・ユニットが、
互いに連続するディスクからそれぞれのディスク・ヘッ
ドによって取り出される。例えば、ストライプ・ユニッ
トVh,1 (42ー1)が第1のラウンドにおいてディス
ク40−1から取り出され、ストライプ・ユニットVh,
2 (42ー2)が第2のラウンドにおいてディスク40
−2から取り出される(以下同様)。
【0076】FGストライピング手法と異なり、第1の
CGストライピング手法においては、1個のディスク上
の同じスーパ・ビデオ^Vh に属する隣接するストライ
プ・ユニットがF個のラウンドの時間間隔を置いて取り
出される。
CGストライピング手法においては、1個のディスク上
の同じスーパ・ビデオ^Vh に属する隣接するストライ
プ・ユニットがF個のラウンドの時間間隔を置いて取り
出される。
【0077】具体的には、第1のCGストライピング手
法においては、互いに連続するストライプ・ユニットが
m個のディスク上に順次に格納されるので、同じ1個の
ディスク上の隣接するストライプ・ユニットは、m個の
ラウンドの時間間隔を置いて取り出される。例えば、ス
トライプ・ユニット42−1が第1のラウンドにおいて
ディスク40−1から取り出され、ディスク40−1上
の次のストライプ・ユニット、すなわちストライプ・ユ
ニット42−1+mは(1+m)番目のラウンドにおい
て取り出される。
法においては、互いに連続するストライプ・ユニットが
m個のディスク上に順次に格納されるので、同じ1個の
ディスク上の隣接するストライプ・ユニットは、m個の
ラウンドの時間間隔を置いて取り出される。例えば、ス
トライプ・ユニット42−1が第1のラウンドにおいて
ディスク40−1から取り出され、ディスク40−1上
の次のストライプ・ユニット、すなわちストライプ・ユ
ニット42−1+mは(1+m)番目のラウンドにおい
て取り出される。
【0078】この第1のCGストライピング手法におい
ては、全てのディスク・ヘッドについて、それぞれ別個
のサービスリストがビデオ・サーバによって用意され
る。したがって、サービスリストはm個存在する。これ
らのサービスリスト上の各エントリは、単一のディスク
から取り出されつつあるデータのサイズd部分を表示す
る。これは、FGストライピング手法においては各エン
トリが、取り出されつつあるデータのディスク当たりの
サイズsu=d/m部分を表示すると対照的である。
ては、全てのディスク・ヘッドについて、それぞれ別個
のサービスリストがビデオ・サーバによって用意され
る。したがって、サービスリストはm個存在する。これ
らのサービスリスト上の各エントリは、単一のディスク
から取り出されつつあるデータのサイズd部分を表示す
る。これは、FGストライピング手法においては各エン
トリが、取り出されつつあるデータのディスク当たりの
サイズsu=d/m部分を表示すると対照的である。
【0079】この第1のCGストライピング手法におい
ては、各エントリはデータのサイズd部分1個の取り出
しを表示するので、各エントリについて1個のプロセッ
サが必要である。もしqdisk・maxを1個のサービスリス
ト上のエントリの最大個数とした場合、qdisk・max・m
は、そのビデオ・サーバがサポートできる同時ストリー
ムの最大個数を意味する。
ては、各エントリはデータのサイズd部分1個の取り出
しを表示するので、各エントリについて1個のプロセッ
サが必要である。もしqdisk・maxを1個のサービスリス
ト上のエントリの最大個数とした場合、qdisk・max・m
は、そのビデオ・サーバがサポートできる同時ストリー
ムの最大個数を意味する。
【0080】言い換えれば、この第1のCGストライピ
ング手法において、ビデオ・サーバがサポートできる同
時ストリームの個数を最大にするためのプロセッサの最
小必要個数はp=qdisk・max・mである。この値pの定
め方については下で述べる。1個のサービスリスト中の
エントリの個数をqdiskで表す。
ング手法において、ビデオ・サーバがサポートできる同
時ストリームの個数を最大にするためのプロセッサの最
小必要個数はp=qdisk・max・mである。この値pの定
め方については下で述べる。1個のサービスリスト中の
エントリの個数をqdiskで表す。
【0081】第1のCGストライピング手法では、各ラ
ウンドrh の終わりの時点で、第1のディスクを除く全
てのディスクについてのサービスリストは、それぞれの
ディスクの前のディスクのサービスリストに合わせて設
定される。例えば、ラウンド1におけるディスク30−
1についてのサービスリストが、ラウンド2におけるデ
ィスク30−2についてのサービスリストになる。
ウンドrh の終わりの時点で、第1のディスクを除く全
てのディスクについてのサービスリストは、それぞれの
ディスクの前のディスクのサービスリストに合わせて設
定される。例えば、ラウンド1におけるディスク30−
1についてのサービスリストが、ラウンド2におけるデ
ィスク30−2についてのサービスリストになる。
【0082】この理由は、次のラウンドにおいて取り出
されることになるビデオの互いに連続するサイズd部分
が位置する次のディスク上での相対位置が、前のサイズ
d部分が位置した前のディスク上での相対位置と同じた
めである。そして、各ラウンドの都度新しいサービスリ
ストを与えられるのは第1のディスクだけである。
されることになるビデオの互いに連続するサイズd部分
が位置する次のディスク上での相対位置が、前のサイズ
d部分が位置した前のディスク上での相対位置と同じた
めである。そして、各ラウンドの都度新しいサービスリ
ストを与えられるのは第1のディスクだけである。
【0083】したがって、もし第1のディスクについて
のサービスリストに含まれるスーパ・ビデオ^Vh のエ
ントリに関してデータ取り出しのスケジューリングが可
能な場合には、その後に連続するラウンドrh における
他のディスクでも同じスーパ・ビデオ^Vh についてデ
ータ取り出しのスケジューリングが可能である。
のサービスリストに含まれるスーパ・ビデオ^Vh のエ
ントリに関してデータ取り出しのスケジューリングが可
能な場合には、その後に連続するラウンドrh における
他のディスクでも同じスーパ・ビデオ^Vh についてデ
ータ取り出しのスケジューリングが可能である。
【0084】第1のCGストライピング手法において
は、値dは次の数式[数5]で与えられる。
は、値dは次の数式[数5]で与えられる。
【0085】
【数5】
【0086】ディスクはm個あるので、取り出し可能な
スーパ・ビデオ^Vh のサイズd部分の最大値は、q
disk・max・mである。FGストライピング手法と同様
に、第1のCGストライピング手法において必要とされ
るプロセッサの個数は、RAMバッファメモリのサイズ
Dとディスクの個数mと取り出し可能な最大データ量と
に基づいて計算される。第1のCGストライピング手法
においては、このプロセッサの個数pは次の式で表され
る。
スーパ・ビデオ^Vh のサイズd部分の最大値は、q
disk・max・mである。FGストライピング手法と同様
に、第1のCGストライピング手法において必要とされ
るプロセッサの個数は、RAMバッファメモリのサイズ
Dとディスクの個数mと取り出し可能な最大データ量と
に基づいて計算される。第1のCGストライピング手法
においては、このプロセッサの個数pは次の式で表され
る。
【0087】
【数6】
【0088】第1のCGストライピング手法において、
スーパ・ビデオ^Vh についてのデータを周期的に取り
出す問題は、p個のプロセッサ上で、wh 個の互いに連
続しないストライプ・ユニットを有するタスク^Th 、
すなわち^T1,...,^TR をスケジューリングする問題
と同じである。各タスク^Th はwh 個のサブ・タスク
を有し、各サブ・タスクは単位計算時間を有する。F個
のラウンドからなる時間間隔が、同じタスクTh に属す
る隣接するサブ・タスク間に挿入される。
スーパ・ビデオ^Vh についてのデータを周期的に取り
出す問題は、p個のプロセッサ上で、wh 個の互いに連
続しないストライプ・ユニットを有するタスク^Th 、
すなわち^T1,...,^TR をスケジューリングする問題
と同じである。各タスク^Th はwh 個のサブ・タスク
を有し、各サブ・タスクは単位計算時間を有する。F個
のラウンドからなる時間間隔が、同じタスクTh に属す
る隣接するサブ・タスク間に挿入される。
【0089】すなわち、タスク^Th についての計算時
間^Ch は、wh 個のラウンドに(wh −1)個のラウ
ンドを加えたもの、すなわち(2wh −1)個のラウン
ドとなる。尚、単一のサブ・タスクを有するタスクを1
個のマルチプロセッサ上でスケジューリングするとい
う、より簡単な問題でも解を得るには「NP-hard」 レベ
ルの複雑さがあることが、上記の文献(S.Baruah, et a
l.)に示されている。
間^Ch は、wh 個のラウンドに(wh −1)個のラウ
ンドを加えたもの、すなわち(2wh −1)個のラウン
ドとなる。尚、単一のサブ・タスクを有するタスクを1
個のマルチプロセッサ上でスケジューリングするとい
う、より簡単な問題でも解を得るには「NP-hard」 レベ
ルの複雑さがあることが、上記の文献(S.Baruah, et a
l.)に示されている。
【0090】(第2の「きめを粗くした」ディスク・ス
トライピング手法)図5に、ビデオVi を格納し、取り
出すための第2の「きめを粗くした(Coarse-Graine
d)」ディスク・ストライピング手法(以下、第2のC
Gストライピング手法とも表記)を例示する。第2のC
Gストライピング手法は、下に述べる点を除いてはFG
ストライピング手法に全ての面で類似する。
トライピング手法)図5に、ビデオVi を格納し、取り
出すための第2の「きめを粗くした(Coarse-Graine
d)」ディスク・ストライピング手法(以下、第2のC
Gストライピング手法とも表記)を例示する。第2のC
Gストライピング手法は、下に述べる点を除いてはFG
ストライピング手法に全ての面で類似する。
【0091】第1のCGストライピング手法とは対照的
に、第2のCGストライピング手法においては、1個以
上のスーパ・ビデオ^Vh に属するwh 個のストライプ
・ユニット^Vh,j からなるブロック(52−1〜52
−m)が、順次にディスク50−1〜50−m上に隣接
して格納される。ここに、wh は次の式で与えられ、同
式中の^lh はスーパ・ビデオ^Vh の長さに対応す
る。
に、第2のCGストライピング手法においては、1個以
上のスーパ・ビデオ^Vh に属するwh 個のストライプ
・ユニット^Vh,j からなるブロック(52−1〜52
−m)が、順次にディスク50−1〜50−m上に隣接
して格納される。ここに、wh は次の式で与えられ、同
式中の^lh はスーパ・ビデオ^Vh の長さに対応す
る。
【数7】
【0092】第2のCGストライピング手法において
は、wh の値はスーパ・ビデオ^Vhの各ブロック全て
にわたって同一である。各スーパ・ビデオ^Vh の長さ
^lhはwh の倍数で、その値は、スーパ・ビデオ^Vh
のブロックが格納されている各ディスクが、各スーパ
・ビデオ^Vh についての互いに連続するwh 個のスト
ライプ・ユニットからなるブロックを有するような、w
h の倍数である。
は、wh の値はスーパ・ビデオ^Vhの各ブロック全て
にわたって同一である。各スーパ・ビデオ^Vh の長さ
^lhはwh の倍数で、その値は、スーパ・ビデオ^Vh
のブロックが格納されている各ディスクが、各スーパ
・ビデオ^Vh についての互いに連続するwh 個のスト
ライプ・ユニットからなるブロックを有するような、w
h の倍数である。
【0093】各スーパ・ビデオ^Vh の全てについて、
第1のwh 個のストライプ・ユニットはディスク50−
1に格納される。互いに連続するwh 個のストライプ・
ユニットからなる次に続くブロックは次に続くディスク
に格納される。
第1のwh 個のストライプ・ユニットはディスク50−
1に格納される。互いに連続するwh 個のストライプ・
ユニットからなる次に続くブロックは次に続くディスク
に格納される。
【0094】第1のCGストライピング手法と同様に、
第2のCGストライピング手法においては、1個のディ
スク・ヘッドを用いて同じディスクからスーパ・ビデオ
^Vh のサイズd部分のストライプ・ユニットが、或る
ラウンドrh から始めて、次に続く^Ph 個のラウンド
の時間長さの間に取り出される。
第2のCGストライピング手法においては、1個のディ
スク・ヘッドを用いて同じディスクからスーパ・ビデオ
^Vh のサイズd部分のストライプ・ユニットが、或る
ラウンドrh から始めて、次に続く^Ph 個のラウンド
の時間長さの間に取り出される。
【0095】第1のCGストライピング手法と異なり、
むしろFGストライピング手法に似て、第2のCGスト
ライピング手法においては、同じスーパ・ビデオ^Vh
ストリームについて同じディスクから互いに連続するラ
ウンドにおいてデータを取り出す作業を、wh 個のスト
ライプ・ユニットからなるブロック全体がそのディスク
から取り出されるまで継続する。
むしろFGストライピング手法に似て、第2のCGスト
ライピング手法においては、同じスーパ・ビデオ^Vh
ストリームについて同じディスクから互いに連続するラ
ウンドにおいてデータを取り出す作業を、wh 個のスト
ライプ・ユニットからなるブロック全体がそのディスク
から取り出されるまで継続する。
【0096】例えば、第1のwh 個のラウンドにおいて
ストライプ・ユニット52−1〜52−wh がディスク
50−1から取り出され、次のwh 個のラウンドにおい
てストライプ・ユニット52−1+wh 〜52−2・w
h がディスク50−2から取り出される(以下同様)。
したがって、同じタスク^Th に属する隣接するサブ・
タスク間にF個のラウンドの時間間隔が挿入されてはい
ない。
ストライプ・ユニット52−1〜52−wh がディスク
50−1から取り出され、次のwh 個のラウンドにおい
てストライプ・ユニット52−1+wh 〜52−2・w
h がディスク50−2から取り出される(以下同様)。
したがって、同じタスク^Th に属する隣接するサブ・
タスク間にF個のラウンドの時間間隔が挿入されてはい
ない。
【0097】同じタスク^Th の、互いに連続するサブ
・タスク間に時間間隔が挿入されていないので、第2の
CGストライピング手法においてビデオを周期的にスケ
ジューリングする問題は、FGストライピング手法にお
いてビデオを周期的にスケジューリングする問題に類似
する。これは、周期^Pi すなわち^P1,...,^PR及
び計算時間^Ch を有するノン・プリエンプティブなタ
スク^T1,...,^TRをスケジューリングする問題であ
る。
・タスク間に時間間隔が挿入されていないので、第2の
CGストライピング手法においてビデオを周期的にスケ
ジューリングする問題は、FGストライピング手法にお
いてビデオを周期的にスケジューリングする問題に類似
する。これは、周期^Pi すなわち^P1,...,^PR及
び計算時間^Ch を有するノン・プリエンプティブなタ
スク^T1,...,^TRをスケジューリングする問題であ
る。
【0098】第2のCGストライピング手法において
は、各タスク^Ti は、互いに連続するwh 個のストラ
イプ・ユニットを取り出す作業から構成される。すなわ
ち、サブ・タスクはwh 個存在する。計算時間^Ch は
wh 個のラウンドの時間長さに等しい。
は、各タスク^Ti は、互いに連続するwh 個のストラ
イプ・ユニットを取り出す作業から構成される。すなわ
ち、サブ・タスクはwh 個存在する。計算時間^Ch は
wh 個のラウンドの時間長さに等しい。
【0099】[スケジューリング手法]下に設けた項目
において、ビデオについてのデータを多数のプロセッサ
上で周期的に取り出すときに生じる、スケジューリング
に関する2つの基本的な問題に対するスケジューリング
手法を説明する。概していえば、スケジューリング手法
は、タスクがスケジューリング可能かどうかを定める作
業と、もしスケジューリング可能であると判断された場
合には、タスクの開始時間をスケジューリングする作業
とに関わる。
において、ビデオについてのデータを多数のプロセッサ
上で周期的に取り出すときに生じる、スケジューリング
に関する2つの基本的な問題に対するスケジューリング
手法を説明する。概していえば、スケジューリング手法
は、タスクがスケジューリング可能かどうかを定める作
業と、もしスケジューリング可能であると判断された場
合には、タスクの開始時間をスケジューリングする作業
とに関わる。
【0100】(第1のスケジューリング手法)第1のス
ケジューリング手法は、強化ペイ・パー・ビュー方式を
用いるビデオ・サーバにおいてFGストライピング手法
及び第2のCGストライピング手法を用いた際に生じる
スケジューリング問題を取り扱う。
ケジューリング手法は、強化ペイ・パー・ビュー方式を
用いるビデオ・サーバにおいてFGストライピング手法
及び第2のCGストライピング手法を用いた際に生じる
スケジューリング問題を取り扱う。
【0101】具体的には、第1のスケジューリング手法
は、p個のプロセッサ上で、周期Pi すなわちP1,...,
Pn 又は^P1,...,^PR 及び計算時間Ci(又は^
Ch)を有するノン・プリエンプティブなタスクTi す
なわちT1,...,Tn 又は^T1,...,^TR をスケジュー
リングするための有効な方法を提供するものである。
は、p個のプロセッサ上で、周期Pi すなわちP1,...,
Pn 又は^P1,...,^PR 及び計算時間Ci(又は^
Ch)を有するノン・プリエンプティブなタスクTi す
なわちT1,...,Tn 又は^T1,...,^TR をスケジュー
リングするための有効な方法を提供するものである。
【0102】尚、説明を分かりやすくするために、第1
のスケジューリング手法についての以下の記述はFGス
トライピング手法に関して行うこととするが、第1のス
ケジューリング手法は、下に特記する場合を除いては第
2のCGストライピング手法にも等しく適用することが
可能である。
のスケジューリング手法についての以下の記述はFGス
トライピング手法に関して行うこととするが、第1のス
ケジューリング手法は、下に特記する場合を除いては第
2のCGストライピング手法にも等しく適用することが
可能である。
【0103】FGストライピング手法においては、第1
のスケジューリング手法は、p個のプロセッサを有する
ビデオ・サーバが、1個のサービスリストに含まれるビ
デオのグループを処理するように作動するかどうかを定
める。そうであるためには、その1個のサービス・リス
ト上の全てのビデオがp個のプロセッサ上でスケジュー
リング可能でなければならない。これは、m個のサービ
ス・リストがある第2のCGストライピング手法の場合
と異なる点である。
のスケジューリング手法は、p個のプロセッサを有する
ビデオ・サーバが、1個のサービスリストに含まれるビ
デオのグループを処理するように作動するかどうかを定
める。そうであるためには、その1個のサービス・リス
ト上の全てのビデオがp個のプロセッサ上でスケジュー
リング可能でなければならない。これは、m個のサービ
ス・リストがある第2のCGストライピング手法の場合
と異なる点である。
【0104】第2のCGストライピング手法に適用した
場合には、第1のスケジューリング手法は、p個のプロ
セッサを有するビデオ・サーバが、(p/m)個のプロ
セッサ上で第1のディスクに属するサービス・リストに
含まれるビデオを処理するように作動するかどうかを定
める。したがって、第2のCGストライピング手法にお
いては、第1のスケジューリング手法は、第1のディス
クに属するサービス・リスト上のビデオが、(p/m)
個のプロセッサ上でスケジューリング可能かどうかを定
める。
場合には、第1のスケジューリング手法は、p個のプロ
セッサを有するビデオ・サーバが、(p/m)個のプロ
セッサ上で第1のディスクに属するサービス・リストに
含まれるビデオを処理するように作動するかどうかを定
める。したがって、第2のCGストライピング手法にお
いては、第1のスケジューリング手法は、第1のディス
クに属するサービス・リスト上のビデオが、(p/m)
個のプロセッサ上でスケジューリング可能かどうかを定
める。
【0105】第1のスケジューリング手法は、FGスト
ライピング手法及び第2のCGストライピング手法を用
いる際に生じるスケジューリング問題を取り扱うのに、
3種類の手順を利用する。
ライピング手法及び第2のCGストライピング手法を用
いる際に生じるスケジューリング問題を取り扱うのに、
3種類の手順を利用する。
【0106】これら3種類のうちの第1の手順(「手順
1」と称する)では、1個のタスク・グループ(Gで表
す)を構成するタスクが、1個未満のプロセッサ上でス
ケジューリングすることが可能でないかどうかによって
G1とG2との2個のタスク・サブグループ(サブグル
ープ)に分割される。ここに、もし1個以上のタスクが
同じプロセッサ上でスケジューリング可能な場合に、そ
のタスクは1個未満のプロセッサ上でスケジューリング
可能であると定義する。
1」と称する)では、1個のタスク・グループ(Gで表
す)を構成するタスクが、1個未満のプロセッサ上でス
ケジューリングすることが可能でないかどうかによって
G1とG2との2個のタスク・サブグループ(サブグル
ープ)に分割される。ここに、もし1個以上のタスクが
同じプロセッサ上でスケジューリング可能な場合に、そ
のタスクは1個未満のプロセッサ上でスケジューリング
可能であると定義する。
【0107】「手順1」は次に、サブグループG1及び
G2の両方を別個にスケジューリングすることを試み
る。1個未満のプロセッサ上でスケジューリングするこ
とが可能でないサブグループをG1で表すと、このサブ
グループG1については、「手順1」が、p’個のプロ
セッサ上でタスクをスケジューリングする。尚、p=
p’+p”。ここに、pはそのビデオ・サーバ内のプロ
セッサの個数である。
G2の両方を別個にスケジューリングすることを試み
る。1個未満のプロセッサ上でスケジューリングするこ
とが可能でないサブグループをG1で表すと、このサブ
グループG1については、「手順1」が、p’個のプロ
セッサ上でタスクをスケジューリングする。尚、p=
p’+p”。ここに、pはそのビデオ・サーバ内のプロ
セッサの個数である。
【0108】1個未満のプロセッサ上でスケジューリン
グすることが可能なサブグループをG2で表すと、この
サブグループG2については、「手順1」が、上記3種
類のうちの第2の手順(「分割手順」と称する)を呼び
出し、残りのp”個のプロセッサの各々について1個の
サブセットG2−yが存在するようにサブグループG2
を更にサブセットG2−yに分割させる。
グすることが可能なサブグループをG2で表すと、この
サブグループG2については、「手順1」が、上記3種
類のうちの第2の手順(「分割手順」と称する)を呼び
出し、残りのp”個のプロセッサの各々について1個の
サブセットG2−yが存在するようにサブグループG2
を更にサブセットG2−yに分割させる。
【0109】次に「手順1」は、各サブセットG2−y
が1個のプロセッサ上でスケジューリング可能であるか
どうかの第1回の判断を行う。もしサブセットG2−y
が1個のプロセッサ上でスケジューリング可能である場
合、「手順1」はサブセットG2−y内のタスクのスケ
ジューリングを行う。
が1個のプロセッサ上でスケジューリング可能であるか
どうかの第1回の判断を行う。もしサブセットG2−y
が1個のプロセッサ上でスケジューリング可能である場
合、「手順1」はサブセットG2−y内のタスクのスケ
ジューリングを行う。
【0110】そうでない場合には、「手順1」は、第3
の手順(「タスク・スケジューリング手順1」(又は簡
単に、「TS手順1」)と称する)を呼び出し、第1回
の判断でスケジューリング可能でないと判断された、そ
のサブセットG2−yのスケジューリング可能性につい
て第2回の判断を行わせる。
の手順(「タスク・スケジューリング手順1」(又は簡
単に、「TS手順1」)と称する)を呼び出し、第1回
の判断でスケジューリング可能でないと判断された、そ
のサブセットG2−yのスケジューリング可能性につい
て第2回の判断を行わせる。
【0111】もし「TS手順1」が、サブセットがスケ
ジューリング可能でないと判断し、且つそのサブセット
が更に分割可能であると判断した場合、「TS手順1」
は「分割手順」を呼び出し、そのサブセットG2−yを
更にサブ・サブセットSv に分割させる。
ジューリング可能でないと判断し、且つそのサブセット
が更に分割可能であると判断した場合、「TS手順1」
は「分割手順」を呼び出し、そのサブセットG2−yを
更にサブ・サブセットSv に分割させる。
【0112】サブセットG2−yがサブ・サブセットに
分割された後、「TS手順1」が自身を呼び出し、分割
されたサブセットG2−yに属する各サブ・サブセット
Svの全てに対しスケジューリング可能性についての上
記第2回の判断作業を再実行する。この手法は、反復分
割として知られている。
分割された後、「TS手順1」が自身を呼び出し、分割
されたサブセットG2−yに属する各サブ・サブセット
Svの全てに対しスケジューリング可能性についての上
記第2回の判断作業を再実行する。この手法は、反復分
割として知られている。
【0113】この、タスクのサブグループ、サブセッ
ト、サブ・サブセット等の反復分割は、タスクのサブグ
ループ、サブセット、サブ・サブセット等がスケジュー
リング可能であると、又はもはや再分割可能でないと、
第1のスケジューリング手法が判断するまで、第1のス
ケジューリング手法によって継続される。
ト、サブ・サブセット等の反復分割は、タスクのサブグ
ループ、サブセット、サブ・サブセット等がスケジュー
リング可能であると、又はもはや再分割可能でないと、
第1のスケジューリング手法が判断するまで、第1のス
ケジューリング手法によって継続される。
【0114】図6〜図10に、FGストライピング手法
を用いたビデオ・サーバについてのサービスリストに含
まれるビデオ・グループのスケジューリング、すなわち
周期P1,...,PN 及び計算時間C1,...,CN を有するノ
ン・プリエンプティブなタスクT1,...,TN のスケジュ
ーリング、を行うための「手順1」の例示流れ図を示
す。
を用いたビデオ・サーバについてのサービスリストに含
まれるビデオ・グループのスケジューリング、すなわち
周期P1,...,PN 及び計算時間C1,...,CN を有するノ
ン・プリエンプティブなタスクT1,...,TN のスケジュ
ーリング、を行うための「手順1」の例示流れ図を示
す。
【0115】図6のステップ600において、グループ
G内のタスクTi (i=1,...,N)とpの値とに対応す
るデータが、ビデオ・サーバのRAMバッファメモリ内
に読み込まれる。グループGに対応するデータには、タ
スクTi、 周期Pi、 及び計算時間Ci、 すなわち{T
i,Pi,Ci} が含まれる。尚、第2のCGストライピン
グ手法においては、RAMバッファメモリ内に読み込ま
れるpの値はp/mとなる。
G内のタスクTi (i=1,...,N)とpの値とに対応す
るデータが、ビデオ・サーバのRAMバッファメモリ内
に読み込まれる。グループGに対応するデータには、タ
スクTi、 周期Pi、 及び計算時間Ci、 すなわち{T
i,Pi,Ci} が含まれる。尚、第2のCGストライピン
グ手法においては、RAMバッファメモリ内に読み込ま
れるpの値はp/mとなる。
【0116】ステップ605において、タスクTi が、
それぞれの対応する周期Pi 及び計算時間Ci に基づい
てサブグループG1及びG2に分類される。自身の周期
Piより大きいか等しい値の計算時間Ci を有するタス
クTi は、1個未満のプロセッサ上でスケジューリング
可能でない。
それぞれの対応する周期Pi 及び計算時間Ci に基づい
てサブグループG1及びG2に分類される。自身の周期
Piより大きいか等しい値の計算時間Ci を有するタス
クTi は、1個未満のプロセッサ上でスケジューリング
可能でない。
【0117】その理由は、これらのタスクが1個のプロ
セッサ全体を独占するか又は自身と競合する、すなわち
同時に2個以上のタスク・ストリームがプロセッサによ
る取り扱いを要求するからである。これらのタスクはサ
ブグループG1に入れられ、タスクTx と表す。すなわ
ちTx ∈G1である。
セッサ全体を独占するか又は自身と競合する、すなわち
同時に2個以上のタスク・ストリームがプロセッサによ
る取り扱いを要求するからである。これらのタスクはサ
ブグループG1に入れられ、タスクTx と表す。すなわ
ちTx ∈G1である。
【0118】自身の周期Pi より小さい値の計算時間C
i を有するタスクTi は、1個未満のプロセッサ上でス
ケジューリング可能である。これらのタスクはサブグル
ープG2に入れられ、タスクTy と表す。すなわちTy
∈G2である。
i を有するタスクTi は、1個未満のプロセッサ上でス
ケジューリング可能である。これらのタスクはサブグル
ープG2に入れられ、タスクTy と表す。すなわちTy
∈G2である。
【0119】「例1」を用いて第1のスケジューリング
手法を説明する。次に列記する値pとサービスリスト内
のタスクTi とに対応するデータがステップ600にお
いてRAMバッファメモリ内に読み込まれる。すなわ
ち、p=6、{T1,4,8}、{T2,4,1}、 {T3,
4,1}、 {T4,3,7}、 {T5,6,1}、 及び{T
6,6,1} である。
手法を説明する。次に列記する値pとサービスリスト内
のタスクTi とに対応するデータがステップ600にお
いてRAMバッファメモリ内に読み込まれる。すなわ
ち、p=6、{T1,4,8}、{T2,4,1}、 {T3,
4,1}、 {T4,3,7}、 {T5,6,1}、 及び{T
6,6,1} である。
【0120】ステップ605において、タスクT1 及び
T4 はサブグループG1に属するものとして分類され
る。すなわちG1={T1,T4} である。又タスク
T2、T3、T5、 及びT6 はサブグループG2に属する
ものとして分類される。すなわちG2={T2,T3,
T5,T6} である。
T4 はサブグループG1に属するものとして分類され
る。すなわちG1={T1,T4} である。又タスク
T2、T3、T5、 及びT6 はサブグループG2に属する
ものとして分類される。すなわちG2={T2,T3,
T5,T6} である。
【0121】ステップ610〜636において、「手順
1」が、p’個のプロセッサ上でサブグループG1に属
するタスクTx のスケジューリングを行う。ここに、
p’はタスクTx ∈G1の全てを取り扱うのに要するプ
ロセッサの個数である。ステップ610において、p’
の値は初期値としてゼロに設定される。
1」が、p’個のプロセッサ上でサブグループG1に属
するタスクTx のスケジューリングを行う。ここに、
p’はタスクTx ∈G1の全てを取り扱うのに要するプ
ロセッサの個数である。ステップ610において、p’
の値は初期値としてゼロに設定される。
【0122】ステップ620において、タスクTx ∈G
1の各々全てについてループ620が開始される。具体
的には、ステップ625において、ループ620内の現
タスクTx によって必要とされるプロセッサの個数px
を、ループ620が次式を用いて定める。
1の各々全てについてループ620が開始される。具体
的には、ステップ625において、ループ620内の現
タスクTx によって必要とされるプロセッサの個数px
を、ループ620が次式を用いて定める。
【数8】
【0123】ループ620は次にステップ630におい
て、現在のpx の値をp’に加えて、サブグループG1
によって必要とされるプロセッサの総数を累進的に定
め、ステップ635において、現タスクTx が予め定め
られた時間、望ましくは時間ゼロ(ラウンドで表す)す
なわちSTx =0に開始するように現タスクTx をスケ
ジューリングする。ループ620は、各タスクTx ∈G
1の全てについてプロセッサ要件及び開始時間が定めら
れたときに終了する。
て、現在のpx の値をp’に加えて、サブグループG1
によって必要とされるプロセッサの総数を累進的に定
め、ステップ635において、現タスクTx が予め定め
られた時間、望ましくは時間ゼロ(ラウンドで表す)す
なわちSTx =0に開始するように現タスクTx をスケ
ジューリングする。ループ620は、各タスクTx ∈G
1の全てについてプロセッサ要件及び開始時間が定めら
れたときに終了する。
【0124】ループ620の各ステップを「例1」に適
用して、次のことが定められた。すなわちタスクT1及
びT4がそれぞれ2個及び3個のプロセッサ必要とし、
時間ゼロにおいて開始するようにスケジューリングされ
た。したがって、サブグループG1に対して5個のプロ
セッサが用いられる。すなわち、p’=5である。
用して、次のことが定められた。すなわちタスクT1及
びT4がそれぞれ2個及び3個のプロセッサ必要とし、
時間ゼロにおいて開始するようにスケジューリングされ
た。したがって、サブグループG1に対して5個のプロ
セッサが用いられる。すなわち、p’=5である。
【0125】各タスクTx の全てについてループ620
が完了するか又はもしサブグループG1に属するタスク
Tx がない場合、「手順1」はステップ645(図7)
に進み、ここでタスクTy ∈G2をスケジューリングす
るのに利用可能なプロセッサの個数p”を定める。
が完了するか又はもしサブグループG1に属するタスク
Tx がない場合、「手順1」はステップ645(図7)
に進み、ここでタスクTy ∈G2をスケジューリングす
るのに利用可能なプロセッサの個数p”を定める。
【0126】ステップ646において、もしp”がゼロ
より小さい場合、タスクTx ∈G1を取り扱うのに必要
なプロセッサの総数は不十分で、「手順1」はステップ
647に進み、ここで「スケジューリング不可能」のメ
ッセージを返し、次にステップ685(図10)でプロ
セスを終結する。
より小さい場合、タスクTx ∈G1を取り扱うのに必要
なプロセッサの総数は不十分で、「手順1」はステップ
647に進み、ここで「スケジューリング不可能」のメ
ッセージを返し、次にステップ685(図10)でプロ
セスを終結する。
【0127】ステップ646において、もしp”がゼロ
より小さくない場合「手順1」はステップ648に進
み、ここでサブグループG2に属するタスクTy がある
かどうかが定められる。もしない場合「手順1」はステ
ップ648aに進み、ここでステップ685に進むよう
に命令され、ステップ685でプロセスを終結する。
より小さくない場合「手順1」はステップ648に進
み、ここでサブグループG2に属するタスクTy がある
かどうかが定められる。もしない場合「手順1」はステ
ップ648aに進み、ここでステップ685に進むよう
に命令され、ステップ685でプロセスを終結する。
【0128】ステップ648において、もしサブグルー
プG2に属するタスクTy がある場合には「手順1」は
ステップ648bに進み、ここでタスクTy ∈G2を取
り扱うために利用可能なプロセッサがあるかどうかが点
検される。もしない場合(p”=0)「手順1」はステ
ップ648cに進み、ここで「スケジューリング不可
能」のメッセージを返し、次にステップ685へ進んで
プロセスを終結する。
プG2に属するタスクTy がある場合には「手順1」は
ステップ648bに進み、ここでタスクTy ∈G2を取
り扱うために利用可能なプロセッサがあるかどうかが点
検される。もしない場合(p”=0)「手順1」はステ
ップ648cに進み、ここで「スケジューリング不可
能」のメッセージを返し、次にステップ685へ進んで
プロセスを終結する。
【0129】ステップ648bにおいて、もしタスクT
y ∈G2を取り扱うために利用可能なプロセッサがある
場合には、「手順1」は、利用可能なプロセッサの各々
に対して1個のサブセットG2−yが存在するようにタ
スクTy ∈G2をサブセットG2−yに分割する作業に
進む(ここにy=1,...,p”)。
y ∈G2を取り扱うために利用可能なプロセッサがある
場合には、「手順1」は、利用可能なプロセッサの各々
に対して1個のサブセットG2−yが存在するようにタ
スクTy ∈G2をサブセットG2−yに分割する作業に
進む(ここにy=1,...,p”)。
【0130】図8に示すように、ステップ649におい
て「手順1」は、タスクTy について利用可能なプロセ
ッサの個数を点検する。もしp”が1の場合、全てのタ
スクTy は、その利用可能な1個のプロセッサ上でスケ
ジューリングする必要がある。そして「手順1」はステ
ップ650に進み、ここでサブセットG2−1がサブグ
ループG2に等しく設定されて、「手順1」はステップ
660に進む。
て「手順1」は、タスクTy について利用可能なプロセ
ッサの個数を点検する。もしp”が1の場合、全てのタ
スクTy は、その利用可能な1個のプロセッサ上でスケ
ジューリングする必要がある。そして「手順1」はステ
ップ650に進み、ここでサブセットG2−1がサブグ
ループG2に等しく設定されて、「手順1」はステップ
660に進む。
【0131】もしp”が1でない場合には、「手順1」
はステップ649からステップ651及び655に進
み、ここで「分割手順」が呼び出されて、サブグループ
G2をp”個の、互いに共通な部分のない(以下、素、
と称する)サブセットG2−yに反復分割する。「分割
手順」については下に詳しく述べる。
はステップ649からステップ651及び655に進
み、ここで「分割手順」が呼び出されて、サブグループ
G2をp”個の、互いに共通な部分のない(以下、素、
と称する)サブセットG2−yに反復分割する。「分割
手順」については下に詳しく述べる。
【0132】「例1」において、サブグループG2につ
いて利用可能なプロセッサの個数は1個である。したが
って、ステップ650において、サブセットG2−1が
サブグループG2、すなわち{T2,T3,T5,T6}に等
しくセットされる。サブセットG2−y内のタスクをT
dと表す(ここにd=1,...,n)。すなわち、Td ∈G
2−yである。
いて利用可能なプロセッサの個数は1個である。したが
って、ステップ650において、サブセットG2−1が
サブグループG2、すなわち{T2,T3,T5,T6}に等
しくセットされる。サブセットG2−y内のタスクをT
dと表す(ここにd=1,...,n)。すなわち、Td ∈G
2−yである。
【0133】ステップ660において、各サブセットG
2−y全てについてループ660が開始され、スケジュ
ーリング可能性、すなわち各サブセットG2−yが1個
のプロセッサ上でスケジューリング可能かどうか、の第
1回の判断がなされる。ステップ670(図9)におい
て、次の定理(「定理1」と称する)が「手順1」内で
適用される。
2−y全てについてループ660が開始され、スケジュ
ーリング可能性、すなわち各サブセットG2−yが1個
のプロセッサ上でスケジューリング可能かどうか、の第
1回の判断がなされる。ステップ670(図9)におい
て、次の定理(「定理1」と称する)が「手順1」内で
適用される。
【0134】すなわち「もしC1+...+Cn≦gcd
(P1+...+Pn)である場合、タスクT1,...,Tn は
単一のプロセッサ上でスケジューリングすることが可能
である。ここに、gcd(P1+...+Pn) は周期Pd
の最大公約数であり、各タスクT1,...,Tn についての
開始時間ST1,...,STn は、前にスケジューリングさ
れたタスクTd の計算期間Td を加算すること、すなわ
ち次式の値を求めることによって定められるという定理
である。
(P1+...+Pn)である場合、タスクT1,...,Tn は
単一のプロセッサ上でスケジューリングすることが可能
である。ここに、gcd(P1+...+Pn) は周期Pd
の最大公約数であり、各タスクT1,...,Tn についての
開始時間ST1,...,STn は、前にスケジューリングさ
れたタスクTd の計算期間Td を加算すること、すなわ
ち次式の値を求めることによって定められるという定理
である。
【0135】
【数9】 同式において、0≦d’<dである。尚、d=1の場
合、スケジューリングされた最初のタスクT1 は、時間
ゼロにおいて開始される。
合、スケジューリングされた最初のタスクT1 は、時間
ゼロにおいて開始される。
【0136】もし或るサブセットG2−yが「定理1」
を満足する場合、そのサブセットG2−y内の各タスク
Td は次式で表す開始時間においてスケジューリングす
ることが可能である。同式において、Qは任意の正の整
数であり、各Td は、最大公約数(gcd)に等しい各
時間長さ(gcd時間長さ、とも称する)内に1個以上
のラウンドをその専用として留保する。
を満足する場合、そのサブセットG2−y内の各タスク
Td は次式で表す開始時間においてスケジューリングす
ることが可能である。同式において、Qは任意の正の整
数であり、各Td は、最大公約数(gcd)に等しい各
時間長さ(gcd時間長さ、とも称する)内に1個以上
のラウンドをその専用として留保する。
【数10】
【0137】尚、「定理1」を満足させなくても、サブ
セットG2−yが1個のプロセッサ上でスケジューリン
グすることができないと確定されるわけではない。
セットG2−yが1個のプロセッサ上でスケジューリン
グすることができないと確定されるわけではない。
【0138】図11は、「定理1」の有効性を証明する
例示説明図である。ここで、周期P8 =3、P9 =3、
P10=6と計算時間C8 =C9 =C10=1とを有するタ
スクT8、 T9、 T10を考える。gcd(3,3,6)は
3、計算時間の和は3、そして「定理1」が満足され
る。STd を表す次式を用いて、タスクT8、 T9、 T
10の新たなストリームが、それぞれラウンド0、1、及
び2において開始するようにスケジューリングされる。
例示説明図である。ここで、周期P8 =3、P9 =3、
P10=6と計算時間C8 =C9 =C10=1とを有するタ
スクT8、 T9、 T10を考える。gcd(3,3,6)は
3、計算時間の和は3、そして「定理1」が満足され
る。STd を表す次式を用いて、タスクT8、 T9、 T
10の新たなストリームが、それぞれラウンド0、1、及
び2において開始するようにスケジューリングされる。
【数11】
【0139】図11に示すように単一のプロセッサ上で
タスクT8、T9、T10を取り扱うためのスケジュールが生
成される。具体的には各gcd時間長さ内で第1、第2
及び第3のラウンドがタスクT8、T9、T10による専用と
してそれぞれ留保される。
タスクT8、T9、T10を取り扱うためのスケジュールが生
成される。具体的には各gcd時間長さ内で第1、第2
及び第3のラウンドがタスクT8、T9、T10による専用と
してそれぞれ留保される。
【0140】すなわちラウンド0、3、6、9、12及
び15がタスクT8 に対応する新しいストリームの開始
用に留保され、ラウンド1、4、7、10、13及び1
6がタスクT9 に対応する新しいストリームの開始用に
留保され、ラウンド2、8及び14がタスクT10に対応
する新しいストリームの開始用に留保される。
び15がタスクT8 に対応する新しいストリームの開始
用に留保され、ラウンド1、4、7、10、13及び1
6がタスクT9 に対応する新しいストリームの開始用に
留保され、ラウンド2、8及び14がタスクT10に対応
する新しいストリームの開始用に留保される。
【0141】尚、ラウンド5、11、及び17も、これ
らのラウンドにおいて新しいストリームは開始されない
けれども、タスクT10による専用として対応する新しい
ストリームの開始用に留保される。したがって、各gc
d時間長さ内にラウンドを留保することによって、スケ
ジューリング競合が防止される。
らのラウンドにおいて新しいストリームは開始されない
けれども、タスクT10による専用として対応する新しい
ストリームの開始用に留保される。したがって、各gc
d時間長さ内にラウンドを留保することによって、スケ
ジューリング競合が防止される。
【0142】「例1」において、計算時間の和は4で、
最大公約数は2である。このため、「定理1」は満足さ
れず、「手順1」はステップ676(図10)へ進む。
最大公約数は2である。このため、「定理1」は満足さ
れず、「手順1」はステップ676(図10)へ進む。
【0143】図9に示すように、もしループ660にお
いて「定理1」が現サブセットG2−yについて満足さ
れる場合、「手順1」はステップ671〜675に進
み、ここで次にステップ681(図10)へ進む前に、
ループ672が、次式を用いて各Td ∈G2−yについ
て開始時間を定める。
いて「定理1」が現サブセットG2−yについて満足さ
れる場合、「手順1」はステップ671〜675に進
み、ここで次にステップ681(図10)へ進む前に、
ループ672が、次式を用いて各Td ∈G2−yについ
て開始時間を定める。
【数12】
【0144】具体的には、ループ672が、前のタスク
の開始時間を加算してループ672における現タスクに
ついての開始時間を定める。ループ672の処理が完了
すると、「手順1」はステップ681に進み、ここでル
ープ660が完了かどうかを定める。もし「定理1」が
現サブセットG2−yについて満足されない場合には、
「手順1」はステップ676及び680に進み、「手順
1」を満足させなかったサブセットG2−yについてス
ケジューリングの可能性に関する第2回の判断を行う段
取りとなる。
の開始時間を加算してループ672における現タスクに
ついての開始時間を定める。ループ672の処理が完了
すると、「手順1」はステップ681に進み、ここでル
ープ660が完了かどうかを定める。もし「定理1」が
現サブセットG2−yについて満足されない場合には、
「手順1」はステップ676及び680に進み、「手順
1」を満足させなかったサブセットG2−yについてス
ケジューリングの可能性に関する第2回の判断を行う段
取りとなる。
【0145】まず図10に示すようにステップ676に
おいて、「手順1」は、2つの条件「(1)CG2-yが
Cd∈G2−yより大きいか又は等しい、すなわちC
G2-y≧Cd 及び(2)CG2-yが各Pd に、均等に分割さ
れる、すなわち(CG2-y modPd)=0」 を満足さ
せるCG2-yの最小値を求める。もしこれらの条件が満足
されない場合、「手順1」はステップ677において、
「スケジューリング不可能」のメッセージを返して、プ
ロセス終結する。
おいて、「手順1」は、2つの条件「(1)CG2-yが
Cd∈G2−yより大きいか又は等しい、すなわちC
G2-y≧Cd 及び(2)CG2-yが各Pd に、均等に分割さ
れる、すなわち(CG2-y modPd)=0」 を満足さ
せるCG2-yの最小値を求める。もしこれらの条件が満足
されない場合、「手順1」はステップ677において、
「スケジューリング不可能」のメッセージを返して、プ
ロセス終結する。
【0146】もしステップ676において、これらの条
件が満足される場合には、「手順1」はステップ680
に進み、ここで「タスク・スケジューリング(TS)手
順1」が呼び出されて、「定理1」を満足させられなか
ったサブセットG2−yについてスケジューリングの可
能性に関する第2回の判断を行う。
件が満足される場合には、「手順1」はステップ680
に進み、ここで「タスク・スケジューリング(TS)手
順1」が呼び出されて、「定理1」を満足させられなか
ったサブセットG2−yについてスケジューリングの可
能性に関する第2回の判断を行う。
【0147】ステップ676及び680の手順を「例
1」に適用すると、CG2-yの最小値は1に等しく設定さ
れ、サブセットG2−1についてスケジューリングの可
能性に関する第2回の判断を行うために「タスク・スケ
ジューリング手順1」が呼び出される。
1」に適用すると、CG2-yの最小値は1に等しく設定さ
れ、サブセットG2−1についてスケジューリングの可
能性に関する第2回の判断を行うために「タスク・スケ
ジューリング手順1」が呼び出される。
【0148】図12〜図15に、「タスク・スケジュー
リング手順1」(「TS手順1」)の例示流れ図を示
す。図12に示すように、ステップ800において「T
S手順1」が、データをサブグループG3内のタスクT
e 及びCG3として読み取る。すなわち、「手順1」から
のタスクTd ∈G2−y及びCG2-yが、それぞれ「TS
手順1」によって、タスクTe ∈G3及びCG3として読
み取られる。
リング手順1」(「TS手順1」)の例示流れ図を示
す。図12に示すように、ステップ800において「T
S手順1」が、データをサブグループG3内のタスクT
e 及びCG3として読み取る。すなわち、「手順1」から
のタスクTd ∈G2−y及びCG2-yが、それぞれ「TS
手順1」によって、タスクTe ∈G3及びCG3として読
み取られる。
【0149】尚、サブセットG2−yについての「手順
1」から「タスク・スケジューリング(TS)手順1」
へのこの呼び出しによって呼び出された「TS手順1」
を、第1回呼び出しの「TS手順1」と称する。
1」から「タスク・スケジューリング(TS)手順1」
へのこの呼び出しによって呼び出された「TS手順1」
を、第1回呼び出しの「TS手順1」と称する。
【0150】ステップ805(図12)〜ステップ82
4(図13)において「TS手順1」が、タスクTe を
サイズCG3のg個の貯蔵箇所(ビン)B−xに詰め分け
る(パッキングする)ことによって、スケジューリング
可能性の第2回判断を行う。ここに、計算時間Ce に応
じてx=1,...,g である。ステップ805において、
gの値が式g=(gcd(P1,...,Pn))/CG3を用い
て定められ、ステップ810において、タスクTe がビ
ンB−xにパッキングされる。
4(図13)において「TS手順1」が、タスクTe を
サイズCG3のg個の貯蔵箇所(ビン)B−xに詰め分け
る(パッキングする)ことによって、スケジューリング
可能性の第2回判断を行う。ここに、計算時間Ce に応
じてx=1,...,g である。ステップ805において、
gの値が式g=(gcd(P1,...,Pn))/CG3を用い
て定められ、ステップ810において、タスクTe がビ
ンB−xにパッキングされる。
【0151】ステップ810において望ましくは、タス
クTe が計算時間Ce に応じた降順に並べられ、次いで
並べ順に1度に1タスクづつ1個のビンB−xに割り当
てられる。この場合のビンは、そのビン内の、前に割り
当てられたタスクTe の計算時間Ce の和が最小になる
ようなビンである。対(x,a)によって特定のタスク
Te がパッキングされた後のそのタスクTe の位置を表
示することとする。ここに、xはビン番号、aはタスク
Te のビンx底部からの距離を計算時間で表した値であ
る。
クTe が計算時間Ce に応じた降順に並べられ、次いで
並べ順に1度に1タスクづつ1個のビンB−xに割り当
てられる。この場合のビンは、そのビン内の、前に割り
当てられたタスクTe の計算時間Ce の和が最小になる
ようなビンである。対(x,a)によって特定のタスク
Te がパッキングされた後のそのタスクTe の位置を表
示することとする。ここに、xはビン番号、aはタスク
Te のビンx底部からの距離を計算時間で表した値であ
る。
【0152】ステップ805〜810を「例1」に適用
すると、値gは2に設定され、ビンB−1は底部から頂
部までタスクT2 及びT5 を収納し、ビンB−2は底部
から頂部までタスクT3 及びT6 を収納することにな
る。
すると、値gは2に設定され、ビンB−1は底部から頂
部までタスクT2 及びT5 を収納し、ビンB−2は底部
から頂部までタスクT3 及びT6 を収納することにな
る。
【0153】ステップ820において、各ビンが点検さ
れてビンB−xに割り当てられたタスクTe についての
計算時間Ce の和がCG3の値より小さいか又は等しいか
が定められる。もしステップ820の条件が各ビンB−
xについて満足される場合、サブグループG3に属する
タスクTe は互いに競合せず、スケジューリングが可能
である。その場合、「TS手順1」は図13のステップ
821〜824に進み、ここでループ821における各
タスクTe ∈G3について開始時間STe が定められ
る。
れてビンB−xに割り当てられたタスクTe についての
計算時間Ce の和がCG3の値より小さいか又は等しいか
が定められる。もしステップ820の条件が各ビンB−
xについて満足される場合、サブグループG3に属する
タスクTe は互いに競合せず、スケジューリングが可能
である。その場合、「TS手順1」は図13のステップ
821〜824に進み、ここでループ821における各
タスクTe ∈G3について開始時間STe が定められ
る。
【0154】具体的にはステップ822において、ルー
プ821における現タスクTe について開始時間STe
が、式STe =(CG3・x)+aを用いてその対(x,
a)に応じて計算される。各タスクTe について開始時
間STe が定められると、これらの開始時間はステップ
824において呼び出し側プログラムに返される。尚呼
び出し側プログラムは、後に述べるように「手順1」、
又は前のレベルの呼び出し点の「タスク・スケジューリ
ング手順1」のいずれかである。
プ821における現タスクTe について開始時間STe
が、式STe =(CG3・x)+aを用いてその対(x,
a)に応じて計算される。各タスクTe について開始時
間STe が定められると、これらの開始時間はステップ
824において呼び出し側プログラムに返される。尚呼
び出し側プログラムは、後に述べるように「手順1」、
又は前のレベルの呼び出し点の「タスク・スケジューリ
ング手順1」のいずれかである。
【0155】ステップ820の条件が満足されない場合
には、タスクTe ∈G3について、後のレベルの「TS
手順1」が呼び出される。その場合には「TS手順1」
が、サブグループG3のサブセットSv (v=1,...,
g)への分割を反復して試み、それから各サブセットS
v について「TS手順1」を呼び出すことによって、各
サブセットSv 内のタスクのスケジューリングを試み
る。
には、タスクTe ∈G3について、後のレベルの「TS
手順1」が呼び出される。その場合には「TS手順1」
が、サブグループG3のサブセットSv (v=1,...,
g)への分割を反復して試み、それから各サブセットS
v について「TS手順1」を呼び出すことによって、各
サブセットSv 内のタスクのスケジューリングを試み
る。
【0156】ステップ820の条件を満足させないタス
クTe ∈G3のグループについては、「TS手順2」が
ステップ825(図13)に進み、ここでサブグループ
G3の更なる反復分割が可能かどうかが定められる。も
しステップ825においてgの値が1の場合、サブグル
ープG3を更に反復分割することはできない。そしてス
テップ826において呼び出し側プログラムに対して
「スケジューリング不可能」のメッセージが返される。
クTe ∈G3のグループについては、「TS手順2」が
ステップ825(図13)に進み、ここでサブグループ
G3の更なる反復分割が可能かどうかが定められる。も
しステップ825においてgの値が1の場合、サブグル
ープG3を更に反復分割することはできない。そしてス
テップ826において呼び出し側プログラムに対して
「スケジューリング不可能」のメッセージが返される。
【0157】もしステップ825においてgの値が1で
ない場合には、図14のステップ830において、サブ
グループG3内のデータがサブグループ、 ̄G3に、す
なわち{Te,Pe,Ce} から{ ̄Te, ̄Pe, ̄Ce} に
変形される。ここに、 { ̄Te, ̄Pe, ̄Ce}={Te,
Pe/g,Ce}である。そしてステップ835において、
「分割手順」が呼び出されてサブグループ ̄G3をサブ
セットSv に反復分割する(尚、 ̄Te は、本来Te の
直上に ̄を配置する表記を用いるところを、便宜上これ
に代わる簡易表記として用いる(以下同様))。
ない場合には、図14のステップ830において、サブ
グループG3内のデータがサブグループ、 ̄G3に、す
なわち{Te,Pe,Ce} から{ ̄Te, ̄Pe, ̄Ce} に
変形される。ここに、 { ̄Te, ̄Pe, ̄Ce}={Te,
Pe/g,Ce}である。そしてステップ835において、
「分割手順」が呼び出されてサブグループ ̄G3をサブ
セットSv に反復分割する(尚、 ̄Te は、本来Te の
直上に ̄を配置する表記を用いるところを、便宜上これ
に代わる簡易表記として用いる(以下同様))。
【0158】「例1」において、ビンB−1に対する計
算時間C2 及びC5 の和、並びにビンB−2に対する計
算時間C3 及びC6 の和はいずれも2で、値1のCG3よ
り大きい。すなわち、ステップ820(図12)の条件
は満足されない。したがって、「例1」のタスクTe に
対応するデータは、分割される前にステップ830にお
いて変形される。変形されたデータは、{ ̄T2,4/2,
1}、{ ̄T3,4/2,1}、{ ̄T5,6/2,1}及び{ ̄T
6,6/2,1}となる。
算時間C2 及びC5 の和、並びにビンB−2に対する計
算時間C3 及びC6 の和はいずれも2で、値1のCG3よ
り大きい。すなわち、ステップ820(図12)の条件
は満足されない。したがって、「例1」のタスクTe に
対応するデータは、分割される前にステップ830にお
いて変形される。変形されたデータは、{ ̄T2,4/2,
1}、{ ̄T3,4/2,1}、{ ̄T5,6/2,1}及び{ ̄T
6,6/2,1}となる。
【0159】「分割手順」の呼び出しから戻ると、「T
S手順1」はステップ840及び845において、後の
レベルで自身を呼び出して、各サブセットSv のスケジ
ューリングを試みる。各サブセットSv についての「T
S手順1」の自身に対する呼び出しからなるこの第1の
呼び出しグループを、第2レベルの「TS手順1」呼び
出し、と称する。尚、第2レベルの「TS手順1」呼び
出しにおいては、タスク ̄Te∈Svに対応するデータ
が、後のレベルの呼び出しで呼び出された「TS手順
1」によりTe ∈G3として読み取られる。
S手順1」はステップ840及び845において、後の
レベルで自身を呼び出して、各サブセットSv のスケジ
ューリングを試みる。各サブセットSv についての「T
S手順1」の自身に対する呼び出しからなるこの第1の
呼び出しグループを、第2レベルの「TS手順1」呼び
出し、と称する。尚、第2レベルの「TS手順1」呼び
出しにおいては、タスク ̄Te∈Svに対応するデータ
が、後のレベルの呼び出しで呼び出された「TS手順
1」によりTe ∈G3として読み取られる。
【0160】「スケジューリング不可能」のメッセージ
又は開始時間が前のレベルの呼び出しで呼び出された
「TS手順1」に返されるまでは、第2レベルの「TS
手順1」呼び出しが、第3レベルの「TS手順1」呼び
出しに至り、第3レベルの「TS手順1」呼び出しが、
第4レベルの「TS手順1」呼び出しに至る等、次のレ
ベルの「TS手順1」呼び出しが順次発動される。
又は開始時間が前のレベルの呼び出しで呼び出された
「TS手順1」に返されるまでは、第2レベルの「TS
手順1」呼び出しが、第3レベルの「TS手順1」呼び
出しに至り、第3レベルの「TS手順1」呼び出しが、
第4レベルの「TS手順1」呼び出しに至る等、次のレ
ベルの「TS手順1」呼び出しが順次発動される。
【0161】前に述べたように、レベル1の呼び出し
は、ステップ680において「TS手順1」が「手順
1」によって呼び出されたときに発生する。ステップ8
50において「TS手順1」が、いずれかのレベルの呼
び出しで呼び出された「TS手順1」によって「スケジ
ューリング不可能」のメッセージが返されたかどうかが
定められる。
は、ステップ680において「TS手順1」が「手順
1」によって呼び出されたときに発生する。ステップ8
50において「TS手順1」が、いずれかのレベルの呼
び出しで呼び出された「TS手順1」によって「スケジ
ューリング不可能」のメッセージが返されたかどうかが
定められる。
【0162】もしこのようなメッセージが返された場
合、タスクTy ∈G2はp”個のプロセッサ上でスケジ
ューリング不可能と見なされ、「TS手順1」がステッ
プ851において、「スケジューリング不可能」のメッ
セージを呼び出し側のプログラムに返す。
合、タスクTy ∈G2はp”個のプロセッサ上でスケジ
ューリング不可能と見なされ、「TS手順1」がステッ
プ851において、「スケジューリング不可能」のメッ
セージを呼び出し側のプログラムに返す。
【0163】もしステップ845における前のレベルの
呼び出しで呼び出された「TS手順1」に対して、開始
時間が「TS手順1」によって返される場合には、ステ
ップ860(図15)において、開始時間が次の計算式
を用いて合体された後呼び出し側プログラムに返され
る。 (計算式)STe=R・g・CG3+(v−1)・CG3+Y。
呼び出しで呼び出された「TS手順1」に対して、開始
時間が「TS手順1」によって返される場合には、ステ
ップ860(図15)において、開始時間が次の計算式
を用いて合体された後呼び出し側プログラムに返され
る。 (計算式)STe=R・g・CG3+(v−1)・CG3+Y。
【0164】式中Rは次式で表され、Te= ̄Te、1≦
v≦g、Y= ̄(STe)−R・CG3、そして ̄(STe)
は、ステップ845において後のレベルの「TS手順
1」によって返される開始時間である( ̄(STe) は、
STe の直上に ̄を配置した表記と同義の簡易表記であ
る)。
v≦g、Y= ̄(STe)−R・CG3、そして ̄(STe)
は、ステップ845において後のレベルの「TS手順
1」によって返される開始時間である( ̄(STe) は、
STe の直上に ̄を配置した表記と同義の簡易表記であ
る)。
【数13】
【0165】尚、CG3の値は、後の「TS手順1」呼び
出しプロセスの全てを通じて同じ値を取り続ける。
出しプロセスの全てを通じて同じ値を取り続ける。
【0166】図16〜19は「分割手順」の例示流れ図
である。図16に示すように、ステップ900において
「分割手順」がデータを、タスク・グループG4内のタ
スクTj、 及びg、として読み取る。「分割手順」は、
周期の最大公約数gcd(P1,...,Pn) と計算時間C
j の和との差である余裕値に応じて、タスクTj ∈G4
をサブセットSv に順次割り当てる。
である。図16に示すように、ステップ900において
「分割手順」がデータを、タスク・グループG4内のタ
スクTj、 及びg、として読み取る。「分割手順」は、
周期の最大公約数gcd(P1,...,Pn) と計算時間C
j の和との差である余裕値に応じて、タスクTj ∈G4
をサブセットSv に順次割り当てる。
【0167】スケジューリング可能であるためには、各
サブセットSv は、負でない余裕値を有する必要があ
る。すなわち、或るサブセット内の周期Pj の最大公約
数が同じサブセット内の計算時間の和よりも大きいか又
は等しいことを要する。
サブセットSv は、負でない余裕値を有する必要があ
る。すなわち、或るサブセット内の周期Pj の最大公約
数が同じサブセット内の計算時間の和よりも大きいか又
は等しいことを要する。
【0168】したがって、「分割手順」の目標は、全て
のサブセットが負でない余裕値を有するようにタスクT
j をサブセットSv に割り当てることである。「分割手
順」は、この目標を達成するために、サブセットSv の
余裕値の全体値を最大化する。尚、gcd(P1,...,P
n)は、gcd(T1,...,Tn)とも表す。
のサブセットが負でない余裕値を有するようにタスクT
j をサブセットSv に割り当てることである。「分割手
順」は、この目標を達成するために、サブセットSv の
余裕値の全体値を最大化する。尚、gcd(P1,...,P
n)は、gcd(T1,...,Tn)とも表す。
【0169】ステップ905〜980において、「分割
手順」は、タスク・グループG4からタスクTj を空き
サブセットSv の各々に割り当てる。すぐ判るように、
サブセットはタスクを割り当てられていない場合に、空
きである、と称する。
手順」は、タスク・グループG4からタスクTj を空き
サブセットSv の各々に割り当てる。すぐ判るように、
サブセットはタスクを割り当てられていない場合に、空
きである、と称する。
【0170】各空きサブセットSv に割り当てられたタ
スクTj は、もしそのタスクTj が空きでないサブセッ
トS1,...,Sv-1 に割り当てられた場合に余裕値が最小
になるような特定のタスクTj ∈G4である。
スクTj は、もしそのタスクTj が空きでないサブセッ
トS1,...,Sv-1 に割り当てられた場合に余裕値が最小
になるような特定のタスクTj ∈G4である。
【0171】ステップ905において「分割手順」は、
第1のタスクTj ∈G4をサブセットS1 に割り当て
る。具体的には「分割手順」が、もしタスクTj ∈G4
がサブセットS1 に割り当てられたとした場合のサブセ
ットS1 についての余裕値を点検し、次にステップ91
0において、もしサブセットS1 に割り当てられたとし
た場合に余裕値が最小になるようなタスクTs がサブセ
ットS1 に割り当てられ、タスク・グループG4から除
去される。
第1のタスクTj ∈G4をサブセットS1 に割り当て
る。具体的には「分割手順」が、もしタスクTj ∈G4
がサブセットS1 に割り当てられたとした場合のサブセ
ットS1 についての余裕値を点検し、次にステップ91
0において、もしサブセットS1 に割り当てられたとし
た場合に余裕値が最小になるようなタスクTs がサブセ
ットS1 に割り当てられ、タスク・グループG4から除
去される。
【0172】言い換えれば、タスクTs は、各タスクT
j ∈G4について gcd(Ps)−Cs ≦ gcd(P
j)−Cj であるようなタスク・グループG4内のタス
クである。
j ∈G4について gcd(Ps)−Cs ≦ gcd(P
j)−Cj であるようなタスク・グループG4内のタス
クである。
【0173】「例1」においては、タスク ̄Te が、余
裕値が1になるのでサブセットS1に割り当てられる。
タスク ̄T3、 T5 及びT6 はそれぞれ、余裕値が1、
2及び2になる。
裕値が1になるのでサブセットS1に割り当てられる。
タスク ̄T3、 T5 及びT6 はそれぞれ、余裕値が1、
2及び2になる。
【0174】ステップ930においてループ930が開
始され、ここで、残っている空きサブセットSv の各々
に1度に1タスクづつ割り当てが行われる。尚、ループ
930の開始時点においてはサブセットS2,...,Sg は
空きである。ループ930はタスクTj ∈G4を空きサ
ブセットの各々に仮の余裕値に応じて割り当てる。
始され、ここで、残っている空きサブセットSv の各々
に1度に1タスクづつ割り当てが行われる。尚、ループ
930の開始時点においてはサブセットS2,...,Sg は
空きである。ループ930はタスクTj ∈G4を空きサ
ブセットの各々に仮の余裕値に応じて割り当てる。
【0175】具体的には、ステップ930〜965にお
いて「割付手順」が、タスクTj を空きでない各サブセ
ットSv、 すなわちS1,...,Sv-1 に仮に割り当て、空
きでない各サブセットSv についての余裕値をmax
[Tj] と称する配列(アレイ)に格納する。
いて「割付手順」が、タスクTj を空きでない各サブセ
ットSv、 すなわちS1,...,Sv-1 に仮に割り当て、空
きでない各サブセットSv についての余裕値をmax
[Tj] と称する配列(アレイ)に格納する。
【0176】ステップ935においてループ935が開
始され、ここで、各タスクTj についてアレイmax
[Tj] が生成される。ステップ940において「割付
手順」が、もしループ935の現タスクTj がサブセッ
トS1 に割り当てられたとした場合のサブセットS1 に
ついての余裕値が定められる。このような余裕値が、ア
レイmax[Tj] に格納される。
始され、ここで、各タスクTj についてアレイmax
[Tj] が生成される。ステップ940において「割付
手順」が、もしループ935の現タスクTj がサブセッ
トS1 に割り当てられたとした場合のサブセットS1 に
ついての余裕値が定められる。このような余裕値が、ア
レイmax[Tj] に格納される。
【0177】図17のステップ950においてループ9
50が開始され、ここで、現タスクTj が空きでない他
のサブセットS2,...,Sv-1 に割り当てられたとした場
合のこれらのサブセットS2,...,Sv-1 についての仮の
余裕値が定められる。このような余裕値が、それぞれの
アレイmax[Tj] に格納される。
50が開始され、ここで、現タスクTj が空きでない他
のサブセットS2,...,Sv-1 に割り当てられたとした場
合のこれらのサブセットS2,...,Sv-1 についての仮の
余裕値が定められる。このような余裕値が、それぞれの
アレイmax[Tj] に格納される。
【0178】現タスクTj についてループ935が完了
すると、「分割手順」は図18のす965〜970に進
み、ここで「分割手順」がアレイmax[Tj] を比較
して、各タスクTj ∈G4について、max[Tu]≦
max[Tj] となるようなタスク・グループG4内の
タスクTu を見出す。言い換えれば、「分割手順」が最
小可能余裕値を、アレイmax[Tj] を通して探索す
る。
すると、「分割手順」は図18のす965〜970に進
み、ここで「分割手順」がアレイmax[Tj] を比較
して、各タスクTj ∈G4について、max[Tu]≦
max[Tj] となるようなタスク・グループG4内の
タスクTu を見出す。言い換えれば、「分割手順」が最
小可能余裕値を、アレイmax[Tj] を通して探索す
る。
【0180】次にステップ975において、タスクTu
がループ930の現空きサブセットSv に割り当てら
れ、タスク・グループG4から除去される。ループ93
0は空きサブセットSv が残らなくなるまで反復実行さ
れる。
がループ930の現空きサブセットSv に割り当てら
れ、タスク・グループG4から除去される。ループ93
0は空きサブセットSv が残らなくなるまで反復実行さ
れる。
【0179】「例1」においては、タスク ̄T5 はサブ
セットS1 に割り当てられる。理由は、もしサブセット
S1 に割り当てられたとした場合のタスク ̄T5 の余裕
値が−1になるからである。タスク ̄T3 及び ̄T6 に
ついては、もしサブセットS1 に割り当てられたとした
場合の余裕値はそれぞれゼロ及び−1となる。
セットS1 に割り当てられる。理由は、もしサブセット
S1 に割り当てられたとした場合のタスク ̄T5 の余裕
値が−1になるからである。タスク ̄T3 及び ̄T6 に
ついては、もしサブセットS1 に割り当てられたとした
場合の余裕値はそれぞれゼロ及び−1となる。
【0181】ループ935が完了すると、ステップ98
2〜992において、残りのまだ割り当てられていない
タスクTj ∈G4が、サブセットSv についての余裕値
の全体が最大になるようにサブセットSv に割り当てら
れる。すなわち、ステップ982において各タスクTj
∈G4の全てについてループ982が開始される。
2〜992において、残りのまだ割り当てられていない
タスクTj ∈G4が、サブセットSv についての余裕値
の全体が最大になるようにサブセットSv に割り当てら
れる。すなわち、ステップ982において各タスクTj
∈G4の全てについてループ982が開始される。
【0182】ループ982が図19のステップ984〜
988において、現タスクTj ∈G4を空きでない各サ
ブセットSv に仮に割り当て、各サブセットSv につい
ての余裕値を定める。ステップ990において、余裕値
が最大になったサブセットSv にタスクTj が割り当て
られる。ステップ982〜992は、各タスクTj が全
て割り当てられるまで反復実行される。全てのタスクT
j が割り当てられると、ステップ994において、各サ
ブセットSv を形成するタスクTj を表示するデータが
呼び出し側プログラムに返される。
988において、現タスクTj ∈G4を空きでない各サ
ブセットSv に仮に割り当て、各サブセットSv につい
ての余裕値を定める。ステップ990において、余裕値
が最大になったサブセットSv にタスクTj が割り当て
られる。ステップ982〜992は、各タスクTj が全
て割り当てられるまで反復実行される。全てのタスクT
j が割り当てられると、ステップ994において、各サ
ブセットSv を形成するタスクTj を表示するデータが
呼び出し側プログラムに返される。
【0183】ステップ982〜992を「例1」に適用
すると、もしタスク ̄T3 がサブセットS1 及びS2 に
に割り当てられたとした場合の余裕値がそれぞれゼロ及
び1になるので、タスク ̄T3 はサブセットS1 に割り
当てられる。又もしタスク ̄T6 がサブセットS1 及び
S2 に割り当てられたとした場合の余裕値がそれぞれ−
2及び+1になるので、タスク ̄T6 はサブセットS2
に割り当てられる。
すると、もしタスク ̄T3 がサブセットS1 及びS2 に
に割り当てられたとした場合の余裕値がそれぞれゼロ及
び1になるので、タスク ̄T3 はサブセットS1 に割り
当てられる。又もしタスク ̄T6 がサブセットS1 及び
S2 に割り当てられたとした場合の余裕値がそれぞれ−
2及び+1になるので、タスク ̄T6 はサブセットS2
に割り当てられる。
【0184】このようにして、S1 ={ ̄T2, ̄
T3}、 そしてS2 ={ ̄T5, ̄T6} となる。これ
で、手順はステップ840における呼び出し側プログラ
ムの「タスク・スケジューリング(TS)手順1」に戻
される。すると、第2のレベルの「TS手順1」の呼び
出しが、サブセットS1 ={ ̄T2, ̄T3}、 及びS2
={ ̄T5, ̄T6} について行われる。
T3}、 そしてS2 ={ ̄T5, ̄T6} となる。これ
で、手順はステップ840における呼び出し側プログラ
ムの「タスク・スケジューリング(TS)手順1」に戻
される。すると、第2のレベルの「TS手順1」の呼び
出しが、サブセットS1 ={ ̄T2, ̄T3}、 及びS2
={ ̄T5, ̄T6} について行われる。
【0185】これらの第2のレベルの呼び出しにおいて
は、「タスク・スケジューリング(TS)手順2」のス
テップ805〜824の命令によって、サブセットS1
及びS2 がスケジューリング可能であることが定め
られ、開始時間、 ̄(ST2)=0、  ̄(ST3)=1、  ̄
(ST5)=0、  ̄(ST6)=1、 がステップ850にお
ける第1のレベルの「TS手順1」の呼び出しに返され
る。
は、「タスク・スケジューリング(TS)手順2」のス
テップ805〜824の命令によって、サブセットS1
及びS2 がスケジューリング可能であることが定め
られ、開始時間、 ̄(ST2)=0、  ̄(ST3)=1、  ̄
(ST5)=0、  ̄(ST6)=1、 がステップ850にお
ける第1のレベルの「TS手順1」の呼び出しに返され
る。
【0186】開始時間、 ̄(STe) は次に、ステップ8
60において合体され、ステップ680(図10)で第
1のレベルの「TS手順1」の呼び出しに返される。開
始時間を合体させることによって、次の開始時間S
Te、 すなわちST2 =0、ST3 =2、 ST5 =1、
ST6 =3、 が得られる。
60において合体され、ステップ680(図10)で第
1のレベルの「TS手順1」の呼び出しに返される。開
始時間を合体させることによって、次の開始時間S
Te、 すなわちST2 =0、ST3 =2、 ST5 =1、
ST6 =3、 が得られる。
【0187】(第2のスケジューリング手法)第2のス
ケジューリング手法は、強化ペイ・パー・ビュー方式を
用いるビデオ・サーバにおいて第1の「きめを粗くした
(CG)」ストライピング手法を用いた際に生じるスケ
ジューリング問題を取り扱う。
ケジューリング手法は、強化ペイ・パー・ビュー方式を
用いるビデオ・サーバにおいて第1の「きめを粗くした
(CG)」ストライピング手法を用いた際に生じるスケ
ジューリング問題を取り扱う。
【0188】具体的には、第2のスケジューリング手法
は、p個のプロセッサ上で、周期Pi を有するノン・プ
リエンプティブなタスクTi をスケジューリングするた
めの有効な方法を提供するものであって、ここにタスク
Ti は、各々単位計算時間を有し且つ時間間隔Fで隔て
られたwi 個のサブタスクからなる。
は、p個のプロセッサ上で、周期Pi を有するノン・プ
リエンプティブなタスクTi をスケジューリングするた
めの有効な方法を提供するものであって、ここにタスク
Ti は、各々単位計算時間を有し且つ時間間隔Fで隔て
られたwi 個のサブタスクからなる。
【0189】第2のスケジューリング手法は、第1のC
Gストライピング手法を用いる際に生じるスケジューリ
ング問題を取り扱うのに、4種類の手順を利用する。
Gストライピング手法を用いる際に生じるスケジューリ
ング問題を取り扱うのに、4種類の手順を利用する。
【0190】これら4種類のうちの第1の手順(「手順
2」と称する)では、1個のタスク・グループ(Gで表
す)を構成するタスクが、単一のプロセッサ上でスケジ
ューリングすることが可能でないかどうかによってG1
とG2との2個のタスク・サブグループ(又は簡単に、
サブグループ)に分割される。
2」と称する)では、1個のタスク・グループ(Gで表
す)を構成するタスクが、単一のプロセッサ上でスケジ
ューリングすることが可能でないかどうかによってG1
とG2との2個のタスク・サブグループ(又は簡単に、
サブグループ)に分割される。
【0191】「手順2」は次に、サブグループG1及び
G2の両方を別個にスケジューリングすることを試み
る。単一のプロセッサ上でスケジューリングすることが
可能でないサブグループをG1で表すと、このサブグル
ープG1については、「手順2」が、p’個のプロセッ
サ上でタスクをスケジューリングする。
G2の両方を別個にスケジューリングすることを試み
る。単一のプロセッサ上でスケジューリングすることが
可能でないサブグループをG1で表すと、このサブグル
ープG1については、「手順2」が、p’個のプロセッ
サ上でタスクをスケジューリングする。
【0192】単一のプロセッサ上でスケジューリングす
ることが可能なサブグループをG2で表すと、このサブ
グループG2については、「手順2」が、上記4種類の
うちの第2の手順(「分割手順」と称する)を呼び出
し、残りのp”個のプロセッサの各々について1個のサ
ブセットG2−yが存在するようにサブグループG2を
更にサブセットG2−yに分割させる。
ることが可能なサブグループをG2で表すと、このサブ
グループG2については、「手順2」が、上記4種類の
うちの第2の手順(「分割手順」と称する)を呼び出
し、残りのp”個のプロセッサの各々について1個のサ
ブセットG2−yが存在するようにサブグループG2を
更にサブセットG2−yに分割させる。
【0193】各サブセットG2−yについて、「手順
2」が上記4種類のうちの第3の手順(「タスク・スケ
ジューリング手順2」(又は簡単に、「TS手順2」)
と称する)を呼び出してスケジューリングの可能性を定
めさせる。「TS手順2」は上記4種類のうちの第4の
手順(スケジューリング可能かどうかを点検する「スケ
ジューリング点検手順」(又は簡単に、「S点検手
順」)と称する)を呼び出し、サブセットG2−yのス
ケジューリングの可能性を定める援助をさせる。
2」が上記4種類のうちの第3の手順(「タスク・スケ
ジューリング手順2」(又は簡単に、「TS手順2」)
と称する)を呼び出してスケジューリングの可能性を定
めさせる。「TS手順2」は上記4種類のうちの第4の
手順(スケジューリング可能かどうかを点検する「スケ
ジューリング点検手順」(又は簡単に、「S点検手
順」)と称する)を呼び出し、サブセットG2−yのス
ケジューリングの可能性を定める援助をさせる。
【0194】もし「S点検手順」が、サブセットG2−
yはスケジューリング可能でないと定め、且つ「TS手
順2」が、同じサブセットG2−yが更に分割可能であ
ると定めた場合、「TS手順2」が「分割手順」を呼び
出し、そのサブセットG2−yを更にサブ・サブセット
Sv に分割させる。サブセットG2−yが分割された
後、「TS手順2」が自身を呼び出し、スケジューリン
グ可能性の再判断作業を行う。
yはスケジューリング可能でないと定め、且つ「TS手
順2」が、同じサブセットG2−yが更に分割可能であ
ると定めた場合、「TS手順2」が「分割手順」を呼び
出し、そのサブセットG2−yを更にサブ・サブセット
Sv に分割させる。サブセットG2−yが分割された
後、「TS手順2」が自身を呼び出し、スケジューリン
グ可能性の再判断作業を行う。
【0195】この、タスクのサブグループ、サブセット
等の分割は、タスクのサブグループ、サブセット等がス
ケジューリング可能であると、又はもはや再分割可能で
ないと、第2のスケジューリング手法が判断するまで、
第2のスケジューリング手法によって反復して実行され
る。
等の分割は、タスクのサブグループ、サブセット等がス
ケジューリング可能であると、又はもはや再分割可能で
ないと、第2のスケジューリング手法が判断するまで、
第2のスケジューリング手法によって反復して実行され
る。
【0196】図20〜図22に、第1のCGストライピ
ング手法を用いたビデオ・サーバについてのサービスリ
ストにあるビデオのスケジューリング、すなわち各々単
位計算時間と周期P1,...,PN とを有し時間間隔Fで隔
てられたwi 個のサブタスクからなるノン・プリエンプ
ティブなタスクT1,...,TN のスケジューリング、を行
うための「手順2」の例示流れ図を示す。
ング手法を用いたビデオ・サーバについてのサービスリ
ストにあるビデオのスケジューリング、すなわち各々単
位計算時間と周期P1,...,PN とを有し時間間隔Fで隔
てられたwi 個のサブタスクからなるノン・プリエンプ
ティブなタスクT1,...,TN のスケジューリング、を行
うための「手順2」の例示流れ図を示す。
【0197】図20のステップ1000において、グル
ープG内のタスクTi (i=1,...,N)とpの値とに対
応するデータが、ビデオ・サーバのRAMバッファメモ
リ内に読み込まれる。pの値は、第2のスケジューリン
グ手法で用いる場合には、第1のスケジューリング手法
の場合と異なり1個のディスクを取り扱うのに要するプ
ロセッサの個数を表す。
ープG内のタスクTi (i=1,...,N)とpの値とに対
応するデータが、ビデオ・サーバのRAMバッファメモ
リ内に読み込まれる。pの値は、第2のスケジューリン
グ手法で用いる場合には、第1のスケジューリング手法
の場合と異なり1個のディスクを取り扱うのに要するプ
ロセッサの個数を表す。
【0198】タスク・グループGについてのデータに
は、タスクTi、 単位計算時間を有するサブタスクの個
数wi、 周期Pi、 及び時間間隔F、すなわち{Ti,w
i,Pi,F}が含まれる。尚、第1のCGストライピング
手法においては、同じタスクに属する隣接するサブタス
ク間の時間間隔がFである。
は、タスクTi、 単位計算時間を有するサブタスクの個
数wi、 周期Pi、 及び時間間隔F、すなわち{Ti,w
i,Pi,F}が含まれる。尚、第1のCGストライピング
手法においては、同じタスクに属する隣接するサブタス
ク間の時間間隔がFである。
【0199】タスクによっては、1個のタスクTi を周
期的にスケジューリングするのに、そのサブタスクのい
くつかを同時にスケジューリングする必要がある場合が
ある。その結果、このようなタスクTi は単一のプロセ
ッサ上でのスケジューリングができなくなる。その例示
のため「例2」について説明する。
期的にスケジューリングするのに、そのサブタスクのい
くつかを同時にスケジューリングする必要がある場合が
ある。その結果、このようなタスクTi は単一のプロセ
ッサ上でのスケジューリングができなくなる。その例示
のため「例2」について説明する。
【0200】今、周期Pi =4、wi =3、時間間隔F
=6、を有するタスクTi を考えると、T1 の第1のス
トリームについて3個のサブタスクが、ラウンド0、6
および12、でそれぞれスケジューリングされる。P1
=4であるので、T1 の第3のストリームについての第
1のサブタスクは再度ラウンド12においてスケジュー
リングする必要がある。したがって、ラウンド12にお
いて競合が生じ、タスクT1 は単一のp上ではスケジュ
ーリングできない。
=6、を有するタスクTi を考えると、T1 の第1のス
トリームについて3個のサブタスクが、ラウンド0、6
および12、でそれぞれスケジューリングされる。P1
=4であるので、T1 の第3のストリームについての第
1のサブタスクは再度ラウンド12においてスケジュー
リングする必要がある。したがって、ラウンド12にお
いて競合が生じ、タスクT1 は単一のp上ではスケジュ
ーリングできない。
【0201】スケジューリング1005において、タス
クTi が、同じタスクTi に属する2個以上のサブタス
クが競合するかどうか、すなわち同時にスケジューリン
グされるかどうか、によって分類される。タスクTi の
分類は、次の条件を用いて行う。すなわち、タスクTi
に属する各1個のサブタスクr及びサブタスクsについ
て、((r−1)・F)mod Pi = ((s−1)・
F)mod Pi、の式を満足するかどうかの条件であ
る。ここに、1≦r≦wi、 1≦s≦wi、 及びr≠
s、である。
クTi が、同じタスクTi に属する2個以上のサブタス
クが競合するかどうか、すなわち同時にスケジューリン
グされるかどうか、によって分類される。タスクTi の
分類は、次の条件を用いて行う。すなわち、タスクTi
に属する各1個のサブタスクr及びサブタスクsについ
て、((r−1)・F)mod Pi = ((s−1)・
F)mod Pi、の式を満足するかどうかの条件であ
る。ここに、1≦r≦wi、 1≦s≦wi、 及びr≠
s、である。
【0202】もしこの式が満足される場合、サブタスク
r及びsは同時にスケジューリングされることになるの
でスケジューリングの競合が生じ、したがってタスクT
i は単一のプロセッサ上でスケジューリングできない。
単一のプロセッサ上でスケジューリングできないタスク
は、サブグループG1に分類される。
r及びsは同時にスケジューリングされることになるの
でスケジューリングの競合が生じ、したがってタスクT
i は単一のプロセッサ上でスケジューリングできない。
単一のプロセッサ上でスケジューリングできないタスク
は、サブグループG1に分類される。
【0203】タスクTi が単一のプロセッサ上でスケジ
ューリング可能であるためには、タスクTi 内のサブタ
スクr及びsのいかなる組み合わせも上記の条件式を満
足させてはならない。単一のプロセッサ上でスケジュー
リングできるタスクは、サブグループG2に分類され
る。
ューリング可能であるためには、タスクTi 内のサブタ
スクr及びsのいかなる組み合わせも上記の条件式を満
足させてはならない。単一のプロセッサ上でスケジュー
リングできるタスクは、サブグループG2に分類され
る。
【0204】ステップ1010〜1030において、
「手順2」がタスクTi ∈G1について必要なプロセッ
サの個数を定める。ステップ1010において、p’の
値、すなわちすべてのタスクTi ∈G1をスケジューリ
ングするのに要するプロセッサの個数が、初期値ゼロに
設定される。ステップ1015において、各タスクTi
∈G1をスケジューリングするのに要するプロセッサの
個数pi を計算するループ1015が開始される。
「手順2」がタスクTi ∈G1について必要なプロセッ
サの個数を定める。ステップ1010において、p’の
値、すなわちすべてのタスクTi ∈G1をスケジューリ
ングするのに要するプロセッサの個数が、初期値ゼロに
設定される。ステップ1015において、各タスクTi
∈G1をスケジューリングするのに要するプロセッサの
個数pi を計算するループ1015が開始される。
【0205】ステップ1020において、ループ101
5内の現タスクTi についての値pi が計算される。具
体的には、値pi は、タスクTi 内の各サブタスク全て
について式((r−1)・F)mod Piを用いて最も
頻繁に得られる値に依る。或る1個のタスクTi ∈G1
について上記の式で最も頻繁に得られる値の頻度数が、
そのタスクTi ∈G1をスケジューリングするのに要す
るプロセッサの個数である。
5内の現タスクTi についての値pi が計算される。具
体的には、値pi は、タスクTi 内の各サブタスク全て
について式((r−1)・F)mod Piを用いて最も
頻繁に得られる値に依る。或る1個のタスクTi ∈G1
について上記の式で最も頻繁に得られる値の頻度数が、
そのタスクTi ∈G1をスケジューリングするのに要す
るプロセッサの個数である。
【0206】ステップ1025及び1026において、
現値pi がp’に加算され、現タスクTi についての開
始時間がゼロに設定される。上記の式((r−1)・
F)mod Piを「例2」に適用すると、3個のサブタ
スク、すなわちr=1、2及び3についてそれぞれ0、
2及び0の値が定められる。タスクT2 については値ゼ
ロが最も頻繁に得られたので、タスクT2 について必要
なプロセッサの個数は、値ゼロの頻度数、すなわち2に
等しい。
現値pi がp’に加算され、現タスクTi についての開
始時間がゼロに設定される。上記の式((r−1)・
F)mod Piを「例2」に適用すると、3個のサブタ
スク、すなわちr=1、2及び3についてそれぞれ0、
2及び0の値が定められる。タスクT2 については値ゼ
ロが最も頻繁に得られたので、タスクT2 について必要
なプロセッサの個数は、値ゼロの頻度数、すなわち2に
等しい。
【0207】ステップ1025において、各タスクTi
∈G1全てについて値pi がp’に累進的に加算され、
ステップ1026において、タスクTi ∈G1について
の開始時間STi がゼロに設定される。
∈G1全てについて値pi がp’に累進的に加算され、
ステップ1026において、タスクTi ∈G1について
の開始時間STi がゼロに設定される。
【0208】ループ1015が完了するか又はもしタス
クTi がない場合、図21に示すように「手順2」はス
テップ1040に進み、ここで、タスクTi ∈G2をス
ケジューリングするために利用可能なプロセッサの個
数、すなわち値p”=p−p’が定められる。
クTi がない場合、図21に示すように「手順2」はス
テップ1040に進み、ここで、タスクTi ∈G2をス
ケジューリングするために利用可能なプロセッサの個
数、すなわち値p”=p−p’が定められる。
【0209】ステップ1045において、もし値p”が
ゼロより小さい場合、タスクTi ∈G2をスケジューリ
ングするのに十分な個数のプロセッサがないことになる
ので、「手順2」はステップ1046に進み、ここで
「スケジューリング不可能」のメッセージを返し、ステ
ップ1080で終結する。もし値p”がゼロより小さく
ないい場合には、「手順2」はステップ1050に進
み、ここで、スケジューリングすべきタスクTi ∈G2
があるかどうかが点検される。
ゼロより小さい場合、タスクTi ∈G2をスケジューリ
ングするのに十分な個数のプロセッサがないことになる
ので、「手順2」はステップ1046に進み、ここで
「スケジューリング不可能」のメッセージを返し、ステ
ップ1080で終結する。もし値p”がゼロより小さく
ないい場合には、「手順2」はステップ1050に進
み、ここで、スケジューリングすべきタスクTi ∈G2
があるかどうかが点検される。
【0210】もしタスクTi ∈G2がない場合、「手順
2」はステップ1051に進み、ここで、ステップ10
80に進むよう命令され、そこで終結する。もしタスク
Ti∈G2がある場合には、「手順2」はステップ10
55に進み、ここで、タスクTi ∈G2をスケジューリ
ングするために利用可能なプロセッサがあるかどうかが
点検される。
2」はステップ1051に進み、ここで、ステップ10
80に進むよう命令され、そこで終結する。もしタスク
Ti∈G2がある場合には、「手順2」はステップ10
55に進み、ここで、タスクTi ∈G2をスケジューリ
ングするために利用可能なプロセッサがあるかどうかが
点検される。
【0211】もしp”=0の場合、タスクTi ∈G2を
スケジューリングするために利用可能なプロセッサがな
いことになるので、「手順2」はステップ1056に進
み、ここで「スケジューリング不可能」のメッセージを
返し、ステップ1080で終結する。もしp”=0でな
い場合には、「手順2」はステップ1060(図22)
に進み、ここで、サブグループG2をサブセットG2−
yに分割すべきかどうかを定める。
スケジューリングするために利用可能なプロセッサがな
いことになるので、「手順2」はステップ1056に進
み、ここで「スケジューリング不可能」のメッセージを
返し、ステップ1080で終結する。もしp”=0でな
い場合には、「手順2」はステップ1060(図22)
に進み、ここで、サブグループG2をサブセットG2−
yに分割すべきかどうかを定める。
【0212】もし分割を要しない、すなわちp”=1の
場合、「手順2」はステップ1061において、サブセ
ットG2−1をサブグループG2に等しく設定する。そ
うでない場合には、p”>1であり、「手順2」はステ
ップ1065〜1070において「分割手順」を呼び出
し、タスクTi ∈G2をp”個の、素のサブセットG2
−y(y=1,...,p”) に分割させる。
場合、「手順2」はステップ1061において、サブセ
ットG2−1をサブグループG2に等しく設定する。そ
うでない場合には、p”>1であり、「手順2」はステ
ップ1065〜1070において「分割手順」を呼び出
し、タスクTi ∈G2をp”個の、素のサブセットG2
−y(y=1,...,p”) に分割させる。
【0213】タスクTi ∈G2の分割が終わると、「手
順2」はステップ1075において、各サブセットG2
−yについて「タスク・スケジューリング(TS)手順
2」を呼び出し、ここで第2のスケジューリング手法
が、タスクTi ∈G2がp”個のプロセッサ上でスケジ
ューリング可能かどうかを定める。
順2」はステップ1075において、各サブセットG2
−yについて「タスク・スケジューリング(TS)手順
2」を呼び出し、ここで第2のスケジューリング手法
が、タスクTi ∈G2がp”個のプロセッサ上でスケジ
ューリング可能かどうかを定める。
【0214】図23〜図24に、「タスク・スケジュー
リング手順2」(「TS手順2」)の例示流れ図を示
す。図23に示すように、ステップ1100において
「TS手順2」が、データをサブグループG3に属する
タスクTh 及び値Fとして読み取る。ステップ1101
において「TS手順2」が、スケジューリング可能かど
うかを点検する「スケジューリング点検手順」(又は簡
単に、「S点検手順」)と称する)を呼び出し、サブグ
ループG3内のタスクTh がスケジューリング可能かど
うかを定めさせる。
リング手順2」(「TS手順2」)の例示流れ図を示
す。図23に示すように、ステップ1100において
「TS手順2」が、データをサブグループG3に属する
タスクTh 及び値Fとして読み取る。ステップ1101
において「TS手順2」が、スケジューリング可能かど
うかを点検する「スケジューリング点検手順」(又は簡
単に、「S点検手順」)と称する)を呼び出し、サブグ
ループG3内のタスクTh がスケジューリング可能かど
うかを定めさせる。
【0215】ステップ1105において「TS手順2」
は、「スケジューリング不可能」のメッセージ、又は開
始時間のセットが、「S点検手順」によって返されたか
どうかを点検する。もし開始時間のセットが返された場
合、「TS手順2」がステップ1106において、その
開始時間のセットを呼び出し側プログラムに返す。そう
でない場合には、「TS手順2」はステップ1110
(図23)〜ステップ1135(図24)に進み、ここ
で「TS手順2」が、サブグループG3を反復分割す
る。
は、「スケジューリング不可能」のメッセージ、又は開
始時間のセットが、「S点検手順」によって返されたか
どうかを点検する。もし開始時間のセットが返された場
合、「TS手順2」がステップ1106において、その
開始時間のセットを呼び出し側プログラムに返す。そう
でない場合には、「TS手順2」はステップ1110
(図23)〜ステップ1135(図24)に進み、ここ
で「TS手順2」が、サブグループG3を反復分割す
る。
【0216】ステップ1110において「TS手順2」
が、値gをサブグループG3における周期Ph の最大公
約数に等しく設定する。ステップ1115(図23)〜
ステップ1135(図24)において「TS手順2」
が、サブグループG3が分割可能でないか、すなわちg
=1かどうかを定める。もしサブグループG3が分割可
能、すなわちg>1の場合、「TS手順2」がサブグル
ープG3をサブセットSv (v=1,...,g) に反復分
割し、それから各サブセットSv について自身を呼び出
す。
が、値gをサブグループG3における周期Ph の最大公
約数に等しく設定する。ステップ1115(図23)〜
ステップ1135(図24)において「TS手順2」
が、サブグループG3が分割可能でないか、すなわちg
=1かどうかを定める。もしサブグループG3が分割可
能、すなわちg>1の場合、「TS手順2」がサブグル
ープG3をサブセットSv (v=1,...,g) に反復分
割し、それから各サブセットSv について自身を呼び出
す。
【0217】尚、ステップ1120において、タスクT
h ∈G3に対応するデータが{Th,wh,Ph,F}から
{ ̄Th, ̄wh, ̄Ph, ̄F}に変形される。ここに、
{ ̄Th, ̄wh, ̄Ph, ̄F}={Th,wh,Ph/g,F/
g} である。ステップ1115〜1135は図13及
び14に類似である。
h ∈G3に対応するデータが{Th,wh,Ph,F}から
{ ̄Th, ̄wh, ̄Ph, ̄F}に変形される。ここに、
{ ̄Th, ̄wh, ̄Ph, ̄F}={Th,wh,Ph/g,F/
g} である。ステップ1115〜1135は図13及
び14に類似である。
【0218】ステップ1140〜1145において「T
S手順2」が、後のレベルで呼び出された「TS手順
2」によってステップ1135において返されたデータ
を点検する。もし後のレベルで呼び出された「TS手順
2」によって返されたデータが「スケジューリング不可
能のメッセージ」である場合、現に呼び出されている
「TS手順2」がステップ1141において、「スケジ
ューリング不可能のメッセージ」を呼び出し側プログラ
ムに返す。
S手順2」が、後のレベルで呼び出された「TS手順
2」によってステップ1135において返されたデータ
を点検する。もし後のレベルで呼び出された「TS手順
2」によって返されたデータが「スケジューリング不可
能のメッセージ」である場合、現に呼び出されている
「TS手順2」がステップ1141において、「スケジ
ューリング不可能のメッセージ」を呼び出し側プログラ
ムに返す。
【0219】もし「スケジューリング不可能のメッセー
ジ」でない場合には、現に呼び出されている「TS手順
2」が、後のレベルで呼び出された「TS手順2」によ
って各サブセット内のタスクについての開始時間のセッ
トが返されたものとする。これによって、現に呼び出さ
れている「TS手順2」が、ステップ1145におい
て、後のレベルで呼び出された「TS手順2」によって
返された開始時間のセットを合体して、タスクTh ∈G
3についての開始時間を得る。
ジ」でない場合には、現に呼び出されている「TS手順
2」が、後のレベルで呼び出された「TS手順2」によ
って各サブセット内のタスクについての開始時間のセッ
トが返されたものとする。これによって、現に呼び出さ
れている「TS手順2」が、ステップ1145におい
て、後のレベルで呼び出された「TS手順2」によって
返された開始時間のセットを合体して、タスクTh ∈G
3についての開始時間を得る。
【0220】開始時間のセットの合体には次の式:ST
h=( ̄(STh)・g)+(v−1) を用いる。ここに、 ̄(STh) はタスク ̄Th ∈Sv に
ついての開始時間、そして1≦v≦gである。Th につ
いての合体された開始時間は、次に呼び出し側プログラ
ムに返される。
h=( ̄(STh)・g)+(v−1) を用いる。ここに、 ̄(STh) はタスク ̄Th ∈Sv に
ついての開始時間、そして1≦v≦gである。Th につ
いての合体された開始時間は、次に呼び出し側プログラ
ムに返される。
【0221】図25〜図27に、「スケジューリング
(S)点検手順」の例示流れ図を示す。この手順は、タ
イムスロットのアレイを形成して、サブタスクをこれら
のタイムスロットに、競合が生じないように割り当てる
ことによって、スケジューリング可能かどうかを定め
る。図25に示すように、ステップ1200において
「S点検手順」が、データをサブグループG4に属する
タスクTh 及び値Fとして読み取る。
(S)点検手順」の例示流れ図を示す。この手順は、タ
イムスロットのアレイを形成して、サブタスクをこれら
のタイムスロットに、競合が生じないように割り当てる
ことによって、スケジューリング可能かどうかを定め
る。図25に示すように、ステップ1200において
「S点検手順」が、データをサブグループG4に属する
タスクTh 及び値Fとして読み取る。
【0222】ステップ1201において「S点検手順」
が、0〜g−1の番号を付したg個のタイムスロットを
有するアレイを形成する。値gはサブグループG4の周
期の最大公約数に等しい。ステップ1205において、
各タイムスロットに「空き」とマークする。これは、こ
れらのタイムスロットにサブタスクが割り当てられてい
ないことを意味する。
が、0〜g−1の番号を付したg個のタイムスロットを
有するアレイを形成する。値gはサブグループG4の周
期の最大公約数に等しい。ステップ1205において、
各タイムスロットに「空き」とマークする。これは、こ
れらのタイムスロットにサブタスクが割り当てられてい
ないことを意味する。
【0223】ステップ1210〜1250において「S
点検手順」が、次の2つの条件が成立するように各タス
ク及びそのサブタスクをタイムスロットアレイに割り当
てることを試みる。これら2つの条件は、(1)もし或
るタスクの或るサブタスクがタイムスロットjに割り当
てられた場合、そのタスクの次のサブタスク(もしある
場合)がタイムスロット(j+F)mod g ;及び
(2)異なるタスクに属する2個のサブタスクが同じタ
イムスロットに割り当てられることがない、という条件
である。
点検手順」が、次の2つの条件が成立するように各タス
ク及びそのサブタスクをタイムスロットアレイに割り当
てることを試みる。これら2つの条件は、(1)もし或
るタスクの或るサブタスクがタイムスロットjに割り当
てられた場合、そのタスクの次のサブタスク(もしある
場合)がタイムスロット(j+F)mod g ;及び
(2)異なるタスクに属する2個のサブタスクが同じタ
イムスロットに割り当てられることがない、という条件
である。
【0224】上記2つの条件を満足させるようなサブタ
スクのタイムスロットへの割り当ては、有効な割り当て
である。
スクのタイムスロットへの割り当ては、有効な割り当て
である。
【0225】ステップ1210において、タスクTh ∈
G4がサブタスクの個数wh の降順に並べられる。ステ
ップ1215において各タスクTh ∈G4についてルー
プ1215が開始される。具体的には、ループ1215
が各タスクTh ∈G2−yについてのサブタスクrを個
々に並べ順に、ステップ1201で形成されたアレイの
タイムスロットjに割り当てる(j=0,...,g−
1)。
G4がサブタスクの個数wh の降順に並べられる。ステ
ップ1215において各タスクTh ∈G4についてルー
プ1215が開始される。具体的には、ループ1215
が各タスクTh ∈G2−yについてのサブタスクrを個
々に並べ順に、ステップ1201で形成されたアレイの
タイムスロットjに割り当てる(j=0,...,g−
1)。
【0226】ステップ1220において、タイムスロッ
ト0がサブタスクrを割り当てられる最初のタイムスロ
ットになるように、値jをゼロに設定することによっ
て、ループ1215が開始される。
ト0がサブタスクrを割り当てられる最初のタイムスロ
ットになるように、値jをゼロに設定することによっ
て、ループ1215が開始される。
【0227】ステップ1225においてループ1225
が各タイムスロットj<gの全てに対して開始される。
具体的には、ループ1225が、ループ1215の現タ
スクTh に属する各サブタスクrの全てについて、タイ
ムスロット(j+k・F)mod g がサブタスクrを
割り当てる空きがあるかどうかを累進的に点検する(k
=r−1、すなわちk=0,...,wh−1)。
が各タイムスロットj<gの全てに対して開始される。
具体的には、ループ1225が、ループ1215の現タ
スクTh に属する各サブタスクrの全てについて、タイ
ムスロット(j+k・F)mod g がサブタスクrを
割り当てる空きがあるかどうかを累進的に点検する(k
=r−1、すなわちk=0,...,wh−1)。
【0228】図26に示すように、ステップ1230に
おいて、並べ順に第1のタスクTh、すなわち最大個数
のサブタスクを有するタスク、の第1のサブタスクrが
第1のタイムスロット0に割り当てられるように、値k
をゼロに設定することによって、ループ1225が開始
される。
おいて、並べ順に第1のタスクTh、すなわち最大個数
のサブタスクを有するタスク、の第1のサブタスクrが
第1のタイムスロット0に割り当てられるように、値k
をゼロに設定することによって、ループ1225が開始
される。
【0229】ステップ1235及び1240においてル
ープ1235が、各サブタスクrの全て(第1のサブタ
スクを除く)すなわちk<wh−1 について開始され、
現タスクTh に属するサブタスクrが、ループ1225
におけるjの現値についてのタイムスロット(j+k・
F)mod g に対して割り当て可能かどうかが定めら
れる。
ープ1235が、各サブタスクrの全て(第1のサブタ
スクを除く)すなわちk<wh−1 について開始され、
現タスクTh に属するサブタスクrが、ループ1225
におけるjの現値についてのタイムスロット(j+k・
F)mod g に対して割り当て可能かどうかが定めら
れる。
【0230】もし「S点検手順」が、ステップ1240
において、ループ1235における現サブタスクrがj
の現値についてのタイムスロット(j+k・F)mod
gへの割り当てに成功すると定めた場合、「S点検手
順」は次のサブタスクrについて同じjの値でループ1
235を再び実行する。
において、ループ1235における現サブタスクrがj
の現値についてのタイムスロット(j+k・F)mod
gへの割り当てに成功すると定めた場合、「S点検手
順」は次のサブタスクrについて同じjの値でループ1
235を再び実行する。
【0231】他方もし「S点検手順」が、ループ123
5の現サブタスクrのタイムスロット(j+k・F)m
od g への割り当てができないと定めた場合には、
「S点検手順」はループ1235を出てステップ124
5に進み、ここで、jの現値がj+1に更新される。次
にステップ1250において、もし「S点検手順」が、
更新されたjの現値、すなわちj+1が値gに等しいと
定めた場合、ループ1225は終結し、ステップ125
5において「スケジューリング不可能」のメッセージが
呼び出し側プログラムに返される。
5の現サブタスクrのタイムスロット(j+k・F)m
od g への割り当てができないと定めた場合には、
「S点検手順」はループ1235を出てステップ124
5に進み、ここで、jの現値がj+1に更新される。次
にステップ1250において、もし「S点検手順」が、
更新されたjの現値、すなわちj+1が値gに等しいと
定めた場合、ループ1225は終結し、ステップ125
5において「スケジューリング不可能」のメッセージが
呼び出し側プログラムに返される。
【0232】もし更新されたjの現値、すなわちj+1
が値gに等しくない場合には、「S点検手順」はステッ
プ1250からステップ1225に戻り、ここで、更新
されたjの現値についてのタイムスロット(j+k・
F)mod g が、ループ1215の現タスクTh に属
するサブタスクrを割り当てる空きがあるかどうかを定
める。
が値gに等しくない場合には、「S点検手順」はステッ
プ1250からステップ1225に戻り、ここで、更新
されたjの現値についてのタイムスロット(j+k・
F)mod g が、ループ1215の現タスクTh に属
するサブタスクrを割り当てる空きがあるかどうかを定
める。
【0233】もしループ1215の現タスクTh のサブ
タスクrについてループ1235が成功裡に完了した場
合、「S点検手順」は、対応するタイムスロット(j+
k・F)mod g がjの現値について空きがあると定
めたことになる。これにより、「S点検手順」は、ステ
ップ1235からステップ1260に進み、ここで、現
タスクTh のサブタスクrがタイムスロット(j+k・
F)mod g に割り当てられる。
タスクrについてループ1235が成功裡に完了した場
合、「S点検手順」は、対応するタイムスロット(j+
k・F)mod g がjの現値について空きがあると定
めたことになる。これにより、「S点検手順」は、ステ
ップ1235からステップ1260に進み、ここで、現
タスクTh のサブタスクrがタイムスロット(j+k・
F)mod g に割り当てられる。
【0234】次に「S点検手順」はステップ1265に
おいて、サブグループG4内の次のタスクTh について
ループ1215を再び実行するよう命令される。「スケ
ジューリング不可能」のメッセージを返すことなく各タ
スクTh ∈G4の全てについてループ1215を完了
後、「S点検手順」はステップ1270に進み、ここ
で、各タスクTh ∈G4の最初のサブタスクについての
開始時間を「TS手順2」に返す。
おいて、サブグループG4内の次のタスクTh について
ループ1215を再び実行するよう命令される。「スケ
ジューリング不可能」のメッセージを返すことなく各タ
スクTh ∈G4の全てについてループ1215を完了
後、「S点検手順」はステップ1270に進み、ここ
で、各タスクTh ∈G4の最初のサブタスクについての
開始時間を「TS手順2」に返す。
【0235】以上の説明は、本発明の実施例による例示
を目的とし、本発明をビデオ・サービスにおけるノン・
プリエンプティブなタスクの周期的スケジューリングに
関する特定の実施例について記述したものであるが、こ
れによって本発明の適用がビデオ・サービスに限定され
るものではなく、あくまで本発明の一般原理を述べるた
めに適用分野の一例として例示したに過ぎない。この技
術分野の当業者であれば、本発明の種々の変形例あるい
は他分野への適用を考え得るが、それらはいずれも本発
明の技術的範囲に包含される。
を目的とし、本発明をビデオ・サービスにおけるノン・
プリエンプティブなタスクの周期的スケジューリングに
関する特定の実施例について記述したものであるが、こ
れによって本発明の適用がビデオ・サービスに限定され
るものではなく、あくまで本発明の一般原理を述べるた
めに適用分野の一例として例示したに過ぎない。この技
術分野の当業者であれば、本発明の種々の変形例あるい
は他分野への適用を考え得るが、それらはいずれも本発
明の技術的範囲に包含される。
【0236】
【発明の効果】以上述べたごとく、本発明によれば、新
方式のストライピング処理を用いるので、強化ペイ・パ
ー・ビュー方式を用いるビデオ・サーバ上でビデオのス
ケジューリング行う際に、新たなビデオ・ストリームを
開始させる正確なスケジュールを、従来技術と異なり、
非常に容易に設定できる。又、同時に伝送されるように
スケジューリングされたビデオ・ストリームの個数が、
そのビデオ・サーバによるサポートが可能な同時伝送ビ
デオ・ストリームの最大数を超えないように、スケジュ
ーリングすることが可能である。
方式のストライピング処理を用いるので、強化ペイ・パ
ー・ビュー方式を用いるビデオ・サーバ上でビデオのス
ケジューリング行う際に、新たなビデオ・ストリームを
開始させる正確なスケジュールを、従来技術と異なり、
非常に容易に設定できる。又、同時に伝送されるように
スケジューリングされたビデオ・ストリームの個数が、
そのビデオ・サーバによるサポートが可能な同時伝送ビ
デオ・ストリームの最大数を超えないように、スケジュ
ーリングすることが可能である。
【0237】このように、従来は処理が複雑であった強
化ペイ・パー・ビュー方式におけるビデオのスケジュー
リングを効率よく容易に行うことが可能となる。
化ペイ・パー・ビュー方式におけるビデオのスケジュー
リングを効率よく容易に行うことが可能となる。
【図1】本発明に基づく、ビデオ・オン・デマンド・サ
ービスを提供するためのビデオ・サーバを示すブロック
図である。
ービスを提供するためのビデオ・サーバを示すブロック
図である。
【図2】ディスク・ストライピングの例示説明図である
【図3】ビデオVi を格納し、取り出すための「きめを
細かくした(FG)」ディスク・ストライピング手法の
例示説明図である
細かくした(FG)」ディスク・ストライピング手法の
例示説明図である
【図4】ビデオVi を格納し、取り出すための第1の
「きめを粗くした(CG)」ディスク・ストライピング
手法の例示説明図である
「きめを粗くした(CG)」ディスク・ストライピング
手法の例示説明図である
【図5】ビデオVi を格納し、取り出すための第2の
「きめを粗くした(CG)」ディスク・ストライピング
手法の例示説明図である
「きめを粗くした(CG)」ディスク・ストライピング
手法の例示説明図である
【図6】ビデオ・サーバにおいて計算時間Ci 及び周期
Pi を有するタスクをスケジューリングするための手順
の例示流れ図である(図6〜図10で構成)。
Pi を有するタスクをスケジューリングするための手順
の例示流れ図である(図6〜図10で構成)。
【図7】ビデオ・サーバにおいて計算時間Ci 及び周期
Pi を有するタスクをスケジューリングするための手順
の例示流れ図である(図6〜図10で構成)。
Pi を有するタスクをスケジューリングするための手順
の例示流れ図である(図6〜図10で構成)。
【図8】ビデオ・サーバにおいて計算時間Ci 及び周期
Pi を有するタスクをスケジューリングするための手順
の例示流れ図である(図6〜図10で構成)。
Pi を有するタスクをスケジューリングするための手順
の例示流れ図である(図6〜図10で構成)。
【図9】ビデオ・サーバにおいて計算時間Ci 及び周期
Pi を有するタスクをスケジューリングするための手順
の例示流れ図である(図6〜図10で構成)。
Pi を有するタスクをスケジューリングするための手順
の例示流れ図である(図6〜図10で構成)。
【図10】ビデオ・サーバにおいて計算時間Ci 及び周
期Pi を有するタスクをスケジューリングするための手
順の例示流れ図である(図6〜図10で構成)。
期Pi を有するタスクをスケジューリングするための手
順の例示流れ図である(図6〜図10で構成)。
【図11】「定理1」の有効性を証明する例示説明図で
ある。
ある。
【図12】周期よりも長い計算時間を有する図6〜図1
0におけるタスクグループをスケジューリングするため
の手順の例示流れ図である(図12〜図15で構成)。
0におけるタスクグループをスケジューリングするため
の手順の例示流れ図である(図12〜図15で構成)。
【図13】周期よりも長い計算時間を有する図6〜図1
0におけるタスクグループをスケジューリングするため
の手順の例示流れ図である(図12〜図15で構成)。
0におけるタスクグループをスケジューリングするため
の手順の例示流れ図である(図12〜図15で構成)。
【図14】周期よりも長い計算時間を有する図6〜図1
0におけるタスクグループをスケジューリングするため
の手順の例示流れ図である(図12〜図15で構成)。
0におけるタスクグループをスケジューリングするため
の手順の例示流れ図である(図12〜図15で構成)。
【図15】周期よりも長い計算時間を有する図6〜図1
0におけるタスクグループをスケジューリングするため
の手順の例示流れ図である(図12〜図15で構成)。
0におけるタスクグループをスケジューリングするため
の手順の例示流れ図である(図12〜図15で構成)。
【図16】タスクグループを分割するための手順の例示
流れ図である(図16〜図19で構成)。
流れ図である(図16〜図19で構成)。
【図17】タスクグループを分割するための手順の例示
流れ図である(図16〜図19で構成)。
流れ図である(図16〜図19で構成)。
【図18】タスクグループを分割するための手順の例示
流れ図である(図16〜図19で構成)。
流れ図である(図16〜図19で構成)。
【図19】タスクグループを分割するための手順の例示
流れ図である(図16〜図19で構成)。
流れ図である(図16〜図19で構成)。
【図20】各々が単位計算時間と周期Ph と時間間隔F
とを有するサブタスク、からなるタスクをスケジューリ
ングするための手順の例示流れ図である(図20〜図2
2で構成)。
とを有するサブタスク、からなるタスクをスケジューリ
ングするための手順の例示流れ図である(図20〜図2
2で構成)。
【図21】各々が単位計算時間と周期Ph と時間間隔F
とを有するサブタスク、からなるタスクをスケジューリ
ングするための手順の例示流れ図である(図20〜図2
2で構成)。
とを有するサブタスク、からなるタスクをスケジューリ
ングするための手順の例示流れ図である(図20〜図2
2で構成)。
【図22】各々が単位計算時間と周期Ph と時間間隔F
とを有するサブタスク、からなるタスクをスケジューリ
ングするための手順の例示流れ図である(図20〜図2
2で構成)。
とを有するサブタスク、からなるタスクをスケジューリ
ングするための手順の例示流れ図である(図20〜図2
2で構成)。
【図23】1個未満のプロセッサ上でスケジューリング
可能な図20〜図22におけるタスクグループをスケジ
ューリングするための手順の例示流れ図である(図23
〜図24で構成)。
可能な図20〜図22におけるタスクグループをスケジ
ューリングするための手順の例示流れ図である(図23
〜図24で構成)。
【図24】1個未満のプロセッサ上でスケジューリング
可能な図20〜図22におけるタスクグループをスケジ
ューリングするための手順の例示流れ図である(図23
〜図24で構成)。
可能な図20〜図22におけるタスクグループをスケジ
ューリングするための手順の例示流れ図である(図23
〜図24で構成)。
【図25】一連のタイムスロットを用いて、図20〜図
22におけるタスクをスケジューリングするための手順
の例示流れ図である(図25〜図27で構成)。
22におけるタスクをスケジューリングするための手順
の例示流れ図である(図25〜図27で構成)。
【図26】一連のタイムスロットを用いて、図20〜図
22におけるタスクをスケジューリングするための手順
の例示流れ図である(図25〜図27で構成)。
22におけるタスクをスケジューリングするための手順
の例示流れ図である(図25〜図27で構成)。
【図27】一連のタイムスロットを用いて、図20〜図
22におけるタスクをスケジューリングするための手順
の例示流れ図である(図25〜図27で構成)。
22におけるタスクをスケジューリングするための手順
の例示流れ図である(図25〜図27で構成)。
10 ビデオ・サーバ 11−1〜11−p プロセッサ 12 RAMバッファ・メモリ 13 データ格納ユニット 13−1〜13−m ディスク 14 ネットワーク 15 受信者(顧客) 16 ビデオ 22−1〜22−z、32−1〜32−w・m、42−
1〜42−w・m、52−1〜52−w・m、 ストラ
イプ・ユニット 30−1〜30−m、40−1〜40−m、50−1〜
50−m ディスク 70 スケジュール
1〜42−w・m、52−1〜52−w・m、 ストラ
イプ・ユニット 30−1〜30−m、40−1〜40−m、50−1〜
50−m ディスク 70 スケジュール
───────────────────────────────────────────────────── フロントページの続き (71)出願人 596077259 600 Mountain Avenue, Murray Hill, New Je rsey 07974−0636U.S.A. (72)発明者 ラジーフ ラストギー アメリカ合衆国,07974 ニュージャージ ー,ニュー プロヴィデンス,リヴィング ストン アヴェニュー 229 (72)発明者 アブラハム シルバースチャッツ アメリカ合衆国,07901 ニュージャージ ー,ユニオン,ニュー イングランド ア ヴェニュー 67エー
Claims (29)
- 【請求項1】 第1のプロセッサ・サブグループを有す
るサーバ装置上で、ノン・プリエンプティブなタスクグ
ループを周期的にスケジューリングするための、タスク
スケジューリング方法であって、該タスクが、予め定め
られた周期Pで始まり、且つ時間間隔Fによって隔てら
れたw個のサブタスクを有し、該ノン・プリエンプティ
ブなタスクグループが、単一のプロセッサ上で個別にス
ケジューリングすることが可能な第1のクラスのタスク
からなる、ようなタスクグループスケジューリング方法
において、該方法が、 前記第1のクラスのタスクを1個以上のタスク素セット
に分割するステップと、 もし異なるタスクに属する2個以上のサブタスクが同じ
タイムスロットに割り当てられない場合に前記第1のク
ラスのタスクはスケジューリングすることが可能である
と定義したときに、前記タスクについての周期Pの最大
公約数を用いて前記第1のクラスのタスクをスケジュー
リングすることが可能であるかどうかを判断するステッ
プと、からなることを特徴とする、タスクグループスケ
ジューリング方法。 - 【請求項2】 前記第1のクラスのタスクをスケジュー
リングすることが可能であるかどうかを判断する前記ス
テップが、 gが或るタスク素セット内のタスクについての周期Pの
最大公約数を表すと定義したときに、g個のタイムスロ
ットからなるタイムスロット部分内で該タスク素セット
をスケジューリングすることが可能であるかどうかを判
断するステップからなることを特徴とする請求項1の方
法。 - 【請求項3】 前記タスク素セットをスケジューリング
することが可能であるかどうかを判断する前記ステップ
が、 もし或るタイムスロットがサブタスクを割り当てられて
いない場合に該タイムスロットは空きであると定義した
ときに、g個のタイムスロットからなる前記タイムスロ
ット部分内のタイムスロットが空きでサブタスクを割り
当てることが可能であるかどうかを判断するステップか
らなる、ことを特徴とする請求項2の方法。 - 【請求項4】 前記タスク素セットをスケジューリング
することが可能であるかどうかを判断する前記ステップ
が、 r=1,...,w、 k=r−1、j’が0とg−1
との間の予め定められた値、であると定義したときに、
g個のタイムスロットからなる前記タイムスロット部分
内の空きタイムスロット(j’+F・k)mod g
に、或るタスク素セット内の第1のタスクのサブタスク
rを割り当てるステップからなる、ことを特徴とする請
求項2の方法。 - 【請求項5】 前記第1のタスクが、最大個数のサブタ
スクrを有する前記タスク素セット内のタスクであるこ
とを特徴とする請求項4の方法。 - 【請求項6】 前記タスク素セットをスケジューリング
することが可能であるかどうかを判断する前記ステップ
が、 jが、前記予め定められた値j’を除く0とg−1との
間の値、であると定義したときに、前記タスク素セット
内の別のタスクのサブタスクrを割り当てられていない
タイムスロット(j+F・k)mod g が、空きで該
サブタスクrを割り当てることが可能であるかどうかを
判断するステップからなる、ことを特徴とする請求項4
の方法。 - 【請求項7】 前記タスク素セットをスケジューリング
することが可能であるかどうかを判断する前記ステップ
が、 もし前記タイムスロット(j+F・k)mod g が空
きである場合に、前記タイムスロット(j+F・k)m
od g に、前記タスク素セット内の前記別のタスクの
前記サブタスクrを割り当てるステップからなる、こと
を特徴とする請求項6の方法。 - 【請求項8】 前記タスク素セットをスケジューリング
することが可能であるかどうかを判断する前記ステップ
が、 前記タイムスロット(j+F・k)mod g が空きで
あるかどうかを判断する前記ステップと、前記別のタス
クの前記サブタスクrを割り当てる前記ステップとを、
割り当てられていないサブタスクrが残らなくなるまで
反復するステップからなることを特徴とする請求項7の
方法。 - 【請求項9】 前記タスク素セットをスケジューリング
することが可能であるかどうかを判断する前記ステップ
が、 前記タスク素セット内の前記タスクを分類してw個のサ
ブタスクrによる分類順序を形成するステップからなる
ことを特徴とする請求項7の方法。 - 【請求項10】 前記タスク素セット内の前記タスクの
前記サブタスクrが、前記分類順序によって前記タイム
スロット(j+F・k)mod g に割り当てられるこ
とを特徴とする請求項9の方法。 - 【請求項11】 前記方法が更に、 前記サブタスクrが、割り当てられた前記タイムスロッ
トを用いて前記サブタスクrをスケジューリングするス
テップからなることを特徴とする請求項7の方法。 - 【請求項12】 前記方法が更に、 前記サブタスクのスケジュールを合体させて前記第1の
クラスのタスク内の前記タスクについてのスケジュール
を得るステップからなることを特徴とする請求項11の
方法。 - 【請求項13】 前記タスク素セットをスケジューリン
グすることが可能であるかどうかを判断する前記ステッ
プが、 もしgが1よりも大きく且つ前記タイムスロット(j+
F・k)mod g が空きでない場合に、周期Pと時間
間隔Fによって隔てられたサブタスクとを有する前記タ
スク素セットを、周期P/gと時間間隔F/gによって
隔てられたサブタスクとを有するg個のタスク素サブセ
ットに分割するステップからなることを特徴とする請求
項6の方法。 - 【請求項14】 前記方法が更に、 もし或るタスクに属する2個以上のサブタスクが同じタ
イムスロットに割り当てられない場合にそのタスクは単
一のプロセッサ上でスケジューリングすることが可能で
あると定義したときに、或るタスクを単一のプロセッサ
上でスケジューリングすることが可能であるかどうかを
判断するステップからなることを特徴とする請求項1の
方法。 - 【請求項15】 もし或るタスクに属する2個以上のサ
ブタスクが同じタイムスロットに割り当てられる場合に
そのタスクは単一のプロセッサ上でスケジューリングす
ることが可能でないと定義したときに、前記ノン・プリ
エンプティブなタスクグループが、単一のプロセッサ上
でスケジューリングすることが可能でない第2のクラス
のタスクからなることを特徴とする請求項1の方法。 - 【請求項16】 前記方法が更に、 サブタスクrの各々について数式((r−1)・F)m
od P によって最も頻繁に得られる値を用いて前記第
2のクラスのタスクによって要求されるプロセッサの個
数を計算するステップからなることを特徴とする請求項
15の方法。 - 【請求項17】 前記方法が更に、 前記第2のクラスのタスク内の各タスクについて、予め
定められた開始時刻をスケジューリングするステップか
らなることを特徴とする請求項15の方法。 - 【請求項18】 前記タスクが、計算時間を有し、 前記第1のクラスのタスクを分割する前記ステップが、 前記タスク素セット内の前記周期の最大公約数からその
タスク素セット内の前記計算時間の和を差し引くことに
よって余裕値が定められると定義されるとき、前記タス
ク素セットについての余裕値が最大になるように前記タ
スクを前記タスク素セットに割り当てるステップからな
ることを特徴とする請求項1の方法。 - 【請求項19】 前記タスクが、計算時間を有し、 前記第1のクラスのタスクを分割する前記ステップが、 第1のタスクが、もし第1の空きタスク素セットに割り
当てられた場合に前記第1のクラスのタスク内の他のタ
スクについての余裕値より小さいか等しい余裕値を与え
るような、前記第1のクラスのタスク内のタスクである
と定義され、該余裕値が、前記タスク素セット内の前記
周期の最大公約数からそのタスク素セット内の前記計算
時間の和を差し引くことによって定められると定義され
るときに、該第1のタスクを、該第1の空きタスク素セ
ットに割り当てるステップと、 前記第1のクラスのタスク内の割り当てられていないタ
スクが、もし空きでないタスク素セットに割り当てられ
た場合に前記第1のクラスのタスク内の割り当てられて
いないタスクについての余裕値より小さいか等しい余裕
値を与えるように、該割り当てられていないタスクを、
空きタスク素セットに割り当てるステップと、 前記割り当てられていないタスクを割り当てるステップ
を、空きタスク素セットが残らなくなるまで反復するス
テップと、 前記第1のクラスのタスク内の割り当てられていない又
は指定されていないタスクが指定された、空きでないタ
スク素セットが、もし該割り当てられていない又は指定
されていないタスクが他の空きでないタスク素セットに
指定された場合に最大の余裕値を与えるタスク素セット
であるように、該割り当てられていない又は指定されて
いないタスクを該空きでないタスク素セットに指定する
ステップと、 割り当てられていない又は指定されていないタスクを指
定する前記ステップを、前記第1のクラスのタスク内の
全てのタスクが割り当てられ又は指定されてしまうまで
反復するステップと、からなることを特徴とする請求項
1の方法。 - 【請求項20】 前記第1のプロセッサ・サブグループ
がp”個のプロセッサを有し、もしp”が1より大きい
場合に前記第1のクラスのタスクがp”以下の個数のタ
スク素セットに分割される、ことを特徴とする請求項1
の方法。 - 【請求項21】 前記サーバ装置が、映像に対応するタ
スクを実行するためのビデオ・サーバであることを特徴
とする請求項1の方法。 - 【請求項22】 タスクを周期的にプログラミングする
ためのサーバ装置であって、該サーバ装置が第1のプロ
セッサ・サブグループからなり、該タスクが周期Piで
始まり、且つ時間間隔Fによって隔てられたw個のサブ
タスクを有するような、タスクプログラミング用サーバ
装置において、該装置が、 単一のプロセッサ上で個別にスケジューリングすること
が可能なタスクからなる第1のクラスのタスクを1個以
上のタスク素セットに分割するための手段と、 異なるタスクに属する2個以上のサブタスクが同じタイ
ムスロットに割り当てられるかどうかを、前記タスクに
ついての周期Pの最大公約数を用いて確認することによ
って、前記第1のクラスのタスクをスケジューリングす
ることが可能であるかどうかを判断するための手段と、
からなることを特徴とする、タスクプログラミング用サ
ーバ装置。 - 【請求項23】 前記第1のクラスのタスクをスケジュ
ーリングすることが可能であるかどうかを判断するため
の前記手段が、 gが或るタスク素セット内のタスクについての周期Pの
最大公約数を表すと定義したときに、g個のタイムスロ
ットからなるタイムスロット部分内で該タスク素セット
をスケジューリングすることが可能であるかどうかを判
断するための手段からなることを特徴とする請求項22
の装置。 - 【請求項24】 前記タスク素セットをスケジューリン
グすることが可能であるかどうかを判断するための前記
手段が、 r=1,...,w、 k=r−1、j’が0とg−1
との間の予め定められた値、であると定義したときに、
g個のタイムスロットからなる前記タイムスロット部分
内の空きであるタイムスロット(j’+F・k)mod
g に、或るタスク素セット内の第1のタスクのサブタ
スクrを割り当てるための手段からなることを特徴とす
る請求項23の装置。 - 【請求項25】 前記タスク素セットをスケジューリン
グすることが可能であるかどうかを判断するための前記
手段が、 jが、前記予め定められた値j’を除く0とg−1との
間の値、であると定義したときに、前記タスク素セット
内の別のタスクのサブタスクrを割り当てられていない
タイムスロット(j+F・k)mod g が、空きで該
サブタスクrを割り当てることが可能であるかどうかを
判断するための手段からなることを特徴とする請求項2
4の装置。 - 【請求項26】 前記装置が更に、 もし或るタスクに属する2個以上のサブタスクが同じタ
イムスロットに割り当てられない場合にそのタスクは単
一のプロセッサ上でスケジューリングすることが可能で
あると定義したときに、或るタスクを単一のプロセッサ
上でスケジューリングすることが可能であるかどうかを
判断するための手段からなることを特徴とする請求項2
2の装置。 - 【請求項27】 前記装置が更に、 サブタスクrの各々について、数式((r−1)・F)
mod P によって最も頻繁に得られる値を用いて、第
2のクラスのタスク内のタスクによって要求されるプロ
セッサの個数を計算するための手段からなり、該第2の
クラスのタスクが、単一のプロセッサ上でスケジューリ
ングすることが可能でないタスクからなることを特徴と
する請求項26の装置。 - 【請求項28】 前記第1のクラスのタスクを分割する
ための前記手段が、 前記タスク素セット内の前記周期の最大公約数からその
タスク素セット内の前記計算時間の和を差し引くことに
よって余裕値が定められると定義されるときに、前記タ
スク素セットについての余裕値が最大になるように前記
タスクを前記タスク素セットに割り当てるための手段か
らなることを特徴とする請求項22の装置。 - 【請求項29】 前記サーバ装置が、映像プログラミン
グに対応するタスクを実行するためのビデオ・サーバで
あることを特徴とする請求項22の装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US624011 | 1996-03-27 | ||
| US08/624,011 US5964829A (en) | 1996-03-27 | 1996-03-27 | Method and apparatus for providing enhanced pay per view in a video server employing a coarse-grained striping scheme |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1091466A true JPH1091466A (ja) | 1998-04-10 |
Family
ID=24500254
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9075054A Pending JPH1091466A (ja) | 1996-03-27 | 1997-03-27 | タスクスケジューリング方法及び装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5964829A (ja) |
| EP (1) | EP0798926A2 (ja) |
| JP (1) | JPH1091466A (ja) |
| CA (1) | CA2196471C (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001101150A (ja) * | 1999-09-30 | 2001-04-13 | Toshiba Corp | データ処理装置及びデータ処理方法 |
| JP2010516125A (ja) * | 2007-01-11 | 2010-05-13 | トムソン ライセンシング | コンテンツ通信のためのシステム及び方法 |
| JP2013211897A (ja) * | 2007-09-19 | 2013-10-10 | Chinese Univ Of Hong Kong | 要求応答並列ビデオサーバにおける負荷分散及び受付予定管理 |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000505983A (ja) * | 1996-12-23 | 2000-05-16 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ流を供給するための方法および系 |
| US6330609B1 (en) | 1997-11-07 | 2001-12-11 | Lucent Technologies, Inc. | Admission control system and method for media-on-demand servers |
| US6615408B1 (en) | 1999-01-15 | 2003-09-02 | Grischa Corporation | Method, system, and apparatus for providing action selections to an image referencing a product in a video production |
| US6473804B1 (en) * | 1999-01-15 | 2002-10-29 | Grischa Corporation | System for indexical triggers in enhanced video productions by redirecting request to newly generated URI based on extracted parameter of first URI |
| US6742019B1 (en) * | 1999-07-23 | 2004-05-25 | International Business Machines Corporation | Sieved caching for increasing data rate capacity of a heterogeneous striping group |
| US7606883B1 (en) | 2000-05-11 | 2009-10-20 | Thomson Licensing | Method and system for controlling and auditing content/service systems |
| US8037492B2 (en) * | 2000-09-12 | 2011-10-11 | Thomson Licensing | Method and system for video enhancement transport alteration |
| US6823394B2 (en) | 2000-12-12 | 2004-11-23 | Washington University | Method of resource-efficient and scalable streaming media distribution for asynchronous receivers |
| US7249357B2 (en) * | 2001-08-20 | 2007-07-24 | Silicon Graphics, Inc. | Transparent distribution and execution of data in a multiprocessor environment |
| WO2004090683A2 (en) * | 2003-03-31 | 2004-10-21 | Avaya Technology Corp. | System and method for efficient scheduling of periodic phenomena |
| US7643636B2 (en) | 2003-09-03 | 2010-01-05 | Motorola, Inc. | Managing multiple cryptographic periods in a single cryptographic group |
| US7594228B2 (en) * | 2003-09-23 | 2009-09-22 | Lam Siu H | Method and apparatus to perform task scheduling |
| DE102005010580A1 (de) * | 2005-03-04 | 2006-09-07 | Inchron Gmbh | Verfahren zur Echtzeitanalyse eines Systems |
| JP5308127B2 (ja) * | 2008-11-17 | 2013-10-09 | 株式会社豊田中央研究所 | 給電システム |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2723653B1 (fr) * | 1994-08-11 | 1996-09-13 | Cegelec | Procede pour ordonnancer des taches successives qui ne subissent que des contraintes du type delais |
-
1996
- 1996-03-27 US US08/624,011 patent/US5964829A/en not_active Expired - Fee Related
-
1997
- 1997-01-31 CA CA002196471A patent/CA2196471C/en not_active Expired - Fee Related
- 1997-03-25 EP EP97302046A patent/EP0798926A2/en not_active Withdrawn
- 1997-03-27 JP JP9075054A patent/JPH1091466A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001101150A (ja) * | 1999-09-30 | 2001-04-13 | Toshiba Corp | データ処理装置及びデータ処理方法 |
| JP2010516125A (ja) * | 2007-01-11 | 2010-05-13 | トムソン ライセンシング | コンテンツ通信のためのシステム及び方法 |
| US8732777B2 (en) | 2007-01-11 | 2014-05-20 | Thomson Licensing | System and method for content communication |
| JP2013211897A (ja) * | 2007-09-19 | 2013-10-10 | Chinese Univ Of Hong Kong | 要求応答並列ビデオサーバにおける負荷分散及び受付予定管理 |
| JP2013211896A (ja) * | 2007-09-19 | 2013-10-10 | Chinese Univ Of Hong Kong | 要求応答並列ビデオサーバにおける負荷分散及び受付予定管理 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0798926A2 (en) | 1997-10-01 |
| CA2196471A1 (en) | 1997-09-28 |
| CA2196471C (en) | 2001-07-24 |
| US5964829A (en) | 1999-10-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1051757A (ja) | ビデオ・サーバにおいて高度なペイパーヴュー方式を提供するための方法および装置 | |
| JPH1091466A (ja) | タスクスケジューリング方法及び装置 | |
| US6134596A (en) | Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates | |
| Tang et al. | On first fit bin packing for online cloud server allocation | |
| CN1957329B (zh) | 信号处理装置 | |
| Tseng et al. | Data broadcasting and seamless channel transition for highly demanded videos | |
| Ren et al. | Clairvoyant dynamic bin packing for job scheduling with minimum server usage time | |
| Tsai et al. | Two heuristics for scheduling multiple projects with resource constraints | |
| US12026518B2 (en) | Dynamic, low-latency, dependency-aware scheduling on SIMD-like devices for processing of recurring and non-recurring executions of time-series data | |
| CN109564528A (zh) | 分布式计算中计算资源分配的系统和方法 | |
| CN109800092A (zh) | 一种共享数据的处理方法、装置及服务器 | |
| CN112799820B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
| US5940865A (en) | Apparatus and method for accessing plural storage devices in predetermined order by slot allocation | |
| US20100030931A1 (en) | Scheduling proportional storage share for storage systems | |
| Breitgand et al. | Network aware virtual machine and image placement in a cloud | |
| CN109324886A (zh) | 集群资源调度方法和装置 | |
| CN119248669A (zh) | 一种npu异构平台的内存分配方法及装置 | |
| Garofalakis et al. | On periodic resource scheduling for continuous-media databases | |
| Ozden et al. | Periodic retrieval of videos from disk arrays | |
| Shahabi et al. | Continuous display of presentations sharing clips | |
| CN115934247A (zh) | 容器集合的分配方法及装置、非易失性存储介质 | |
| CN115204406A (zh) | 一种量子计算模拟方法、量子电路模拟器及相关设备 | |
| Chang et al. | 2D BubbleUp: Managing Parallel Disks for Media Servers. | |
| CN118656209B (zh) | 一种微服务负载均衡方法、装置、计算机设备及存储介质 | |
| CN119789226B (zh) | 支持周期性与非周期性机器用户共存的无线资源分配方法、装置及系统 |