JP4263254B2 - サーバがサービスをエンティティへ提供する時期を制御する方法及びスケジューラ - Google Patents
サーバがサービスをエンティティへ提供する時期を制御する方法及びスケジューラ Download PDFInfo
- Publication number
- JP4263254B2 JP4263254B2 JP29678095A JP29678095A JP4263254B2 JP 4263254 B2 JP4263254 B2 JP 4263254B2 JP 29678095 A JP29678095 A JP 29678095A JP 29678095 A JP29678095 A JP 29678095A JP 4263254 B2 JP4263254 B2 JP 4263254B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- server
- entity
- service
- user
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/506—Constraint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Security & Cryptography (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Educational Administration (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Game Theory and Decision Science (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Description
【発明の属する技術分野】
本発明は、例えばコンピュータネットワークにおける、スケジューラ(scheduler)に関する。特に、本発明は、エンティティ(entity)が、その終了時刻前に、サーバ(server)からサービスを受取ることができるスケジューラに関する。
【0002】
【従来の技術】
利用可能なリソースを多種多様なユーザの間で共有しなければならない状況下では、過密問題がリソースの利用に関して起こり得る。非常に簡単に言うと、異なるユーザが所定のリソースを同時に使用したいが、該リソースの能力により一度に1ユーザにしかサービスの提供をできない時が存在し得る。この過密問題を制御するため、スケジューラが一般に利用されて、ユーザがサーバへアクセスする時期を規制する。
【0003】
【発明が解決しようとする課題】
スケジューラは、ユーザにサーバへのアクセスを公平に提供し、その結果どのユーザも、そのニーズに見合った過度の遅れを経験しない様にすることが理想である。従来から、ユーザのニーズが非常に分散しているとき、スケジューラは、必ずしもユーザに対して公平ではなかった。多くの場合、比較的大きなニーズを有するユーザが待機したままであり、一方比較的小さいニーズを有するユーザが、サーバにより提供されている。また、その逆のこともある。
本発明は、より大きなニーズを有するユーザが、所定の時刻にサービスを要求しない時に、より小さいニーズを有するユーザが提供され得るように、ユーザのニーズに応じる方向を示す。
【0004】
【課題を解決する為の手段】
本発明は、N個のエンティティがサーバによりサービスされる時期を制御するためのスケジューラに関する。ここで、Nは1以上の整数である。スケジューラは、開始時刻メモリを具え、該メモリは、N個のエンティティの開始時刻siを記憶する。ここで、iは1以上N以下の整数であり、siは、i番目のエンティティがサーバからのサービスを要求する時刻に対応する。また、スケジューラは、終了時刻メモリを具え、該メモリは、N個のエンティティの終了時刻fiを記憶する。ここで、fiは、i番目のエンティティがサーバによりサービスされるべき時刻に対応する。また、スケジューラは、仮想時計(virtual clock)を具え、該時計は、開始時刻si及び終了時刻fiを特定できるように、時刻の経過を刻む。さらに、スケジューラは、コントローラを具え、該コントローラは、以下のような順序でエンティティを選択して、サーバからサービスを受取る。すなわち、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティが最初にサービスされ、もし終了時刻が同じならば、次に最も早いまたは最も遅い開始時刻si、若しくは、最も高いまたは最も低いIDまたはレート(rate)を有するエンティティが、各所定時刻でサービスされる、という順序である。後者から明らかなように、もしエンティティの終了時刻が同じならば、どのエンティティがサーバへ提供されて、オペレートされるべきかを示すために、どのようなプロトコルが希望されようとも、それは、オペレータが自由に選択すべきことである。
【0005】
本発明は、サーバがサービスをエンティティへ提供する時期をスケジュールする方法に関する。該方法は、N個のエンティティによって、サーバからのサービスを要求する工程を具え、ここで、Nは1以上の整数である。次に、N個のエンティティがそれぞれサービスを要求し始める時期と、N個のエンティティがそれぞれサービスを受取完了すべき時期を記憶する工程がある。次に、もし、最も早い受取時刻を有するエンティティが唯1つしか無ければ、N個のエンティティのうち最も早い受取時刻と、ある開始時刻を有するエンティティへサービスを提供し、そうでなければ、最も早い開始時刻を有するエンティティが、多分その受取時刻の前に、サービスを受取る工程がある。
【0006】
本発明は、それぞれが重みwを有するN個のエンティティが、サーバにより提供を受ける時期をスケジュールするスケジューラに関する。ここで、Nは1以上の整数であり、wは実数である。スケジューラは、開始時刻メモリを具え、該メモリは、N個のエンティティがサービスを要求する開始時刻siを記憶する。ここで、iは1以上N以下の整数であり、siは、i番目のエンティティがサーバからのサービスを次に得ることのできる時刻である。また、スケジューラは、終了時刻メモリを具え、該メモリは、N個のエンティティがサービスされるべき終了時刻fiを記憶する。ここで、fiは、その時刻までにi番目のエンティティがサーバによりサービスされるべき時刻である。また、スケジューラは、時間の経過Vkを刻む仮想時計を具え、ここで、kは0以上の整数で、且つ
であり、ここで、sSminは、エンティティがサーバからのサービスを要求する時のなかで最も早い開始時刻であり;fFminは、サーバからのサービスを待機しているエンティティのなかで最も早い終了時刻であり;Vk-1は、サーバがエンティティに前回サービスを提供した仮想時刻であり;AW=現在サービスを求めている全てのエンティティにわたっての重みwiの総和、ここで、wiはi番目のエンティティの重みであり;且つP、X、T、Y及びZは実数である。P=1、T=0、X=1、Y=1及びZ=0が望ましいが、その応用及びその目的に基づいて、T及びXの両方が0でない限り、TまたはXの一方は、本質的に任意の実数となることができ;且つY及びZの両方が0でない限り、YまたはZの一方は、本質的に任意の実数となることができる。
【0007】
また、スケジューラは、コントローラを具え、該コントローラは、どのエンティティがサーバによりオペレートされるべきかを以下のような順序で選択する。すなわち、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティが最初にサービスを受取り、次に、所定の基準に基づくエンティティという順序である。所定の基準とは、例えば最も早い開始時刻またはIDナンバーのような、本来、ユーザが適用を望む任意の形式のタイ−ブレーキング手法(tie-breaking procedure)であってもよい。
【0008】
本発明は、サーバがサービスをエンティティへ提供する時期をスケジュールするための方法に関する。該方法は、最初のエンティティがサーバからのサービスを要求する時期を特定する工程を具える。次に、エンティティがサーバからのサービスを要求する時期の関数として、例えば最初のエンティティまたは2番目のエンティティのようなエンティティへ、サービスを提供する工程が存在する。
【0009】
本発明は、サーバがサービスをエンティティへ提供する時期を制御するためのスケジューラに関する。該スケジューラは、メモリを具え、該メモリは、エンティティがサーバからのサービスを要求する時期の関数である時刻を記憶する。また、スケジューラは、仮想時計を具え、該時計は、エンティティがサーバからのサービスを要求する時期の関数として、時刻の経過を刻む。また、スケジューラはコントローラを具え、該コントローラにより、エンティティは、エンティティがサーバからのサービスを要求する時期の関数として、サーバからのサービスを受け取る。
【0010】
【発明の実施の形態】
図中の同じ参照数字は、幾つかの図を通じて 、同じようなまたは一致した部分を示す。図面中、特に図1及び図24において、スケジューラ(10)は、N個のエンティティ(12)がサーバ(14)によりオペレートされる時期を制御する。ここで、Nは1以上の整数である。スケジューラ(10)は、例えば優先キュー(queue)(16)のような、開始時刻メモリを具え、該メモリは、N個のエンティティの開始時刻siを記憶する。ここで、iは1以上N以下の整数であり、siは、i番目のエンティティがサーバ(14)からのサービスを要求し始める時刻に一致する。また、スケジューラ(10)は、例えば優先キュー(18)のような、終了時刻メモリを具え、該メモリは、N個のエンティティ(12)の終了時刻fiを記憶する。ここで、fiは、i番目のエンティティがサーバ(14)によりオペレートされるべき時刻に一致する。また、スケジューラ(10)は、仮想時計(20)を具え、該時計(20)は、開始時刻si及び終了時刻fiを特定できるような時刻の経過を刻む。さらに、スケジューラ(10)は、コントローラ(22)を具え、該コントローラ(22)は、以下のような順序で、エンティティにサーバ(14)からのサービスを提供する。すなわち、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティが最初にオペレートされ、次に、もし終了時刻が同じならば、最も早いまたは最も遅い開始時刻siを有するか、若しくは、最も高いまたは最も低いIDまたはレートを有するエンティティが、各所定時刻でオペレートされる、という順序である。後者から明らかなように、もしエンティティの終了時刻が同じならば、どのエンティティが、サーバ(14)へ提供されてオペレートされるべきかを示すために求められる任意のプロトコルを、オペレータが選択する。このときの処理の流れをフローチャートにて示したものが、図25である。
【0011】
スケジューラ(10)は、要素プール(24)を含み得るのが望ましく、該プール(24)は、N個のエンティティ(12)と接続され、該エンティティ(12)から、サーバ(14)によりオペレートされるべき要素を受け取る。そのとき、要素の到着時刻siは、i番目のエンティティ(12) が要素プール(24)に到着する時刻に対応し、終了時刻fiは、i番目のエンティティ(12) が、要素プール(24)から離れて、サーバ(14)によりオペレートされるべき時刻に対応する。
【0012】
コントローラ(22)は、サーバ(14)によりオペレートされるべき要素を、要素プール(24)から転送または選択する。コントローラ(22)は、仮想時計(20)、要素プール(24)、開始時刻優先キュー(16)及び終了時刻優先キュー(18)へ接続されるのが望ましい。これは、仮想時計(20)の時刻を制御し、要素プール(24)にエンティティを記憶し、且つ、開始時刻優先キュー(16)及び終了時刻優先キューに到着時刻si及び終了時刻fiをそれぞれ記憶するためである。コントローラ(22)は、エンティティすなわち要素プール(24)の要素を、順次オペレートするのが望ましい。エンティティがサービスを受取るとき、すなわち要素が要素プール(24)を離れるときに、コントローラ(22)により、仮想時計(20)が現在の仮想時刻を進めるのが望ましい。もし、エンティティの最も早い開始時刻が仮想時刻よりも遅ければ、コントローラ(22)により、仮想時計(20)は、エンティティすなわち要素の最も早い開始時刻へ、仮想時刻を増加することができ、他の場合では、コントローラ(22)により、仮想時計(20)は、仮想時刻をその1単位分増加する。この要素プール(24)を有する実施形態において、コントローラ(22)は、もし、最も早い終了時刻fiを有する要素が唯1つしか無ければ、最も早い終了時刻fiと、ある開始時刻siとを有する要素を、要素プール(24)の外へ転送する。そうでない場合、最も早い開始時刻siを有する要素が、コントローラ(22)により要素プール(24)の外へ、且つ該終了時刻fiの前に転送されることが望ましい。
【0013】
本発明は、それぞれが重みwを有するN個のエンティティが、サーバ(14)によってサービスを提供される時期をスケジュールするのためのスケジューラ(10)に関する。ここでNは1以上の整数であり、wは実数である。スケジューラ(10)は、開始時刻メモリ(16)を具え、該メモリ(16)は、N個のエンティティ(12)がサービスを要求するときに、開始時刻siを記憶する。ここで、iは、1以上N以下の整数であり、siは、i番目のエンティティがサーバ(14)からのサービスを次に得てもよい時刻である。また、スケジューラ(10)は、終了時刻メモリ(18)を具え、該メモリ(18)は、N個のエンティティがサービスされるべきときに、終了時刻fiを記憶する。ここで、fiは、その時刻までにはi番目のエンティティがサーバ(14)によりサービスされるべき時刻である。また、スケジューラ(10)は、時刻Vkの経過を刻む仮想時計(20)を具え、ここで、kは0以上の整数であり、
であり、ここで、sSminは、エンティティがサーバ(14)からサービスを要求する時期の最も早い開始時刻であり;fFminは、サーバ(14)からのサービスを待機しているエンティティの最も早い終了時刻であり;Vk-1は、サーバ(14)がエンティティに前回提供した仮想時刻であり;AW=現在、サービスを求めている全てのエンティティにわたってのwiの総和、ここで、wiはi番目のエンティティの重みであり;且つP、X、T、Y及びZは実数である。P=1、T=0、X=1、Y=1及びZ=0が望ましいが、その応用とその目的に基づいて、T及びXの両方が0でない限り、TまたはXの一方は、本質的に任意の実数であり得;且つY及びZの両方が0でない限り、YまたはZの一方は、本質的に任意の実数であり得る。
【0014】
また、スケジューラ(10)は、コントローラを具え、該コントローラは、どのエンティティがサーバ(14)によりオペレートされるべきかを、以下のような順序で選択する。すなわち、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティと、次に所定の基準に基づくエンティティという順序である。所定の基準とは、例えば最も早い開始時刻またはIDナンバー等のような、本質的に、ユーザが適用を望む任意の方式のタイ−ブレーキング手法となり得る。
【0015】
より具体的には、wiは、i番目のエンティティの"重み"であり、0より大きく1以下であるとする。wiは、i番目のエンティティが具えているサーバ(14)の分数割当て(fractional share)を表わす(もしwi=1ならば、サーバ(14)は、全てi番目のエンティティに捧げられ、もしwi=0.5ならば、サーバの作業の1/2が、i番目のエンティティに捧げられる)。
注意:この中で「1」は、サーバ(14)の作業の最大比率を表すために使用され、そのため、唯1つのエンティティに、サーバ(14)の能力の100%を超える重みを与えることは無意味である。
【0016】
もし、エンティティが、どれ位の作業の実行をサーバ(14)に求めることができるかに関して、制限がなければ、全エンティティの重みの総和は、1以下であることが望ましい。これは、サーバ(14)の能力の100%以下を割当てることに等しい。もし、エンティティが、サーバの能力のある割合(RSiとし、RSi<1である)以下の量を求めるようにある程度制限されれば、より一般的な記述は、以下のようになる。すなわち、
MIN(wi,RSi)の(全エンティティにわたっての)和は1よりも小さくあるべきである。
W=全エンティティにわたってのwiの総和、すなわち
【数1】
とする。AW=現在、サービスを求めている全エンティティにわたってのwiの総和(すなわち、もし「W」がウェイト(Weight)の総和ならば、「AW」はアクティヴ・ウェイト(Active Weight)の総和である)、すなわち
【数2】
とする。ここで、もしサービスを求めていなければ、ai=0であり、サービスを求めておれば、ai=1である。
【0017】
さらに、siは、i番目のエンティティが次にサービスを得る時刻であり、fiは、その時刻までにはi番目のエンティティがサービスされるべき時刻である。
【0018】
uiは、サーバが実際にi番目のエンティティのために働くときに、サーバがi番目のエンティティに与える作業の単位数とする(単純化するため、全てのエンティティに関して、ui=1である場合を仮定する(パケットネットワークの場合において、これは、全てのパケットが同じサイズを有する場合、例えばATMセルの場合に等しい))。uiは、応用する時の状況に応じて異なってもよい。例えば、uiは、パケットに基づくネットワーク中にて、「1」と等しくなくても構わない。
【0019】
Fmin(1<Fmin<N)=最も小さい終了時刻を有するエンティティのID番号、とする(「最も小さい終了時刻を有するエンティティ」として与えられる全ての例は、「任意の必要とされるタイ・ブレーキング(tie breaking)に基づいて最初に終了すべきエンティティ」を意味すると解すること)。
その結果、fFmin=最も小さい終了時刻を有するエンティティの終了時刻の値、である。
【0020】
Smin(1<=Smin<N)=最も小さい開始時刻を有するエンティティのID番号、とする(ここで意味するものは、上記と同じである。すなわち、もしタイがあるならば、それらはある程度ブレークされると仮定せよ)。
その結果、sSmin=最も小さい開始時刻を有するエンティティの開始時刻の値である。
【0021】
Vkは、サーバが実際に作業をするk番目の時刻を示す。
【0022】
サーバ(14)が作業を実行する度に、サーバ(14)は、そのID番号がFminであるエンティティをサービスする。サーバは、オペレートするためにSminの値を知る必要はなく、sSminの値を知るだけでよい。
【0023】
もう1つの式は、以下の式である:
【0024】
(1)式は、(2)式及び(3)式を一緒にしたものである。
【0025】
(P,T,X)=(1,0,1)及び(Y,Z)=(0,0)を有する(1)式は、「仮想時計(Virtual Clock)」(VC)である。Zhang, L.、「パケット交換ネットワークプロトコルのための新しいアーキテクチャ」(1989年)、レポートLCS TR 455、コンピュータ科学研究所、マサチューセッツ工科大学、ケンブリッジ、マサチューセッツ州、を参照することにより、この明細書中に参考という形で組み入れられる。
【0026】
(P,T,X)=(0,0,0)及び(Y,Z)=(1,1)を有する(1)式は、「自己計時フェア・キューイング(Self-Clocked Fair Queueing)」(SFQ)である。S. J. Golestani、「A Self-Clocked Fair Queueing Scheme for Broadband Applications」、IN Proc. IEEE Infocom、May 1994、を参照することにより、この明細書中に参考という形で組み入れられる。
【0027】
この場合、式の後半部分が次のように見える点は注目すべきである。
(sSmin*1)+((fFmin−sSmin)*1)、すなわち
sSmin+fFmin−sSmin、すなわち
fFmin
(そして、この場合、「sSmin」の値は、実際に必要とされない)
実際には、このように、概念的に文章にて記述される。
【0028】
(P,T,X)=(1,1,0)及び(Y,Z)=(0,0)を有する(1)式は、「略」「重み付けフェア・キューイング(Weighted Fair Queueing)」(WFQ)である。A. Demers、S. Keshav、及びS. Shenker、「フェア・キューイング・アルゴリズムの解析及びシミュレーション」;インターネットワーキング:研究及び実験、第1巻、3−26(1990)と、A. K. J. Parekh、「A Generalized Processor Sharing Approach to Flow Control in Integrated Services Networks」、Ph.D.学位論文、マサチューセッツ工科大学、ケンブリッジ、マサチューセッツ州、1992年2月とを参照することにより、この明細書中に参考という形で組入れられる。
【0029】
実施の観点からすると、この見解での実際問題は、以下の2点である。
a)この方式における「AW」の計算は、通常、サーバの離散モデルよりもむしろ流体モデルをエミュレートすることを必要とする
b)1/AWの計算は、非常に費用がかかり、実行が困難である(もし、AW=(1−ε)ならば、1/AW=1/(1−ε)であり、正確に計算することが難しい)
【0030】
(P,T,X)=(1,0,1)及び(Y,Z)=(1,0)を有する(1)式は、本発明の「仮想サービス・キューイング(Virtial Service Queueing)」(VSQ)である。
【0031】
これらの観察を行なう理由は、以下の2点である。
a)P、T、Xの組とY、Zの組とが、MAX関数の半分づつを表すことに注目し、VSQのみが、関数の両側で0の係数を有しないことが明らかである。
b)もし、SFQの方式における関数を、式を文中に通常書くように書換えれば、VSQのみが、値sSminを利用することもまた、明らかである。
【0032】
本発明は、図22に示されるように、サーバ(10)がエンティティにオペレートする時期をスケジュールする方法に関するものである。該方法は、N個のエンティティからサーバのサービスを要求する工程を具え、ここで、Nは1以上の整数である。次に、N個の各エンティティが、最初にサービスを要求する時期と、サーバからのサービスを受取り完了するべき時期とを記憶する工程が存在する。次に、もし、最も早い受取時刻を有するエンティティが唯1つしかなければ、N個のエンティティのうち、最も早い受取時刻と、ある要求時刻とを有するエンティティへサービスを提供し、そうでなければ、最も早い要求時刻を有するエンティティがサーバからのサービスを受取る、という工程が存在する。該工程の後に、他のエンティティに関して、該工程を繰返す工程が存在することが望ましい。コントローラ(22)により、上記工程を実行することができる。
【0033】
また、本発明は、図23に示されるように、サーバ(14)がサービスをエンティティへ提供する時期をスケジュールするための方法に関する。該方法は、エンティティがサーバ(14)からのサービスを要求する時期を特定する工程を具える。最初のエンティティがサーバからのサービスを要求する時期を特定するためのプロセスは、最初のエンティティがサーバ(14)からのサービスを要求する時期を計算するための任意の技術及び方法を含み得る。これは、エンティティがサーバ(14)からのサービスを要求する時刻を、実際に決めることにより、該要求が起こる時期を特定することを含み得る。すなわち、それは、前のエンティティがサーバ(14)からのサービスを要求した時期から計算されることができ、エンティティがサーバ(14)からのサービスを要求する時期を、ある関数または関係式により、決定されることができる。すなわち、それは、現在、サーバ(14)からのサービスを受けている、別のエンティティの関数として決定され得る。その他に、最初のエンティティがサービスを要求する時刻は、該エンティティがサーバ(14)からのサービスを受取るべき時刻から特定され得る。例えば、開始時刻プラス1/Wiが終了時刻に等しい。
【0034】
さらに、前記特定工程は、サーバがエンティティにサービスを提供すべき時刻を特定するプロセス全体におけるある時点で、エンティティがサーバからのサービスを要求する時刻が特定される、計算の一部であっても構わない。基本的には、特定工程は、プロセスに対する結論、または、プロセスに対する中間工程であることができる。該エンティティは、サーバ(14)からのサービスを要求する最初のエンティティであるのが望ましい。
【0035】
サーバ(14)が、次にエンティティへサービスを提供する時期をスケジュールする方法は、エンティティがサーバ(14)からのサービスを要求する時期の関数として、エンティティへのサービスを提供する工程を具える。該エンティティは、最初のエンティティであることができ、サーバ(14)からのサービスを、最初のエンティティがサーバ(14)からのサービスを要求する時期の関数として、受け取る。1番目のエンティティが、サーバ(14)からのサービスを初めて要求する時期が、1番目のエンティティへのサービスを提供するための基礎であるのが望ましい。他に、エンティティへのサービスを提供する工程は、最初のエンティティがサーバ(14)からのサービスを要求する時期の関数として、2番目のエンティティへのサービスを提供する工程であり得る。そのとき、2番目のエンティティがサービスを受取る時刻は、最初のエンティティがサーバ(14)からのサービスを最初に要求した時期の、ある関数関係式である。例えば、もし、V=1で、最初のエンティティへのサービスを提供すれば、2番目のエンティティへのサービスは、V=2すなわちV=1+1の時刻で提供される。ここで、V=1は、最初のエンティティがサーバ(14)からのサービスを要求する時刻である。
【0036】
本発明は、サーバがサービスをエンティティへ提供する時期を制御するためのスケジューラに関する。該スケジューラは、メモリを具え、該メモリは、エンティティがサーバ(14)からのサービスを要求する時期の関数である時刻を記憶する。また、スケジューラ(10)は、仮想時計(20)を具え、該時計(20)は、エンティティがサーバ(14)からのサービスを要求する時期の関数として、時間の経過を刻む。さらに、スケジューラ(10)はコントローラ(22)を具え、該コントローラ(22)により、エンティティは、エンティティがサーバ(14)からのサービスを要求する時期の関数として、サーバ(14)からのサービスを受け取る。該メモリは、例えば優先キュー(16)のような、開始時刻メモリであり得る。
【0037】
【発明の実施形態の作用】
本発明の動作において、エンティティの主体である数人のユーザが、サーバ(14)からのサービスを受け取る。該ユーザは、個別の時刻または同じ時刻のどちらかで、サーバ(14)のオペレーションを要求するセルを有する。セルを有するどのユーザも、同時にサーバ(14)を呼出さないか、またはサーバ(14)を待っていなければ、サーバ(14)からのサービスを要求したユーザは、サーバからサービスを受け取る。しかしながら、もしそのような場合でないならば、スケジューラ(10)は、セルを有するユーザが、サーバ(14)によりサービスを受ける時期をスケジュールするだろう。
【0038】
オペレーションの間、スケジューラ(10)は、ユーザがサーバ(14)からのサービスを最初に要求する時刻をログイン(log in)する。また、スケジューラ(10)は、ユーザがサーバ(14)からのサービスを待機し終わるべき最も遅い時刻をログインする。スケジューラ(10)は、サーバ(14)からのサービスを要求する各ユーザに関する開始時刻及び終了時刻を記録する。この情報は、ユーザと、ユーザがサーバ(14)からのサービスを最初に待機し始めた時期を特定する仮想時計(20)とから得られる。これは、ユーザが、サービスを要求するときに、サーバ(14)またはスケジューラ(10)へ信号を送る際に起こり得る;スケジューラ(10)またはサーバ(14)が、センサーまたはトリガを用いて、ユーザがサービスを要求している時期を特定する際に起こり得る。本発明のこの様相は、従来技術にてよく知られるように、遠隔通信のスイッチが、如何に動作して、幾つかの接続から該スイッチに到着する信号をスイッチするのか、と同じであり得る。
【0039】
ユーザにサービスするためにサーバ(14)が利用可能なとき、スケジューラ(10)は、サーバ(14)からのサービスを待機しているユーザのうち、どのユーザが最も早い終了時刻を有するかを決定する。次に、最も早い終了時刻を有するユーザは、サーバ(14)によりサービスが提供され、ユーザのセルは、サーバ(14)によりオペレートされる。もしユーザが同じ終了時刻を有するならば、サーバは、どのユーザが最も早い開始時刻を有するかを見て、最も早い開始時刻を有するユーザへサービスを提供する。スケジューラ(10)により、ユーザは、たとえサービスを待機し終わる時刻がまだ起こっていなくとも、サーバ(14)からのサービスを受取る。
【0040】
各ユーザがサーバ(14)によりサービスを提供されている間に、スケジューラ(10)は、サーバ(14)からのサービスを受取るべき次のユーザを探す。高いレートを有するユーザは、より低いレートを有するユーザよりも頻繁に、サーバ(14)からのサービスを受け取るだろう。しかしながら、比較的高いレートを有するユーザがサーバ(14)からのサービスを受取る間に、より高いレートを有するユーザよりも、早い終了時刻且つ/又は早い開始時刻を有している、より低いレートを有するユーザが、サーバ(14)からのサービスを受取る場合が存在するだろう。サーバ(14)からのサービスを受取っているユーザの終了時刻が起こったとき、スケジューラ(10)は該ユーザにより制御されないので、より低いレートを有するユーザは、サーバ(14)がより高いレートへのサービスを提供していないときに、サーバ(14)からのサービスを断続的に受取ることができる。その結果、サーバ(14)は、所定の単位サイクルのオペレーション中、ある一定のサービス能力を有するという事実と、様々なユーザの有するレート全てが加わると、サイクルに関する該単位レートに等しくなるという事実とにより制御されるから、1サイクルの進行中に、各ユーザは、サーバ(14)によりサービスを提供してもらうであろう。
【0041】
簡単な例として、5つのユーザA−Eのレートが、それぞれ0.5、0.2、0.1、0.1、0.1であるとする。時刻V=0で、各ユーザA−Eのセルは、サーバ(14)からサービスを受けるために到着する。ユーザAからのセルは、終了時刻がV=2であり、ユーザBからのセルは、終了時刻がV=5であり、且つユーザC、D及びEからのセルは終了時刻がV=10である。これが図2に示される。
【0042】
時刻V=0で、ユーザAからのセルが存在し、且つ、該セルは、サービスを待機している全てのセルの中で最も早い終了時刻V=2を有するから、サーバ(14)はユーザAにサービスする。サーバ(14)がユーザAにサービスするから、時刻をV=1へ1単位進める。
【0043】
時刻V=1で、サーバ(14)は、図3に示されるように、ユーザBからのセルがV=5という最も早い終了時刻を有するから、該セルに提供する。サーバ(14)がユーザBのセルをオペレートするから、時刻を1単位分増加して、V=2となる。
【0044】
V=2で、図4に示されるように、ユーザAからのセルが到着して、該セルの開始時刻がV=2であり、且つ終了時刻がV=4である。V=2で、ユーザAのセルに関する終了時刻V=4は、最も早い終了時刻であるので、サーバ(14)は、ユーザAからのセルにサービスする。サーバ(14)がユーザAのセルをオペレートするとき、時刻がV=3へ進められる。
【0045】
時刻V=3で、サーバ(14)は、ユーザCからのセルをオペレートする。なぜなら、該セルは、図5に示されるように、サービスを待機しているどのセルにも匹敵する、早い終了時刻V=10を有するからである。サーバ(14)がユーザCからのセルにサービスを提供することにより、時刻がV=4へ進められる。
【0046】
時刻V=4で、ユーザAからのセルが、サーバ(14)のサービスを受けるために到着する。該セルは、時刻V=4で到着し、図6に示されるように、終了時刻がV=6である。ユーザAからのセルが、最も早い終了時刻V=6を有するから、サーバ(14)は該セルに提供する。それから、時刻がV=5へ進められる。
【0047】
時刻V=5で、ユーザBからのセルがサーバ(14)からのサービスを受取るために到着する。該セルの開始時刻はV=5であり、終了時刻はV=10である。時刻V=5で、サーバ(14)は、ユーザDからのセルへサービスを提供する。なぜなら、サービスを待機している全てのセルの終了時刻は同じであるが、ユーザDからのセルの開始時刻は0であり、該セルは、ユーザEからのセルとは同じレートであるが、ユーザBからのセルよりも早いからである。図7を参照。サーバ(14)がユーザDからのセルをサービスした後に、時刻がV=6へ進められる。
【0048】
時刻V=6で、ユーザAからのセルがサーバ(14)からサービスを受けるために到着する。該セルの開始時刻はV=6であり、終了時刻はV=8である。サーバ(14)は、ユーザAからのセルが、サーバ(14)からのサービスを待機しているセルのうち最も早い終了時刻を有するから、該セルへサービスを提供する。図8を参照。サーバによりユーザAからのセルがサービスされることにより、時刻はV=7へ進められる。
【0049】
時刻V=7で、サーバ(14)は、ユーザEからのセルへサービスを提供する。なぜなら、該セルは、最も早い開始時刻V=0と、サーバ(14)からのサービスを待機しているユーザBからのセルと同じ終了時刻とを有するからである。図9を参照。サーバ(14)がユーザEからのセルへサービスを提供した後に、時刻はV=8へ進められる。
【0050】
時刻V=8で、ユーザAからのセルが、サーバ(14)からサービスを受けるために到着する。時刻V=8で、サーバ(14)はユーザBからのセルへサービスを提供する。なぜなら、該セルは、最も早い開始時刻V=5と、サーバ(14)からのサービスを待機しているユーザAからのセルと同じ終了時刻を有するからである。図10を参照。サーバ(14)がユーザBからのセルへサービスを提供した後に、時刻はV=9へ進む。
【0051】
時刻V=9で、ユーザAからのセルが、サーバ(14)からのサービスを待機している任意のセルのうち最も早い終了時刻を有するから、サーバ(14)は、該セルへサービスを提供する。図11を参照。この時点で、1単位サイクルが完了し、全てのユーザがサービスを受け取った。サーバ(14)がユーザAのセルへサービスを提供した後に、時刻はV=10へ進む。
【0052】
時刻V=10で、ユーザAからのセルは、サービスを受けるために到着して、終了時刻V=12を有し、ユーザBからのセルは、サービスを受けるために到着して、終了時刻V=15を有し、且つ各ユーザC、D及びEからのセルは、到着して、終了時刻V=20を有する(図示せず)。それから、上述のようなサイクルを繰り返す。
【0053】
ユーザのレートを足しても1より小さいときのスケジューラの動作を説明する別の簡単な例が与えられる。この例では、3つのユーザA−Cが、それぞれ0.5、0.2及び0.1のレートを有する。
【0054】
時刻V=0で、ユーザA、B及びCからのセルが、到着して、開始時刻V=0を有する。ユーザAからのセルは、終了時刻がV=2であり、ユーザBからのセルは、終了時刻がV=5であり、且つユーザCからのセルは、終了時刻がV=10である。図12を参照。V=0で、ユーザAからのセルは、セルの中で最も早い終了時刻V=2を有するから、サーバ(14)からのサービスを受け取る。サーバ(14)はユーザAにサービスするから、時刻はV=1へ1単位進められる。
【0055】
V=1で、サーバ(14)は、ユーザBからのセルが、セルの中で最も早い終了時刻V=5を有するから、該セルにサービスする。図13を参照。それから、時刻がV=2へ1増加分進められる。
【0056】
時刻V=2で、ユーザAからのセルは、サーバ(14)からサービスを受けるために到着する。サーバ(14)は、ユーザAからのセルが、セルの中で最も早い終了時刻V=4を有するから、該セルにサービスする。図14を参照。それから、時刻がV=3へ1増加分進められる。
【0057】
時刻V=3で、サーバは、ユーザCからのセルへサービスを提供する。なぜなら、該セルは、現在の仮想時刻V=3よりも早い開始時刻を有する唯一のセルであり、また、終了時刻V=10を有するからである。図15を参照。
【0058】
サーバ(14)がユーザCからのセルにサービスする後に、仮想時刻は、サーバ(14)からのサービスを要求するセルのうち、最も早い開始時刻へ、1増加分進められる。この場合では、サービスを待機しているセルのうち、最も早い開始時刻は、V=4であり、それにより、V=3から1時刻増加する。
【0059】
時刻V=4で、ユーザAからのセルは、サーバ(14)からサービスを受けるために到着する。サーバ(14)は、ユーザAからのセルへサービスを提供する。なぜならば、該セルは開始時刻V=4を有し、これは現在の仮想時刻と等しく、且つ該セルは終了時刻V=6を有し、これはサーバ(14)からのサービスを待機している任意のセルのうち、最も早い終了時刻であるからである。図16を参照。サーバ(14)がユーザAからのセルへサービスを提供するとき、現在の仮想時刻V=4と同じかまたはそれより早い開始時刻を有する他のセルが存在しないので、仮想時刻は、サーバ(14)からのサービスを要望するセルのうち、最も早い開始時刻へ増加される。この場合では、ユーザBからのセルは、サーバ(14)からのサービスを要求するときに、開始時刻V=5を有するであろうから、仮想時刻は、V=5へ1単位分増加される。
【0060】
時刻V=5で、ユーザBからのセルは、サーバ(14)からサービスを受けるために到着する。時刻V=5で、ユーザBからのセルは、サーバ(14)からのサービスを待機している任意のセルのなかで、最も早い終了時刻を有するから、サーバ(14)は、該セルへサービスを提供する。図17を参照。サーバ(14)がユーザBからのセルへサービスを提供するとき、仮想時刻は、セルがサーバ(14)からのサービスを要求する最も早い開始時刻に対応する、次の仮想時刻へ増加される。この場合では、ユーザAからのセルの開始時刻がV=6である。従って、時刻はV=6へ1単位分増加される。
【0061】
時刻V=6で、ユーザAからのセルは、サーバ(14)からサービスを受けるために到着する。時刻V=6で、サーバ(14)は、ユーザAからのセルが最も早い終了時刻を有するから、該セルへサービスを提供する。図18を参照。それから、仮想時刻は、V=7ではなく、V=8へ増加される。なぜならば、サーバ(14)からのサービスを待機しているセルのうち、最も早い開始時刻は、V=8で起こるであろうからである。その結果、仮想時刻は、この場合、2単位分増加される。
【0062】
時刻V=8で、ユーザAからのセルは、サーバ(14)からサービスを受けるために到着する。サーバ(14)は、ユーザAからのセルが最も早い終了時刻を有するから、該セルへサービスを提供する。図19を参照。サーバ(14)がユーザAからのセルへサービスを提供した後に、時刻はV=10へ増加される。なぜならば、V=10で、サーバ(14)からのサービスを待機しているセルに関して、最も早い開始時刻が存在するからである。そのとき、仮想時刻は、V=8からV=10へ2単位分増加される。
【0063】
V=10で、ユーザA、B及びCからのセルが、サーバ(14)からサービスを受けるために到着する。ユーザAからのセルに関する終了時刻は、V=12であり、ユーザBからのセルに関する終了時刻は、V=15であり、且つユーザCからのセルに関する終了時刻は、V=20である(図示せず)。V=10では、図がV=10までしか描かれていないので、サービスを受けるために現れるセルは存在しない。しかしながら、V=10に関連する終了時刻が、示されていないけれども、存在することから、V=10は、図20において示される。
【0064】
【実施例】
本発明の幾つかの実施例が、図26乃至図44に示されている。図38乃至図44において、VSQの前にあるRCは、2つの実施例における比率制御を表すことに注意せよ。これらの実施例は、サーバ(14)によってオペレートされるために要素プール(24)に到着する要素を示し、該要素は、ATMネットワークに関するセルであるのが望ましい。該実施例をよりよく理解するために、スケジューラ(10)の動作の幾つかを次に説明する。
【0065】
実施例1(図26)において、3つのエンティティ(12)が、要素プール(24)へ接続される。重み及びレートは、これらのエンティティ(12)と関係がある。例えば、0番目のエンティティ(12)に関するユーザ0は、重みが0.5であり、レートが0.5である。1番目のエンティティ(12)に関するユーザ1は、重みが0.333であり、レートが0.333である。2番目のエンティティ(12)に関するユーザ2は、重みが0.166であり、レートが0.166である。時刻T=1で、仮想時刻は0である。セル000、001及び002は、0番目、1番目及び2番目のユーザの0番目、1番目及び2番目のエンティティ(12)に対応し、要素プール(24)に到着する。該セルが、要素プール(24)にて最初に到着した開始時刻と、要素プール(24)を離れてしまうべき終了時刻とは、それぞれ、開始時刻優先キュー(16)と終了時刻優先キュー(18)にて記録される。これは、開始時刻列及び終了時刻列並びに開始キュー列及び終了キュー列にて示される。
【0066】
開始時刻列において、ユーザ0は、0番目のユーザに関連するセル000が要素プール(24)に到着した時に関する位置が、2番目すなわち最後である。該要素が要素プールに到着した時刻は、時刻T=0である。終了時刻列において、ユーザ0の位置は、最初すなわち0番目である。というのは、ユーザ0の終了時刻T=2000は、要素プール(24)における全ての要素の中で最も早い終了時刻だからである。ユーザ0に関して、該列において特定される量Qがあり、該Qは、要素プール(24)において、ユーザ0のセルが唯1つであることを示している。開始キュー列において、ユーザ0は、最後すなわち2番目の位置にあり、開始時刻がT=0である。しかしながら、終了キュー列に基づく終了時刻優先キュー(18)において、ユーザ0は、0番目の位置にある。なぜならば、該時刻T=2000は、要素プール(24)における全ての要素の中で最も早い終了時刻だからである。
【0067】
ユーザ1に関しては、開始時刻の位置が1であり、関連する開始時刻がT=0である。終了時刻の位置も1である。なぜなら、終了時刻T=3000は、要素プール(24)における3つのセルの中で2番目に早い終了時刻だからである。ユーザ1に関して、要素プール(24)におけるセルの量Qが1であり、開始時刻優先キュー(16)において、ユーザ1は、位置が1番目で、該時刻がT=0である。ユーザ1は、終了キュー列における位置も1番目である。というのは、ユーザ1の終了すべき時刻は、要素プール(24)におけるセルのうち2番目に早いからである。
【0068】
ユーザ2は、開始時刻優先キュー(16)における位置が、最も早いすなわち0番目であり、時刻がT=0である。ユーザ2の終了時刻T=6000は、要素プール(24)における全てのセルのなかで最も遅い終了時刻であるから、その終了時刻位置は、最後すなわち2番目である。ユーザ2は、要素プール(24)におけるセルの量Qが1であり、開始キューの位置が0番目であり、時刻がT=0である。終了時刻優先キュー(18)において、ユーザ2の終了キューの位置は2番目である。なぜならば、その終了時刻T=6000は、要素プール(24)における3つのセルのうち最も遅い終了時刻だからである。
【0069】
時刻0000での動作において、ユーザ0のセルは、サーバ(14)によりオペレートされる。これを反映して、ユーザ0は、開始時刻の位置が−1で、時刻がT=0となり、終了時刻の位置が−1で、時刻がT=2000となる。ユーザ0のQ量は、その対応するセルが、サーバ(14)によりオペレートされて、もはや要素プール(24)に存在しないから、今や0である。開始時刻優先キュー(16)において、ユーザ0の位置が−1で、時刻がT=−1であり、これは、ユーザ0が要素プールにもはや存在しないという事実を反映している。また、ユーザ0に関連するセルが要素プール(24)にもはや存在しないから、終了時刻優先キュー(18)により、ユーザ0の終了キューが要素プール(24)において−1であることが反映される。サーバは、同時に1つのセルしかオペレートできないから、最も早い終了時刻を有するユーザ0のセルのみが、要素プール(24)から離れる。残りのユーザは、終了時刻に関する位置が1段上昇する。というのは、今や、ユーザ1のセルに関する時刻T=3000は、最も早い終了時刻であり、ユーザ2に関連するセルに関する時刻T=6000は、今や、2番目に遅い終了時刻であるからである。また、本実施例から明らかなように、ユーザ0、1及び2のセル全てが、たとえそれらの重みが異なっていても、同じ開始時刻で要素プール(24)に到着したから、該セルは、開始時刻優先キュー(16)において、最も大きいユーザナンバーを基準として最も小さいユーザナンバーまで順序付けられる。しかしながら、本質的には、任意のやり方の順序付け(scheme of ordering)で行なうことは自由である。
【0070】
時刻がT=2で、仮想時刻が1000に等しい時(サーバ(14)が、たった今、セルをオペレートしたから、仮想時刻は、仮想時刻の1単位分−−ここでは1000−−増加される)、ユーザ0、ユーザ1及びユーザ2からの新しいセルが要素プール(24)に到着する。ユーザ0の開始時刻は、開始時刻優先キュー(16)において到着を確認される時刻であるから、T=2000である。終了時刻優先キュー(18)におけるユーザ0の位置は1である。なぜなら、その終了時刻T=4000は、終了時刻において、セルのなかで2番目に早いからである。さらに、ユーザ1とユーザ2の該量Qは、現在両方とも2である。というのは、これら各ユーザも、時刻T=2で要素プール(24)内にセルが追加されるからである。ユーザ1は、要素プール(24)における全てのセルのうち最も早い終了時刻3000を有し、また、時刻V=1000よりも早い開始時刻T=0を有し、その結果、要素プール(24)に存在するから、要素プール(24)にあるこのセルが、サーバ(14)へ提供されて、サーバ(14)によりオペレートされる。その結果、サーバ(14)の次のオペレーションでは、サーバ(14)は、終了時刻がT=3000であるユーザ1のセルに提供する。このセルは、要素プール(24)から移動され、その結果開始時刻優先キュー(16)と終了時刻優先キュー(18)が調整される。ユーザ1に関するセルの量Qは1に減らされ、一方ユーザ0に関するセルの量Qは1のままであり、且つユーザ2に関するセルの量Qは2のままである。ユーザ1に関して、要素プール(24)に、まだ残っているセルがあるから、その存在により、開始時刻列の時刻がT=3000となり、終了時刻列の終了時刻がT=6000となることが明らかになる。
【0071】
時刻T=3では、V=2000である。というのは、セルが該サーバ(14)によりオペレートされたことにより、仮想時刻V=1000が1単位時刻分増加されるからである。時刻T=3及びV=2000では、唯1つの新しいセルが到着する。この新しいセルは、ユーザ0からである。これを反映して、要素プール(24)におけるセルの量Qがユーザ0に関して2になる。この時刻で、ユーザ0は、終了時刻優先キュー(18)にT=4000のセルを有し、該時刻は、最も早い終了時刻である。また、このセルは、開始時刻がT=2000であるから、時刻V=2000での要素プール(24)に存在し、且つサーバ(14)によりオペレートされるべきセルである。T=3且つ仮想時刻が2000に等しい時刻で、サーバがオペレートするとき、終了時刻T=4000を有するユーザ0のセルは、要素プール(24)から移動されて、サーバ(14)によりオペレートされる。次に、要素プール(24)におけるユーザ0に関連するセルの量Qは、1つ分減少される。
【0072】
この時点で、全てのユーザのセルが有する全ての終了時刻は、T=6000である。その結果、終了時刻に関して全て等しいから、どのセルがサーバによって次にオペレートされるかに関して、開始時刻が制御するようになる。このことは、時刻T=4及びV=3000で見られることができる。該時刻で、ユーザ2は、要素プール(24)に2つのセルを有し、該セルの1つが、最も早い開始時刻T=0を有する。次に、ユーザ2のこのセルが、サーバ(14)によりオペレートされる。図26乃至図44における本実施例の残り部分は、上記の説明に基づいて理解されるべきである。
【0073】
本発明を応用した特有の場合において、ATMスイッチ要素は、図21に示されるように、1乃至N個の入力接続(102)と1乃至M個の出力接続(104)を有する。ATMセルは、スイッチ要素(100)により、入力接続(102)を介して受信される。スイッチ要素(100)は、該セルをオペレートして、出力接続(104)を介して送信する。セルは、特定の入力接続(102)上から入ってくるときはいつでも、従来よく知られるように、プール(106)に置かれる。そして、従来よく知られるように、スイッチ要素のスケジューラ(108)に、対応するプール(106)にセルが存在することを通知する。各入力接続(102)は、スイッチ要素(100)に進入するセルが記憶される専用のプール(106)を所有できること、または個々の入力接続(102)からのセルの全てが、スイッチ要素のサーバ(110)がオペレートする準備ができるまで、記憶される共通プール(106)が存在し得ることに注意すべきである。
【0074】
スイッチ要素(100)についてのスケジューラ(108)は、ATM状況を除いて上述のとおり動作し、スイッチ要素(100)のサーバ(110)からサービスを受けるために、セルから得られた競り値(a bid value)を決定したように、セルについてスケジューラが特定した終了時刻によって、それの終了時刻が、決定される。この競り(bid)の使用は、従来よく知られている。例えば、クレイグ・パートリッジ(Craig Partridge)著「ギガビット・ネットワーキング」アディソン・ウェスリー(Addison Wesley)1994年発行;ATM・フォーラム編集「ATM・ユーザ・ネットワーク・インターフェース仕様書、3.0版」プレンティス・ホール(Prentice Hall)1994年発行;レイフ・オー・オンヴュラル(Raif O. Onvural)著「非同期転送モード・ネットワーク:パフォーマンス上の問題点」、アーテック・ハウス社(Artech House Inc.)、マサチューセッツ州ノーウッド(Norwood)、1994年発行、を参照。これら全てが参照として組込まれる。
【0075】
【発明の効果】
本発明の方法及び装置によって、より大きなニーズを有するユーザが、所定の時刻にサービスを要求しない時に、より小さいニーズを有するユーザにサービスを提供することができ、ユーザに対して、より公平なサービスの提供が実現できた。
【0076】
本発明は、例示の目的のために上記実施形態にて詳細に記載されたが、その細部は、単に前記例示目的のためであり、特許請求の範囲に記載されるようなもの以外にも、本発明の精神及び範囲から離れることなく、従来技術に熟練する人々により、変形を成し得ると、理解されるべきである。
【図面の簡単な説明】
【図1】本発明の概要図である。
【図2】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図3】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図4】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図5】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図6】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図7】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図8】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図9】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図10】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図11】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図12】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図13】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図14】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図15】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図16】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図17】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図18】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図19】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図20】仮想時刻の関数としてサーバからのサービスを待機するセルの概要図である。
【図21】ATMスイッチ要素の概要図である。
【図22】サーバがサービスをエンティティへ提供する時期をスケジュールする、本発明の方法のフローチャートである。
【図23】サーバがサービスをエンティティへ提供する時期をスケジュールする、他の本発明の方法のフローチャートである。
【図24】図1の各構成要素の繋がりを示すブロック図である。
【図25】本発明のスケジューラに関するフローチャートである。
【図26】本発明の実施例に関するセルの概要図である。
【図27】本発明の実施例に関するセルの概要図である。
【図28】本発明の実施例に関するセルの概要図である。
【図29】本発明の実施例に関するセルの概要図である。
【図30】本発明の実施例に関するセルの概要図である。
【図31】本発明の実施例に関するセルの概要図である。
【図32】本発明の実施例に関するセルの概要図である。
【図33】本発明の実施例に関するセルの概要図である。
【図34】本発明の実施例に関するセルの概要図である。
【図35】本発明の実施例に関するセルの概要図である。
【図36】本発明の実施例に関するセルの概要図である。
【図37】本発明の実施例に関するセルの概要図である。
【図38】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図39】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図40】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図41】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図42】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図43】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【図44】本発明で、比率制御を使用する場合の実施例に関するセルの概要図である。
【符号の説明】
(10) スケジューラ
(12) エンティティ
(14) サーバ
(16) 開始時刻メモリ、開始時刻優先キュー
(18) 終了時刻メモリ、終了時刻優先キュー
(20) 仮想時計
(22) コントローラ
(24) 要素プール
Claims (9)
- N個のエンティティの到着時刻である開始時刻siを記憶する開始時刻メモリ(16)(Nは1以上の整数であり、エンティティはユーザからのセル、iは1以上N以下の整数であり、siは、i番目のエンティティがサーバからのサービスを最初に要求する時刻に対応する。);
N個のエンティティの終了時刻fiを記憶する終了時刻メモリ(18)(fiは、i番目のエンティティがサーバによりその時刻までにオペレートされるべき時刻に対応する。);
開始時刻siと終了時刻fiとを特定できるように時刻の経過を刻む仮想時計(20);及び
各仮想時刻にて、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティが最初にオペレートされ、次に、もし終了時刻fiが同じならば、最も早い開始時刻siか、若しくは最も高いID又はレートを有するエンティティが、次にオペレートされる、という順序で、サーバによりオペレートされるべきエンティティを選択して、エンティティを終了時刻fiの前にサーバによりオペレートするコントローラ(22)を具え、
該コントローラ(22)はエンティティの最も早い開始時刻siが仮想時刻よりも遅ければ、該最も早い開始時刻siへ仮想時刻を増加し、エンティティがサーバによりオペレートされたときは、仮想時刻の1単位分、仮想時刻を増加して、
N個のエンティティが、サーバによってオペレートされる時期を制御するスケジューラ装置。 - コントローラ(22)は、サーバからエンティティへのサービスを連続的に提供する、請求項1に記載のスケジューラ装置。
- エンティティがサーバからサービスを受取るとき、コントローラ(22)により、仮想時計(20)は、現在の仮想時刻を進める、請求項2に記載のスケジューラ装置。
- 開始時刻メモリ(16)は、開始時刻優先キューを含み、終了時刻メモリ(18)は、終了時刻優先キューを含む、請求項3に記載のスケジューラ装置。
- ユーザと接続され、且つサーバによってオペレートされるためのエンティティを受取る、要素プールを具え、該要素プールにおいて、エンティティの到着時刻siは、i番目のエンティティが要素プールに到着する時刻に対応し、終了時刻fiは、i番目のエンティティが、要素プールを離れて、サーバによりその時刻までにオペレートされるべき時刻に対応し、且つコントローラ(22)は、要素プールからサーバへエンティティを転送する、請求項4に記載のスケジューラ装置。
- 仮想時計の時刻を制御し、且つ、要素プールにおけるエンティティと、開始時刻優先キュー及び終了時刻優先キューにおける夫々の開始時刻si及び終了時刻fiとを記憶するために、コントローラ(22)は、仮想時計、要素プール、開始時刻メモリ(16)及び終了時刻メモリ(18)へ接続される、請求項5に記載のスケジューラ装置。
- コントローラ(22)は、最も早い終了時刻fiを有するエンティティが唯1つしかなければ、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティを要素プールの外へ転送し、そうでない場合は、最も早い開始時刻siを有するエンティティを要素プールの外へ転送し、且つ、終了時刻fiより前にエンティティを転送する請求項6に記載のスケジューラ装置。
- N個のエンティティ(Nは1以上の整数であり、エンティティはユーザからのセル)がサーバ(14)からのサービスを要求する工程;
N個の各エンティティがサーバ(14)からのサービスを要求する開始時刻siと、N個の各エンティティがサーバによるサービスを完了すべき終了時刻fiとをサーバ(14)に連繋したメモリ内に記憶する工程;
及び或る仮想時刻にて、最も早い終了時刻fiを有するエンティティが唯1つしかなければ、サーバ(14)はN個のエンティティのうち、最も早い終了時刻fiを有するエンティティにサービスを提供し、そうでない場合、サーバ(14)は、最も早い開始時刻siを有するエンティティにサービスを提供し、且つ、その終了時刻fiより前にエンティティへのサービスを提供する工程を具え、
サーバがエンティティへのサービスを提供する時期をスケジュールする方法。 - サービスを提供する工程の後に、サーバからのサービスを要求している他のエンティティに関して、該提供する工程を仮想時刻を進めて繰返す工程が存在する、請求項8に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/362,217 US5828879A (en) | 1994-12-22 | 1994-12-22 | Method and a scheduler for controlling when a server provides service to an entity |
US08/362217 | 1994-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08272709A JPH08272709A (ja) | 1996-10-18 |
JP4263254B2 true JP4263254B2 (ja) | 2009-05-13 |
Family
ID=23425176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29678095A Expired - Lifetime JP4263254B2 (ja) | 1994-12-22 | 1995-11-15 | サーバがサービスをエンティティへ提供する時期を制御する方法及びスケジューラ |
Country Status (4)
Country | Link |
---|---|
US (2) | US5828879A (ja) |
EP (1) | EP0721167A3 (ja) |
JP (1) | JP4263254B2 (ja) |
CA (1) | CA2150966C (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998041957A1 (en) * | 1997-03-19 | 1998-09-24 | Trintech Limited | A point-of-sale transaction processing system |
JP4151991B2 (ja) * | 1997-05-26 | 2008-09-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ビデオサーバにおいてデータを取り出すシステム |
US6088728A (en) * | 1997-06-11 | 2000-07-11 | Oracle Corporation | System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server |
US6243751B1 (en) * | 1997-06-11 | 2001-06-05 | Oracle Corporation | Method and apparatus for coupling clients to servers |
US6393483B1 (en) * | 1997-06-30 | 2002-05-21 | Adaptec, Inc. | Method and apparatus for network interface card load balancing and port aggregation |
US9239763B2 (en) | 2012-09-28 | 2016-01-19 | Oracle International Corporation | Container database |
CA2393740A1 (en) * | 1999-12-08 | 2001-06-14 | The University Of British Columbia | Weighted fair queuing scheduler |
JP4092388B2 (ja) * | 2000-11-10 | 2008-05-28 | 富士通株式会社 | ネットワークを用いたサービス提供方法及びそれを用いたサービス提供システム |
US6925499B1 (en) * | 2001-12-19 | 2005-08-02 | Info Value Computing, Inc. | Video distribution system using disk load balancing by file copying |
US7039784B1 (en) * | 2001-12-20 | 2006-05-02 | Info Value Computing Inc. | Video distribution system using dynamic disk load balancing with variable sub-segmenting |
US20040127215A1 (en) * | 2002-12-31 | 2004-07-01 | Shaw Venson M. | Delivery of network services |
US7945914B2 (en) * | 2003-12-10 | 2011-05-17 | X1 Technologies, Inc. | Methods and systems for performing operations in response to detecting a computer idle condition |
US7415470B2 (en) * | 2004-08-12 | 2008-08-19 | Oracle International Corporation | Capturing and re-creating the state of a queue when migrating a session |
US7502824B2 (en) | 2004-08-12 | 2009-03-10 | Oracle International Corporation | Database shutdown with session migration |
US9176772B2 (en) * | 2005-02-11 | 2015-11-03 | Oracle International Corporation | Suspending and resuming of sessions |
US7995474B2 (en) * | 2005-09-13 | 2011-08-09 | International Business Machines Corporation | Grid network throttle and load collector |
US7831971B2 (en) * | 2005-10-24 | 2010-11-09 | International Business Machines Corporation | Method and apparatus for presenting a visualization of processor capacity and network availability based on a grid computing system simulation |
US20070118839A1 (en) * | 2005-10-24 | 2007-05-24 | Viktors Berstis | Method and apparatus for grid project modeling language |
US7853948B2 (en) * | 2005-10-24 | 2010-12-14 | International Business Machines Corporation | Method and apparatus for scheduling grid jobs |
US8549038B2 (en) | 2009-06-15 | 2013-10-01 | Oracle International Corporation | Pluggable session context |
US20110038325A1 (en) * | 2009-08-13 | 2011-02-17 | Clear Wireless Llc | System and method for scheduling packets in a communication system |
CN103729927A (zh) * | 2013-12-16 | 2014-04-16 | 王美金 | 一种免除银行客户等候的调度方法及系统 |
CN104091386B (zh) * | 2014-06-02 | 2016-12-07 | 何文秀 | 基于计算机和大数据的银行业务流程的方法和系统 |
EP3161610B1 (en) | 2014-06-26 | 2020-08-05 | Google LLC | Optimized browser rendering process |
CN106462582B (zh) * | 2014-06-26 | 2020-05-15 | 谷歌有限责任公司 | 批处理优化渲染和获取架构 |
WO2015196410A1 (en) | 2014-06-26 | 2015-12-30 | Google Inc. | Optimized browser render process |
US10289617B2 (en) | 2015-12-17 | 2019-05-14 | Oracle International Corporation | Accessing on-premise and off-premise datastores that are organized using different application schemas |
US10387387B2 (en) | 2015-12-17 | 2019-08-20 | Oracle International Corporation | Enabling multi-tenant access to respective isolated data sets organized using different application schemas |
US10303894B2 (en) | 2016-08-31 | 2019-05-28 | Oracle International Corporation | Fine-grained access control for data manipulation language (DML) operations on relational data |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4736318A (en) * | 1985-03-01 | 1988-04-05 | Wang Laboratories, Inc. | Data processing system having tunable operating system means |
US4745836A (en) * | 1985-10-18 | 1988-05-24 | Dannenberg Roger B | Method and apparatus for providing coordinated accompaniment for a performance |
US5187790A (en) * | 1989-06-29 | 1993-02-16 | Digital Equipment Corporation | Server impersonation of client processes in an object based computer operating system |
US5261099A (en) * | 1989-08-24 | 1993-11-09 | International Business Machines Corp. | Synchronous communications scheduler allowing transient computing overloads using a request buffer |
JP2945757B2 (ja) * | 1989-09-08 | 1999-09-06 | オースペックス システムズ インコーポレイテッド | 多重装置オペレーティングシステムのアーキテクチャ |
EP0422310A1 (en) * | 1989-10-10 | 1991-04-17 | International Business Machines Corporation | Distributed mechanism for the fast scheduling of shared objects |
US5142533A (en) * | 1991-03-28 | 1992-08-25 | Motorola, Inc. | Method for controlling the scheduling of multiple access to communication resources |
US5327558A (en) * | 1992-04-30 | 1994-07-05 | Motorola, Inc. | Method for asynchronous application communication |
US5437039A (en) * | 1992-05-21 | 1995-07-25 | Intel Corporation | Servicing transparent system interrupts and reducing interrupt latency |
US5414845A (en) * | 1992-06-26 | 1995-05-09 | International Business Machines Corporation | Network-based computer system with improved network scheduling system |
US5404523A (en) * | 1993-11-10 | 1995-04-04 | Digital Equipment Corporation | Method of managing requests in a transaction processing system |
-
1994
- 1994-12-22 US US08/362,217 patent/US5828879A/en not_active Expired - Lifetime
-
1995
- 1995-01-20 US US08/375,624 patent/US5845115A/en not_active Expired - Lifetime
- 1995-06-05 CA CA002150966A patent/CA2150966C/en not_active Expired - Fee Related
- 1995-11-15 JP JP29678095A patent/JP4263254B2/ja not_active Expired - Lifetime
- 1995-12-22 EP EP95309404A patent/EP0721167A3/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
EP0721167A3 (en) | 1998-01-28 |
US5828879A (en) | 1998-10-27 |
CA2150966C (en) | 2002-05-21 |
CA2150966A1 (en) | 1996-06-23 |
US5845115A (en) | 1998-12-01 |
JPH08272709A (ja) | 1996-10-18 |
EP0721167A2 (en) | 1996-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4263254B2 (ja) | サーバがサービスをエンティティへ提供する時期を制御する方法及びスケジューラ | |
JP4283899B2 (ja) | サーバがサービスを比率制御によりエンティティへ提供する時期を制御する方法及びスケジューラ | |
US7558278B2 (en) | Apparatus and method for rate-based polling of input interface queues in networking devices | |
US7461159B2 (en) | Weighted fair queuing scheduler | |
US5831971A (en) | Method for leaky bucket traffic shaping using fair queueing collision arbitration | |
EP1083709B1 (en) | Method and apparatus for scheduling traffic to meet quality of service requirements in a communication network | |
JP4338285B2 (ja) | パケットスケジューリング方法および装置 | |
JP2001519121A (ja) | 高速パケット・スケジューリング方法及び装置 | |
JP2003531517A (ja) | 切断/再接続フロー・キューを使用して出力をスケジューリングするネットワーク・プロセッサのための方法およびシステム | |
Walraevens et al. | Delay characteristics in discrete-time GI-G-1 queues with non-preemptive priority queueing discipline | |
JP3830937B2 (ja) | 高速パケット網のためのパケットスケジューリングシステム及び方法 | |
US7385987B1 (en) | Scheduling system and method for multi-level class hierarchy | |
US7130270B2 (en) | Method and apparatus for varying bandwidth provided to virtual channels in a virtual path | |
US7567572B1 (en) | 2-rate scheduling based on search trees with configurable excess bandwidth sharing | |
US8467401B1 (en) | Scheduling variable length packets | |
KR100369562B1 (ko) | 고속 통합 서비스망에서 wfq의 에뮬레이션을 통한 공정패킷 스케쥴링 방법 및 그 공정 패킷 스케쥴러 | |
Kwak et al. | A new starting potential fair queuing algorithm with O (1) virtual time computation complexity | |
Cheng et al. | Real-time traffic scheduling and routing in packet-switched networks using a least-laxity-first strategy | |
JP2004520731A (ja) | 複数の情報パケットフロー間で共用資源をスケジュールするための手順及びシステム | |
Altintast et al. | On a packet scheduling mechanism for supporting delay sensitive applications on high speed networks | |
Walraevens et al. | Performance Analysis of a GI-G-1 Preemptiv Resume Priority Buffer | |
Simon et al. | A probabilistic analysis of admission control policies for deadline-driven service disciplines | |
Tyan et al. | Rate-based packet scheduling paradigm | |
Cha et al. | A new per-VC scheduling scheme in ATM networks: two-phased weighted fair queuing | |
Dukkipati et al. | Scheduling Algorithms to Minimize Session Delays |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040830 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040830 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050908 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060131 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060523 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060526 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20070330 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080514 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080514 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081211 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090212 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |