(57)【特許請求の範囲】
【請求項１】
Ｎ個のエンティティの到着時刻である開始時刻ｓiを記憶する開始時刻メモリ(16)（Ｎは１以上の整数であり、エンティティはユーザからのセル、ｉは１以上Ｎ以下の整数であり、ｓiは、ｉ番目のエンティティがサーバからのサービスを最初に要求する時刻に対応する。）；
Ｎ個のエンティティの終了時刻ｆiを記憶する終了時刻メモリ(18)（ｆiは、ｉ番目のエンティティがサーバによりその時刻までにオペレートされるべき時刻に対応する。）；
開始時刻ｓiと終了時刻ｆiとを特定できるように時刻の経過を刻む仮想時計(20)；及び
各仮想時刻にて、最も早い終了時刻ｆiと、ある開始時刻ｓiとを有するエンティティが最初にオペレートされ、次に、もし終了時刻ｆiが同じならば、最も早い開始時刻ｓiか、若しくは最も高いＩＤ又はレートを有するエンティティが、次にオペレートされる、という順序で、サーバによりオペレートされるべきエンティティを選択して、エンティティを終了時刻ｆiの前にサーバによりオペレートするコントローラ(22)を具え、
該コントローラ(22)はエンティティの最も早い開始時刻ｓiが仮想時刻よりも遅ければ、該最も早い開始時刻ｓiへ仮想時刻を増加し、エンティティがサーバによりオペレートされたときは、仮想時刻の１単位分、仮想時刻を増加して、
Ｎ個のエンティティが、サーバによってオペレートされる時期を制御するスケジューラ装置。
【請求項２】
コントローラ(22)は、サーバからエンティティへのサービスを連続的に提供する、請求項１に記載のスケジューラ装置。
【請求項３】
エンティティがサーバからサービスを受取るとき、コントローラ(22)により、仮想時計(20)は、現在の仮想時刻を進める、請求項２に記載のスケジューラ装置。
【請求項４】
開始時刻メモリ(16)は、開始時刻優先キューを含み、終了時刻メモリ(18)は、終了時刻優先キューを含む、請求項３に記載のスケジューラ装置。
【請求項５】
ユーザと接続され、且つサーバによってオペレートされるためのエンティティを受取る、要素プールを具え、該要素プールにおいて、エンティティの到着時刻ｓiは、ｉ番目のエンティティが要素プールに到着する時刻に対応し、終了時刻ｆiは、ｉ番目のエンティティが、要素プールを離れて、サーバによりその時刻までにオペレートされるべき時刻に対応し、且つコントローラ(22)は、要素プールからサーバへエンティティを転送する、請求項４に記載のスケジューラ装置。
【請求項６】
仮想時計の時刻を制御し、且つ、要素プールにおけるエンティティと、開始時刻優先キュー及び終了時刻優先キューにおける夫々の開始時刻ｓi及び終了時刻ｆiとを記憶するために、コントローラ(22)は、仮想時計、要素プール、開始時刻メモリ(16)及び終了時刻メモリ(18)へ接続される、請求項５に記載のスケジューラ装置。
【請求項７】
コントローラ(22)は、最も早い終了時刻ｆiを有するエンティティが唯１つしかなければ、最も早い終了時刻ｆiと、ある開始時刻ｓiとを有するエンティティを要素プールの外へ転送し、そうでない場合は、最も早い開始時刻ｓiを有するエンティティを要素プールの外へ転送し、且つ、終了時刻ｆiより前にエンティティを転送する請求項６に記載のスケジューラ装置。
【請求項８】
Ｎ個のエンティティ（Ｎは１以上の整数であり、エンティティはユーザからのセル）がサーバ(14)からのサービスを要求する工程；
Ｎ個の各エンティティがサーバ(14)からのサービスを要求する開始時刻ｓiと、Ｎ個の各エンティティがサーバによるサービスを完了すべき終了時刻ｆiとをサーバ(14)に連繋したメモリ内に記憶する工程；
及び或る仮想時刻にて、最も早い終了時刻ｆiを有するエンティティが唯１つしかなければ、サーバ(14)はＮ個のエンティティのうち、最も早い終了時刻ｆiを有するエンティティにサービスを提供し、そうでない場合、サーバ(14)は、最も早い開始時刻ｓiを有するエンティティにサービスを提供し、且つ、その終了時刻ｆiより前にエンティティへのサービスを提供する工程を具え、
サーバがエンティティへのサービスを提供する時期をスケジュールする方法。
【請求項９】
サービスを提供する工程の後に、サーバからのサービスを要求している他のエンティティに関して、該提供する工程を仮想時刻を進めて繰返す工程が存在する、請求項８に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばコンピュータネットワークにおける、スケジューラ（scheduler）に関する。特に、本発明は、エンティティ（entity）が、その終了時刻前に、サーバ(server)からサービスを受取ることができるスケジューラに関する。
【０００２】
【従来の技術】
利用可能なリソースを多種多様なユーザの間で共有しなければならない状況下では、過密問題がリソースの利用に関して起こり得る。非常に簡単に言うと、異なるユーザが所定のリソースを同時に使用したいが、該リソースの能力により一度に１ユーザにしかサービスの提供をできない時が存在し得る。この過密問題を制御するため、スケジューラが一般に利用されて、ユーザがサーバへアクセスする時期を規制する。
【０００３】
【発明が解決しようとする課題】
スケジューラは、ユーザにサーバへのアクセスを公平に提供し、その結果どのユーザも、そのニーズに見合った過度の遅れを経験しない様にすることが理想である。従来から、ユーザのニーズが非常に分散しているとき、スケジューラは、必ずしもユーザに対して公平ではなかった。多くの場合、比較的大きなニーズを有するユーザが待機したままであり、一方比較的小さいニーズを有するユーザが、サーバにより提供されている。また、その逆のこともある。
本発明は、より大きなニーズを有するユーザが、所定の時刻にサービスを要求しない時に、より小さいニーズを有するユーザが提供され得るように、ユーザのニーズに応じる方向を示す。
【０００４】
【課題を解決する為の手段】
本発明は、Ｎ個のエンティティがサーバによりサービスされる時期を制御するためのスケジューラに関する。ここで、Ｎは１以上の整数である。スケジューラは、開始時刻メモリを具え、該メモリは、Ｎ個のエンティティの開始時刻ｓiを記憶する。ここで、ｉは１以上Ｎ以下の整数であり、ｓiは、ｉ番目のエンティティがサーバからのサービスを要求する時刻に対応する。また、スケジューラは、終了時刻メモリを具え、該メモリは、Ｎ個のエンティティの終了時刻ｆiを記憶する。ここで、ｆiは、ｉ番目のエンティティがサーバによりサービスされるべき時刻に対応する。また、スケジューラは、仮想時計（virtual clock）を具え、該時計は、開始時刻ｓi及び終了時刻ｆiを特定できるように、時刻の経過を刻む。さらに、スケジューラは、コントローラを具え、該コントローラは、以下のような順序でエンティティを選択して、サーバからサービスを受取る。すなわち、最も早い終了時刻ｆiと、ある開始時刻ｓiとを有するエンティティが最初にサービスされ、もし終了時刻が同じならば、次に最も早いまたは最も遅い開始時刻ｓi、若しくは、最も高いまたは最も低いＩＤまたはレート（rate）を有するエンティティが、各所定時刻でサービスされる、という順序である。後者から明らかなように、もしエンティティの終了時刻が同じならば、どのエンティティがサーバへ提供されて、オペレートされるべきかを示すために、どのようなプロトコルが希望されようとも、それは、オペレータが自由に選択すべきことである。
【０００５】
本発明は、サーバがサービスをエンティティへ提供する時期をスケジュールする方法に関する。該方法は、Ｎ個のエンティティによって、サーバからのサービスを要求する工程を具え、ここで、Ｎは１以上の整数である。次に、Ｎ個のエンティティがそれぞれサービスを要求し始める時期と、Ｎ個のエンティティがそれぞれサービスを受取完了すべき時期を記憶する工程がある。次に、もし、最も早い受取時刻を有するエンティティが唯１つしか無ければ、Ｎ個のエンティティのうち最も早い受取時刻と、ある開始時刻を有するエンティティへサービスを提供し、そうでなければ、最も早い開始時刻を有するエンティティが、多分その受取時刻の前に、サービスを受取る工程がある。
【０００６】
本発明は、それぞれが重みｗを有するＮ個のエンティティが、サーバにより提供を受ける時期をスケジュールするスケジューラに関する。ここで、Ｎは１以上の整数であり、ｗは実数である。スケジューラは、開始時刻メモリを具え、該メモリは、Ｎ個のエンティティがサービスを要求する開始時刻ｓiを記憶する。ここで、ｉは１以上Ｎ以下の整数であり、ｓiは、ｉ番目のエンティティがサーバからのサービスを次に得ることのできる時刻である。また、スケジューラは、終了時刻メモリを具え、該メモリは、Ｎ個のエンティティがサービスされるべき終了時刻ｆiを記憶する。ここで、ｆiは、その時刻までにｉ番目のエンティティがサーバによりサービスされるべき時刻である。また、スケジューラは、時間の経過Ｖkを刻む仮想時計を具え、ここで、ｋは０以上の整数で、且つ
0004263254.tif 000002
であり、ここで、ｓSminは、エンティティがサーバからのサービスを要求する時のなかで最も早い開始時刻であり；ｆFminは、サーバからのサービスを待機しているエンティティのなかで最も早い終了時刻であり；Ｖk-1は、サーバがエンティティに前回サービスを提供した仮想時刻であり；ＡＷ＝現在サービスを求めている全てのエンティティにわたっての重みｗiの総和、ここで、ｗiはｉ番目のエンティティの重みであり；且つＰ、Ｘ、Ｔ、Ｙ及びＺは実数である。Ｐ＝１、Ｔ＝０、Ｘ＝１、Ｙ＝１及びＺ＝０が望ましいが、その応用及びその目的に基づいて、Ｔ及びＸの両方が０でない限り、ＴまたはＸの一方は、本質的に任意の実数となることができ；且つＹ及びＺの両方が０でない限り、ＹまたはＺの一方は、本質的に任意の実数となることができる。
【０００７】
また、スケジューラは、コントローラを具え、該コントローラは、どのエンティティがサーバによりオペレートされるべきかを以下のような順序で選択する。すなわち、最も早い終了時刻ｆiと、ある開始時刻ｓiとを有するエンティティが最初にサービスを受取り、次に、所定の基準に基づくエンティティという順序である。所定の基準とは、例えば最も早い開始時刻またはＩＤナンバーのような、本来、ユーザが適用を望む任意の形式のタイ−ブレーキング手法（tie-breaking procedure）であってもよい。
【０００８】
本発明は、サーバがサービスをエンティティへ提供する時期をスケジュールするための方法に関する。該方法は、最初のエンティティがサーバからのサービスを要求する時期を特定する工程を具える。次に、エンティティがサーバからのサービスを要求する時期の関数として、例えば最初のエンティティまたは２番目のエンティティのようなエンティティへ、サービスを提供する工程が存在する。
【０００９】
本発明は、サーバがサービスをエンティティへ提供する時期を制御するためのスケジューラに関する。該スケジューラは、メモリを具え、該メモリは、エンティティがサーバからのサービスを要求する時期の関数である時刻を記憶する。また、スケジューラは、仮想時計を具え、該時計は、エンティティがサーバからのサービスを要求する時期の関数として、時刻の経過を刻む。また、スケジューラはコントローラを具え、該コントローラにより、エンティティは、エンティティがサーバからのサービスを要求する時期の関数として、サーバからのサービスを受け取る。
【００１０】
【発明の実施の形態】
図中の同じ参照数字は、幾つかの図を通じて 、同じようなまたは一致した部分を示す。図面中、特に図１及び図２４において、スケジューラ(10)は、Ｎ個のエンティティ(12)がサーバ(14)によりオペレートされる時期を制御する。ここで、Ｎは１以上の整数である。スケジューラ(10)は、例えば優先キュー（queue）(16)のような、開始時刻メモリを具え、該メモリは、Ｎ個のエンティティの開始時刻ｓiを記憶する。ここで、ｉは１以上Ｎ以下の整数であり、ｓiは、ｉ番目のエンティティがサーバ(14)からのサービスを要求し始める時刻に一致する。また、スケジューラ(10)は、例えば優先キュー(18)のような、終了時刻メモリを具え、該メモリは、Ｎ個のエンティティ(12)の終了時刻ｆiを記憶する。ここで、ｆiは、ｉ番目のエンティティがサーバ(14)によりオペレートされるべき時刻に一致する。また、スケジューラ(10)は、仮想時計(20)を具え、該時計(20)は、開始時刻ｓi及び終了時刻ｆiを特定できるような時刻の経過を刻む。さらに、スケジューラ(10)は、コントローラ(22)を具え、該コントローラ(22)は、以下のような順序で、エンティティにサーバ(14)からのサービスを提供する。すなわち、最も早い終了時刻ｆiと、ある開始時刻ｓiとを有するエンティティが最初にオペレートされ、次に、もし終了時刻が同じならば、最も早いまたは最も遅い開始時刻ｓiを有するか、若しくは、最も高いまたは最も低いＩＤまたはレートを有するエンティティが、各所定時刻でオペレートされる、という順序である。後者から明らかなように、もしエンティティの終了時刻が同じならば、どのエンティティが、サーバ(14)へ提供されてオペレートされるべきかを示すために求められる任意のプロトコルを、オペレータが選択する。このときの処理の流れをフローチャートにて示したものが、図２５である。
【００１１】
スケジューラ(10)は、要素プール(24)を含み得るのが望ましく、該プール(24)は、Ｎ個のエンティティ(12)と接続され、該エンティティ(12)から、サーバ（１４）によりオペレートされるべき要素を受け取る。そのとき、要素の到着時刻ｓｉは、ｉ番目のエンティティ(12)が要素プール(24)に到着する時刻に対応し、終了時刻ｆiは、ｉ番目のエンティティ(12)が、要素プール(24)から離れて、サーバ(14)によりオペレートされるべき時刻に対応する。
【００１２】
コントローラ(22)は、サーバ(14)によりオペレートされるべき要素を、要素プール(24)から転送または選択する。コントローラ(22)は、仮想時計(20)、要素プール(24)、開始時刻優先キュー(16)及び終了時刻優先キュー(18)へ接続されるのが望ましい。これは、仮想時計(20)の時刻を制御し、要素プール(24)にエンティティを記憶し、且つ、開始時刻優先キュー(16)及び終了時刻優先キューに到着時刻ｓi及び終了時刻ｆiをそれぞれ記憶するためである。コントローラ(22)は、エンティティすなわち要素プール(24)の要素を、順次オペレートするのが望ましい。エンティティがサービスを受取るとき、すなわち要素が要素プール(24)を離れるときに、コントローラ(22)により、仮想時計(20)が現在の仮想時刻を進めるのが望ましい。もし、エンティティの最も早い開始時刻が仮想時刻よりも遅ければ、コントローラ(22)により、仮想時計(20)は、エンティティすなわち要素の最も早い開始時刻へ、仮想時刻を増加することができ、他の場合では、コントローラ(22)により、仮想時計(20)は、仮想時刻をその１単位分増加する。この要素プール(24)を有する実施形態において、コントローラ(22)は、もし、最も早い終了時刻ｆiを有する要素が唯１つしか無ければ、最も早い終了時刻ｆiと、ある開始時刻ｓiとを有する要素を、要素プール(24)の外へ転送する。そうでない場合、最も早い開始時刻ｓiを有する要素が、コントローラ(22)により要素プール(24)の外へ、且つ該終了時刻ｆiの前に転送されることが望ましい。
【００１３】
本発明は、それぞれが重みｗを有するＮ個のエンティティが、サーバ(14)によってサービスを提供される時期をスケジュールするのためのスケジューラ(10)に関する。ここでＮは１以上の整数であり、ｗは実数である。スケジューラ(10)は、開始時刻メモリ(16)を具え、該メモリ(16)は、Ｎ個のエンティティ(12)がサービスを要求するときに、開始時刻ｓiを記憶する。ここで、ｉは、１以上Ｎ以下の整数であり、ｓiは、ｉ番目のエンティティがサーバ(14)からのサービスを次に得てもよい時刻である。また、スケジューラ(10)は、終了時刻メモリ(18)を具え、該メモリ(18)は、Ｎ個のエンティティがサービスされるべきときに、終了時刻ｆiを記憶する。ここで、ｆiは、その時刻までにはｉ番目のエンティティがサーバ(14)によりサービスされるべき時刻である。また、スケジューラ(10)は、時刻Ｖkの経過を刻む仮想時計(20)を具え、ここで、ｋは０以上の整数であり、
0004263254.tif 000003
であり、ここで、ｓSminは、エンティティがサーバ(14)からサービスを要求する時期の最も早い開始時刻であり；ｆFminは、サーバ(14)からのサービスを待機しているエンティティの最も早い終了時刻であり；Ｖk-1は、サーバ(14)がエンティティに前回提供した仮想時刻であり；ＡＷ＝現在、サービスを求めている全てのエンティティにわたってのｗiの総和、ここで、ｗiはｉ番目のエンティティの重みであり；且つＰ、Ｘ、Ｔ、Ｙ及びＺは実数である。Ｐ＝１、Ｔ＝０、Ｘ＝１、Ｙ＝１及びＺ＝０が望ましいが、その応用とその目的に基づいて、Ｔ及びＸの両方が０でない限り、ＴまたはＸの一方は、本質的に任意の実数であり得；且つＹ及びＺの両方が０でない限り、ＹまたはＺの一方は、本質的に任意の実数であり得る。
【００１４】
また、スケジューラ(10)は、コントローラを具え、該コントローラは、どのエンティティがサーバ(14)によりオペレートされるべきかを、以下のような順序で選択する。すなわち、最も早い終了時刻ｆiと、ある開始時刻ｓiとを有するエンティティと、次に所定の基準に基づくエンティティという順序である。所定の基準とは、例えば最も早い開始時刻またはＩＤナンバー等のような、本質的に、ユーザが適用を望む任意の方式のタイ−ブレーキング手法となり得る。
【００１５】
より具体的には、ｗiは、ｉ番目のエンティティの"重み"であり、０より大きく１以下であるとする。ｗiは、ｉ番目のエンティティが具えているサーバ(14)の分数割当て（fractional share）を表わす（もしｗi＝１ならば、サーバ(14)は、全てｉ番目のエンティティに捧げられ、もしｗi＝0.5ならば、サーバの作業の1/2が、ｉ番目のエンティティに捧げられる）。
注意：この中で「１」は、サーバ(14)の作業の最大比率を表すために使用され、そのため、唯１つのエンティティに、サーバ(14)の能力の100％を超える重みを与えることは無意味である。
【００１６】
もし、エンティティが、どれ位の作業の実行をサーバ(14)に求めることができるかに関して、制限がなければ、全エンティティの重みの総和は、１以下であることが望ましい。これは、サーバ(14)の能力の100％以下を割当てることに等しい。もし、エンティティが、サーバの能力のある割合（ＲＳiとし、ＲＳi＜１である）以下の量を求めるようにある程度制限されれば、より一般的な記述は、以下のようになる。すなわち、
MIN(wi,RSi)の（全エンティティにわたっての）和は１よりも小さくあるべきである。
Ｗ＝全エンティティにわたってのｗiの総和、すなわち
【数１】
0004263254.tif 000004
とする。ＡＷ＝現在、サービスを求めている全エンティティにわたってのｗiの総和（すなわち、もし「Ｗ」がウェイト（Weight）の総和ならば、「ＡＷ」はアクティヴ・ウェイト（Active Weight）の総和である）、すなわち
【数２】
0004263254.tif 000005
とする。ここで、もしサービスを求めていなければ、ａi＝０であり、サービスを求めておれば、ａi＝１である。
【００１７】
さらに、ｓiは、ｉ番目のエンティティが次にサービスを得る時刻であり、ｆiは、その時刻までにはｉ番目のエンティティがサービスされるべき時刻である。
【００１８】
ｕiは、サーバが実際にｉ番目のエンティティのために働くときに、サーバがｉ番目のエンティティに与える作業の単位数とする（単純化するため、全てのエンティティに関して、ｕi＝１である場合を仮定する（パケットネットワークの場合において、これは、全てのパケットが同じサイズを有する場合、例えばＡＴＭセルの場合に等しい））。ｕiは、応用する時の状況に応じて異なってもよい。例えば、ｕiは、パケットに基づくネットワーク中にて、「１」と等しくなくても構わない。
【００１９】
Fmin（１＜Fmin＜Ｎ）＝最も小さい終了時刻を有するエンティティのＩＤ番号、とする（「最も小さい終了時刻を有するエンティティ」として与えられる全ての例は、「任意の必要とされるタイ・ブレーキング（tie breaking）に基づいて最初に終了すべきエンティティ」を意味すると解すること）。
その結果、ｆFmin＝最も小さい終了時刻を有するエンティティの終了時刻の値、である。
【００２０】
Smin（１＜＝Smin＜Ｎ）＝最も小さい開始時刻を有するエンティティのＩＤ番号、とする（ここで意味するものは、上記と同じである。すなわち、もしタイがあるならば、それらはある程度ブレークされると仮定せよ）。
その結果、ｓSmin＝最も小さい開始時刻を有するエンティティの開始時刻の値である。
【００２１】
Ｖkは、サーバが実際に作業をするｋ番目の時刻を示す。
0004263254.tif 000006
【００２２】
サーバ(14)が作業を実行する度に、サーバ(14)は、そのＩＤ番号がFminであるエンティティをサービスする。サーバは、オペレートするためにSminの値を知る必要はなく、ｓSminの値を知るだけでよい。
【００２３】
もう１つの式は、以下の式である：
0004263254.tif 000007
【００２４】
(１)式は、(２)式及び(３)式を一緒にしたものである。
【００２５】
（Ｐ，Ｔ，Ｘ）＝（１，０，１）及び（Ｙ，Ｚ）＝（０，０）を有する(１)式は、「仮想時計（Virtual Clock）」（ＶＣ）である。Zhang, L.、「パケット交換ネットワークプロトコルのための新しいアーキテクチャ」(1989年）、レポートLCS TR 455、コンピュータ科学研究所、マサチューセッツ工科大学、ケンブリッジ、マサチューセッツ州、を参照することにより、この明細書中に参考という形で組み入れられる。
【００２６】
（Ｐ，Ｔ，Ｘ）＝（０，０，０）及び（Ｙ，Ｚ）＝（１，１）を有する(１)式は、「自己計時フェア・キューイング（Self-Clocked Fair Queueing）」（ＳＦＱ）である。S. J. Golestani、「A Self-Clocked Fair Queueing Scheme for Broadband Applications」、IN Proc. ＩＥＥＥ Infocom、May 1994、を参照することにより、この明細書中に参考という形で組み入れられる。
【００２７】
この場合、式の後半部分が次のように見える点は注目すべきである。
(ｓSmin＊１)＋((ｆFmin−ｓSmin)＊１)、すなわち
ｓSmin＋ｆFmin−ｓSmin、すなわち
ｆFmin
（そして、この場合、「ｓSmin」の値は、実際に必要とされない）
実際には、このように、概念的に文章にて記述される。
【００２８】
（Ｐ，Ｔ，Ｘ）＝（１，１，０）及び（Ｙ，Ｚ）＝（０，０）を有する(１)式は、「略」「重み付けフェア・キューイング（Weighted Fair Queueing）」（ＷＦＱ）である。A. Demers、S. Keshav、及びS. Shenker、「フェア・キューイング・アルゴリズムの解析及びシミュレーション」；インターネットワーキング：研究及び実験、第１巻、3−26（1990）と、A. K. J. Parekh、「A Generalized Processor Sharing Approach to Flow Control in Integrated Services Networks」、Ph.D.学位論文、マサチューセッツ工科大学、ケンブリッジ、マサチューセッツ州、1992年２月とを参照することにより、この明細書中に参考という形で組入れられる。
【００２９】
実施の観点からすると、この見解での実際問題は、以下の２点である。
ａ）この方式における「ＡＷ」の計算は、通常、サーバの離散モデルよりもむしろ流体モデルをエミュレートすることを必要とする
ｂ）１／ＡＷの計算は、非常に費用がかかり、実行が困難である（もし、ＡＷ＝（１−ε）ならば、１／ＡＷ＝１／（１−ε）であり、正確に計算することが難しい）
【００３０】
（Ｐ，Ｔ，Ｘ）＝（１，０，１）及び（Ｙ，Ｚ）＝（１，０）を有する(１)式は、本発明の「仮想サービス・キューイング（Virtial Service Queueing）」（ＶＳＱ）である。
【００３１】
これらの観察を行なう理由は、以下の２点である。
ａ）Ｐ、Ｔ、Ｘの組とＹ、Ｚの組とが、ＭＡＸ関数の半分づつを表すことに注目し、ＶＳＱのみが、関数の両側で０の係数を有しないことが明らかである。
ｂ）もし、ＳＦＱの方式における関数を、式を文中に通常書くように書換えれば、ＶＳＱのみが、値ｓSminを利用することもまた、明らかである。
【００３２】
本発明は、図２２に示されるように、サーバ(10)がエンティティにオペレートする時期をスケジュールする方法に関するものである。該方法は、Ｎ個のエンティティからサーバのサービスを要求する工程を具え、ここで、Ｎは１以上の整数である。次に、Ｎ個の各エンティティが、最初にサービスを要求する時期と、サーバからのサービスを受取り完了するべき時期とを記憶する工程が存在する。次に、もし、最も早い受取時刻を有するエンティティが唯１つしかなければ、Ｎ個のエンティティのうち、最も早い受取時刻と、ある要求時刻とを有するエンティティへサービスを提供し、そうでなければ、最も早い要求時刻を有するエンティティがサーバからのサービスを受取る、という工程が存在する。該工程の後に、他のエンティティに関して、該工程を繰返す工程が存在することが望ましい。コントローラ(22)により、上記工程を実行することができる。
【００３３】
また、本発明は、図２３に示されるように、サーバ(14)がサービスをエンティティへ提供する時期をスケジュールするための方法に関する。該方法は、エンティティがサーバ(14)からのサービスを要求する時期を特定する工程を具える。最初のエンティティがサーバからのサービスを要求する時期を特定するためのプロセスは、最初のエンティティがサーバ(14)からのサービスを要求する時期を計算するための任意の技術及び方法を含み得る。これは、エンティティがサーバ(14)からのサービスを要求する時刻を、実際に決めることにより、該要求が起こる時期を特定することを含み得る。すなわち、それは、前のエンティティがサーバ(14)からのサービスを要求した時期から計算されることができ、エンティティがサーバ(14)からのサービスを要求する時期を、ある関数または関係式により、決定されることができる。すなわち、それは、現在、サーバ(14)からのサービスを受けている、別のエンティティの関数として決定され得る。その他に、最初のエンティティがサービスを要求する時刻は、該エンティティがサーバ(14)からのサービスを受取るべき時刻から特定され得る。例えば、開始時刻プラス１／Ｗiが終了時刻に等しい。
【００３４】
さらに、前記特定工程は、サーバがエンティティにサービスを提供すべき時刻を特定するプロセス全体におけるある時点で、エンティティがサーバからのサービスを要求する時刻が特定される、計算の一部であっても構わない。基本的には、特定工程は、プロセスに対する結論、または、プロセスに対する中間工程であることができる。該エンティティは、サーバ(14)からのサービスを要求する最初のエンティティであるのが望ましい。
【００３５】
サーバ(14)が、次にエンティティへサービスを提供する時期をスケジュールする方法は、エンティティがサーバ(14)からのサービスを要求する時期の関数として、エンティティへのサービスを提供する工程を具える。該エンティティは、最初のエンティティであることができ、サーバ(14)からのサービスを、最初のエンティティがサーバ(14)からのサービスを要求する時期の関数として、受け取る。１番目のエンティティが、サーバ(14)からのサービスを初めて要求する時期が、１番目のエンティティへのサービスを提供するための基礎であるのが望ましい。他に、エンティティへのサービスを提供する工程は、最初のエンティティがサーバ(14)からのサービスを要求する時期の関数として、２番目のエンティティへのサービスを提供する工程であり得る。そのとき、２番目のエンティティがサービスを受取る時刻は、最初のエンティティがサーバ(14)からのサービスを最初に要求した時期の、ある関数関係式である。例えば、もし、Ｖ＝１で、最初のエンティティへのサービスを提供すれば、２番目のエンティティへのサービスは、Ｖ＝２すなわちＶ＝１＋１の時刻で提供される。ここで、Ｖ＝１は、最初のエンティティがサーバ(14)からのサービスを要求する時刻である。
【００３６】
本発明は、サーバがサービスをエンティティへ提供する時期を制御するためのスケジューラに関する。該スケジューラは、メモリを具え、該メモリは、エンティティがサーバ(14)からのサービスを要求する時期の関数である時刻を記憶する。また、スケジューラ(10)は、仮想時計(20)を具え、該時計(20)は、エンティティがサーバ(14)からのサービスを要求する時期の関数として、時間の経過を刻む。さらに、スケジューラ(10)はコントローラ(22)を具え、該コントローラ(22)により、エンティティは、エンティティがサーバ(14)からのサービスを要求する時期の関数として、サーバ(14)からのサービスを受け取る。該メモリは、例えば優先キュー(16)のような、開始時刻メモリであり得る。
【００３７】
【発明の実施形態の作用】
本発明の動作において、エンティティの主体である数人のユーザが、サーバ(14)からのサービスを受け取る。該ユーザは、個別の時刻または同じ時刻のどちらかで、サーバ(14)のオペレーションを要求するセルを有する。セルを有するどのユーザも、同時にサーバ(14)を呼出さないか、またはサーバ(14)を待っていなければ、サーバ(14)からのサービスを要求したユーザは、サーバからサービスを受け取る。しかしながら、もしそのような場合でないならば、スケジューラ(10)は、セルを有するユーザが、サーバ(14)によりサービスを受ける時期をスケジュールするだろう。
【００３８】
オペレーションの間、スケジューラ(10)は、ユーザがサーバ(14)からのサービスを最初に要求する時刻をログイン（log in）する。また、スケジューラ(10)は、ユーザがサーバ(14)からのサービスを待機し終わるべき最も遅い時刻をログインする。スケジューラ(10)は、サーバ(14)からのサービスを要求する各ユーザに関する開始時刻及び終了時刻を記録する。この情報は、ユーザと、ユーザがサーバ(14)からのサービスを最初に待機し始めた時期を特定する仮想時計(20)とから得られる。これは、ユーザが、サービスを要求するときに、サーバ(14)またはスケジューラ(10)へ信号を送る際に起こり得る；スケジューラ(10)またはサーバ(14)が、センサーまたはトリガを用いて、ユーザがサービスを要求している時期を特定する際に起こり得る。本発明のこの様相は、従来技術にてよく知られるように、遠隔通信のスイッチが、如何に動作して、幾つかの接続から該スイッチに到着する信号をスイッチするのか、と同じであり得る。
【００３９】
ユーザにサービスするためにサーバ(14)が利用可能なとき、スケジューラ(10)は、サーバ(14)からのサービスを待機しているユーザのうち、どのユーザが最も早い終了時刻を有するかを決定する。次に、最も早い終了時刻を有するユーザは、サーバ(14)によりサービスが提供され、ユーザのセルは、サーバ(14)によりオペレートされる。もしユーザが同じ終了時刻を有するならば、サーバは、どのユーザが最も早い開始時刻を有するかを見て、最も早い開始時刻を有するユーザへサービスを提供する。スケジューラ(10)により、ユーザは、たとえサービスを待機し終わる時刻がまだ起こっていなくとも、サーバ(14)からのサービスを受取る。
【００４０】
各ユーザがサーバ(14)によりサービスを提供されている間に、スケジューラ(10)は、サーバ(14)からのサービスを受取るべき次のユーザを探す。高いレートを有するユーザは、より低いレートを有するユーザよりも頻繁に、サーバ(14)からのサービスを受け取るだろう。しかしながら、比較的高いレートを有するユーザがサーバ(14)からのサービスを受取る間に、より高いレートを有するユーザよりも、早い終了時刻且つ／又は早い開始時刻を有している、より低いレートを有するユーザが、サーバ(14)からのサービスを受取る場合が存在するだろう。サーバ(14)からのサービスを受取っているユーザの終了時刻が起こったとき、スケジューラ(10)は該ユーザにより制御されないので、より低いレートを有するユーザは、サーバ(14)がより高いレートへのサービスを提供していないときに、サーバ(14)からのサービスを断続的に受取ることができる。その結果、サーバ(14)は、所定の単位サイクルのオペレーション中、ある一定のサービス能力を有するという事実と、様々なユーザの有するレート全てが加わると、サイクルに関する該単位レートに等しくなるという事実とにより制御されるから、１サイクルの進行中に、各ユーザは、サーバ(14)によりサービスを提供してもらうであろう。
【００４１】
簡単な例として、５つのユーザＡ−Ｅのレートが、それぞれ0.5、0.2、0.1、0.1、0.1であるとする。時刻Ｖ＝０で、各ユーザＡ−Ｅのセルは、サーバ(14)からサービスを受けるために到着する。ユーザＡからのセルは、終了時刻がＶ＝２であり、ユーザＢからのセルは、終了時刻がＶ＝５であり、且つユーザＣ、Ｄ及びＥからのセルは終了時刻がＶ＝10である。これが図２に示される。
【００４２】
時刻Ｖ＝０で、ユーザＡからのセルが存在し、且つ、該セルは、サービスを待機している全てのセルの中で最も早い終了時刻Ｖ＝２を有するから、サーバ(14)はユーザＡにサービスする。サーバ(14)がユーザＡにサービスするから、時刻をＶ＝１へ１単位進める。
【００４３】
時刻Ｖ＝１で、サーバ(14)は、図３に示されるように、ユーザＢからのセルがＶ＝５という最も早い終了時刻を有するから、該セルに提供する。サーバ(14)がユーザＢのセルをオペレートするから、時刻を１単位分増加して、Ｖ＝２となる。
【００４４】
Ｖ＝２で、図４に示されるように、ユーザＡからのセルが到着して、該セルの開始時刻がＶ＝２であり、且つ終了時刻がＶ＝４である。Ｖ＝２で、ユーザＡのセルに関する終了時刻Ｖ＝４は、最も早い終了時刻であるので、サーバ(14)は、ユーザＡからのセルにサービスする。サーバ(14)がユーザＡのセルをオペレートするとき、時刻がＶ＝３へ進められる。
【００４５】
時刻Ｖ＝３で、サーバ(14)は、ユーザＣからのセルをオペレートする。なぜなら、該セルは、図５に示されるように、サービスを待機しているどのセルにも匹敵する、早い終了時刻Ｖ＝10を有するからである。サーバ(14)がユーザＣからのセルにサービスを提供することにより、時刻がＶ＝４へ進められる。
【００４６】
時刻Ｖ＝４で、ユーザＡからのセルが、サーバ(14)のサービスを受けるために到着する。該セルは、時刻Ｖ＝４で到着し、図６に示されるように、終了時刻がＶ＝６である。ユーザＡからのセルが、最も早い終了時刻Ｖ＝６を有するから、サーバ(14)は該セルに提供する。それから、時刻がＶ＝５へ進められる。
【００４７】
時刻Ｖ＝５で、ユーザＢからのセルがサーバ(14)からのサービスを受取るために到着する。該セルの開始時刻はＶ＝５であり、終了時刻はＶ＝10である。時刻Ｖ＝５で、サーバ(14)は、ユーザＤからのセルへサービスを提供する。なぜなら、サービスを待機している全てのセルの終了時刻は同じであるが、ユーザＤからのセルの開始時刻は０であり、該セルは、ユーザＥからのセルとは同じレートであるが、ユーザＢからのセルよりも早いからである。図７を参照。サーバ(14)がユーザＤからのセルをサービスした後に、時刻がＶ＝６へ進められる。
【００４８】
時刻Ｖ＝６で、ユーザＡからのセルがサーバ(14)からサービスを受けるために到着する。該セルの開始時刻はＶ＝６であり、終了時刻はＶ＝８である。サーバ(14)は、ユーザＡからのセルが、サーバ(14)からのサービスを待機しているセルのうち最も早い終了時刻を有するから、該セルへサービスを提供する。図８を参照。サーバによりユーザＡからのセルがサービスされることにより、時刻はＶ＝７へ進められる。
【００４９】
時刻Ｖ＝７で、サーバ(14)は、ユーザＥからのセルへサービスを提供する。なぜなら、該セルは、最も早い開始時刻Ｖ＝０と、サーバ(14)からのサービスを待機しているユーザＢからのセルと同じ終了時刻とを有するからである。図９を参照。サーバ(14)がユーザＥからのセルへサービスを提供した後に、時刻はＶ＝８へ進められる。
【００５０】
時刻Ｖ＝８で、ユーザＡからのセルが、サーバ(14)からサービスを受けるために到着する。時刻Ｖ＝８で、サーバ(14)はユーザＢからのセルへサービスを提供する。なぜなら、該セルは、最も早い開始時刻Ｖ＝５と、サーバ(14)からのサービスを待機しているユーザＡからのセルと同じ終了時刻を有するからである。図１０を参照。サーバ(14)がユーザＢからのセルへサービスを提供した後に、時刻はＶ＝９へ進む。
【００５１】
時刻Ｖ＝９で、ユーザＡからのセルが、サーバ(14)からのサービスを待機している任意のセルのうち最も早い終了時刻を有するから、サーバ(14)は、該セルへサービスを提供する。図１１を参照。この時点で、１単位サイクルが完了し、全てのユーザがサービスを受け取った。サーバ(14)がユーザＡのセルへサービスを提供した後に、時刻はＶ＝10へ進む。
【００５２】
時刻Ｖ＝10で、ユーザＡからのセルは、サービスを受けるために到着して、終了時刻Ｖ＝12を有し、ユーザＢからのセルは、サービスを受けるために到着して、終了時刻Ｖ＝15を有し、且つ各ユーザＣ、Ｄ及びＥからのセルは、到着して、終了時刻Ｖ＝20を有する（図示せず）。それから、上述のようなサイクルを繰り返す。
【００５３】
ユーザのレートを足しても１より小さいときのスケジューラの動作を説明する別の簡単な例が与えられる。この例では、３つのユーザＡ−Ｃが、それぞれ0.5、0.2及び0.1のレートを有する。
【００５４】
時刻Ｖ＝０で、ユーザＡ、Ｂ及びＣからのセルが、到着して、開始時刻Ｖ＝０を有する。ユーザＡからのセルは、終了時刻がＶ＝２であり、ユーザＢからのセルは、終了時刻がＶ＝５であり、且つユーザＣからのセルは、終了時刻がＶ＝10である。図１２を参照。Ｖ＝０で、ユーザＡからのセルは、セルの中で最も早い終了時刻Ｖ＝２を有するから、サーバ(14)からのサービスを受け取る。サーバ(14)はユーザＡにサービスするから、時刻はＶ＝１へ１単位進められる。
【００５５】
Ｖ＝１で、サーバ(14)は、ユーザＢからのセルが、セルの中で最も早い終了時刻Ｖ＝５を有するから、該セルにサービスする。図１３を参照。それから、時刻がＶ＝２へ１増加分進められる。
【００５６】
時刻Ｖ＝２で、ユーザＡからのセルは、サーバ(14)からサービスを受けるために到着する。サーバ(14)は、ユーザＡからのセルが、セルの中で最も早い終了時刻Ｖ＝４を有するから、該セルにサービスする。図１４を参照。それから、時刻がＶ＝３へ１増加分進められる。
【００５７】
時刻Ｖ＝３で、サーバは、ユーザＣからのセルへサービスを提供する。なぜなら、該セルは、現在の仮想時刻Ｖ＝３よりも早い開始時刻を有する唯一のセルであり、また、終了時刻Ｖ＝10を有するからである。図１５を参照。
【００５８】
サーバ(14)がユーザＣからのセルにサービスする後に、仮想時刻は、サーバ(14)からのサービスを要求するセルのうち、最も早い開始時刻へ、１増加分進められる。この場合では、サービスを待機しているセルのうち、最も早い開始時刻は、Ｖ＝４であり、それにより、Ｖ＝３から１時刻増加する。
【００５９】
時刻Ｖ＝４で、ユーザＡからのセルは、サーバ(14)からサービスを受けるために到着する。サーバ(14)は、ユーザＡからのセルへサービスを提供する。なぜならば、該セルは開始時刻Ｖ＝４を有し、これは現在の仮想時刻と等しく、且つ該セルは終了時刻Ｖ＝６を有し、これはサーバ(14)からのサービスを待機している任意のセルのうち、最も早い終了時刻であるからである。図１６を参照。サーバ(14)がユーザＡからのセルへサービスを提供するとき、現在の仮想時刻Ｖ＝４と同じかまたはそれより早い開始時刻を有する他のセルが存在しないので、仮想時刻は、サーバ(14)からのサービスを要望するセルのうち、最も早い開始時刻へ増加される。この場合では、ユーザＢからのセルは、サーバ(14)からのサービスを要求するときに、開始時刻Ｖ＝５を有するであろうから、仮想時刻は、Ｖ＝５へ１単位分増加される。
【００６０】
時刻Ｖ＝５で、ユーザＢからのセルは、サーバ(14)からサービスを受けるために到着する。時刻Ｖ＝５で、ユーザＢからのセルは、サーバ(14)からのサービスを待機している任意のセルのなかで、最も早い終了時刻を有するから、サーバ(14)は、該セルへサービスを提供する。図１７を参照。サーバ(14)がユーザＢからのセルへサービスを提供するとき、仮想時刻は、セルがサーバ(14)からのサービスを要求する最も早い開始時刻に対応する、次の仮想時刻へ増加される。この場合では、ユーザＡからのセルの開始時刻がＶ＝６である。従って、時刻はＶ＝６へ１単位分増加される。
【００６１】
時刻Ｖ＝６で、ユーザＡからのセルは、サーバ(14)からサービスを受けるために到着する。時刻Ｖ＝６で、サーバ(14)は、ユーザＡからのセルが最も早い終了時刻を有するから、該セルへサービスを提供する。図１８を参照。それから、仮想時刻は、Ｖ＝７ではなく、Ｖ＝８へ増加される。なぜならば、サーバ(14)からのサービスを待機しているセルのうち、最も早い開始時刻は、Ｖ＝８で起こるであろうからである。その結果、仮想時刻は、この場合、２単位分増加される。
【００６２】
時刻Ｖ＝８で、ユーザＡからのセルは、サーバ(14)からサービスを受けるために到着する。サーバ(14)は、ユーザＡからのセルが最も早い終了時刻を有するから、該セルへサービスを提供する。図１９を参照。サーバ(14)がユーザＡからのセルへサービスを提供した後に、時刻はＶ＝10へ増加される。なぜならば、Ｖ＝10で、サーバ(14)からのサービスを待機しているセルに関して、最も早い開始時刻が存在するからである。そのとき、仮想時刻は、Ｖ＝８からＶ＝10へ２単位分増加される。
【００６３】
Ｖ＝10で、ユーザＡ、Ｂ及びＣからのセルが、サーバ(14)からサービスを受けるために到着する。ユーザＡからのセルに関する終了時刻は、Ｖ＝12であり、ユーザＢからのセルに関する終了時刻は、Ｖ＝15であり、且つユーザＣからのセルに関する終了時刻は、Ｖ＝20である（図示せず）。Ｖ＝10では、図がＶ＝10までしか描かれていないので、サービスを受けるために現れるセルは存在しない。しかしながら、Ｖ＝10に関連する終了時刻が、示されていないけれども、存在することから、Ｖ＝10は、図２０において示される。
【００６４】
【実施例】
本発明の幾つかの実施例が、図２６乃至図４４に示されている。図３８乃至図４４において、ＶＳＱの前にあるＲＣは、２つの実施例における比率制御を表すことに注意せよ。これらの実施例は、サーバ(14)によってオペレートされるために要素プール(24)に到着する要素を示し、該要素は、ＡＴＭネットワークに関するセルであるのが望ましい。該実施例をよりよく理解するために、スケジューラ(10)の動作の幾つかを次に説明する。
【００６５】
実施例１（図２６）において、３つのエンティティ(12)が、要素プール(24)へ接続される。重み及びレートは、これらのエンティティ(12)と関係がある。例えば、０番目のエンティティ(12)に関するユーザ０は、重みが0.5であり、レートが0.5である。１番目のエンティティ(12)に関するユーザ１は、重みが0.333であり、レートが0.333である。２番目のエンティティ(12)に関するユーザ２は、重みが0.166であり、レートが0.166である。時刻Ｔ＝１で、仮想時刻は０である。セル000、001及び002は、０番目、１番目及び２番目のユーザの０番目、１番目及び２番目のエンティティ(12)に対応し、要素プール(24)に到着する。該セルが、要素プール(24)にて最初に到着した開始時刻と、要素プール(24)を離れてしまうべき終了時刻とは、それぞれ、開始時刻優先キュー(16)と終了時刻優先キュー(18)にて記録される。これは、開始時刻列及び終了時刻列並びに開始キュー列及び終了キュー列にて示される。
【００６６】
開始時刻列において、ユーザ０は、０番目のユーザに関連するセル000が要素プール(24)に到着した時に関する位置が、２番目すなわち最後である。該要素が要素プールに到着した時刻は、時刻Ｔ＝０である。終了時刻列において、ユーザ０の位置は、最初すなわち０番目である。というのは、ユーザ０の終了時刻Ｔ＝2000は、要素プール(24)における全ての要素の中で最も早い終了時刻だからである。ユーザ０に関して、該列において特定される量Ｑがあり、該Ｑは、要素プール(24)において、ユーザ０のセルが唯１つであることを示している。開始キュー列において、ユーザ０は、最後すなわち２番目の位置にあり、開始時刻がＴ＝０である。しかしながら、終了キュー列に基づく終了時刻優先キュー(18)において、ユーザ０は、０番目の位置にある。なぜならば、該時刻Ｔ＝2000は、要素プール(24)における全ての要素の中で最も早い終了時刻だからである。
【００６７】
ユーザ１に関しては、開始時刻の位置が１であり、関連する開始時刻がＴ＝０である。終了時刻の位置も１である。なぜなら、終了時刻Ｔ＝3000は、要素プール(24)における３つのセルの中で２番目に早い終了時刻だからである。ユーザ１に関して、要素プール(24)におけるセルの量Ｑが１であり、開始時刻優先キュー(16)において、ユーザ１は、位置が１番目で、該時刻がＴ＝０である。ユーザ１は、終了キュー列における位置も１番目である。というのは、ユーザ１の終了すべき時刻は、要素プール(24)におけるセルのうち２番目に早いからである。
【００６８】
ユーザ２は、開始時刻優先キュー(16)における位置が、最も早いすなわち０番目であり、時刻がＴ＝０である。ユーザ２の終了時刻Ｔ＝6000は、要素プール(24)における全てのセルのなかで最も遅い終了時刻であるから、その終了時刻位置は、最後すなわち２番目である。ユーザ２は、要素プール(24)におけるセルの量Ｑが１であり、開始キューの位置が０番目であり、時刻がＴ＝０である。終了時刻優先キュー(18)において、ユーザ２の終了キューの位置は２番目である。なぜならば、その終了時刻Ｔ＝6000は、要素プール(24)における３つのセルのうち最も遅い終了時刻だからである。
【００６９】
時刻0000での動作において、ユーザ０のセルは、サーバ(14)によりオペレートされる。これを反映して、ユーザ０は、開始時刻の位置が−１で、時刻がＴ＝０となり、終了時刻の位置が−１で、時刻がＴ＝2000となる。ユーザ０のＱ量は、その対応するセルが、サーバ(14)によりオペレートされて、もはや要素プール(24)に存在しないから、今や０である。開始時刻優先キュー(16)において、ユーザ０の位置が−１で、時刻がＴ＝−１であり、これは、ユーザ０が要素プールにもはや存在しないという事実を反映している。また、ユーザ０に関連するセルが要素プール(24)にもはや存在しないから、終了時刻優先キュー(18)により、ユーザ０の終了キューが要素プール(24)において−１であることが反映される。サーバは、同時に１つのセルしかオペレートできないから、最も早い終了時刻を有するユーザ０のセルのみが、要素プール(24)から離れる。残りのユーザは、終了時刻に関する位置が１段上昇する。というのは、今や、ユーザ１のセルに関する時刻Ｔ＝3000は、最も早い終了時刻であり、ユーザ２に関連するセルに関する時刻Ｔ＝6000は、今や、２番目に遅い終了時刻であるからである。また、本実施例から明らかなように、ユーザ０、１及び２のセル全てが、たとえそれらの重みが異なっていても、同じ開始時刻で要素プール(24)に到着したから、該セルは、開始時刻優先キュー(16)において、最も大きいユーザナンバーを基準として最も小さいユーザナンバーまで順序付けられる。しかしながら、本質的には、任意のやり方の順序付け（scheme of ordering）で行なうことは自由である。
【００７０】
時刻がＴ＝２で、仮想時刻が1000に等しい時（サーバ(14)が、たった今、セルをオペレートしたから、仮想時刻は、仮想時刻の１単位分−−ここでは1000−−増加される）、ユーザ０、ユーザ１及びユーザ２からの新しいセルが要素プール(24)に到着する。ユーザ０の開始時刻は、開始時刻優先キュー(16)において到着を確認される時刻であるから、Ｔ＝2000である。終了時刻優先キュー(18)におけるユーザ０の位置は１である。なぜなら、その終了時刻Ｔ＝4000は、終了時刻において、セルのなかで２番目に早いからである。さらに、ユーザ１とユーザ２の該量Ｑは、現在両方とも２である。というのは、これら各ユーザも、時刻Ｔ＝２で要素プール(24)内にセルが追加されるからである。ユーザ１は、要素プール(24)における全てのセルのうち最も早い終了時刻3000を有し、また、時刻Ｖ＝1000よりも早い開始時刻Ｔ＝０を有し、その結果、要素プール(24)に存在するから、要素プール(24)にあるこのセルが、サーバ(14)へ提供されて、サーバ(14)によりオペレートされる。その結果、サーバ(14)の次のオペレーションでは、サーバ(14)は、終了時刻がＴ＝3000であるユーザ１のセルに提供する。このセルは、要素プール(24)から移動され、その結果開始時刻優先キュー(16)と終了時刻優先キュー(18)が調整される。ユーザ１に関するセルの量Ｑは１に減らされ、一方ユーザ０に関するセルの量Ｑは１のままであり、且つユーザ２に関するセルの量Ｑは２のままである。ユーザ１に関して、要素プール(24)に、まだ残っているセルがあるから、その存在により、開始時刻列の時刻がＴ＝3000となり、終了時刻列の終了時刻がＴ＝6000となることが明らかになる。
【００７１】
時刻Ｔ＝３では、Ｖ＝2000である。というのは、セルが該サーバ(14)によりオペレートされたことにより、仮想時刻Ｖ＝1000が１単位時刻分増加されるからである。時刻Ｔ＝３及びＶ＝2000では、唯１つの新しいセルが到着する。この新しいセルは、ユーザ０からである。これを反映して、要素プール(24)におけるセルの量Ｑがユーザ０に関して２になる。この時刻で、ユーザ０は、終了時刻優先キュー(18)にＴ＝4000のセルを有し、該時刻は、最も早い終了時刻である。また、このセルは、開始時刻がＴ＝2000であるから、時刻Ｖ＝2000での要素プール(24)に存在し、且つサーバ(14)によりオペレートされるべきセルである。Ｔ＝３且つ仮想時刻が2000に等しい時刻で、サーバがオペレートするとき、終了時刻Ｔ＝4000を有するユーザ０のセルは、要素プール(24)から移動されて、サーバ(14)によりオペレートされる。次に、要素プール(24)におけるユーザ０に関連するセルの量Ｑは、１つ分減少される。
【００７２】
この時点で、全てのユーザのセルが有する全ての終了時刻は、Ｔ＝6000である。その結果、終了時刻に関して全て等しいから、どのセルがサーバによって次にオペレートされるかに関して、開始時刻が制御するようになる。このことは、時刻Ｔ＝４及びＶ＝3000で見られることができる。該時刻で、ユーザ２は、要素プール(24)に２つのセルを有し、該セルの１つが、最も早い開始時刻Ｔ＝０を有する。次に、ユーザ２のこのセルが、サーバ(14)によりオペレートされる。図２６乃至図４４における本実施例の残り部分は、上記の説明に基づいて理解されるべきである。
【００７３】
本発明を応用した特有の場合において、ＡＴＭスイッチ要素は、図２１に示されるように、１乃至Ｎ個の入力接続(102)と１乃至Ｍ個の出力接続(104)を有する。ＡＴＭセルは、スイッチ要素(100)により、入力接続(102)を介して受信される。スイッチ要素(100)は、該セルをオペレートして、出力接続(104)を介して送信する。セルは、特定の入力接続(102)上から入ってくるときはいつでも、従来よく知られるように、プール(106)に置かれる。そして、従来よく知られるように、スイッチ要素のスケジューラ(108)に、対応するプール(106)にセルが存在することを通知する。各入力接続(102)は、スイッチ要素(100)に進入するセルが記憶される専用のプール(106)を所有できること、または個々の入力接続(102)からのセルの全てが、スイッチ要素のサーバ(110)がオペレートする準備ができるまで、記憶される共通プール(106)が存在し得ることに注意すべきである。
【００７４】
スイッチ要素(100)についてのスケジューラ(108)は、ＡＴＭ状況を除いて上述のとおり動作し、スイッチ要素(100)のサーバ(110)からサービスを受けるために、セルから得られた競り値（a bid value）を決定したように、セルについてスケジューラが特定した終了時刻によって、それの終了時刻が、決定される。この競り（bid）の使用は、従来よく知られている。例えば、クレイグ・パートリッジ（Craig Partridge）著「ギガビット・ネットワーキング」アディソン・ウェスリー（Addison Wesley）1994年発行；ＡＴＭ・フォーラム編集「ＡＴＭ・ユーザ・ネットワーク・インターフェース仕様書、3.0版」プレンティス・ホール（Prentice Hall）1994年発行；レイフ・オー・オンヴュラル（Raif O. Onvural）著「非同期転送モード・ネットワーク：パフォーマンス上の問題点」、アーテック・ハウス社（Artech House Inc.）、マサチューセッツ州ノーウッド（Norwood）、1994年発行、を参照。これら全てが参照として組込まれる。
【００７５】
【発明の効果】
本発明の方法及び装置によって、より大きなニーズを有するユーザが、所定の時刻にサービスを要求しない時に、より小さいニーズを有するユーザにサービスを提供することができ、ユーザに対して、より公平なサービスの提供が実現できた。
【００７６】
本発明は、例示の目的のために上記実施形態にて詳細に記載されたが、その細部は、単に前記例示目的のためであり、特許請求の範囲に記載されるようなもの以外にも、本発明の精神及び範囲から離れることなく、従来技術に熟練する人々により、変形を成し得ると、理解されるべきである。
【図面の簡単な説明】
【図１】本発明の概要図である。
【図２】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図３】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図４】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図５】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図６】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図７】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図８】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図９】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１０】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１１】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１２】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１３】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１４】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１５】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１６】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１７】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１８】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図１９】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図２０】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図２１】ＡＴＭスイッチ要素の概要図である。
【図２２】サーバがサービスをエンティティへ提供する時期をスケジュールする、本発明の方法のフローチャートである。
【図２３】サーバがサービスをエンティティへ提供する時期をスケジュールする、他の本発明の方法のフローチャートである。
【図２４】図１の各構成要素の繋がりを示すブロック図である。
【図２５】本発明のスケジューラに関するフローチャートである。
【図２６】本発明の実施例に関するセルの概要図である。
【図２７】本発明の実施例に関するセルの概要図である。
【図２８】本発明の実施例に関するセルの概要図である。
【図２９】本発明の実施例に関するセルの概要図である。
【図３０】本発明の実施例に関するセルの概要図である。
【図３１】本発明の実施例に関するセルの概要図である。
【図３２】本発明の実施例に関するセルの概要図である。
【図３３】本発明の実施例に関するセルの概要図である。
【図３４】本発明の実施例に関するセルの概要図である。
【図３５】本発明の実施例に関するセルの概要図である。
【図３６】本発明の実施例に関するセルの概要図である。
【図３７】本発明の実施例に関するセルの概要図である。
【図３８】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図３９】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図４０】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図４１】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図４２】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図４３】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図４４】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【符号の説明】
(10)  スケジューラ
(12)  エンティティ
(14)  サーバ
(16)  開始時刻メモリ、開始時刻優先キュー
(18)  終了時刻メモリ、終了時刻優先キュー
(20)  仮想時計
(22)  コントローラ
(24)  要素プール
【図１】
0004263254.tif 000008
【図２】
0004263254.tif 000009
【図３】
0004263254.tif 000010
【図４】
0004263254.tif 000011
【図５】
0004263254.tif 000012
【図６】
0004263254.tif 000013
【図７】
0004263254.tif 000014
【図８】
0004263254.tif 000015
【図９】
0004263254.tif 000016
【図１０】
0004263254.tif 000017
【図１１】
0004263254.tif 000018
【図１２】
0004263254.tif 000019
【図１３】
0004263254.tif 000020
【図１４】
0004263254.tif 000021
【図１５】
0004263254.tif 000022
【図１６】
0004263254.tif 000023
【図１７】
0004263254.tif 000024
【図１８】
0004263254.tif 000025
【図１９】
0004263254.tif 000026
【図２０】
0004263254.tif 000027
【図２１】
0004263254.tif 000028
【図２２】
0004263254.tif 000029
【図２３】
0004263254.tif 000030
【図２４】
0004263254.tif 000031
【図２５】
0004263254.tif 000032
【図２６】
0004263254.tif 000033
【図２７】
0004263254.tif 000034
【図２８】
0004263254.tif 000035
【図２９】
0004263254.tif 000036
【図３０】
0004263254.tif 000037
【図３１】
0004263254.tif 000038
【図３２】
0004263254.tif 000039
【図３３】
0004263254.tif 000040
【図３４】
0004263254.tif 000041
【図３５】
0004263254.tif 000042
【図３６】
0004263254.tif 000043
【図３７】
0004263254.tif 000044
【図３８】
0004263254.tif 000045
【図３９】
0004263254.tif 000046
【図４０】
0004263254.tif 000047
【図４１】
0004263254.tif 000048
【図４２】
0004263254.tif 000049
【図４３】
0004263254.tif 000050
【図４４】
0004263254.tif 000051