JP4283899B2 - サーバがサービスを比率制御によりエンティティへ提供する時期を制御する方法及びスケジューラ - Google Patents

サーバがサービスを比率制御によりエンティティへ提供する時期を制御する方法及びスケジューラ Download PDF

Info

Publication number
JP4283899B2
JP4283899B2 JP29687795A JP29687795A JP4283899B2 JP 4283899 B2 JP4283899 B2 JP 4283899B2 JP 29687795 A JP29687795 A JP 29687795A JP 29687795 A JP29687795 A JP 29687795A JP 4283899 B2 JP4283899 B2 JP 4283899B2
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
Application number
JP29687795A
Other languages
English (en)
Other versions
JPH08272710A (ja
Inventor
シー.アール.ベネット ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ericsson AB
Original Assignee
Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27001598&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4283899(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US08/362,217 external-priority patent/US5828879A/en
Application filed by Ericsson AB filed Critical Ericsson AB
Publication of JPH08272710A publication Critical patent/JPH08272710A/ja
Application granted granted Critical
Publication of JP4283899B2 publication Critical patent/JP4283899B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、例えばコンピュータネットワークにおける、スケジューラ(scheduler)に関する。特に、本発明は、エンティティ(entity)が、その終了時刻前に、サーバ(server)からサービスを受取ることができるスケジューラに関する。
【0002】
【従来の技術】
利用可能なリソースを多種多様なユーザの間で共有しなければならない状況下では、過密問題がリソースの利用に関して起こり得る。非常に簡単に言うと、異なるユーザが所定のリソースを同時に使用したいが、該リソースの能力により一度に1ユーザにしかサービスの提供をできない時が存在し得る。この過密問題を制御するため、スケジューラが一般に利用されて、ユーザがサーバへアクセスする時期を規制する。
【0003】
【発明が解決しようとする課題】
スケジューラは、ユーザにサーバへのアクセスを公平に提供し、その結果どのユーザも、そのニーズに見合った過度の遅れを経験しない様にすることが理想である。従来から、ユーザのニーズが非常に分散しているとき、スケジューラは、必ずしもユーザに対して公平ではなかった。多くの場合、比較的大きなニーズを有するユーザが待機したままであり、一方比較的小さいニーズを有するユーザが、サーバにより提供されている。また、その逆のこともある。
本発明は、より大きなニーズを有するユーザが、所定の時刻にサービスを要求しない時に、より小さいニーズを有するユーザが提供され得るように、ユーザのニーズに応じる方向を示す。
さらに、本発明は、サーバが常に1ユーザに提供していることがないように、サーバの比率制御(rate control)を提供する。
【0004】
【課題を解決する為の手段】
本発明は、N個のエンティティがサーバによりサービスされる時期を制御するためのスケジューラに関する。ここで、Nは1以上の整数である。スケジューラは、開始時刻メモリを具え、該メモリは、N個のエンティティの開始時刻siを記憶する。ここで、iは1以上N以下の整数であり、siは、i番目のエンティティがサーバからのサービスを要求する時刻に対応する。また、スケジューラは、終了時刻メモリを具え、該メモリは、N個のエンティティの終了時刻fiを記憶する。ここで、fiは、i番目のエンティティがサーバによりサービスされるべき時刻に対応する。また、スケジューラは、仮想時計(virtual clock)を具え、該時計は、開始時刻si及び終了時刻fiを特定できるように、仮想時刻の経過を刻む。さらに、スケジューラは、コントローラを具え、該コントローラは、以下のような順序でエンティティを選択して、サーバからサービスを受取る。すなわち、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティが最初にサービスされ、もし終了時刻が同じならば、次に最も早いまたは最も遅い開始時刻si、若しくは、最も高いまたは最も低いIDまたはレート(rate)を有するエンティティが、各所定時刻でサービスされる、という順序である。もし比率制御が用いられると、以下のような別の基準が存在する。すなわち、もし仮想時刻と同一またはそれより前の開始時刻を有するエンティティが存在しなければ、サーバは、サービスをどのエンティティへも提供せず、仮想時計は、仮想時刻をその1単位分増加するという基準である。比率制御において、仮想時刻は、常に、サーバの行動に関係なく時間関数として、仮想時刻の数単位分、望ましくは仮想時刻の1単位分増加される。その時間関数は、単に、所定の時間長さ(period)であるのが望ましい。前述した順序の後半から明らかなように、もしエンティティの終了時刻が同じならば、どのエンティティがサーバへ提供されて、オペレートされるべきかを示すために、どのようなプロトコルが希望されようとも、それは、オペレータが自由に選択すべきことである。
【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以上の整数で、且つ
Figure 0004283899
であり、ここで、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の一方は、本質的に任意の実数となることができる。もし、比率制御が利用されれば、Y=Z=0であり、式の最後の行は適用されない。
【0007】
また、スケジューラは、コントローラを具え、該コントローラは、どのエンティティがサーバによりオペレートされるべきかを以下のような順序で選択する。すなわち、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティが最初にサービスを受取り、次に、所定の基準に基づくエンティティという順序である。所定の基準とは、例えば最も早い開始時刻またはIDナンバーのような、本来、ユーザが適用を望む任意の形式のタイ−ブレーキング手法(tie-breaking procedure)であってもよい。もし比率制御が利用されれば、以下のような別の基準が存在する。すなわち、もし、仮想時刻と同一またはそれより前の開始時刻を有するエンティティが存在しなければ、サーバは、どんなエンティティへもサービスを提供しないで、仮想時計は、仮想時刻を、時間の関数として仮想時刻の1単位分増加するのが望ましく、且つそれは、所定の時間後であるのが望ましいという基準である。
【0008】
本発明は、サーバがサービスをエンティティへ提供する時期をスケジュールするための方法に関する。該方法は、最初のエンティティがサーバからのサービスを要求する時期を特定する工程を具える。次に、エンティティがサーバからのサービスを要求する時期の関数として、例えば最初のエンティティまたは2番目のエンティティのようなエンティティへ、サービスを提供する工程が存在する。もし、比率制御を利用すれば、該提供工程は仮想時刻の関数であり、所定の時間後に、仮想時刻をその1単位分増加する追加の工程が存在する。
【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)へ提供されてオペレートされるべきかを示すために求められる任意のプロトコルを、オペレータが選択する。もし比率制御が使用されれば、次のような別の基準が存在する。すなわち、もし、仮想時刻と同一またはそれより前の開始時刻を有するエンティティが存在しなければ、サーバは、どのエンティティに対してもサービスを提供せず、仮想時計は、望ましくは所定の時間後で、仮想時刻を時間の関数として仮想時刻の1単位分増加する、という基準である。サーバがサービスを提供しないときでさえ、仮想時計は仮想時刻をその1単位分増加することに注目すべきである。その結果、仮想時刻は常に仮想時間の1増加分ずつ進行する。このときの処理の流れをフローチャートにて示したものが、図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単位分増加する。もし比率制御が利用されれば、コントローラにより、後者が、望ましくは、もしサービスが提供されなければ、所定の時間後に生じせしめるのみである。
【0013】
この要素プール(24)を有する実施形態において、コントローラ(22)は、もし、最も早い終了時刻fiを有するエンティティが唯1つしか無ければ、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティを、要素プール(24)の外へ転送する。そうでない場合、最も早い開始時刻siを有するエンティティが、コントローラ(22)により要素プール(24)の外へ、且つ該終了時刻fiの前に転送されることが望ましい。もし仮想時刻と同一またはそれより前の開始時刻siを有するエンティティが、要素プールに必ず存在すれば、転送される。そうでない場合、もし比率制御が利用されれば、どのエンティティもコントローラにより要素プール(24)の外へ転送されない。
【0014】
本発明は、それぞれが重み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以上の整数であり、
Figure 0004283899
であり、ここで、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の一方は、本質的に任意の実数であり得る。もし比率制御が利用されれば、Y=Z=0であり、(1)式の最後の行は適用できない。すなわち、Vk=Vk-1+1である。
【0015】
また、スケジューラ(10)は、コントローラを具え、該コントローラは、どのエンティティがサーバ(14)によりオペレートされるべきかを、以下のような順序で選択する。すなわち、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティと、次に所定の基準に基づくエンティティという順序である。所定の基準とは、例えば最も早い開始時刻またはIDナンバー等のような、本質的に、ユーザが適用を望む任意の方式のタイ−ブレーキング手法となり得る。もし比率制御が利用されれば、以下のような別の基準が存在する。すなわち、もし、仮想時刻と同一またはそれより前の開始時刻を有するエンティティが無ければ、サーバは、どんなエンティティへのサービスも提供しないで、望ましくは、仮想時計は、仮想時刻をその1単位分増加するという基準である。
【0016】
より具体的には、wiは、i番目のエンティティの"重み"であり、0より大きく1以下であるとする。wiは、i番目のエンティティが具えているサーバ(14)の分数割当て(fractional share)を表わす(もしwi=1ならば、サーバ(14)は、全てi番目のエンティティに捧げられ、もしwi=0.5ならば、サーバの作業の1/2が、i番目のエンティティに捧げられる)。
注意:この中で「1」は、サーバ(14)の作業の最大比率を表すために使用され、そのため、唯1つのエンティティに、サーバ(14)の能力の100%を超える重みを与えることは無意味である。
【0017】
もし、エンティティが、どれ位の作業の実行をサーバ(14)に求めることができるかに関して、制限がなければ、全エンティティの重みの総和は、1以下であることが望ましい。これは、サーバ(14)の能力の100%以下を割当てることに等しい。もし、エンティティが、サーバの能力のある割合(RSiとし、RSi<1である)以下の量を求めるようにある程度制限されれば、より一般的な記述は、以下のようになる。すなわち、
MIN(wi,RSi)の(全エンティティにわたっての)和は1よりも小さくあるべきである。
W=全エンティティにわたってのwiの総和、すなわち
【数1】
Figure 0004283899
とする。AW=現在、サービスを求めている全エンティティにわたってのwiの総和(すなわち、もし「W」がウェイト(Weight)の総和ならば、「AW」はアクティヴ・ウェイト(Active Weight)の総和である)、すなわち
【数2】
Figure 0004283899
とする。ここで、もしサービスを求めていなければ、ai=0であり、サービスを求めておれば、ai=1である。
【0018】
さらに、siは、i番目のエンティティが次にサービスを得る時刻であり、fiは、その時刻までにはi番目のエンティティがサービスされるべき時刻である。
【0019】
iは、サーバが実際にi番目のエンティティのために働くときに、サーバがi番目のエンティティに与える作業の単位数とする(単純化するため、全てのエンティティに関して、ui=1である場合を仮定する(パケットネットワークの場合において、これは、全てのパケットが同じサイズを有する場合、例えばATMセルの場合に等しい))。uiは、応用する時の状況に応じて異なってもよい。例えば、uiは、パケットに基づくネットワーク中にて、「1」と等しくなくても構わない。
【0020】
Fmin(1<Fmin<N)=最も小さい終了時刻を有するエンティティのID番号、とする(「最も小さい終了時刻を有するエンティティ」として与えられる全ての例は、「任意の必要とされるタイ・ブレーキング(tie breaking)に基づいて最初に終了すべきエンティティ」を意味すると解すること)。
その結果、fFmin=最も小さい終了時刻を有するエンティティの終了時刻の値、である。
【0021】
Smin(1<=Smin<N)=最も小さい開始時刻を有するエンティティのID番号、とする(ここで意味するものは、上記と同じである。すなわち、もしタイがあるならば、それらはある程度ブレークされると仮定せよ)。
その結果、sSmin=最も小さい開始時刻を有するエンティティの開始時刻の値である。
【0022】
kは、サーバが実際に作業をするk番目の時刻を示す。
Figure 0004283899
【0023】
サーバ(14)が作業を実行する度に、サーバ(14)は、そのID番号がFminであるエンティティをサービスする。サーバは、オペレートするためにSminの値を知る必要はなく、sSminの値を知るだけでよい。
【0024】
もう1つの式は、以下の式である:
Figure 0004283899
【0025】
(1)式は、(2)式及び(3)式を一緒にしたものである。
【0026】
(P,T,X)=(1,0,1)及び(Y,Z)=(0,0)を有する(1)式は、「仮想時計(Virtual Clock)」(VC)である。Zhang, L.、「パケット交換ネットワークプロトコルのための新しいアーキテクチャ」(1989年)、レポートLCS TR 455、コンピュータ科学研究所、マサチューセッツ工科大学、ケンブリッジ、マサチューセッツ州、を参照することにより、この明細書中に参考という形で組み入れられる。
【0027】
(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、を参照することにより、この明細書中に参考という形で組み入れられる。
【0028】
この場合、式の後半部分が次のように見える点は注目すべきである。
(sSmin*1)+((fFmin−sSmin)*1)、すなわち
Smin+fFmin−sSmin、すなわち
Fmin
(そして、この場合、「sSmin」の値は、実際に必要とされない)
実際には、このように、概念的に文章にて記述される。
【0029】
(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月とを参照することにより、この明細書中に参考という形で組入れられる。
【0030】
実施の観点からすると、この見解での実際問題は、以下の2点である。
a)この方式における「AW」の計算は、通常、サーバの離散モデルよりもむしろ流体モデルをエミュレートすることを必要とする
b)1/AWの計算は、非常に費用がかかり、実行が困難である(もし、AW=(1−ε)ならば、1/AW=1/(1−ε)であり、正確に計算することが難しい)
【0031】
(P,T,X)=(1,0,1)及び(Y,Z)=(1,0)を有する(1)式は、本発明の「仮想サービス・キューイング(Virtial Service Queueing)」(VSQ)である。
【0032】
これらの観察を行なう理由は、以下の2点である。
a)P、T、Xの組とY、Zの組とが、MAX関数の半分づつを表すことに注目し、VSQのみが、関数の両側で0の係数を有しないことが明らかである。
b)もし、SFQの方式における関数を、式を文中に通常書くように書換えれば、VSQのみが、値sSminを利用することもまた、明らかである。
【0033】
VSQの変形は、「比率制御サービス・キューイング(Rate Control Service Queueing)」(RC VSQ)である。比率制御が実行されるとき、Y=Z=0である。しかしながら、エンティティが、サーバ(10)からのサービスを要求する時期の開始時刻と関連のないVCと異なり、RC VSQは、特定されるべきエンティティの開始時刻、具体的には、エンティティの終了時刻と同様に、最も小さい開始時刻を要求する。その結果、望ましい実施形態において、RC VSQは、例えば優先キュー(16)のような、開始時刻メモリと、例えば優先キュー(18)のような、終了時刻メモリとを、上述のように具える。次に、RC VSQのオペレーションにおいて、サーバ(10)は次の様にしてサービスを提供する:
【0034】
もし、Fminの開始時刻(sFmin)が仮想時刻と同一またはそれより前であれば、Fminにサービスし;その他もし、Sminの開始時刻(sSmin)が、仮想時刻と同一またはそれより前であれば、Sminにサービスし;その他の場合は、何もしないで、仮想時刻を1単位分増加する。
【0035】
より簡潔には、次のように書かれる:
もし、SFmin≦V、ならば、Fminにサービスし、その他もし、sSmin≦V、ならば、Sminにサービスし、その他の場合は、何もしないで、Vk=Vk-1+1、とする。
【0036】
比率制御が実行されるとき、サーバ(10)は、それが何であろうとも、規定の比率でサービスを提供し、それより早くはない。比率制御は、必ずしも作業保存(work conserving)である必要はなく、一方VSQは、作業保存である。
【0037】
本発明は、図22に示されるように、サーバ(10)がエンティティにオペレートする時期をスケジュールする方法に関するものである。該方法は、N個のエンティティからサーバのサービスを要求する工程を具え、ここで、Nは1以上の整数である。次に、N個の各エンティティが、最初にサービスを要求する時期と、サーバからのサービスを受取り完了するべき時期とを記憶する工程が存在する。次に、もし、最も早い受取時刻を有するエンティティが唯1つしかなければ、N個のエンティティのうち、最も早い受取時刻と、ある要求時刻とを有するエンティティへサービスを提供し、そうでなければ、最も早い要求時刻を有するエンティティがサーバからのサービスを受取る、という工程が存在する。該工程の後に、他のエンティティに関して、該工程を繰返す工程が存在することが望ましい。コントローラ(22)により、上記工程を実行することができる。
もし、比率制御が使用されれば、以下のような別の基準が存在する。すなわち、もし、仮想時刻と同一またはそれより前の要求時刻を有するエンティティが存在しなければ、サーバは何もしない、という基準である。
【0038】
また、本発明は、図23に示されるように、サーバ(14)がサービスをエンティティへ提供する時期をスケジュールするための方法に関する。該方法は、エンティティがサーバ(14)からのサービスを要求する時期を特定する工程を具える。最初のエンティティがサーバからのサービスを要求する時期を特定するためのプロセスは、最初のエンティティがサーバ(14)からのサービスを要求する時期を計算するための任意の技術及び方法を含み得る。これは、エンティティがサーバ(14)からのサービスを要求する時刻を、実際に決めることにより、該要求が起こる時期を特定することを含み得る。すなわち、それは、前のエンティティがサーバ(14)からのサービスを要求した時期から計算されることができ、エンティティがサーバ(14)からのサービスを要求する時期を、ある関数または関係式により、決定されることができる。すなわち、それは、現在、サーバ(14)からのサービスを受けている、別のエンティティの関数として決定され得る。その他に、最初のエンティティがサービスを要求する時刻は、該エンティティがサーバ(14)からのサービスを受取るべき時刻から特定され得る。例えば、開始時刻プラス1/Wiが終了時刻に等しい。
【0039】
さらに、前記特定工程は、サーバがエンティティにサービスを提供すべき時刻を特定するプロセス全体におけるある時点で、エンティティがサーバからのサービスを要求する時刻が特定される、計算の一部であっても構わない。基本的には、特定工程は、プロセスに対する結論、または、プロセスに対する中間工程であることができる。該エンティティは、サーバ(14)からのサービスを要求する最初のエンティティであるのが望ましい。
【0040】
サーバ(14)が、次にエンティティへサービスを提供する時期をスケジュールする方法は、エンティティがサーバ(14)からのサービスを要求する時期の関数として、エンティティへのサービスを提供する工程を具える。該エンティティは、最初のエンティティであることができ、サーバ(14)からのサービスを、最初のエンティティがサーバ(14)からのサービスを要求する時期の関数として、受け取る。1番目のエンティティが、サーバ(14)からのサービスを初めて要求する時期が、1番目のエンティティへのサービスを提供するための基礎であるのが望ましい。他に、エンティティへのサービスを提供する工程は、最初のエンティティがサーバ(14)からのサービスを要求する時期の関数として、2番目のエンティティへのサービスを提供する工程であり得る。そのとき、2番目のエンティティがサービスを受取る時刻は、最初のエンティティがサーバ(14)からのサービスを最初に要求した時期の、ある関数関係式である。例えば、もし、V=1で、最初のエンティティへのサービスを提供すれば、2番目のエンティティへのサービスは、V=2すなわちV=1+1の時刻で提供される。ここで、V=1は、最初のエンティティがサーバ(14)からのサービスを要求する時刻である。もし比率制御が利用されれば、前記提供工程は仮想時刻の関数であり、所定の時間後に、仮想時刻をその1単位分増加する追加工程が存在する。望ましい実施形態においては、仮想時刻は、他のどんな考慮にかかわらず、所定の時間後に、仮想時刻の1単位分増加される。
【0041】
本発明は、サーバがサービスをエンティティへ提供する時期を制御するためのスケジューラに関する。該スケジューラは、メモリを具え、該メモリは、エンティティがサーバ(14)からのサービスを要求する時期の関数である時刻を記憶する。また、スケジューラ(10)は、仮想時計(20)を具え、該時計(20)は、エンティティがサーバ(14)からのサービスを要求する時期の関数として、時間の経過を刻む。さらに、スケジューラ(10)はコントローラ(22)を具え、該コントローラ(22)により、エンティティは、エンティティがサーバ(14)からのサービスを要求する時期の関数として、サーバ(14)からのサービスを受け取る。該メモリは、例えば優先キュー(16)のような、開始時刻メモリであり得る。もし、比率制御が利用されれば、仮想時計は、エンティティへ提供されるサービスが存在しようがしまいが、所定の時間長さの関数として、時間の経過を刻む。
【0042】
【発明の実施形態の作用】
本発明の動作において、エンティティの主体である数人のユーザが、サーバ(14)からのサービスを受け取る。該ユーザは、個別の時刻または同じ時刻のどちらかで、サーバ(14)のオペレーションを要求するセルを有する。セルを有するどのユーザも、同時にサーバ(14)を呼出さないか、またはサーバ(14)を待っていなければ、サーバ(14)からのサービスを要求したユーザは、サーバからサービスを受け取る。しかしながら、もしそのような場合でないならば、スケジューラ(10)は、セルを有するユーザが、サーバ(14)によりサービスを受ける時期をスケジュールするだろう。
【0043】
オペレーションの間、スケジューラ(10)は、ユーザがサーバ(14)からのサービスを最初に要求する時刻をログイン(log in)する。また、スケジューラ(10)は、ユーザがサーバ(14)からのサービスを待機し終わるべき最も遅い時刻をログインする。スケジューラ(10)は、サーバ(14)からのサービスを要求する各ユーザに関する開始時刻及び終了時刻を記録する。この情報は、ユーザと、ユーザがサーバ(14)からのサービスを最初に待機し始めた時期を特定する仮想時計(20)とから得られる。これは、ユーザが、サービスを要求するときに、サーバ(14)またはスケジューラ(10)へ信号を送る際に起こり得る;スケジューラ(10)またはサーバ(14)が、センサーまたはトリガを用いて、ユーザがサービスを要求している時期を特定する際に起こり得る。本発明のこの様相は、従来技術にてよく知られるように、遠隔通信のスイッチが、如何に動作して、幾つかの接続から該スイッチに到着する信号をスイッチするのか、と同じであり得る。
【0044】
ユーザにサービスするためにサーバ(14)が利用可能なとき、スケジューラ(10)は、サーバ(14)からのサービスを待機しているユーザのうち、どのユーザが最も早い終了時刻を有するかを決定する。次に、最も早い終了時刻を有するユーザは、サーバ(14)によりサービスが提供され、ユーザのセルは、サーバ(14)によりオペレートされる。もしユーザが同じ終了時刻を有するならば、サーバは、どのユーザが最も早い開始時刻を有するかを見て、最も早い開始時刻を有するユーザへサービスを提供する。スケジューラ(10)により、ユーザは、たとえサービスを待機し終わる時刻がまだ起こっていなくとも、サーバ(14)からのサービスを受取る。
【0045】
各ユーザがサーバ(14)によりサービスを提供されている間に、スケジューラ(10)は、サーバ(14)からのサービスを受取るべき次のユーザを探す。高いレートを有するユーザは、より低いレートを有するユーザよりも頻繁に、サーバ(14)からのサービスを受け取るだろう。しかしながら、比較的高いレートを有するユーザがサーバ(14)からのサービスを受取る間に、より高いレートを有するユーザよりも、早い終了時刻且つ/又は早い開始時刻を有している、より低いレートを有するユーザが、サーバ(14)からのサービスを受取る場合が存在するだろう。サーバ(14)からのサービスを受取っているユーザの終了時刻が起こったとき、スケジューラ(10)は該ユーザにより制御されないので、より低いレートを有するユーザは、サーバ(14)がより高いレートへのサービスを提供していないときに、サーバ(14)からのサービスを断続的に受取ることができる。その結果、サーバ(14)は、所定の単位サイクルのオペレーション中、ある一定のサービス能力を有するという事実と、様々なユーザの有するレート全てが加わると、サイクルに関する該単位レートに等しくなるという事実とにより制御されるから、1サイクルの進行中に、各ユーザは、サーバ(14)によりサービスを提供してもらうであろう。
【0046】
簡単な例として、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に示される。
【0047】
時刻V=0で、ユーザAからのセルが存在し、且つ、該セルは、サービスを待機している全てのセルの中で最も早い終了時刻V=2を有するから、サーバ(14)はユーザAにサービスする。サーバ(14)がユーザAにサービスするから、時刻をV=1へ1単位進める。
【0048】
時刻V=1で、サーバ(14)は、図3に示されるように、ユーザBからのセルがV=5という最も早い終了時刻を有するから、該セルに提供する。サーバ(14)がユーザBのセルをオペレートするから、時刻を1単位分増加して、V=2となる。
【0049】
V=2で、図4に示されるように、ユーザAからのセルが到着して、該セルの開始時刻がV=2であり、且つ終了時刻がV=4である。V=2で、ユーザAのセルに関する終了時刻V=4は、最も早い終了時刻であるので、サーバ(14)は、ユーザAからのセルにサービスする。サーバ(14)がユーザAのセルをオペレートするとき、時刻がV=3へ進められる。
【0050】
時刻V=3で、サーバ(14)は、ユーザCからのセルをオペレートする。なぜなら、該セルは、図5に示されるように、サービスを待機しているどのセルにも匹敵する、早い終了時刻V=10を有するからである。サーバ(14)がユーザCからのセルにサービスを提供することにより、時刻がV=4へ進められる。
【0051】
時刻V=4で、ユーザAからのセルが、サーバ(14)のサービスを受けるために到着する。該セルは、時刻V=4で到着し、図6に示されるように、終了時刻がV=6である。ユーザAからのセルが、最も早い終了時刻V=6を有するから、サーバ(14)は該セルに提供する。それから、時刻がV=5へ進められる。
【0052】
時刻V=5で、ユーザBからのセルがサーバ(14)からのサービスを受取るために到着する。該セルの開始時刻はV=5であり、終了時刻はV=10である。時刻V=5で、サーバ(14)は、ユーザDからのセルへサービスを提供する。なぜなら、サービスを待機している全てのセルの終了時刻は同じであるが、ユーザDからのセルの開始時刻は0であり、該セルは、ユーザEからのセルとは同じレートであるが、ユーザBからのセルよりも早いからである。図7を参照。サーバ(14)がユーザDからのセルをサービスした後に、時刻がV=6へ進められる。
【0053】
時刻V=6で、ユーザAからのセルがサーバ(14)からサービスを受けるために到着する。該セルの開始時刻はV=6であり、終了時刻はV=8である。サーバ(14)は、ユーザAからのセルが、サーバ(14)からのサービスを待機しているセルのうち最も早い終了時刻を有するから、該セルへサービスを提供する。図8を参照。サーバによりユーザAからのセルがサービスされることにより、時刻はV=7へ進められる。
【0054】
時刻V=7で、サーバ(14)は、ユーザEからのセルへサービスを提供する。なぜなら、該セルは、最も早い開始時刻V=0と、サーバ(14)からのサービスを待機しているユーザBからのセルと同じ終了時刻とを有するからである。図9を参照。サーバ(14)がユーザEからのセルへサービスを提供した後に、時刻はV=8へ進められる。
【0055】
時刻V=8で、ユーザAからのセルが、サーバ(14)からサービスを受けるために到着する。時刻V=8で、サーバ(14)はユーザBからのセルへサービスを提供する。なぜなら、該セルは、最も早い開始時刻V=5と、サーバ(14)からのサービスを待機しているユーザAからのセルと同じ終了時刻を有するからである。図10を参照。サーバ(14)がユーザBからのセルへサービスを提供した後に、時刻はV=9へ進む。
【0056】
時刻V=9で、ユーザAからのセルが、サーバ(14)からのサービスを待機している任意のセルのうち最も早い終了時刻を有するから、サーバ(14)は、該セルへサービスを提供する。図11を参照。この時点で、1単位サイクルが完了し、全てのユーザがサービスを受け取った。サーバ(14)がユーザAのセルへサービスを提供した後に、時刻はV=10へ進む。
【0057】
時刻V=10で、ユーザAからのセルは、サービスを受けるために到着して、終了時刻V=12を有し、ユーザBからのセルは、サービスを受けるために到着して、終了時刻V=15を有し、且つ各ユーザC、D及びEからのセルは、到着して、終了時刻V=20を有する(図示せず)。それから、上述のようなサイクルを繰り返す。
【0058】
ユーザのレートを足しても1より小さいときのスケジューラの動作を説明する別の簡単な例が与えられる。この例では、3つのユーザA−Cが、それぞれ0.5、0.2及び0.1のレートを有する。
【0059】
時刻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単位進められる。
【0060】
V=1で、サーバ(14)は、ユーザBからのセルが、セルの中で最も早い終了時刻V=5を有するから、該セルにサービスする。図13を参照。それから、時刻がV=2へ1増加分進められる。
【0061】
時刻V=2で、ユーザAからのセルは、サーバ(14)からサービスを受けるために到着する。サーバ(14)は、ユーザAからのセルが、セルの中で最も早い終了時刻V=4を有するから、該セルにサービスする。図14を参照。それから、時刻がV=3へ1増加分進められる。
【0062】
時刻V=3で、サーバは、ユーザCからのセルへサービスを提供する。なぜなら、該セルは、現在の仮想時刻V=3よりも早い開始時刻を有する唯一のセルであり、また、終了時刻V=10を有するからである。図15を参照。
【0063】
サーバ(14)がユーザCからのセルにサービスする後に、仮想時刻は、サーバ(14)からのサービスを要求するセルのうち、最も早い開始時刻へ、1増加分進められる。この場合では、サービスを待機しているセルのうち、最も早い開始時刻は、V=4であり、それにより、V=3から1時刻増加する。
【0064】
時刻V=4で、ユーザAからのセルは、サーバ(14)からサービスを受けるために到着する。サーバ(14)は、ユーザAからのセルへサービスを提供する。なぜならば、該セルは開始時刻V=4を有し、これは現在の仮想時刻と等しく、且つ該セルは終了時刻V=6を有し、これはサーバ(14)からのサービスを待機している任意のセルのうち、最も早い終了時刻であるからである。図16を参照。サーバ(14)がユーザAからのセルへサービスを提供するとき、現在の仮想時刻V=4と同じかまたはそれより早い開始時刻を有する他のセルが存在しないので、仮想時刻は、サーバ(14)からのサービスを要望するセルのうち、最も早い開始時刻へ増加される。この場合では、ユーザBからのセルは、サーバ(14)からのサービスを要求するときに、開始時刻V=5を有するであろうから、仮想時刻は、V=5へ1単位分増加される。
【0065】
時刻V=5で、ユーザBからのセルは、サーバ(14)からサービスを受けるために到着する。時刻V=5で、ユーザBからのセルは、サーバ(14)からのサービスを待機している任意のセルのなかで、最も早い終了時刻を有するから、サーバ(14)は、該セルへサービスを提供する。図17を参照。サーバ(14)がユーザBからのセルへサービスを提供するとき、仮想時刻は、セルがサーバ(14)からのサービスを要求する最も早い開始時刻に対応する、次の仮想時刻へ増加される。この場合では、ユーザAからのセルの開始時刻がV=6である。従って、時刻はV=6へ1単位分増加される。
【0066】
時刻V=6で、ユーザAからのセルは、サーバ(14)からサービスを受けるために到着する。時刻V=6で、サーバ(14)は、ユーザAからのセルが最も早い終了時刻を有するから、該セルへサービスを提供する。図18を参照。それから、仮想時刻は、V=7ではなく、V=8へ増加される。なぜならば、サーバ(14)からのサービスを待機しているセルのうち、最も早い開始時刻は、V=8で起こるであろうからである。その結果、仮想時刻は、この場合、2単位分増加される。もし、仮想時刻が時刻の1単位分ずつ増加される比率制御の実施形態が実施されれば、仮想時刻は、V=8ではなく、V=7へ増加されるであろうことに注意すべきである。V=7で、サーバ(14)は、どんなユーザへもサービスを提供しないだろう。それから、所定の時間後に、仮想時刻は、V=8へ1単位増加される。
【0067】
時刻V=8で、ユーザAからのセルは、サーバ(14)からサービスを受けるために到着する。サーバ(14)は、ユーザAからのセルが最も早い終了時刻を有するから、該セルへサービスを提供する。図19を参照。サーバ(14)がユーザAからのセルへサービスを提供した後に、時刻はV=10へ増加される。なぜならば、V=10で、サーバ(14)からのサービスを待機しているセルに関して、最も早い開始時刻が存在するからである。そのとき、仮想時刻は、V=8からV=10へ2単位分増加される。
【0068】
V=10で、ユーザA、B及びCからのセルが、サーバ(14)からサービスを受けるために到着する。ユーザAからのセルに関する終了時刻は、V=12であり、ユーザBからのセルに関する終了時刻は、V=15であり、且つユーザCからのセルに関する終了時刻は、V=20である(図示せず)。V=10では、図がV=10までしか描かれていないので、サービスを受けるために現れるセルは存在しない。しかしながら、V=10に関連する終了時刻が、示されていないけれども、存在することから、V=10は、図20において示される。
【0069】
【実施例】
本発明の幾つかの実施例が、図26乃至図44に示されている。図38乃至図44において、VSQの前にあるRCは、2つの実施例における比率制御を表すことに注意せよ。これらの実施例は、サーバ(14)によってオペレートされるために要素プール(24)に到着する要素を示し、該要素は、ATMネットワークに関するセルであるのが望ましい。該実施例をよりよく理解するために、スケジューラ(10)の動作の幾つかを次に説明する。
【0070】
実施例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)にて記録される。これは、開始時刻列及び終了時刻列並びに開始キュー列及び終了キュー列にて示される。
【0071】
開始時刻列において、ユーザ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)における全ての要素の中で最も早い終了時刻だからである。
【0072】
ユーザ1に関しては、開始時刻の位置が1であり、関連する開始時刻がT=0である。終了時刻の位置も1である。なぜなら、終了時刻T=3000は、要素プール(24)における3つのセルの中で2番目に早い終了時刻だからである。ユーザ1に関して、要素プール(24)におけるセルの量Qが1であり、開始時刻優先キュー(16)において、ユーザ1は、位置が1番目で、該時刻がT=0である。ユーザ1は、終了キュー列における位置も1番目である。というのは、ユーザ1の終了すべき時刻は、要素プール(24)におけるセルのうち2番目に早いからである。
【0073】
ユーザ2は、開始時刻優先キュー(16)における位置が、最も早いすなわち0番目であり、時刻がT=0である。ユーザ2の終了時刻T=6000は、要素プール(24)における全てのセルのなかで最も遅い終了時刻であるから、その終了時刻位置は、最後すなわち2番目である。ユーザ2は、要素プール(24)におけるセルの量Qが1であり、開始キューの位置が0番目であり、時刻がT=0である。終了時刻優先キュー(18)において、ユーザ2の終了キューの位置は2番目である。なぜならば、その終了時刻T=6000は、要素プール(24)における3つのセルのうち最も遅い終了時刻だからである。
【0074】
時刻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)で行なうことは自由である。
【0075】
時刻が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となることが明らかになる。
【0076】
時刻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つ分減少される。
【0077】
この時点で、全てのユーザのセルが有する全ての終了時刻は、T=6000である。その結果、終了時刻に関して全て等しいから、どのセルがサーバによって次にオペレートされるかに関して、開始時刻が制御するようになる。このことは、時刻T=4及びV=3000で見られることができる。該時刻で、ユーザ2は、要素プール(24)に2つのセルを有し、該セルの1つが、最も早い開始時刻T=0を有する。次に、ユーザ2のこのセルが、サーバ(14)によりオペレートされる。図26乃至図44における本実施例の残り部分は、上記の説明に基づいて理解されるべきである。
【0078】
本発明を応用した特有の場合において、ATMスイッチ要素は、図21に示されるように、1乃至N個の入力接続(102)と1乃至M個の出力接続(104)を有する。ATMセルは、スイッチ要素(100)により、入力接続(102)を介して受信される。スイッチ要素(100)は、該セルをオペレートして、出力接続(104)を介して送信する。セルは、特定の入力接続(102)上から入ってくるときはいつでも、従来よく知られるように、プール(106)に置かれる。そして、従来よく知られるように、スイッチ要素のスケジューラ(108)に、対応するプール(106)にセルが存在することを通知する。各入力接続(102)は、スイッチ要素(100)に進入するセルが記憶される専用のプール(106)を有することができること、または個々の入力接続(102)からのセルの全てが、スイッチ要素のサーバ(110)がオペレートする準備ができるまで、記憶される共通プール(106)が存在し得ることに注意すべきである。
【0079】
スイッチ要素(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年発行;及びヒュイ・ツァン(Hui Zhang)とスリニヴァソフ・ケシャフ(Srinivasov Keshav)共著「レートに基づくサービス規律の比較(Comparison of Rate-Based Service Disciplines)」ACM・SIGCOMM '91の議事録、を参照。これら全てが参照として組込まれる。
【0080】
パケットに関して、全てのパケットは、従来知られるように、スタンプ(stamp)されることができる。さらに、従来及び上述から知られるように、キューの先頭でのパケットが上述に基づいてコンピュータ処理されることができ、該キューにおけるパケット全てがスタンプされる必要があるとは限らない。理想的には、最初のN個のパケットは、スタンプされることができ、その後のどんなパケットもスタンプされる必要がない。ここで、Nは、パケットがサービスを受取る際に遅れることができる最大のサービスインターバル数である。
【0081】
一般に、i番目のパケットに対して、
Figure 0004283899
ここで、L=i番目のパケットの長さ、
k iは、i番目のパケットがサービスを受けるための到着時刻、
v(ak i)は、到着時刻ak iでの仮想時刻である。
【0082】
【発明の効果】
本発明の方法及び装置によって、より大きなニーズを有するユーザが、所定の時刻にサービスを要求しない時に、より小さいニーズを有するユーザにサービスを提供することができ、ユーザに対して、より公平なサービスの提供が実現できた。
さらに、本発明のサーバの比率制御によって、サービスを要求するユーザの中で、1ユーザに過度に集中してサービスを提供することがなく、サーバの利用効率が向上した。
【0083】
本発明は、例示の目的のために上記実施形態にて詳細に記載されたが、その細部は、単に前記例示目的のためであり、特許請求の範囲に記載されるようなもの以外にも、本発明の精神及び範囲から離れることなく、従来技術に熟練する人々により、変形を成し得ると、理解されるべきである。
【図面の簡単な説明】
【図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 (8)

  1. 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)を具え、
    該エンティティがサーバによりオペレートされたときは、仮想時刻を1単位分増加し
    該コントローラ(22)は他にもし、仮想時刻と同一またはそれより前の開始時刻siのエンティティが存在しなければ、どんなエンティティにもサービスを提供しないで、所定の時間後に現在の仮想時刻を1単位分、増加して、
    N個のエンティティが、サーバによってオペレートされる時期を制御するスケジューラ装置。
  2. コントローラ(22)は、サーバからエンティティへのサービスを連続的に提供する、請求項1に記載のスケジューラ装置。
  3. 開始時刻メモリ(16)は、開始時刻優先キューを含み、終了時刻メモリ(18)は、終了時刻優先キューを含む、請求項2に記載のスケジューラ装置。
  4. ユーザと接続され、且つサーバによってオペレートされるためのエンティティを受取る、要素プールを具え、該要素プールにおいて、エンティティの到着時刻siは、i番目のエンティティが要素プールに到着する時刻に対応し、終了時刻fiは、i番目のエンティティが、要素プールを離れて、サーバによりその時刻までにオペレートされるべき時刻に対応し、且つコントローラ(22)は、要素プールからサーバへエンティティを転送する、請求項3に記載のスケジューラ装置。
  5. 仮想時計の時刻を制御し、且つ、要素プールにおけるエンティティと、開始時刻優先キュー及び終了時刻優先キューにおける夫々の開始時刻si及び終了時刻fiとを記憶するために、コントローラ(22)は、仮想時計、要素プール、開始時刻メモリ(16)及び終了時刻メモリ(18)へ接続される、請求項4に記載のスケジューラ装置。
  6. コントローラ(22)は、最も早い終了時刻fiを有するエンティティが唯1つしかなければ、最も早い終了時刻fiと、ある開始時刻siとを有するエンティティを要素プールの外へ転送し、そうでない場合は、最も早い開始時刻siを有するエンティティを要素プールの外へ転送し、且つ、終了時刻fiより前に転送する請求項5に記載のスケジューラ装置。
  7. N個のエンティティ(Nは1以上の整数であり、エンティティはユーザからのセル)がサーバ(14)からのサービスを要求する工程;
    N個の各エンティティがサーバ(14)からのサービスを要求する開始時刻siと、N個の各エンティティがサーバによるサービスを完了すべき終了時刻fiとをサーバ(14)に連繋したメモリ内に記憶する工程;
    及び或る仮想時刻にて、最も早い終了時刻fiを有するエンティティが唯1つしかなければ、サーバ(14)はN個のエンティティのうち、最も早い終了時刻fiを有するエンティティにサービスを提供し、そうでない場合、サーバ(14)は最も早い開始時刻siを有するエンティティにサービスを提供し、且つ、仮想時刻と同一またはそれより前の開始時刻siのエンティティが存在すれば、その終了時刻fiより前にエンティティへサービスし、仮想時刻を1単位分増加し、サーバがエンティティへのサービスを提供しないときは、所定の時間後に現在の仮想時間を1単位分、増加する工程を具え、
    サーバがエンティティへのサービスを提供する時期をスケジュールする方法。
  8. サービスを提供する工程の後に、サーバからのサービスを要求している他のエンティティに関して、該提供する工程を仮想時刻を進めて繰返す工程が存在する、請求項7に記載の方法。
JP29687795A 1994-12-22 1995-11-15 サーバがサービスを比率制御によりエンティティへ提供する時期を制御する方法及びスケジューラ Expired - Lifetime JP4283899B2 (ja)

Applications Claiming Priority (4)

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/375624 1995-01-20
US08/375,624 US5845115A (en) 1994-12-22 1995-01-20 Method and a scheduler for controlling when a server provides service with rate control to an entity
US08/362217 1995-01-20

Publications (2)

Publication Number Publication Date
JPH08272710A JPH08272710A (ja) 1996-10-18
JP4283899B2 true JP4283899B2 (ja) 2009-06-24

Family

ID=27001598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29687795A Expired - Lifetime JP4283899B2 (ja) 1994-12-22 1995-11-15 サーバがサービスを比率制御によりエンティティへ提供する時期を制御する方法及びスケジューラ

Country Status (4)

Country Link
US (1) US5828878A (ja)
EP (1) EP0721168A3 (ja)
JP (1) JP4283899B2 (ja)
CA (1) CA2150967C (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0798897A3 (en) * 1996-03-26 1999-07-14 Digital Equipment Corporation Method and apparatus for relative error scheduling using discrete rates and proportional rate scaling
DE19617816B4 (de) * 1996-05-03 2004-09-09 Siemens Ag Verfahren zum optimierten Übertragen von ATM-Zellen über Verbindungsabschnitte
US6064677A (en) * 1996-06-27 2000-05-16 Xerox Corporation Multiple rate sensitive priority queues for reducing relative data transport unit delay variations in time multiplexed outputs from output queued routing mechanisms
FR2771830B1 (fr) * 1997-12-03 2000-02-11 Remi Despres Dispositif de gestion partagee d'une ressource entre plusieurs utilisateurs
US5996073A (en) * 1997-12-18 1999-11-30 Tioga Systems, Inc. System and method for determining computer application state
US6385566B1 (en) * 1998-03-31 2002-05-07 Cirrus Logic, Inc. System and method for determining chip performance capabilities by simulation
US6122673A (en) * 1998-07-22 2000-09-19 Fore Systems, Inc. Port scheduler and method for scheduling service providing guarantees, hierarchical rate limiting with/without overbooking capability
US6345040B1 (en) * 1998-07-30 2002-02-05 Marconi Communications, Inc. Scalable scheduled cell switch and method for switching
US7099943B1 (en) * 1998-08-26 2006-08-29 Intel Corporation Regulating usage of computer resources
US6434631B1 (en) * 1999-10-15 2002-08-13 Lucent Technologies Inc. Method and system for providing computer storage access with quality of service guarantees
AU2134301A (en) * 1999-12-08 2001-06-18 University Of British Columbia, The Weighted fair queuing scheduler
US7304945B1 (en) * 2000-02-14 2007-12-04 Ericsson Ab Method and apparatus for dynamic bitmap generator scheduler
JP4879382B2 (ja) * 2000-03-22 2012-02-22 富士通株式会社 パケットスイッチ、スケジューリング装置、廃棄制御回路、マルチキャスト制御回路、およびQoS制御装置
US6782389B1 (en) * 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
AU2002254147A1 (en) * 2001-03-08 2002-09-24 Adisak Mekkittikul A method and system for bandwidth allocation tracking
US6947998B2 (en) * 2001-03-08 2005-09-20 Broadband Royalty Corporation Method and system for bandwidth allocation tracking in a packet data network
JP2003067331A (ja) * 2001-08-28 2003-03-07 Matsushita Electric Ind Co Ltd スケジュール作成方法、スケジュール作成装置及びスケジュール作成プログラム
EP1324553A3 (en) * 2001-12-31 2006-03-22 Alcatel Canada Inc. Method and apparatus for scheduling and servicing events using a calendar structure
US6954811B2 (en) * 2002-07-19 2005-10-11 Calix Networks, Inc. Arbiter for an input buffered communication switch
FI112421B (fi) * 2002-10-29 2003-11-28 Tellabs Oy Menetelmä ja laitteisto siirtoyhteyskapasiteetin vuorottamiseksi pakettikytkentäisten tietoliikennevoiden kesken
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US7937618B2 (en) * 2007-04-26 2011-05-03 International Business Machines Corporation Distributed, fault-tolerant and highly available computing system
ATE517486T1 (de) * 2007-11-20 2011-08-15 Alcatel Lucent Scheduler mit niedriger komplexität mit generalized processor sharing gps-artiger schedulerfunktion

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142533A (en) * 1991-03-28 1992-08-25 Motorola, Inc. Method for controlling the scheduling of multiple access to communication resources

Also Published As

Publication number Publication date
EP0721168A3 (en) 1998-01-28
CA2150967A1 (en) 1996-06-23
EP0721168A2 (en) 1996-07-10
JPH08272710A (ja) 1996-10-18
CA2150967C (en) 2001-04-03
US5828878A (en) 1998-10-27

Similar Documents

Publication Publication Date Title
JP4263254B2 (ja) サーバがサービスをエンティティへ提供する時期を制御する方法及びスケジューラ
JP4283899B2 (ja) サーバがサービスを比率制御によりエンティティへ提供する時期を制御する方法及びスケジューラ
US5831971A (en) Method for leaky bucket traffic shaping using fair queueing collision arbitration
US7558278B2 (en) Apparatus and method for rate-based polling of input interface queues in networking devices
US7142513B2 (en) Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control
JP4338285B2 (ja) パケットスケジューリング方法および装置
JP2001103120A (ja) 通信ネットワークにおいてトラフィックをスケジュールする方法及び装置
US20030050954A1 (en) Weighted fair queuing scheduler
JP2001519121A (ja) 高速パケット・スケジューリング方法及び装置
JPH10313324A (ja) 通信ネットワークにおけるパケットの配送装置とその方法
US20010024452A1 (en) Data rate limiting
JP2003531517A (ja) 切断/再接続フロー・キューを使用して出力をスケジューリングするネットワーク・プロセッサのための方法およびシステム
Walraevens et al. Delay characteristics in discrete-time GI-G-1 queues with non-preemptive priority queueing discipline
JP3830937B2 (ja) 高速パケット網のためのパケットスケジューリングシステム及び方法
JP3973629B2 (ja) 同期及び非同期パケットフロー技術セクター間の共用リソースのスケジューリング
US7130270B2 (en) Method and apparatus for varying bandwidth provided to virtual channels in a virtual path
US20040258090A1 (en) Method for dimensioning voice over IP networks
US7385987B1 (en) Scheduling system and method for multi-level class hierarchy
US8467401B1 (en) Scheduling variable length packets
US7567572B1 (en) 2-rate scheduling based on search trees with configurable excess bandwidth sharing
Kwak et al. A new starting potential fair queuing algorithm with O (1) virtual time computation complexity
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
Tyan et al. Rate-based packet scheduling paradigm
Baronia et al. An Efficient Call Admission Control for Hard Real Time Communication in Differentiated Services Network.

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050915

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: A523

Effective date: 20081215

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: 20090323

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: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140327

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