JP2000284975A - システム・リソースのスケジューリングのためのシステムおよび方法 - Google Patents

システム・リソースのスケジューリングのためのシステムおよび方法

Info

Publication number
JP2000284975A
JP2000284975A JP2000070538A JP2000070538A JP2000284975A JP 2000284975 A JP2000284975 A JP 2000284975A JP 2000070538 A JP2000070538 A JP 2000070538A JP 2000070538 A JP2000070538 A JP 2000070538A JP 2000284975 A JP2000284975 A JP 2000284975A
Authority
JP
Japan
Prior art keywords
user
time
dispatch
clock
share
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.)
Granted
Application number
JP2000070538A
Other languages
English (en)
Other versions
JP3606555B2 (ja
Inventor
John F Harris
ジョン・エフ・ハリス
Mark J Lorenc
マーク・ジェイ・ローレンス
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000284975A publication Critical patent/JP2000284975A/ja
Application granted granted Critical
Publication of JP3606555B2 publication Critical patent/JP3606555B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/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
    • G06F9/505Allocation 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 load
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Luminescent Compositions (AREA)
  • Saccharide Compounds (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 【課題】 低ロード状況でそのハード限界に極めて近い
かまたは等しいシステム・リソースへのユーザ・アクセ
スの許可を容易にするためのスケジューラ・システムお
よび方法を提供すること。 【解決手段】 コンピュータ・システムは複数のユーザ
にプロセッサ時間を割り振る。システム・オペレータま
たは他の管理者は各ユーザごとにプロセッサ時間のシェ
アをコンピュータに対して指定する。特定のユーザのC
PU使用率は、活動待機ルーチンに組み込まれたモニタ
の使用により「ディスパッチ主導型」マルチプロセッシ
ング・システムにおいて絶対値に制限される。使用する
メカニズムは、それぞれの消費量が限界値を超過しない
ようにそのCPUリソースを制限しなければならないユ
ーザのリストである。あるユーザを低ロード状況でリス
トから除去しなければならない時期を決定し、その結
果、それが使用可能であれば最大CPU使用率をそのユ
ーザに供給するために、限界リストは活動待機監視され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、システム・スケジ
ューラに関する。より詳細には、ユーザがディスパッチ
主導型マルチプロセッサ・システムにおいてそれに対す
る資格を有するリソースをユーザに対してスケジューリ
ングすることに関する。
【0002】
【従来の技術】オペレーティング・システムには、ユー
ザが消費するシステム・リソースの量を制御するために
スケジューラが設けられている。G.A.デヴィソン
(Davison)により1994年6月2日に出願された同
時係属の米国特許出願第08/252864号には、こ
のようなシステムが記載されている。
【0003】多くの場合、コンピュータ・システムで
は、多くのプログラムまたはユーザが並行して実行する
ことが必要になる。複数のプログラムを実行するために
1つまたは複数のプロセッサが使用可能になる場合もあ
る。どのような1つのプロセッサも一度に1つのプログ
ラムまたはトランザクションしか実行することができな
い。2つまたはそれ以上のプログラムが同時に実行する
ことを要求し、1つのプロセッサまたは実行を必要とす
るプログラムの数より少ないプロセッサしかない場合、
オペレーティング・システムは、どのプログラムが一度
に1つのプロセッサまたは各プロセッサを使用できるか
を決定しなければならない。通常、この決定は、それぞ
れのプログラムの相対的優先順位に基づいて行われる。
通常、低速入出力動作が完了するのを待っているものな
ど、待機状態にあるプログラムは、「中断」され、した
がって、その優先順位にかかわらず、そのプロセッサを
求めて競合する資格はない。
【0004】どのプログラムが特定の時点で1つのプロ
セッサまたは各プロセッサを使用できるかを決定するこ
とに加え、オペレーティング・システムは、優先順位が
等しい(またはおそらくそれより低い)他のプログラム
がそれぞれの順番を獲得できるように、実行を開始した
後で、どのくらいの間、選択したプログラムがそれぞれ
のプロセッサを使用できるかも決定しなければならな
い。実行を開始した後で、どのくらいの間、各プログラ
ムがプロセッサを使用できるかを決定するための既知の
技法はいくつか存在する。最も単純な技法では、優先順
位が最も高いプログラムが完了(または中断)までプロ
セッサの使用を維持する。しかし、これにより、このプ
ログラムがそのプロセッサを「ホグ」し、他のプログラ
ムを「飢えさせる」場合もある。他の既知の技法では、
実行のために選択された各プログラムに対し、全プロセ
ッサ時間のうちのシェアまたは「スライス」が与えられ
る。プログラムの全シェアは等しいものにするかまたは
好ましいことに様々な要因に基づいて重み付けすること
ができる。全シェアに重み付けするための既知の技法の
1つは以下の通りである。一部のプログラムは全プロセ
ッサ時間のうちの「絶対」または確定シェアを指揮する
よう定義され、他のプログラムは残りのプロセッサ時間
のうちの「相対」シェアを指揮するよう定義される。絶
対シェアは「先頭から取られ」、相対シェアはそれぞれ
の相対シェアに比例して残りを分割する。たとえば、第
1のプログラムは40パーセントの絶対シェアで定義さ
れ、第2のプログラムは100の相対シェアで定義さ
れ、第3のプログラムは300の相対シェアで定義され
る。このシナリオでは、第1のプログラムが全プロセッ
サ時間の40パーセントを指揮し、第2のプログラムが
全プロセッサ時間の15パーセントを指揮し、第3のプ
ログラムが全プロセッサ時間の45パーセントを指揮す
ることになる。
【0005】1つのプログラムは、その絶対または相対
シェア全体を必要としない場合がある。この絶対/相対
シェア環境で超過分を割り振るための既知の技法は、最
高絶対または相対シェアを伴うプログラムに超過分をす
べて与えることである。超過分が全プロセッサ時間のう
ちのわずかな割合である場合、この既知の技法で十分で
あると思われる。しかし、多くの場合、全プロセッサ時
間の半分など、超過分は相当な量であり、超過分をすべ
て1つのプログラムに割り振ることが最適ではない場合
もある。
【0006】システムのうち、ユーザがそれに対する資
格を有する相対シェアは、現在、システム・リソースを
求めて競合しているすべての相対シェア・ユーザの優先
順位の割合に基づくものである。しかし、相対シェア・
ユーザにとって必ずしもすべてのシステム・リソースが
使用可能であるわけではない。リソースを求めて競合す
る複数の絶対シェア・ユーザが存在する場合、このよう
な絶対シェア・ユーザには、システムの残りのシェアが
相対シェア・ユーザ間で比例分割される前に、先にシス
テムの一部が与えられる。このような関係は一般に以下
のように表すことができる。 残りのシェア=システムの100%−すべての絶対シェ
アの合計
【0007】次に、残りのシェアは以下のように相対シ
ェア・ユーザ間で比例分割される。 相対ユーザのシェア=残りのシェア*(ユーザの相対シ
ェア/すべての相対ユーザの合計シェア)
【0008】マイナー・タイム・スライスとは、スケジ
ューラによる再検査のための割込みなしに所与のユーザ
が所有できるプロセッサ時間の量である。マイナー・タ
イム・スライスのサイズは、マシン速度と、あるいは顧
客設定とに依存する。ユーザがディスパッチされると、
CPUタイマはマイナー・タイム・スライスの時間の量
で設定される。このタイマは、時間切れになると、減分
して割込みを提示し、その結果、ユーザのマイナー・タ
イム・スライスが終了したことをスケジューラに通知す
る。
【0009】限定ユーザ、すなわち、「リミットハー
ド」ユーザとは、ユーザがそれに対する資格を有するプ
ロセッサ・リソースの最大量を表すものとして限界値が
定義されたユーザである。この限界値は、最大使用率シ
ェアを表し、そのユーザのディスパッチ優先順位を計算
するために使用する。通常、プロセッサ・リソースのう
ち、それぞれの最大許容シェアを超過するかまたは超過
しそうなリミットハード・ユーザが掲載された限界リス
トが用意される。あるユーザが限界リストに掲載されて
いる(またはそれ以外の方法で限界状況によって特徴づ
けられている)間、その使用のためにリソースがディス
パッチされることはない。
【0010】ユーザ作業をディスパッチする際に、人工
時刻(ATOD)クロックが使用される。このATOD
値は、マシンの時刻(TOD)クロックと同じ速度で増
加するが、そのユーザ作業(オペレーティング・システ
ム作業などの非ユーザ作業とは区別される)がマシンに
よって実行されている間に限られる。システム・リソー
スをスケジューリングするために少なくとも一部はAT
ODに依存する現行システムでは、限定シェア・ユーザ
は、CPUリソースが使用可能であっても、その最大使
用率シェアに達することが許されない場合がある。明ら
かなことに、アイドル・プロセッサ・リソース時間を含
む低ロード状況では、アイドル時間の間、人工時刻(A
TOD)値が十分な速さで移行するわけではない。した
がって、実行中のリミットハード・ユーザのディスパッ
チ優先順位はATODに対して本来あるべき速度より速
く移行し、時期尚早に限界リストに入る(すなわち、限
界状況が与えられる)。さらに、活動状態の(非アイド
ル)プロセッサだけがそのリストを監視するので、ユー
ザが不必要に限界リスト上に保持される場合もある。低
ロード状況(すべてのプロセッサを使用中として維持す
るのに十分な作業がない時間)では、活動状態のプロセ
ッサの数が減少し、したがって、限界リストの監視頻度
が低下する。このため、ユーザが限界リストから出なけ
ればならない時期からそれが出なければならないことを
プロセッサが検出する時期までの時間が増加する。これ
までは、プロセッサが活動待機状態にある間にこのユー
ザを限界リストから除去するためのメカニズムはまった
く存在しなかった。このような状況では、プロセッサが
実行すべきユーザ作業を一切持たず、したがって、活動
待機メカニズムでループしている時間があり、限界リス
トの検査を行わせるような何かが他のプロセッサ上で発
生するまで、限界リスト上のユーザはそこに存続する。
【0011】その結果、上記のデヴィソン出願に記載さ
れているような現行システムがそのうえに有するユーザ
が非常に少ない場合、または現行システムが使用中では
ない場合、そのスケジューラは、ハード限界までの使用
率を有することができるはずであるときにそのハード限
界より少ないCPU時間をユーザに与える。コンピュー
タ・システム上のユーザが非常に少ない場合、不思議な
ことに、ユーザは資格を有するものより20%減以内の
著しく少ないCPU時間を獲得する。その結果、特にC
PU時間が売却される場合に、支払っただけのCPU時
間のすべてを獲得できないユーザから苦情が出る可能性
がある。逆に、請求できるときに、CPU時間が請求さ
れないこともある。
【0012】
【発明が解決しようとする課題】本発明の一目的は、低
ロード状況でそのハード限界に極めて近いかまたは等し
いシステム・リソースへのユーザ・アクセスの許可を容
易にするためのスケジューラ・システムおよび方法を提
供することにある。
【0013】本発明の他の目的は、システム・リソース
に関する最適請求を容易にし、請求の総額またはこのよ
うなリソースの可用性に対するユーザの不快感を低減す
る、改良されたスケジューラを提供することにある。
【0014】本発明の他の目的は、ユーザの優先順位を
決定し、どのユーザが次に実行できるかを決定するため
にシステムが使用するスケジューリング・アルゴリズム
へのフィードバック・メカニズムとしてモニタ・データ
が使用される、システムおよび方法を提供することにあ
る。
【0015】本発明の他の目的は、限定アクセス権を有
するユーザを早すぎない時期に限界リストに掲載し、遅
すぎない時期に限界リストから除去することにより、こ
のようなユーザに対してシステム・リソースをスケジュ
ーリングするためのシステムおよび方法を提供すること
にある。
【0016】本発明の他の目的は、遅すぎない時期にリ
ソースのスケジューリングを可能にし、早すぎない時期
にリソースのスケジューリングを禁止することにより、
限定アクセス権を有するユーザに対してシステム・リソ
ースをスケジューリングするためのシステムおよび方法
を提供することにある。
【0017】
【課題を解決するための手段】第1のクロックを維持
し、第2のクロックを維持し、ディスパッチ・プロセス
中に実行すべき作業がある場合、ユーザが待機状況にな
っていないときのみ、他のユーザとともにディスパッチ
優先順位順にユーザに対してシステム・リソースの使用
をスケジューリングし、それ以外の場合にユーザ時間分
だけ第1のクロックを前進し、ユーザ時間および待機時
間分だけ第2のクロックを前進し、待機プロセス中に実
行すべき作業がある場合、ディスパッチ・プロセスを呼
び出し、それ以外の場合に待機時間の時間的調節を行
い、待機時間が所定の値を超過したときに待機状況にあ
るユーザが存在する場合、待機時間分だけ第1のクロッ
クを増分し、ディスパッチ・プロセスを呼び出すことに
より、システム・リソースはユーザによる使用のために
スケジューリングされる。
【0018】
【発明の実施の形態】上記の同時係属特許出願第08/
252864号に記載されているシステムに対する改良
である本発明の好ましい実施の形態によれば、オペレー
ティング・システムは、限定アクセス権を有するユーザ
を早すぎない時期に限界リストに掲載し、遅すぎない時
期に限界リストから除去することにより、このようなユ
ーザに対してシステム・リソースをスケジューリングす
る。
【0019】したがって、活動待機ルーチンに組み込ま
れたモニタの使用により「ディスパッチ主導型」マルチ
プロセッシング・システムにおいて特定のユーザのCP
U使用率をある絶対値に制限するためのシステムおよび
方法が提供される。使用するメカニズムは、ユーザのリ
ストであって、そのCPUリソースはそれぞれの消費量
が限界値を超過しないように制限されなければならな
い。このようなユーザは「限界状況」を有するものとし
て特徴づけられる。あるユーザを低ロード状況でリスト
から除去しなければならない(このため、「ディスパッ
チ状況」に復元される)時期を決定し、その結果、それ
が使用可能であれば最大CPU使用率をそのユーザに供
給するために、限界リストは活動待機監視される。本発
明の好ましい実施の形態によれば、この活動待機ルーチ
ン(プロセスまたはプロシージャとも言う)は、ユーザ
の優先順位を決定し、どのユーザが次に実行(ディスパ
ッチ)できるかを決定する際にその有効性を強化するよ
うスケジューリング・ルーチンを動的に調整するために
監視されフィードバックされたパフォーマンス・データ
を使用して、限界リストからユーザを除去するためにデ
ィスパッチ・ルーチンを呼び出す時期を決定するため
に、限界リスト上のユーザを監視する。ユーザの限界リ
スト優先順位の1つのマイナー・タイム・スライス内に
入るようATOD2が計算されたときに、ユーザはディ
スパッチ・ルーチンによって限界リストから除去され
る。
【0020】ユーザ・タスクは、あるユーザのタイム・
スライスの終わりを表すディスパッチ優先順位値に応じ
て実行されるようスケジューリングされる。この値は、
時刻(TOD)フォーマットになっており、以下に詳述
する。
【0021】図1を参照すると、システム図は本発明の
好ましい実施の形態のプログラミング(データおよび方
法)構造を示している。このようなプログラミング構造
としては、システム・リソース20、実時間クロック2
2、ユーザ最小シェア割当て24、ユーザ最大シェア割
当て26、活動待機連続モニタ30、着信タスク32、
ディスパッチャ40、スケジューラ44、ATOD2
21、ATOD23、オフセット25、限界リスト2
7、限界リスト上の存続持続時間(存続時間とも言う)
29、ユーザの優先順位境界35、ディスパッチ・リス
ト37、最大降下18、TOD−TIED28を含む。
以下に説明するように、このような構造間の連係によっ
て本発明の方法の好ましい実施の形態が実現される。
【0022】もう一度、図1を参照すると、動作に当た
っては、線88が表すように、ディスパッチャ40は、
着信作業32を探し、実行すべき何らかの作業がある場
合にスケジューラ44によって設定された優先順位に基
づいてそれを実行させる。線82が表すように、実行す
べき作業がまったくない場合、ディスパッチャ40は活
動待機連続モニタ30を呼び出す。線83が表すよう
に、活動待機プロセス30は、着信作業32がないかど
うかシステムを連続的に監視し、線82がさらに表すよ
うに、何らかの作業が到着したときにそれを実行するた
めにディスパッチャ40を呼び出す。線84が表すよう
に、ディスパッチャ40は、ユーザがマイナー・タイム
・スライスの終わりに達したときにユーザのディスパッ
チ優先順位を再計算するためにスケジューラ44を呼び
出す。線85、86、87、88がそれぞれ表すよう
に、スケジューラ44は、ディスパッチ優先順位計算へ
の入力として、システム・リソース20、実時間クロッ
ク22、ユーザの最小シェア割当て24、ユーザの最大
シェア割当て26を使用する。線89が表すように、ス
ケジューラ44は、最後にATOD2が更新されてから
実際にユーザを実行するために使用したCPU時間に待
機時間(実行すべき作業がまったく使用可能になってい
ない場合)を加えた量だけATOD2を前進することに
より、ATOD221を更新する。線90が表すよう
に、スケジューラ44は、最後にATODが更新されて
から実際にユーザを実行するために使用したCPU時間
の量だけATODを前進し、本発明にとって重要な所与
の状況下では待機時間分も前進することにより、ATO
D23を更新する。更新されたATOD=前のATOD
+最後にATODが再計算されてからのユーザCPU時
間になる。線91が表すように、スケジューラ44は、
優先順位計算に使用されるそのユーザのオフセット25
を計算する。オフセット25は、ユーザのディスパッチ
優先順位35を計算するときにATOD23の現行値か
らの変位として使用される。線92および93が表すよ
うに、ユーザのディスパッチ・リスト優先順位35(締
切り優先順位または予測完了時間とも言う)は、スケジ
ューラ44の計算に基づいて設定され、ATOD23の
現行値とユーザのオフセット25のサイズに基づく境界
内にある。線31および33が表すように、ユーザのデ
ィスパッチ・リスト優先順位35は、ディスパッチャ4
0がそれを実行を必要とする着信タスク32と見なすよ
うに、他の作業による優先順位順にユーザの作業をディ
スパッチ・リスト37に掲載するために使用される。ス
ケジューラ44は、そのユーザをディスパッチ・リスト
37に掲載するためにATOD23を使用してユーザの
ディスパッチ・リスト優先順位35を計算し、そのユー
ザを限界リスト27に掲載することによりそのユーザの
リソース消費量を制限する必要があるときにATOD2
21を使用して限界リスト27の優先順位を計算す
る。線95が表すように、計算された上部境界はTOD
−TIED28と呼ばれる。線94が表すように、計算
された下部境界は最大降下18と呼ばれる。線96が表
すように、最大降下境界18の外側になるようにスケジ
ューラによってそのディスパッチ優先順位35が計算さ
れる限定シェア・ユーザは、限界リスト27に追加され
る。線97および98が表すように、限界リスト27上
の存続持続時間29の予測は、ATOD2 21に基づ
いて行われる。線99が表すように、ユーザは、スケジ
ューラ44によって除去すべき時期になるまで、限界リ
スト27上に存続する。線120が表すように、低ロー
ド状況では、活動待機プロセス30は、ユーザを除去し
なければならない可能性のある時期を決定するために限
界リスト27を監視する。
【0023】ATOD、TOD−TIED、ディスパッ
チ優先順位、オフセットを決定するために必要な計算な
らびにユーザに対してリソースをスケジューリングする
際のその使い方について、以下に説明する。最大降下を
計算するための式は以下の通りである。 最大降下=ATOD+4*オフセット
【0024】オフセットを計算するための式は以下の通
りである。 オフセット=(マイナー・タイム・スライス−オーバラ
ン)/(CPUの数*シェア)
【0025】式中、オーバラン=ユーザが優先順位がよ
り高い作業によって先取りされた場合にユーザの前のマ
イナー・タイム・スライス上に残っている時間の量であ
る。
【0026】ユーザのディスパッチ優先順位は、優先順
位境界である最大降下とTOD−TIEDの範囲内で計
算された整数値である。TOD−TIEDメカニズムに
関するより完全な説明を以下に示す。
【0027】ATOD23およびATOD2 21は、
システム上のすべてのユーザのユーザ時間とシステムの
待機時間を全体として累積するために使用するデータ構
造(フィールド)である。個々のユーザ時間または待機
時間あるいはその両方は追跡する必要はない。このよう
な累積は、システムの活動と比較して、ユーザのマイナ
ー・タイム・スライスの終わりなど、発生すべき所与の
事象を予測する際に使用する。
【0028】図2〜図8およびそれらに関する以下の説
明は、デヴィソンによる同時係属特許出願第08/25
2864号から適応され、本発明の理解にとって重要な
基本概念のチュートリアルを構成し、これは主に、実質
的に早すぎない時期にユーザを限界リストに追加し、遅
すぎない時期にそのユーザを除去するという目標に改良
を加えるように待機時間を含むようにATODおよびA
TOD2を調整するために提供されたメカニズムの改良
である。
【0029】図2は、オペレーティング・システム38
がディスパッチャ40と、スタッカ42と、スケジュー
ラ44と、残りの諸機能46とを含むことを示してい
る。スタッカは、スケジューラとディスパッチャならび
にディスパッチャおよびスケジューラとオペレーティン
グ・システムの残りの部分とのインタフェースである。
処理の流れに関する高レベル説明を以下に示す。典型的
なシナリオでは、ユーザは何らかの作業を実行するよう
オペレーティング・システムの「残りの部分」46に要
求する。この作業要求は、ユーザの状況を「作動可能」
として記録するスタッカ42に渡される。スタッカは、
ユーザがその作業に対して異なる視点を有する可能性が
あっても、ユーザから到着する作業を1つまたは複数の
「トランザクション」として見る。ユーザが完全アイド
ルの状態(「アイドル」)から実行準備ができている状
態(「作動可能」)に移行したときに、「新しい」トラ
ンザクションが開始される。また、ユーザが依然として
進行中の作業(トランザクション)を持っているが、完
了すべき仮想入出力要求を待っており、したがって、一
時的に実行準備ができていないときに存在する「中断」
という第3の状態もある。中断の期間は、新しいトラン
ザクションを宣言するのに十分な根拠にならない。次
に、スタッカはこのユーザに関する作業待ち行列に要求
を渡す。また、スタッカは、ディスパッチ・リスト37
上の他のユーザに対するこのユーザのディスパッチ優先
順位35を示す情報を入手するためにスケジューラも呼
び出す。次に、スタッカは、このユーザ(実際にはユー
ザのVMDBK)をディスパッチ・リスト37に掲載
し、オペレーティング・システムの「残りの部分」に戻
る。ディスパッチ優先順位はディスパッチ・リスト上の
ユーザの順序付けを実施する。オペレーティング・シス
テムの残りの部分は、その現行作業部片を完了すると、
ディスパッチャ40に制御を移して、実行すべき次のユ
ーザおよび作業部片を決定する。次にディスパッチャ
は、ディスパッチ・リスト37内の第1の作動可能ユー
ザと、次にディスパッチすべきユーザの作業待ち行列内
の第1の作業部片を選択する。次に、ディスパッチャ4
0は、オペレーティング・システムの残りの部分に制御
を移して、この作業の実行を開始する。次に、ディスパ
ッチされた作業は所定の持続時間のタイム・スライス、
たとえば、1ミリ秒の間、実行される。1ミリ秒のタイ
ム・スライスが終了する前にこの作業項目が完了した場
合、ディスパッチャは実行すべき同じユーザの作業待ち
行列から他の作業部片を選択する。このタイム・スライ
スの終了時に、ユーザが依然として実行すべき作業を持
っている場合、ディスパッチャは、このユーザ用の次の
タイム・スライスの新しい優先順位を入手するために、
もう一度スケジューラ44を呼び出す。この新しい優先
順位によりユーザはディスパッチ・リスト内で位置変更
され、次にこれが、同じユーザのためにこの次のタイム
・スライスが始まる時期を決定する。同じユーザ用の連
続タイム・スライス間の時間は、一部分ではこのユーザ
用のプロセッサ時間のシェアを決定する。
【0030】すべてのユーザは、それぞれの絶対または
相対シェアにかかわらず、均一持続時間の個別タイム・
スライスについてディスパッチされ実行される。前述の
例では、各タイム・スライスは1ミリ秒である。タイム
・スライスは一般にプロセッサの速度に基づくものであ
り、この実施の形態のために選択された1ミリ秒は一例
に過ぎず、システムに合わせるために指定変更すること
ができる。各ユーザ(VMDBKによって表される)
は、タイム・スライスを完了した後、割込みが行われ、
ディスパッチ・リスト内の下の方に移動する(再優先順
位付けが行われる)。これにより一般に他のユーザがこ
のプロセッサを使用できるようになる。プロセッサの各
ユーザのシェアは、そのユーザに割り振られたタイム・
スライス間の間隔と、ユーザが各タイム・スライスを使
用するために必要とする時間によって決定され、各ユー
ザは必ずしも1連続ミリ秒で単一のタイム・スライスを
消費するわけではない。ユーザが入出力動作を待たなけ
ればならない場合、入出力動作が完了するのを待つ時間
がこのユーザのタイム・スライスにカウントされないよ
うに、一時的に中断され、プロセッサから外される(し
かし、ディスパッチ・リスト37内に存続する)。たと
えば、ある入出力動作では数ミリ秒が完了する必要があ
る可能性があっても、入出力制約のユーザは、単一タイ
ム・スライスを使い果たす前に10回またはそれ以上の
入出力動作を開始し、その完了を待つことができる場合
が多いだろう。また、優先順位がより高い他のユーザ用
の作業が到着した場合、ディスパッチャは、そのユーザ
のタイム・スライスの終了前にそのプロセスから実行中
のユーザを除去し、ある期間の間、それを中断すること
ができる。オペレーティング・システムは、タイム・ス
ライス間の間隔を制御することにより、各ユーザのプロ
セッサ時間の実際のシェアを制御することができる。あ
るユーザのためのタイム・スライス間の間隔は逆に、瞬
間ごとのディスパッチ・リスト内の他のユーザのシェア
と比較して、ディスパッチ・リスト37内のユーザのシ
ェアの大きさに対応する。VMDBKが1つのタイム・
スライスを完了するたびに、その1つのVMDBKにつ
いてのみディスパッチ・リスト37内で再優先順位付け
および位置変更が行われる。単一タイム・スライスがば
らばらに使用される場合、累積された時間が1ミリ秒の
タイム・スライスと等しくなるまで、スケジューラはそ
のユーザのタイム・スライス間の間隔を再計算しない。
タイム・スライス間の公称間隔を決定するための技法に
ついては、以下に詳述する。
【0031】NウェイMPシステム内の各CPUは、時
刻(TOD)クロック22とCPUタイマとを有する。
TODクロックは、マイクロ秒ごとに増分される52ビ
ットのハードウェア・レジスタを含む。TODクロック
は、オペレーティング・システムが初期設定され(ブー
トされ)、その後まったく変更されないときに設定され
る。NウェイMPシステムでは、TODクロックのすべ
てのNが互いに正確にマイクロ秒に同期している。TO
Dクロックは、時間ゼロが1900年1月1日の夜中の
12時になるように設定される。52ビットのTODク
ロック(すなわち、ビット0〜51)がマイクロ秒をカ
ウントする場合、このクロックは繰り返す前に140年
以上の間動作することができる。TODクロックは、決
して停止せず、必ず増加し、実時間を示す信頼でき正確
なタイム・スタンプかつ基準である。
【0032】CPUタイマは、各タイム・スライスの時
間的調節を行うためにオペレーティング・システム38
が使用する、もう1つの52ビットのハードウェア・レ
ジスタを含む。CPUタイマは、システム・オペレータ
がCPUを停止した場合に動作を停止し、オペレータが
CPUを再始動すると直ちにもう一度開始する(これに
対してTODクロックは連続的に動作する)。CPUタ
イマおよびタイム・スライスの前進は、CPUがもう一
度始動されたときに再開する。各ユーザがそのタイム・
スライスを開始すると、CPUタイマから開始時間が明
記される。同様に、ユーザが中断状態になるたびに、そ
れがもう一度実行するときにこのユーザのためにタイム
・スライスのうちのどの程度が残っているかを決定する
ために、CPUタイマの時間が明記される。したがっ
て、CPUが停止したときに処理中であり、CPUタイ
マと比較されるユーザは、そのタイム・スライスの資格
を一切失うことはない。
【0033】また、スケジューラは、人工時刻(ATO
D)クロックとして知られるソフトウェア・クロック
(および後述する第2の人工時刻クロックATOD2)
も有する。ATODクロックはハードウェアTODクロ
ックと同様であるが、(CPUあたり1つずつではな
く)1つしか存在せず、わずかに遅く動作する。CPU
の全使用可能処理能力のうちの所与の量は、特定のユー
ザに帰することができないオペレーティング・システム
・オーバヘッドに費やされる。したがって、全処理時間
のうちのこの量はユーザのシェアとして分割するために
使用可能なものではない。全処理のうち、システム・オ
ーバヘッドである割合は瞬間ごとに変動し、100%未
満のうちのどの程度がユーザのシェアのために使用可能
であるかを把握することが難しい。このような困難は、
オペレーティング・システムがオーバヘッド機能を実行
している間は停止するようにATODクロックを定義
し、ユーザにシェアを供給する計算においてTOD時間
ではなくATOD時間を使用することによって回避され
る。次にATODクロックでは、オーバヘッドが実行さ
れている間、時間が停止する。したがって、ATODク
ロックが測定する時間の100%は使用可能な処理に対
応する。シェアを供給するための計算は、ATODクロ
ックに基づくものであり、したがって、処理の100%
がユーザのシェアのために使用可能である場合と同様に
計算することができる。
【0034】オペレーティング・システム38では、優
先順位番号が低ければ低いほど、実際の優先順位が高く
なる。優先順位番号は各ユーザごとに変化し続け、ディ
スパッチ順序は作動可能ユーザ間の相対優先順位番号に
基づくものである。優先順位番号は、ユーザ/VMDB
Kがディスパッチ・リスト37に掲載されたときにそれ
ぞれの絶対または相対シェアに基づいてスケジューラに
よって計算される。ディスパッチ・リストに入ったばか
りのユーザについて計算する場合、優先順位番号は通
常、ATODクロックの現行値よりわずかに(数ミリ秒
だけ)大きくなる。(しかし、実際上、最初のいくつか
のタイム・スライスの場合、非常に短いトランザクショ
ンの場合にユーザに対して迅速応答を行うために、より
小さい優先順位が使用される。このような変更はユーザ
のシェアに著しく影響しないように非常に短時間のもの
である。)ATODはいつでも前進しているので、古く
未完了のタスクは、通常、より低い優先順位番号、した
がって、新しいタスクより高い優先順位を有し、ディス
パッチ・リストの最上部付近に位置する傾向がある。以
下に詳述するように、ディスパッチャは、実行リスト
(非作動可能または中断ユーザを除くディスパッチ・リ
スト37のコピーであり、したがって、実行状況を有す
るユーザの集合またはリストである)上で最上部から下
にサーチし、実行すべきユーザを突き止める。時間が進
むにつれて、作動可能タスクの方が優先順位がより高い
ためにユーザがディスパッチされない場合、またはユー
ザがディスパッチされたが入出力制約を受け、そのタイ
ム・スライスを完了せずに「中断された」多くの時間を
費やす場合、ユーザの優先順位は、(1)より最近、ト
ランザクションを開始するユーザと、(2)入出力制約
を受けないユーザに関して増加する。このような2つの
点はそれぞれ真実である。というのは、(1)そのタイ
ム・スライスが完了するまでユーザの優先順位番号が固
定されたままになるのに対し、新しいトランザクション
を開始する他のユーザには、ATODが増加するにつれ
て累進的により高い優先順位番号が割り当てられ、
(2)より多くのCPU制約のユーザが多くのタイム・
スライスを使用し、それぞれの後で下に移動するからで
ある。したがって、入出力制約のユーザは、非入出力制
約のユーザより高い相対優先順位を有する傾向にあり、
一般に、ディスパッチおよび実行リストの最上部付近に
位置決めされ、実行準備ができているときに、すなわ
ち、各入出力動作が完了した後で、迅速にCPUが提供
される。
【0035】各ユーザごとに、絶対または相対シェア2
4、26(システム・ディレクトリ内に指定され、時に
はシステム・オペレータによって変更される)が存在す
る。また、各ユーザごとに、指定の「ソフト限界」、
「ハード限界」、または「限界なし」も存在する。未使
用処理時間が使用可能になると、すべてのユーザは、未
使用処理時間がまったくない場合と同様に計算されたそ
れぞれの絶対シェアおよび相対シェアに比例して超過処
理時間を受け取り始める。しかし、いずれかのハード限
界ユーザがそのハード限界に達すると、それ以上の割振
りは一切行われない。いずれのハード限界ユーザに対し
ても、ハード限界を超過する処理時間のシェアを割り振
ることはできない。いずれかのソフト限界ユーザがその
ソフト限界に達すると、他のいずれかのソフト限界ユー
ザがまだそのソフト限界に達しなければならないかまた
は他のいずれかのハード限界ユーザがまだそのハード限
界に達しなければならない場合、あるいは超過処理時間
を使用できる無制限ユーザが存在する場合、このソフト
限界ユーザに対してそれ以上の割振りは一切行われな
い。まだそれぞれの限界に達していない他のソフト限界
ユーザおよびハード限界ユーザは、それぞれの限界にも
達するまで、超過シェアを受け取り続ける。他のすべて
のソフト限界ユーザがそれぞれのソフト限界に達し、す
べてのハード限界ユーザがそれぞれのハード限界に達し
たときに、超過処理時間を使用できる無制限ユーザがま
ったく存在しない場合、最も大きい絶対シェアまたは相
対シェア(未使用処理時間がまったくない場合と同様に
計算されたもの)を備えたソフト限界ユーザは残りの未
使用処理時間をすべて受け取る。あるいは、すべてのソ
フト限界ユーザがそれぞれのソフト限界に達し、すべて
のハード限界ユーザがそれぞれのハード限界に達したと
きに、超過処理時間を使用できる無制限ユーザがまった
く存在しない場合、すべてのソフト限界ユーザは、未使
用処理時間がまったくない場合と同様に計算されたそれ
ぞれの絶対シェアまたは相対シェアに比例して、残りの
未使用処理時間を分担する。
【0036】以下に詳述するように、シェア割振り技法
は、ユーザが各タイム・スライスを完了した後で各ユー
ザをディスパッチ・リスト内で位置変更するかまたは下
にオフセットすることによって実現される。オフセット
の量は、絶対または相対シェアの大きさに基づくもので
ある。各ユーザの入出力制約の相対量は、タイム・スラ
イスを完了する直前にそのユーザの位置からオフセット
を開始することにより、タイム・スライスを完了した後
にディスパッチ・リスト内でそのユーザを位置変更する
ときに考慮される。その結果、ユーザは、非常に入出力
制約を受ける場合、そのタイム・スライスを完了する前
にディスパッチ・リストの最上部付近に位置することに
なり、したがって、タイム・スライスを完了し、下方オ
フセットを経験した後でもディスパッチ・リスト内の高
い位置に位置変更される。(あるユーザが最初にディス
パッチ・リストに入ると、オフセットはATODの付近
から開始される。)
【0037】ディスパッチャ40は図4〜図6に示すよ
うに実現される。ステップ100では、CPUは、ある
ユーザ用の作業部片の実行を完了し、それをディスパッ
チャに通知する。応答として、ディスパッチャの第1の
レベルは、そのユーザが現行の1ミリ秒タイム・スライ
スを完了したかどうかを判定する(判断102)。完了
していない場合、第1のレベルのディスパッチャは、優
先順位がより高いユーザがプロセッサを待っているかど
うかを判定する(判断104)。待っていない場合、第
1レベルのディスパッチャは、1つの作業部片を完了し
たばかりのユーザが実行すべき他の作業部片、すなわ
ち、その作業待ち行列内の他の作業部片を有するかどう
かを判定する(判断106)。有する場合、第1のレベ
ルのディスパッチャは、ディスパッチャの第2のレベル
を呼び出して、この同じユーザ用の他の作業部片を完了
したばかりの同じCPU上で実行するためにこのユーザ
の待ち行列から次の作業部片をディスパッチする(ステ
ップ110)。応答として、第2のレベルのディスパッ
チャは、このユーザの作業待ち行列上の第1の作業部片
を選択し、この特定の作業部片を処理するためにオペレ
ーティング・システム内の適切なルーチンに制御を移す
(ステップ112)。
【0038】もう一度、判断102、104、106を
参照すると、判断102がYESであるか、判断104
がYESであるか、または判断106がNOである場
合、第1のレベルのディスパッチャは、判断120に移
行して、以下に説明するようにスケジューラのATOD
クロック(およびATOD2クロック)を更新する時期
であるかどうかを判定する。この判断は、クロックの最
後の更新以来、少なくとも1ミリ秒が経過したかどうか
に基づいて行われる。経過した場合、ディスパッチャ
は、スタッカを呼び出して、ATODクロックおよびA
TOD2クロックを更新するようスケジューラに通知す
る(ステップ122)。次に、第1のレベルのディスパ
ッチャは、未使用のものがある場合にユーザのタイム・
スライスのうちのどの程度が未使用のまま存続している
かをまず記録することにより、ユーザを「アンディスパ
ッチ」する(ステップ130)。判断102の結果とし
てステップ130に到達した場合、このタイム・スライ
スのうちのいずれも存続していない。しかし、ステップ
130の前に判断104または判断106のいずれかが
行われた場合、ある程度のタイム・スライスが存続して
いる。次に、第1のレベルのディスパッチャは、そのタ
イム・スライスが完了されたかどうか(ならびにそのユ
ーザを適格リストに循環して戻すべきかなどの他のいく
つかのスケジューラ条件のいずれかを検査したかどう
か)を判定する(判断132)。完了された場合、第1
のレベルのディスパッチャは、スタッカを呼び出して、
タイム・スライスの終了または他のスケジューラ条件を
処理するようスケジューラに通知する(ステップ13
4)。次に、第1のレベルのディスパッチャは、トラン
ザクションの実行を完了したばかりのCPUの実行リス
トから優先順位が最も高いユーザを選択する(ステップ
136)。このようなユーザが存在する場合(判断14
0)、第1のレベルのディスパッチャは、このユーザを
ディスパッチ済みとしてマークし、このユーザ用のタイ
ム・スライスの時間的調節を行うためにそのタイム・ス
ライス(またはその残りの部分)をCPUタイマにロー
ドし、第2のレベルのディスパッチャに移行する(ステ
ップ142)。応答として、第2のレベルのディスパッ
チャは、ユーザの作業待ち行列からこのユーザ用の第1
の作業部片を選択し、この特定の作業部片を処理するた
めにオペレーティング・システム部分46内の適切なル
ーチンに制御を移す(ステップ144)。
【0039】もう一度、判断140を参照すると、トラ
ンザクションの実行を完了したばかりのCPUに関する
ユーザが一切見つからなかった場合、第1のレベルのデ
ィスパッチャは、他のCPUの実行リストから優先順位
が最も高いユーザを選択する(ステップ150)。この
ようなユーザが見つかった場合(判断152)、第1の
レベルのディスパッチャは、ステップ142に移行し
て、他のCPUの実行リストからこのユーザをディスパ
ッチする。しかし、他のCPUの実行リスト上でこのよ
うなユーザが一切見つからない場合、第1のレベルのデ
ィスパッチャは待機状態に移行する(ステップ15
4)。
【0040】図7はスケジューラ44の一部分を示して
いる。スケジューリングすべき新しいユーザの識別子を
第2のレベルのディスパッチャから(スタッカを介し
て)受け取った後、スケジューラは、以下の通り、「デ
ィスパッチ・リスト・シェア」を決定する(ステップ2
00)。ステップ202では、スケジューラは、従来技
術のVM/ESAオペレーティング・システムに関して
前述したようにユーザの絶対または相対シェアをシステ
ムの処理時間の分数に変換する。すなわち、すべての絶
対シェアは先頭から取られ(また、合計が99パーセン
トを上回る場合は比例して削減され)、残りはそれぞれ
の相対シェアに比例してディスパッチ・リスト上の他の
ユーザ間で分割される。各ユーザごとの結果はプロセッ
サ時間の分数(0と1の間)であり、すべてのユーザの
値を合計すると1になる。次に、スケジューラは、「適
格」リストで待機して費やす時間についてユーザに補償
するために、このユーザの「必須分数」(R')を決定
する(ステップ204)。ユーザは実行準備ができると
適格リストに掲載されるが、そのユーザの作業を実行す
るために使用可能なメモリが不十分である。必須分数
は、ステップ202で決定したシェアの分数に(ディス
パッチ・リスト内の時間+適格リスト内の時間)/(デ
ィスパッチ・リスト内の時間)を掛けることによって決
定される。各ユーザごとの必須分数は、適格リスト内に
存続するたびにその後で再計算され、結果はディスパッ
チ・リスト内の次の期間に使用する。しかし、通常、す
べてのユーザのために十分なメモリがあるので、適格リ
ストへの「トリップ」はまれなことであり、通常、ステ
ップ204はステップ202の結果に1を掛ける単純な
乗算になる。次に、ディスパッチ・リスト内のすべての
ユーザの必須分数を合計すると1になるように、スケジ
ューラはこのユーザの必須分数R'を正規化する(ステ
ップ206)。このユーザの正規化必須分数は「ディス
パッチ・リスト・シェア」(または実行リスト・シェ
ア)であり、以下に詳述する。このユーザのディスパッ
チ・リスト・シェアから、スケジューラはディスパッチ
・リストおよび実行リストの下方への「オフセット」を
決定する。大ざっぱに言えば、ユーザのオフセットは、
ディスパッチ・リスト・シェアにタイム・スライスの長
さを掛けて実CPUの数で割ったものの逆数である。オ
フセットが小さくなればなるほど、ユーザからCPUへ
のアクセス数が増し、その逆も同様である。ユーザのオ
フセットの正確な値については以下に詳述する。
【0041】図8は、ある瞬間におけるディスパッチ・
リスト300を示している。このディスパッチ・リスト
は、実行準備ができているユーザと、中断されているユ
ーザを含む。上記の通り、ディスパッチ・リスト300
上にあって実行準備ができているユーザは、サーチ時間
を短縮するために実行リストにも掲載されているが、説
明のためにはディスパッチ・リスト300の図解の方が
適当である。ディスパッチ・リストは一番上から下にサ
ーチされ、最も高い優先順位(および最低優先順位番
号)を備えたユーザが順序の先頭に掲載される。各ユー
ザがそのタイム・スライスを完了したときに、実行すべ
き作業をそれ以上有している場合、スケジューラはディ
スパッチ・リスト300上(および間接的に実行リスト
上)でその現行位置から下にこのユーザ用のオフセット
25に等しい量だけそのユーザを位置変更する。したが
って、2つの要因がディスパッチ・リスト300上のユ
ーザの分布を実施する。第1の要因はオフセット25の
大きさである。上記の通り、各ユーザごとのオフセット
の大きさは、ディスパッチ・リスト上の他のユーザのシ
ェアに対するそのシェアに反比例し、異なるシェアを備
えた他のユーザとは異なっている。したがって、シェア
が小さければ小さいほど、オフセットは大きくなる。こ
れは、ほとんどの場合、ディスパッチ300の最下部付
近に低シェア・ユーザを位置決めする傾向がある。第2
の要因は、そのタイム・スライスを完了するためにユー
ザが必要とする実時間の量である。「入出力制約」のユ
ーザは、1つのタイム・スライスを完了するために相当
な入出力時間を必要とする。というのは、ユーザが入出
力動作を開始した後でその入出力動作が完了するまで待
っている相当な時間の間、そのユーザおよびそのタイム
・スライス時間が中断されるからである。したがって、
入出力制約のユーザは、そのタイム・スライスの実行を
完了するために1ミリ秒のタイム・スライスよりかなり
長い実時間を必要とし、入出力制約のユーザが実行リス
ト300の最上部まで上昇すると、そのユーザは相当な
時間そこに存続してから、そのタイム・スライスを完了
し、下にオフセットされることになる。逆に、「CPU
制約」のユーザは、入出力時間をほとんど必要とせず、
1ミリ秒またはそれよりわずかに長い時間でほとんど連
続的にそのタイム・スライスを完了する。したがって、
CPU制約のユーザは、頻繁に下にオフセットされ、一
般にディスパッチ・リストの最下部付近に常駐する。
【0042】したがって、どのような瞬間でも、入出力
制約のユーザと、非常に大きいシェアを備えた他のユー
ザは、ディスパッチ・リストの最上部付近に位置する傾
向があり、CPU制約のユーザと、非常に小さいシェア
を備えたユーザは、ディスパッチ・リストの最下部付近
に位置する傾向がある。シェアおよび入出力対CPU制
約という2つの要因のうち、入出力の量対CPU制約の
方がディスパッチ・リスト内の位置に及ぼす影響が大き
い(通常範囲のシェアの場合)。上記のような実行リス
ト上のユーザの位置決めは高いスループットをもたら
す。というのは、入出力制約のユーザが実行準備ができ
たときに、すなわち、最後の入出力動作が完了したとき
に、ユーザは実行リスト300の最上部付近に位置する
可能性があり、迅速にCPUを獲得することになるから
である。
【0043】図8では、このようなオフセットは下方に
曲線を描いて延びる矢印として左側に示されている。異
なるユーザが異なるシェアを備えているので、オフセッ
トによっては他のオフセットより長かったり短かったり
する。典型的な状況では、現行(瞬時)ATODマーク
より下にあるすべてのユーザはCPU制約のユーザであ
り、現行ATODマークより上にあるすべてのユーザは
入出力制約のユーザである。ユーザは、上記の効果によ
り、そのようにソートされている。また、ディスパッチ
ャは一般に、作動可能ユーザを見つけるために現行AT
ODマークより下にある多くのものをサーチする必要は
なくなるだろう。というのは、その付近にあるCPU制
約のユーザはほとんどいつでもディスパッチすることが
できるからである。したがって、ATODマーク位置お
よびそれより下の図8の左側にある「オフセット」矢印
は一般にATODマーク位置またはそれよりわずかに下
にあるユーザから発生することになる。しかし、ATO
Dマークより上のディスパッチ・リストの上部部分で
は、矢印がどこでも発生する傾向がある。ただし、入出
力制約のユーザがタイム・スライスを完了すると、前の
タイム・スライスの時点におけるその典型的な高優先順
位および高位置のために、そのユーザは通常はリストの
最下部に移動せず、通常は依然としてATODマークよ
り上に存続することに留意されたい。したがって、入出
力制約のユーザは、入出力待機を完了した直後にもう一
度ディスパッチされる可能性があり、高スループットが
維持される。
【0044】上記のスケジューラは、自分のシェアを吸
収できないユーザを「非常に激しく急き立てる」。この
ようなユーザの1人がその割当て済みシェアについてま
すます後れをとるので、このユーザがその全シェアを占
める見込みがある場合に最終的にそのようにするまで、
そのユーザはディスパッチ・リスト内をますます上昇す
る。したがって、上記のスケジューラは、単に各ユーザ
にCPUへの所望のACCESSを与えるのではなく、
CPUの各ユーザに所望のSHARESのうちの多くを
与える際に効果的である。所望のシェアは、各ユーザの
消費の履歴を計算せずに提供される。これは、「履歴」
がそのユーザのディスパッチ・リスト位置に常駐してい
るからである。ATODマークに対するディスパッチ・
リスト内のユーザの位置は、ユーザが受けるに値するも
のに対して、ユーザが過去に受け取ったプロセッサ時間
のシェアを表している。ユーザがそれまでに受けるに値
するものを正確に獲得している場合、そのユーザはAT
ODマークの位置に正確に位置する。ユーザがATOD
マークより上にある場合、そのユーザは受けるに値する
ものより受け取ったものの方が少ない。ユーザがATO
Dマークより下にある場合、そのユーザは受けるに値す
るものより受け取ったものの方が多い。
【0045】ステップ204で決定した必須分数R'
は、以下のようにステップ206で正規化される。3通
りの正規化のケースと、それぞれのケースの2通りの変
形が存在する。3通りのすべてのケースでは、ディスパ
ッチ・リスト上のすべてのユーザ(SRMRTHRU)
またはATODマークより下にあるユーザ(SRMCT
HRU)の必須分数の合計に基づいて計算が行われる。
第2および第3のケースでは、前述のように限界を実施
するために、その(ハードまたはソフト)限界に達して
いると判断されるかどうかに応じて、VMDBKは異な
る方法で検討される。ディスパッチ・リスト内のすべて
のユーザのR'の合計は以下の式で表される。 SRMRTHRU=SRMRTHRN+SRMRTHR
L+R'
【0046】式中、SRMRTHRNはディスパッチ・
リスト内にあって無制限であるかまたは自分の限界に達
していないすべてのユーザの必須分数の合計であり、S
RMRTHRLはディスパッチ・リスト内にあって自分
の限界に達したすべてのユーザの必須分数の合計であ
り、加算されるものとして示されているR'は現在検討
中であって計算時にまだSRMRTHNまたはSRMR
THL内に加えられていない1人のユーザのR'を表
す。同様に、ATODマークより下にあるユーザの合計
については以下の通りである。 SRMCTHRU=SRMCTHRN+SRMCTHR
L+R'
【0047】式中、SRMCTHRNはATODマーク
より下にあって無制限であるかまたは自分の限界に達し
ていないユーザの必須分数の合計であり、SRMCTH
RLはATODマークより下にあって自分の限界に達し
たユーザの必須スループットの合計である。(それぞれ
の変数内の文字「C」は、ATODマークより下にある
ユーザをCPU制約のユーザとして見なすことができる
という合図である。)以下の計算では(3通りのケース
の場合)、SRMRTHRN変数およびSRMRTHR
L変数のみを示すが、検査中のユーザがATODマーク
より下にあるユーザの1人である場合にSRMCTHR
N変数およびSRMCTHRL変数を代用する予定であ
ることに注目することに留意されたい。これは、3通り
のケースのそれぞれについて前述したように2通りの変
形があることを反映している。
【0048】第1のケース:((SRMRTHRL+S
RMRTHRN+R')>1かつSRMRTHRL>
0.5)である場合、一部のユーザのシェアはより小さ
いものにしなければならず、自分の限界に達しているユ
ーザは大きい部分(>0.5)を構成するので、この時
間の短縮にすべて含まれる。その場合、現行ユーザは以
下のように正規化される。 正規化R'=R'/(SRMRTHRL+SRMRTHR
N+R')
【0049】したがって、現行ユーザのシェアはより小
さいものになる。
【0050】第2のケース:((SRMRTHRL+S
RMRTHRN+R')>1であるがSRMRTHRL
<0.5)である場合、一部のユーザのシェアはより小
さいものにしなければならない。しかし、自分の限界に
達しているユーザは大したものにはならない(それぞれ
のR'の合計<0.5)ので、正規化されない。その場
合、現行ユーザがその限界に達していない場合のみ、現
行ユーザのシェアは以下のように調整される。 正規化R'=R'*(1−SRMRTHRL)/(SRM
RTHRN+R')
【0051】したがって、その限界に達していないユー
ザのシェアはより小さいものになる。しかし、その限界
に達している現行ユーザは以下の式を使用する。 正規化R'=R'(限界)
【0052】式中、R'(限界)は、指定のハード限界
またはソフト限界の正規化分数、すなわち、適格リスト
時間の効果に応じて調整されたハード限界またはソフト
限界である。正規化分数はその限界に達しているユーザ
向けに限定されるので、これは、まだその限界に達して
いない少なくとも1人のユーザまたは少なくとも1人の
無制限ユーザが存在する限り、それぞれの限界にあるこ
のようなユーザのシェアを制限する。
【0053】第3のケース:((SRMRTHRL+S
RMRTHRN+R')<1.0)である場合、一部の
ユーザのシェアはより大きいものにしなければならな
い。その限界に達しているユーザのシェアはより大きい
ものにする必要がないので、その限界に達していないユ
ーザについてのみ調整が行われる。現行ユーザがその限
界に達していない場合、そのシェアは以下のように調整
される。 正規化R'=(上記のケース(2)と同じ)
【0054】この時点では、通常のユーザのシェアはよ
り大きいものになる(上記のケース(2)とは異な
る)。しかし、現行ユーザがその限界に達している場
合、そのシェアは以下のように調整される。 正規化R'=R'(限界)
【0055】正規化分数はその限界に達しているユーザ
向けに限定されるので、これは、まだその限界に達して
いない少なくとも1人のユーザまたは少なくとも1人の
無制限ユーザが存在する限り、それぞれの限界にあるこ
のようなユーザのシェアを制限する。
【0056】第1のケースと第2のケースが異なる理由
は、可能であれば、限定ユーザのシェアは決して増加し
ないので、このようなユーザのシェアを低減しないこと
が好ましいからである(第3のケースを参照)。対照的
に、他の時点でより大きいシェアを獲得することによ
り、無制限ユーザ用のシェアの損失が統計的に構成され
ることになる。
【0057】第1のケースと第2のケースとを区別する
際に、SRMRTHRL>0.5であるかどうかのテス
トが行われる。現行ユーザのシェアはより大きいもので
はなくより小さいものになるので、上記のどちらのケー
スでも現行ユーザのR'は考慮されない。したがって、
その限界に達する見込みはない。したがって、このよう
なユーザの合計が>0.5になるかどうかを確認するた
めにテストする場合、このようなユーザはその限界に達
していると見なされない。
【0058】第1のケースでは、各R'ごとにすべての
R'の合計で割る。したがって、結果の値(正規化R')
の合計は1になる。式(SRMRTHRL+SRMRT
HRN+R')はすべてのR'の合計を表す。
【0059】SRMRTHRLおよびSRMRTHRN
がSRMRTHRUの構成要素部分(またはアレイ要
素)であり、SRMRTHRUがR'の合計であること
を想起されたい。上記の各種ケースで計算を行う時点を
除き、現行ユーザのR'はたまたまSRMRTHRUか
ら引かれており、どの要素を新しいR'に加えるべきか
を決定することはできないだろう。したがって、式(S
RMRTHRL+SRMRTHRN+R')はR'が明示
的に加えられることを示している。
【0060】第2のケースでは、それぞれの限界に達し
ていないユーザについてのみR'が調整されるのに対
し、それぞれの限界に達しているユーザのR'は一定の
ままになる。したがって、その限界に達していないユー
ザのR'は、その限界に達していないすべてのユーザの
R'の合計(SRMRTHRN+R')で割り、次にその
結果に(1−SRMRTHRL)を掛けることによって
正規化される。その限界に達しているユーザも存在する
ので、その限界に達していないユーザの正規化シェアの
合計は1になる必要がないので、後者の要因は必要であ
る。また、(SRMRTHRN+R')で割り、乗数を
省くことによって得られる正規化R'は合計が1になる
値を示すものと思われるので、当然の結果として、その
正規化R'に(1−SRMRTHRL)を掛けた後で合
計が(1−SRMRTHRL)になるだろう。事実、S
RMRTHRLに含まれるR'値はその限界であるR'
(限界)に等しく設定されている。
【0061】以下の理由により、そのソフト限界または
ハード限界にまだ達していないすべてのユーザにとっ
て、その絶対または相対シェアに比例した超過プロセッ
サ時間が使用可能になる。図表では、これは、ディスパ
ッチ・リスト内のユーザが(理論的には)ATODマー
クと同じ速度で進むことによって発生する。一般に、上
記のメカニズムは、それに応じてオフセットを設定(ま
たは調整)することにより、絶対および相対シェアに比
例してプロセッサ時間を分担しようと試みる。
【0062】ATODマークより下にあるユーザについ
ては、このような比例は、ステップ206におけるR'
の上記の正規化の2通りの特性によって発生する。ステ
ップ206の説明で前述したように、ATODマークよ
り下にある各ユーザごとの必須分数R'の正規化は、A
TODマークより上にあるものを除き、ATODマーク
より下にあるユーザのセットに関する合計SRMCTH
RUに基づいて行われる。したがって、これはATOD
マークより下にあるユーザにより高い優先順序を与える
傾向があり、それはオフセットがより小さいものである
ことによるものである。というのは、「正規化R'式」
の分母はより小さく、すなわち、合計がATODマーク
より下にあるユーザのみに限定されているときに各ユー
ザのシェアは合計のうちのより大きい割合を占めると思
われるからである。また、ATODより上にある入出力
制約のユーザはなかなかそのタイム・スライスを使用し
ないが、プロセッサ時間の一部を使用する。したがっ
て、CPUサービスのうちの100%未満のものがAT
ODマークより下にあるユーザに供給されることにな
り、そのオフセットは100%を獲得するものに基づく
ことになるので、ATODマークより下にあるユーザは
低速で上に移動する傾向があり、事実、ATODマーク
より遅れ始める。しかし、ATODマークより遅れるこ
とは、以下の理由によりディスパッチ・リスト内でこの
ようなユーザをもう一度下に移動させる傾向がある。ユ
ーザがATODマークより上に移動すると直ちにそれは
ATODマークより下にあるユーザのセット内に入らな
くなり、したがって、SRMCTHRUではなくSRM
RTHRUが「正規化R'」式の分母で使用されること
になる。このようにATODマークより上に移動するこ
とは、ディスパッチ・リスト内でこのようなユーザをも
う一度下に移動させる傾向がある。というのは、「正規
化R'」式の分母がより大きいものになるからである
(その結果、正規化R'はより小さいものになるが、オ
フセットはより大きいものになる)。ATODマークよ
り上および下に移動する際のこのような2通りの傾向の
正味の影響は、インストール定義の絶対および相対シェ
アに比例して「過剰」サービスが(それを使用できるユ
ーザに)割り当てられることである。このようなユーザ
は、より速くではなく、ATODマークと同じ速度で前
進する。
【0063】ATODマークより上の高い位置に位置す
るユーザには、そのユーザが使用できるのと同じ程度の
プロセッサ時間が提供されるが、そのユーザは、自分の
元のシェアの全量ではない場合であっても、一般に超過
分のうちの自分のシェアの多くを使用することができな
い。しかし、それらがCPU制約のユーザになるように
それぞれの条件が変化した場合、上記の理由により速や
かにATODマークより下に低下し、そのインストール
定義シェアに比例して超過プロセッサ時間を与える前記
原理によって支配されることになる。
【0064】ステップ206のシェアの正規化に関する
上記の説明では、その限界に達していない少なくとも1
人の他のユーザまたは少なくとも1人の無制限ユーザが
(ATODマークより下に)存在する場合に、ハードま
たはソフト限定ユーザがそれぞれの限界に制限される方
法について説明している。また、上記の説明には、ハー
ド限界ユーザがそのハード限界より大きいシェアを受け
取ることができないようにする方法、ならびにすべての
ユーザがそれぞれの限界に達した後に残っているすべて
の超過プロセッサ時間を最も大きいシェアを備えたソフ
ト限定ユーザに割り振る方法が記載されている。
【0065】上記のように、あるユーザがマイナー・タ
イム・スライスを完了すると、そのユーザはステップ1
60で計算した1つのオフセット分だけディスパッチ・
リスト内で下に移動する。しかし、移動する前に、これ
によりMAXFALL限界を超えてそれが移動するかど
うかの判断が行われる。各ユーザのMAXFALL限界
はそのユーザのオフセットの4倍、すなわち、ATOD
マークより上の4つのオフセットに等しい。無制限ユー
ザまたはソフト限定ユーザがそれぞれのオフセットのた
めにMAXFALL限界を超えて移動する場合、そのユ
ーザはそのMAXFALL限界を超えずにその限界まで
下に移動する。MAXFALL限界により、無制限ユー
ザおよびソフト限定ユーザは自分のシェアより多くのも
のを獲得することができる。というのは、その結果、デ
ィスパッチ・リスト内でそのシェアが本来示すものより
高い位置に位置決めされるからである。事実、すべての
ユーザがその限界に達しており、無制限ユーザがまった
く存在しない場合、最も大きいシェアを備えたソフト限
定ユーザは最も小さいオフセットを有し、したがって、
最も小さいMAXFALL限界を有することになるの
で、このようなユーザは実質的に残りのすべての超過プ
ロセッサ時間を入手することになる。これにより、この
ようなユーザはディスパッチ・リスト内で他のソフト限
定ユーザより上に位置決めされ、このようなユーザが使
用できるすべての超過プロセッサ時間が与えられること
になる。
【0066】しかし、ハード限定ユーザはMAXFAL
L限界によって制限されないが、MAXFALL限界よ
り下に低下すると、ハード限定ユーザは実行リストから
限界リストに移動することになる。限界リストはユーザ
の優先順序(VMDLPRTY)に応じて順序付けられ
る。したがって、ハード限定ユーザがMAXFALL限
界より下に低下すると、そのユーザは一般にそれ以上の
マイナー・タイム・スライスを完了しなくなるかまたは
ディスパッチ・リスト内でそれ以上下に移動しなくな
る。このため、ハード限定ユーザはその指定の限界を超
過するプロセッサ時間を入手できなくなる。というの
は、ディスパッチャは限界リストに入っているユーザを
ディスパッチしないからである(ユーザは限界リストに
掲載されている間、実行リストに入ることができな
い)。
【0067】ユーザはもはやスケジュールより早くなら
ないようにそこで十分な時間を費やした後、限界リスト
から除去される。これは以下のように実施される。第2
の「人工時刻」クロック「ATOD2」が形成される。
このATOD2時間は、ユーザに与えられる生産的CP
Uサービスと待機時間の両方に比例して前進する。AT
OD2が限界リストの先頭にあるユーザの限界リスト締
切りに達すると、そのユーザは限界リストから除去さ
れ、実行リストに戻される。締切りに達する時間までに
タイム・スライスを完了する時間をユーザに与えるため
に、そのユーザはその締切りより1タイム・スライス前
に限界リストを離れる資格を有する。同時に、ディスパ
ッチ・リストに入るユーザのために開始ディスパッチ・
リスト優先順位を確立し、MAXFALL限界を計算す
るために、既存のATODを使用し続けることになる。
言い換えると、ATODはディスパッチ・リストおよび
実行時リスト用の「締切り」として機能する。
【0068】時にはユーザは、たとえば、それが続行す
る前に人間の介入を必要とする入出力装置のために、過
度に長い入出力待機を経験することになる。その結果、
ユーザは、ディスパッチ・リスト上で他のユーザより十
分上の過度に高い位置に位置することになる。これは、
ユーザがもう一度実行を開始するときに問題を含む。と
いうのは、ユーザがCPU制約のユーザになった場合、
そのユーザが他のすべてのユーザを超えて下に移動する
まで他のすべてのユーザが実行できなくなり、そのユー
ザが非常に高い場合ならびにユーザを下に移動するため
に通常のオフセット機構に依存している場合に時間がか
かりすぎる可能性があるからである。したがって、以下
のメカニズムを使用して、このようなユーザを検出し、
ディスパッチ・リスト上で高い位置にあるが、このよう
な過度の入出力待機を経験したことがない他のユーザの
付近に位置決めするのに十分なほど下にそれをオフセッ
トする。「疑わしくない」ユーザ(すなわち、過度に入
出力制約を受けているとまだ疑われていないユーザ)が
タイム・スライスを完了する場合、そのユーザは必ず前
述のように1つのオフセット分だけ下に移動する。しか
し、ユーザがこの移動中に他の「疑わしくない」ユーザ
を通過しない場合、移動中のユーザは「疑わしい」もの
として指定される。(これは、移動中のユーザに関連す
るビットを設定することによって行われる。)この疑わ
しいユーザが次にタイム・スライスを完了するときに、
疑わしいユーザは通常のオフセット分だけ下に移動し、
そのユーザがこの移動中に「疑わしくない」ユーザを通
過する場合、移動中のユーザはもう一度「疑わしくな
い」ものとしてマークされ、通過しない場合、移動中の
ユーザは、移動中のユーザが最初に遭遇する「疑わしく
ない」ユーザのすぐ上まで、さらに下に移動する。その
うえ、ATODマークより下にあるすべてのユーザは
「疑わしくない」ものである。
【0069】「疑わしい」ユーザは、TOD−TIED
(TT)属性が与えられたユーザである。TOD−TI
EDメカニズムの目的は、優先順位を再配列することで
はなく、むしろユーザの相対順序を通常通り維持し、高
く上昇しすぎたことによって発生するギャップを低減す
ることである。TOD−TIED(TT)属性は、AT
ODの位置またはATODより下にあるすべてのユーザ
に属す。また、それは、あるVMDBKの位置変更によ
ってそれがTTを備えたVMDBKを通過するときには
必ず、あるVMDBKから他のVMDBKへ(ATOD
から)上に伝播される。ATODより上にあるVMDB
KがTTを備えた他のVMDBKを通過しない場合、そ
のVMDBKは属性を失う。その次のマイナー・タイム
・スライスの後、あるVMDBKがTTを取り戻せない
場合、それはTT属性を備えた次のVMDBKの直前
(または、介在ユーザがまったくいない場合はATO
D)まで強制的に下ろされる。
【0070】過度に入出力制約のユーザは、入出力が完
了するのを待っているので、スケジュール通りにそのマ
イナー・タイム・スライスを終了することは滅多にない
可能性がある。システムが忙しすぎてユーザに対して十
分なCPUリソースを与えることができないためではな
く、それが入出力動作を要求したために、そのユーザは
スケジュールより遅れているように見える。本来、スケ
ジューラ44は、スケジュールより遅れているように見
えるので、より高い優先順位によってこのユーザをスケ
ジュールする傾向があるものと思われる。TOD−TI
ED28境界の目的は、過度に入出力制約のユーザが高
すぎるディスパッチ優先順位35を獲得できないように
することである。あるユーザがしばらくの間、過度に入
出力制約のものとして存続する場合、その優先順位はま
すます高くなるだろう。そうである場合、そのユーザの
優先順位は非常に高くなり、このユーザは、次にディス
パッチされるときにCPU制約にならなければならない
場合、システムのCPUリソースを独占できるだろう。
このようなシナリオを回避するため、ユーザはそのディ
スパッチ優先順位35が高い優先順位であるATOD2
3より遅れているときにTOD−TIED属性を取得す
る。その後、このTOD−TIED属性を備えたユーザ
には、それがCPU制約になった場合にシステムを引き
継ぐことができなくなるように、優先順位の点でATO
Dにかなり近いディスパッチ・リスト上にまとめて密集
するように制限されている優先順位が与えられることに
なる。このTOD−TIEDまたは「疑わしい」メカニ
ズムは、ユーザのディスパッチ優先順位を高優先順位側
のATODから妥当な変位内に維持するために使用され
るが、最大降下は、ユーザをATODの低優先順位側に
制限された状態に維持するために使用するメカニズムで
ある。
【0071】ATODクロックは用意されている使用可
能CPU時間に比例して前進する。システム時間(オー
バヘッド)はユーザのタスクまたはシェアのために使用
可能なものではなく、したがって、ATODを前進する
ためにカウントするわけではない。各実行CPUは定期
的にATODを増分し、待機中のCAUS.は増分しな
い。これは、ステップ120および122でディスパッ
チャによって駆動される。ATODは、最後の増分以
来、複数の実CAUS.によってどの程度のユーザ時間
が供給されたかに応じて前進する。すなわち、各CPU
は、そのCPUの実際のユーザ実行時間アキュムレータ
(PFXUTIME)の前進に比例してATODを増分
する。その意図(すべてのCAUS.が生産的に動作し
ている場合)は、ATODがほぼ実時間(壁掛け時計時
間またはTOD)で前進することである。N個のすべて
のCAUS.が動作している場合、各CPUは一般にほ
ぼ実時間でそれ自体のPFXUTIMEを前進してい
る。したがって、以下のようにN個のCAUS.による
寄与をNで割る。 ATOD=ATOD+(PFXUTIMEのデルタ)/
【0072】式中、「PFXUTIMEのデルタ」は、
最後にそれが検査されてからこのCPUのPFXUTI
MEアキュムレータにおける変化である。
【0073】ATOD2は、以下のように各CPUのユ
ーザ時間(PFXUTIME)および各CPUの待機時
間(PFXTOTWT)とを含む。 ATOD2=ATOD2+(PFXUTIMEのデルタ
+PFXTOTWTのデルタ)/N
【0074】式中、PFXUTIMEおよびPFXTO
TWTはどちらもCPUタイマと同様のダブルワード・
クロックである。
【0075】しかし、いずれかのCPUが複数の連続間
隔を待っている場合、他の実行CPUがそれに代わって
動作し、ATOD2に対して(および何らかの状況では
ATODに対しても)待ち時間の寄与をすることにな
る。このような待機CPUはその時間のすべてを待機状
態で費やしており、待機状態の場合、ATOD2に対す
るその寄与は実時間(TODクロックによって測定され
たもの)の前進と同じでなければならないと想定する。
しかし、待機CPUの実行時間については、いかなる想
定または寄与も他のCPUによってなされない。このよ
うな待機CPUがもう一度実行を開始すると、それは通
常通りATODに対して、また実時間による最終的なお
そらくわずかな間隔についてはATOD2に対して、寄
与することになる。(他のCPUは前の間隔を処理済み
である。)
【0076】上記のように、1つまたは複数のCAU
S.が複数の連続タイム・スライス間隔を待っており、
同時に現行CPUがその実行リスト内の作業(VMDB
K)を持っていない場合、ATODのために何らかの待
ち時間がカウントされる。現行CPUがその実行リスト
内に作業を持っていた場合、待機CAUS.がその作業
を実行するために「使用可能」なものではない可能性が
あり、持っていなかった場合、たぶん、すでにその作業
を実行しているものと思われる。逆に、現行CPUが実
行リスト内にいずれの作業も持っていない場合、その待
機時間が使用可能時間である場合と同様に待機CPUを
カウントすることが本当に安全なことになるだろう。し
たがって、拡張待機モードの1つまたは複数のCAU
S.が存在し、同時に現行CPUがその実行リスト内に
いずれの作業も持っていない場合、現行CPUは以前の
式の代わりに以下の式を使用する。 ATOD=ATOD+(デルタ/N)+(デルタ/N)
*TRKCT/(N−TRKCT)
【0077】式中、ATOD=ATOD+(デルタ/
N)は、「デルタ」が「PFXUTIMEのデルタ」の
省略形である元の式を表し、「(デルタ/N)*TRK
CT/(N−TRKCT)」は、待機時間を反映するた
めに追加される項であり、この場合も「デルタ」は「P
FXUTIMEのデルタ」の省略形である(また、「P
FXTOTWTのデルタ」ではない)。TRKCTはS
RMTRKCTであり、現在依然として拡張待機モード
になっているCAUS.のカウントである。
【0078】待機CAUS.が(結局)それ自体の待機
時間に対して寄与できた場合、その寄与は大きい固まり
で到着するだろう。しかし、上記の式を使用すると、動
作中のCPUはそれ自体の(CPUベースの)寄与程度
のサイズの待機CAUS.に代わって寄与する。したが
って、第2項の寄与の基本サイズはデルタ/Nによって
表され、複数の拡張待機モードCAUS.に対して寄与
するためにSRMTRKCTが掛けられる。しかし、動
作中のもののように動作中のCPUと同様に寄与するこ
とになる現行のもの(すなわち、拡張待機モードになっ
ていないもの)のように他に多くのCAUS.が存在す
るので、その結果を(N−SRMTRKCT)で割る。
【0079】SRMTODSVタイムスタンプは現行T
ODの良好な近似値であるが、すべてのマイナー・タイ
ム・スライスの終了(および他のスケジューリング・ポ
イント)時と、VMDBKが作動可能になった場合、す
なわち、ほとんどの入出力動作後に、間欠的に更新され
るだけである。SRMTODSVは、ATODを更新す
る時期であるかどうかを判断するために十分なほど正確
であるが、その判断が行われると、より正確なTOD値
が使用される。
【0080】上記のように、CPUの待機時間はいつで
もATODに含まれるわけではない。というのは、本
来、ATODはユーザより速く前進でき、前述の「疑わ
しい/疑わしくない」メカニズム(ユーザがディスパッ
チ・リスト内でどの程度の高さに位置することができる
かを制限するよう機能する)はそれぞれのシェアにかか
わらず、すべてのユーザを均一に前進させるものと思わ
れるからである。にもかかわらず、ATODから待機時
間を完全に除外すると、システムの複数のCAUS.の
うちの1つ(または少数)だけが動作し、残りのものが
通常は待機している場合に問題が発生する。このような
場合、ATODは実時間に比例して遅れ、前進しなくな
る。それは、無制限ユーザおよびソフト限定ユーザまた
は小さいシェアのハード限定ユーザの場合は問題になら
ないが、大きいシェアのハード限定ユーザの場合は顕著
な矛盾を引き起こす恐れがある。これは、ATODとT
ODとの適度な差が重要ではないようなタイム・スライ
スを完了した後、小さいシェアのユーザがディスパッチ
・リスト内で下に向かってこのように大きく踏み出すか
らである。しかし、大きいシェア(および対応する小さ
いオフセット)を備えたハード限定ユーザの場合、AT
ODの正確な動きが重要である。ATODは、そのユー
ザが非常に迅速にそれを超え、MAXFALL限界に達
し、時期尚早に限界リストに掲載されないように、比較
的速いペースで大きいSHAREを備えたユーザの後に
続かなければならない。このような事態の発生が許され
ている場合、システムは、使用中のシステム上のハード
限定ユーザがそのシェアを獲得するが、非使用中のシス
テム上では(特にそれが単独でそのシステム上に存在す
る場合)そのシェアより少ない量を獲得するだろうとい
う望ましくない特性を示すだろう。これは、相当な待機
時間があり、その待機時間が既存の作業のために「使用
可能」であると証明できる場合にATODに待機時間
(またはその一部)を含めることにより発生が防止され
る。上記のように、待機中のCAUS.が存在し、現行
CPUがその実行リスト内にいかなる作業も持っていな
い場合、待機時間の一部分がATODに含まれる。現行
CPUは、待機中のCAUS.に代わって待機時間に寄
与する。
【0081】デヴィソンの同時係属特許出願第08/2
52864号では、待機時間の過剰寄与がそれぞれのシ
ェアを無視して「疑わしい/疑わしくない」メカニズム
によってすべてのユーザを均一に前進させる恐れがある
ので、有害なものになりうることが認識されている。寄
与を現行CPUが使用しているCPU時間の量(PFX
UTIMEのデルタ)程度と等しいものにすることによ
り、それがカウントする場合、すなわち、CPU制約の
作業ならびにユーザが限界リストに掲載される見込みが
ある場合には完全な寄与がなされ、CPUがそれほど使
用されていない場合にはより小さい寄与がなされること
をデヴィソンは教示している。デヴィソンによって加え
られた待機時間によるこのように「より小さい寄与」
は、本発明によれば、後述するように、より一層頻繁に
発生する諸事情により実質的に待機時間のすべてによっ
て増大し、したがって、著しく良好な結果を達成する。
【0082】実行リストおよび限界リスト内のユーザは
異なる速度で動作する様々なクロック(ATODおよび
ATOD2)によって時間的調節が行われるので、ある
ユーザが限界リスト27内にまたは限界リスト27外に
移動するときに変換が行われる。あるユーザが限界リス
ト内にある間、そのユーザは、ディスパッチ・リスト優
先順位(VMDDPRTY)35と限界リスト優先順位
(VMDLPRTY)29という2通りの優先順位を有
する。限界リスト優先順位はそのユーザのディスパッチ
・リスト優先順位から導き出される。その意図は、ユー
ザが限界リスト27内でその「遅延」を開始したときに
ユーザがATOD23から持っているものと同じ程度の
ATOD2 21からの変位を持っていなければならな
いということである。その変位は、ユーザがもう一度実
行する予定になる前に経過しなければならない遅延の量
を表すが、(「待機時間」を完全にカウントできるよう
にするために)その遅延はATOD2クロックで測定す
る必要がある。したがって、その変換は以下の通りであ
る。 VMDLPRTY=ATOD2+(VMDDPRTY−
ATOD)
【0083】このVMDLPRTYの計算は、ユーザが
限界リストに入ったときに行われる。ユーザが限界リス
トを離れるときは、ユーザは、そのユーザの締切りより
1マイナー・タイム・スライス前に実行リストに入らな
ければならない。したがって、(定義により)ユーザが
限界リストから実行リストに移動すると、ユーザのVM
DDPRTYは(ATOD+TS)に設定され、ユーザ
に通知し、ユーザを移動させる前に限界リストの締切り
を超えるわずかな遅延について下記の補正が行われる。 VMDDPRTY=(ATOD+TS)−((ATOD
2+TS)−VMDLPRTY)=VMDLPRTY+
ATOD−ATOD2
【0084】図1に関連して図9を参照すると、ユーザ
が早すぎない時期に待機され、遅すぎない時期に待機か
ら除去されるように、相対シェアおよび絶対シェア・ユ
ーザ間で中央処理装置使用率をスケジューリングするた
めに、本発明の方法の好ましい実施の形態を実現するた
めの以下ステップともいうプログラミング要素の図解表
現が示されている。これらのステップ間の関係は、必ず
しも図9に示すように順次ではなく、表1に示す本発明
の好ましい実施の形態の疑似コード表現に関連して以下
に説明する。
【0085】中央処理装置または他のシステム・リソー
ス20の消費に関するユーザのシェアは絶対値に制限す
ることができ、その値は正確な最大量26、たとえば、
CPUリソース20の20%である。この使用率におけ
る絶対値は、一般にこの用語に関連する数学的定義を指
すのではなく、相対シェアおよび絶対シェアというIB
MのVMスケジューラ概念によるものである。たとえ
ば、5人のユーザがそれぞれ100という相対シェアで
定義され、5人全員が活動状態である場合、スケジュー
ラ44はシステムCPUリソース20の1/5をそれぞ
れに与えようと試みる。そのうちの4人だけが活動状態
である場合、スケジューラ44はシステム・リソース2
0の1/4をそれぞれに与えようと試みる。それぞれ
は、自分の優先順位と、その時点で活動状態のすべての
相対シェア・ユーザの全優先順位とに基づいてシステム
の相対シェアを獲得する。システムの絶対シェアも1人
のユーザに与えることができる。たとえば、あるユーザ
には、システムの20%という絶対シェアを与えること
ができる。これは、何人の相対シェア・ユーザが活動状
態であっても、このユーザがシステム・リソースの20
%を獲得することを意味する。相対シェア・ユーザには
残りの部分、この場合、CPUリソースの80%の比例
シェアが与えられる。
【0086】ステップ50では、(a)ユーザ最小シェ
ア割当て24、(b)ユーザが中央演算処理装置(CP
U)リソース20を消費しているときに前進する第1の
人工時刻クロック(ATOD)23、(c)高ディスパ
ッチ優先順位限界(TOD−TIED)28、(d)低
ディスパッチ優先順位限界(最大降下)18によって定
義される境界内で決定される値35によって、プロセッ
サ使用率に関する優先順位がユーザに付けられる。
【0087】システム・リソースのシェアに関するユー
ザ限界は、指定の絶対または相対値としてシステム・デ
ィレクトリに定義される。たとえば、VMディレクトリ
は、システムに対してユーザを定義するために使用す
る。各ユーザごとに、システム・リソースのうち、相対
シェアまたは絶対シェアのどちらのシェアをこのユーザ
が持つことができるかを指定するためにSHAREステ
ートメント24、26を含むことができる項目が存在す
る。このシェアは、SET SHAREコマンドを使用
することにより、システムが動作している間に動的に変
更することもできる。
【0088】ユーザには「境界内で優先順位を付ける」
ことによりシステム・リソースが与えられるが、これに
より、その優先順位35に基づいて、しかし、新たに計
算した優先順位によってシステムに関するユーザのシェ
アがその定義済み最小シェア28より低下するかまたは
その定義済み最大シェア26を超えない場合に限り、C
PUリソース20などのシステム・リソースがユーザに
与えられることを意味する。たとえば、VMスケジュー
ラ44の場合、ユーザは、最小相対または絶対シェア2
4および最大相対または絶対シェア26によって定義す
ることができる。このような定義は、あるユーザに関す
るディスパッチ優先順位値35を計算するときに考慮さ
れる境界を形成する。たとえば、あるユーザに200と
いう相対シェア24と20%という「リミットハード」
絶対最大シェア26が割り当てられ、このユーザと他の
相対200ユーザだけが活動状態である場合、「リミッ
トハード」ユーザは、最大境界が指定されていない場合
にそのユーザがシステムCPUリソース20の50%を
受け取れるとしても、20%の最大境界26内で優先順
位が付けられることになる。
【0089】それに関する「ユーザ最小シェア」24が
定義されているユーザは、すべての活動ユーザの全相対
シェアの一部分としてそのユーザの指定の相対シェアに
基づいてシステム・リソースのシェアに対する資格を有
する。ユーザ最小シェアは、そのユーザに関するVMデ
ィレクトリに指定され、残りのシェア(上記の通り)と
同じように計算されるが、そのディレクトリからの指定
の最小シェアを使用する。また、ユーザ最大シェアも同
じ計算であるが、これはVMディレクトリ内のユーザの
指定の最大シェア26に基づくものである。
【0090】「人工時刻」(ATOD)23は、システ
ム全体の時刻クロック・フォーマット・フィールドであ
る。特定のCPUリソースは、同時に作業中(すなわ
ち、消費中)と待機中の両方になることはできず、値A
TOD23は、システム・オーバヘッドとは区別される
ように、そのユーザ(任意のユーザ)作業がシステム上
で実行されている間に増加する。システムのディスパッ
チ優先順位計算は、ATOD値23に基づき、それと比
較される。「ATOD」23および「ATOD2」21
はどちらも人工時刻クロックである。ATODまたはA
TOD2はどちらも実際のクロックではないが、ソフト
ウェアで管理されるフィールドであって、TODクロッ
ク・フォーマットになっており、時間値が累積されるフ
ィールドである。このソフトウェアはこれらのフィール
ドを適宜更新する。ATOD2は、システムが実際にユ
ーザ作業を実行しているすべての時間とシステムが待機
している時間を累積する。ATODはシステムが実際に
ユーザ作業を実行しているすべての時間を累積し、所与
の状況では待機時間も累積する。したがって、ATOD
は実際には、ATOD2に累積される時間のサブセット
の累積である。
【0091】(デヴィソンによる同時係属特許出願第0
8/252864号の場合と同様に)待機時間によるA
TODの更新がディスパッチャ経路内のみではなく活動
待機プロセスで発生することは、本発明の好ましい実施
の形態の本質的な特徴である。以下に述べるように、通
常のディスパッチャ経路(前述のように待機時間の小さ
い部分のみを加えるもの)内ではなく活動待機プロセス
内のすべての待機時間によりATODを更新する理由
は、活動待機が少なくともたとえば250ミリ秒であっ
たことなど、ある種の状況で待機時間全体をATODに
含めることが望ましいからである。したがって、一般に
ATODはユーザ作業時間を累積する。ほとんどのシス
テムではそのようになるだろう。しかし、何らかの待機
時間がATODに含まれることになるような所与の状況
が存在する。これまで、このような状況は極めて制限さ
れてきたかまたはまれなことであり、ATODに含まれ
る待機時間の量はごくわずかであった。本発明によれ
ば、より頻繁に発生する状況ではより多くの待機時間が
ATODの累積に含まれる。すなわち、低ロード状況中
(活動待機ルーチン中)に、限定ユーザが存在し、中央
処理装置がたとえば250ミリ秒またはそれ以上の間、
連続的に活動待機になっていた場合である。
【0092】優先順位限界35は「高ディスパッチ」値
および「低ディスパッチ」値によって定義される。特定
のユーザのディスパッチ優先順位35が現行ATOD値
23から外れすぎないようにするため、スケジューラ4
4はたとえば、現行ATOD23とユーザの優先順位3
5との差を高ディスパッチ優先順位限界(TOD−TI
ED)28という最大値と低ディスパッチ優先順位限界
(最大降下)18に制限する。あるユーザのディスパッ
チ優先順位35は、そのユーザに関する常軌を逸した応
答時間を防止するために、このような限界の外側に設定
されることはないだろう。
【0093】ステップ52では、リソース20の消費
は、(a)選択されたユーザに割り当てられるユーザ最
大限定シェア割当て26を確立し、(b)限界リスト2
7を設け、(c)ユーザがCPUリソース20を消費し
ている場合およびCPUが待機している場合に前進する
第2の人工時刻クロック(ATOD2)21を設けるこ
とにより、ユーザのために境界18、28内の指定の絶
対値に制限される。
【0094】限界リストは、リソースに関するその消費
がシステム・ディレクトリ内のそのSHAREステート
メント24、26によってまたはSET SHAREコ
マンドにより許される最大絶対シェアに達するかまたは
それを超えたユーザのリスト27である。このリスト2
7上にある間、ユーザはスケジューラ44によってディ
スパッチされず、したがって、そのリソース20の消費
は制限される。ユーザは最大絶対シェアまたは最大相対
シェアによって指定することができ、これらのうちのい
ずれか一方はリミットハードにすることができる。いず
れかのタイプの最大シェア(絶対または相対)を備えた
リミットハード・ユーザは、限界リスト上に置くことに
よって制限することができる。また、リミットハード機
能とは異なる働きをするリミットソフト機能も存在す
る。リミットソフト・ユーザは、限界リスト上に置くこ
とによって制限されることはない。
【0095】本発明によれば、リミットハード・ユーザ
が早すぎない時期に限界リストに掲載され、遅すぎない
時期に限界リストから除去されることを保証するため
に、あるユーザが限定ユーザであり、しかもそのディス
パッチ優先順位が最大降下(現行ATOD+N*オフセ
ット)を超える新しいディスパッチ優先順位に再計算さ
れ、しかもそのユーザがその限界に達した場合に、その
ユーザは限界リストに加えられる。ATOD2があるユ
ーザの限界リスト優先順位の1つのマイナー・タイム・
スライス内になるように計算された場合に、そのユーザ
は限界リストから除去されるが、ただし、Nは何らかの
事前選択値であり、一例としてN=4である。
【0096】ステップ54では、そのユーザの限界リス
ト27の優先順位が決定され、第2の人工時刻クロック
(ATOD2)21の前進に基づいて限界リストからユ
ーザを除去すべきかどうかも決定される。
【0097】ステップ56では、CPUがアイドルであ
るときに、着信タスク32の活動待機連続モニタ30が
用意される。この「活動待機ルーチン」または「活動待
機メカニズム」は、マルチプロセッシング・システムで
使用される方法であり、それにより実行すべき作業を持
たないプロセスがループし、使用不可能の待機状態をロ
ードするのではなく使用可能になる作業を活動的に探
す。これは、作業をスタックするプロセッサからその作
業がスタックされているプロセッサに作業がその上にス
タックされていることを認識しなければならないという
負担からプロセッサを解放するものである。
【0098】ステップ58では、ディレクトリ内のその
シェア定義26によって制限されるユーザにとって使用
可能なCPUリソースの最大シェアである最大使用率シ
ェア26に基づいてユーザに優先順位が割り当てられ
る。そのユーザのみに使用可能なシステムのシェアに基
づいてスケジューラ44が優先順位を割り当てる時期が
あり、それが限定シェア・ユーザであるために使用可能
なシェアがユーザに許されているものより大きくなる時
期がある。ユーザが(限界リスト27内に存在すること
により)制限され、使用可能なシェアがユーザに許され
ているシェア26より大きくなる場合、「最大使用率シ
ェア」26を使用してそのユーザのディスパッチ優先順
位35を計算する。
【0099】ステップ60では、そのユーザのディスパ
ッチ優先順位35について計算された新しい値分だけ低
ディスパッチ優先順位限界(最大降下)18を超える場
合、ユーザは限界リスト27に掲載される。ディスパッ
チ優先順位35は1人のユーザについて様々な時期に計
算される。あるユーザを限界リスト27に掲載すべきか
どうかを判定するための検査は、そのユーザのディスパ
ッチ優先順位35が再計算されるときに行われる。
【0100】ステップ62では、限界リスト上の存続持
続時間29はATOD23およびATOD2 21を参
照することによって決定される。あるユーザのディスパ
ッチ優先順位35が計算される場合、それはある事象が
今後発生するときのATOD23の値の予測であり、そ
の事象はユーザのマイナー・タイム・スライスの終了に
なる。ATOD23のこの予測値はユーザのディスパッ
チ優先順位35として使用される。そのユーザを限界リ
スト27上に掲載しなければならないと判定された場
合、そのユーザをリストから除去するための基礎とし
て、ATOD23ではなくATOD2 21を使用す
る。その場合、ATOD23に基づくそのユーザのディ
スパッチ優先順位は、ATOD2 21から離れて基礎
としなければならない限界リスト優先順位35(限界リ
スト27から離れるべき予測時間)に変更しなければな
らない。これを行うために使用する計算は、限界リスト
優先順位=ATOD2+(ディスパッチ優先順位−AT
OD)である。
【0101】ステップ64では、限界シェア・ユーザが
CPUを求めて競合する時期が決定される。
【0102】ステップ66では、中央演算処理装置(C
PU)などのシステム・リソースが連続的に、定義され
た実時間間隔の間、活動待機状況(割込みなしに動作
中、すなわち、いずれのユーザ作業32の検出も実行も
なし)になっていた時期が決定される。この決定は、活
動待機状態に入ったときに実システムTODクロックの
値を保管し、それを現行TOD値と比較することによっ
て行われる。
【0103】ステップ68では、ATOD23が増分さ
れ、ATOD2 21が更新される。
【0104】本発明の好ましい実施の形態によれば、A
TOD23のこの増分は活動待機プロセス30中に行わ
れる。活動待機コードのループを通るたびに、限界リス
ト27上にユーザが存在するかどうかを判定するための
検査が行われる。存在し、活動待機プロセス30が指定
の時間間隔(たとえば、2.5ミリ秒)の間、連続的に
実行中であった場合、最後にATOD23が更新されて
から活動待機で経過した時間の全量分だけ、ATOD2
3値が増加する。したがって、システムが低ロード状態
(新しい作業が一切使用可能にならずに、少なくとも2
50ミリ秒の間、活動待機になっているプロセッサによ
って定義される)になっており、限界リスト上に限定ユ
ーザが存在する場合、待機時間間隔全体がATOD23
に追加される。
【0105】ATOD2 21のこの更新もディスパッ
チャへのその呼出しにより活動待機プロセス30中に行
われる。活動待機30コードのループを通るたびに、限
界リスト27上にユーザが存在するかどうかを判定する
ための検査が行われる。存在し、活動待機プロセス30
が指定の時間間隔(たとえば、2.5ミリ秒)の間、連
続的に実行中であった場合、活動待機ルーチンがディス
パッチャを呼び出し、それが最後にATOD2 21が
更新されてから活動待機で経過した時間の量だけ、AT
OD2 21の値を増加する。低ロード状態にあるとき
に活動待機処理中にATOD2を更新するためにディス
パッチャを呼び出すことにより、限界リストからユーザ
を除去する必要性についてより頻繁に検査が行われる。
【0106】ステップ70では、ATOD2値21が限
界リスト優先順位35の1マイナー・タイム・スライス
内にあり、CPUの連続的活動待機状況時間がATOD
221に含まれる場合に、ユーザが限界リスト27から
除去される。
【0107】したがって、本発明の好ましい実施の形態
によれば、CPU待機時間をATOD23に追加する
と、ユーザが低ロード(アイドルCPU)状況で時期尚
早に限界リスト27に掲載されないことが保証され、活
動待機ルーチンからディスパッチャへの呼出しにより限
界リスト27からユーザを除去するかどうかの検査の細
分性が増加するので限界リスト存続に関するより良い精
度が得られる。このようにして、ユーザを除去すべきか
どうかについて限界リスト27を検査する時期と次にそ
れを検査する時期との間隔のサイズが低減される。時間
間隔が小さくなるということは、細分性が増加すること
を意味する。
【0108】限界リスト27は、ユーザがそれに許され
ているもの(26)より多くのCPUリソース20を受
け取るときにそのユーザを抑えるために使用する。この
ような事態が発生する場合、ユーザは一時的に限界リス
ト27に掲載される。スケジューラ44は、そのユーザ
を限界リスト27から取り除く時期であるかどうかを判
定するために検査を行う。これらの検査は、限界リスト
からの「除去の検査」と呼ばれるものである。この「検
査」は事象主導型である。本発明以前は、限界リストは
このユーザ作業をスケジューリングしディスパッチする
プロセス中に活動プロセッサ(実行すべきユーザ作業を
備えたもの)によって検査されていた。本発明によれ
ば、活動待機メカニズムでもこれらの検査が行われる。
【0109】表1は、本発明の好ましい実施の形態の方
法の疑似コード説明を示している。この疑似コードは、
括弧[]内の図2の諸ステップへの参照で注釈が付けら
れている。表1に関連して図1を参照すると、ディスパ
ッチャ40(HCPDSPCHという)は行2から始ま
るディスパッチャ・ループによって実現され、モニタ3
0は行18から始まる活動待機ルーチンによって実現さ
れ、スケジューラ44は行36から始まるスケジュール
優先順位再計算コードによって実現される。行20に
は、実行すべき新しい作業が存在し、たとえば、着信タ
スク32は空ではない。行25では、250ミリ秒への
参照を他のシステムの適切な事前選択時間値に合わせる
ことができるだろう。行11と行27の両方では、最後
に待機時間が追加されてからの待機時間がATODに追
加され、行32のディスパッチャへの呼出しにより、A
TOD2にも追加される。ディスパッチャを呼び出すこ
とにより待機ルーチン中に待機時間が追加される理由は
本発明にとって重要なことである。以前は、行11の処
理が行われるまで、待機時間は決してATOD2に追加
されなかった。低ロード状況では、その処理が行われる
までかなりの時間がある可能性がある。この結果、これ
までは限界リスト27上のユーザが非常に長い間そこに
存続していた。本発明では、低ロード状況では待機時間
のより小さい増分がより頻繁に追加され、同時に限界リ
ストが検査され、それに値するユーザがそうすべきとき
に限界リストから除去される。表1の行35は図1の線
82によって表されるが、これは、活動待機連続モニタ
30が待機時間をATODに追加するときに活動待機連
続モニタ30がディスパッチャ40に移行してATOD
2を更新するという追加の意味を有する。表1の行50
に記載されている新しい優先順位は、そのユーザがもう
一度ディスパッチされる時期を決定するために使用する
そのユーザの再計算ディスパッチ(すなわち、締切り)
優先順位である。このディスパッチ優先順位は、最大降
下およびTOD−TIEDという限界によって制限され
る。スケジューラ44は行58のこの優先順位を使用し
て、そのユーザを優先順位順にディスパッチ・リスト3
7に掲載する。表1の行54に示す式内の数字「4」は
経験的に定義された最適数を表し、本発明の範囲から逸
脱せずに変更できるはずである。表1の行61では、そ
のユーザは、その新たに再計算されたディスパッチ・リ
スト優先順位35に基づいてディスパッチ・リスト37
上で再順序付けが行われる。
【表1】
【表2】
【表3】
【0110】従来技術を超える利点 本発明の1つの利点は、低ロード状況でそのハード限界
に極めて近いかまたは等しいシステム・リソースへのユ
ーザ・アクセスの許可を容易にするためのスケジューラ
・システムおよび方法が提供されることである。
【0111】本発明の他の利点は、システム・リソース
に関する最適請求を容易にし、請求の総額またはこのよ
うなリソースの可用性に対するユーザの不快感を低減す
る、改良されたスケジューラが提供されることである。
【0112】本発明の他の利点は、ユーザの優先順位を
決定し、どのユーザが次に実行できるかを決定するため
にシステムが使用するスケジューリング・アルゴリズム
へのフィードバック・メカニズムとしてモニタ・データ
が使用される、システムおよび方法が提供されることで
ある。
【0113】本発明の他の利点は、限定アクセス権を有
するユーザを早すぎない時期に限界リストに掲載し、遅
すぎない時期に限界リストから除去することにより、こ
のようなユーザに対してシステム・リソースをスケジュ
ーリングするためのシステムおよび方法が提供されるこ
とである。
【0114】本発明の他の利点は、遅すぎない時期にリ
ソースのスケジューリングを可能にし、早すぎない時期
にリソースのスケジューリングを禁止することにより、
限定アクセス権を有するユーザに対してシステム・リソ
ースをスケジューリングするためのシステムおよび方法
が提供されることである。
【0115】代替実施の形態 例示のために本発明の具体的な実施の形態についてここ
で説明してきたが、本発明の精神および範囲から逸脱せ
ずに様々な変更が可能であることが分かるだろう。特
に、本発明の方法によりコンピュータの動作を制御する
ためにマシンによって読取り可能な信号を記憶するため
の固体または流体伝送媒体、磁気または光学ワイヤ、テ
ープ、ディスクなどのプログラム記憶装置またはメモリ
・デバイスを提供することまたは本発明のシステムによ
りその構成要素を構築することあるいはその両方は、本
発明の範囲内である。
【0116】さらに、この方法の各ステップは、IBM
のシステム390、AS/400、PCなどの汎用コン
ピュータのいずれでも、C++、Java、Pl/1、
Fortranなどのいずれかのプログラミング言語か
ら生成されたプログラム・モジュールまたはオブジェク
トの1つまたは複数あるいは1つまたは複数のうちの一
部により実行することができる。さらに、前記各ステッ
プまたは前記各ステップを実現するファイルまたはオブ
ジェクトなどは、そのために設計された専用ハードウェ
アまたは回路モジュールによって実行することができ
る。
【0117】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0118】(1)ユーザによるシステム・リソースの
使用をスケジューリングする方法であって、第1のクロ
ックを維持するステップと、第2のクロックを維持する
ステップと、ディスパッチ・プロセス中に実行すべき作
業がある場合、前記ユーザが待機状況になっていないと
きのみ、他のユーザとともにディスパッチ優先順位順に
前記ユーザに対してシステム・リソースの使用をスケジ
ューリングするステップと、それ以外の場合に、ユーザ
時間分だけ前記第1のクロックを進めるステップと、ユ
ーザ時間および待機時間分だけ前記第2のクロックを進
めるステップと、待機プロセス中に実行すべき作業があ
る場合、前記ディスパッチ・プロセスを呼び出すステッ
プと、それ以外の場合に待機時間の時間的調節を行うス
テップと、前記待機時間が所定の値を超過したときに待
機状況にあるユーザが存在する場合、前記待機時間分だ
け前記第1のクロックを増分し、前記ディスパッチ・プ
ロセスを呼び出すステップを含む方法。 (2)スケジューラ・プロセス中に前記ユーザのユーザ
・シェアを決定するステップと、前記ユーザ・シェアが
所定の最大許容シェアを超過した場合、前記ユーザ・シ
ェアと、前のタイム・スライス上のオーバランに応じて
調整されたタイム・スライスとに基づいてユーザ・オフ
セットを計算するステップと、前記ユーザ・オフセット
を加えた現行ディスパッチ優先順位に等しい前記ユーザ
の新しいディスパッチ優先順位を計算するステップと、
前記新しいディスパッチ優先順位が前記ユーザ・オフセ
ットの関数分だけ前記第1のクロックを超過した場合、
前記ユーザを待機状況にして前記ディスパッチ・プロセ
スを呼び出し、それ以外の場合に前記ディスパッチ・プ
ロセスを呼び出すステップと、前記ディスパッチ・プロ
セス中に、前記ユーザがタイム・スライスを完了したと
きに、前記スケジューラ・プロセスを呼び出すステップ
をさらに含む上記(1)に記載の方法。 (3)さらに前記ディスパッチ・プロセス中に前記ユー
ザが前記第2のクロックの1つのタイム・スライス内の
限界優先順位で待機状況になっている場合、限界状況か
ら前記ユーザを除去するステップをさらに含む上記
(2)に記載の方法。 (4)複数の限定ユーザ間でシステム・リソースの使用
をスケジューリングする方法であって、第1の時刻クロ
ックを維持するステップと、第2の時刻クロックを維持
するステップと、ディスパッチ・ルーチンを実行するス
テップと、活動待機ルーチンを実行するステップと、優
先順位再計算ルーチンを実行するステップを含み、前記
優先順位再計算ルーチンが第1のユーザのユーザ・シェ
アを計算するステップと、前記ユーザ・シェアが所定の
最大許容シェアを超過した場合、前記ユーザ・シェア
と、前のマイナー・タイム・スライス上のオーバランに
応じて調整されたマイナー・タイム・スライスのサイズ
とに基づいてユーザ・オフセットを計算するステップ
と、前記ユーザ・オフセットを加えた古い優先順位に等
しいユーザ・ディスパッチ優先順位を計算するステップ
と、前記ユーザ・ディスパッチ優先順位が前記ユーザ・
オフセットの関数を加えた前記第1のクロックに等しい
最大降下値を超過し、これが限定ユーザであり、このユ
ーザがその最大シェアでスケジューリングされる場合、
前記ユーザを限界リストに追加するステップと、それ以
外の場合に前記ユーザをディスパッチ・リスト上に優先
順位順に再順序付けするステップと、前記ディスパッチ
ャ・ルーチンを実行するステップを含み、前記ディスパ
ッチャ・ルーチンがディスパッチすべき作業がない場
合、前記活動待機ルーチンを実行し、それ以外の場合に
いずれかの優先順位システム作業を実行するステップ
と、前記ユーザのマイナー・タイム・スライスが終了し
たばかりの場合、前記スケジューラ・ルーチンを実行す
るステップと、それ以外の場合にユーザ時間によって前
記第1の時刻クロックを進めるステップと、ユーザ時間
および待機時間によって第2の時刻クロックを進めるス
テップと、前記限界リスト上のユーザが前記第2の時刻
クロックの1つのマイナー・タイム・スライス内にある
場合、前記限界リストから前記ユーザを除去するステッ
プと、ディスパッチ・リスト優先順位に基づいてユーザ
をディスパッチするステップを含み、前記活動待機ルー
チンが実行すべき新しい作業がある場合、前記ディスパ
ッチャ・ルーチンを実行するステップと、それ以外の場
合に前記限界リスト上にユーザが存在し、活動待機処理
が所定の限界を超過した場合、前記第1の時刻クロック
に待機時間を追加するステップと、前記ディスパッチャ
・ルーチンを実行するステップを含み、それにより、ユ
ーザが早すぎない時期に前記限界リストに追加され、遅
すぎない時期に前記限界リストから除去される方法。 (5)システム・リソースをスケジューリングする方法
において、(1)(a)ユーザ最小シェア割当て、
(b)ユーザがシステム・リソースを消費しているとき
に前進する第1の人工時刻クロック、(c)高ディスパ
ッチ優先順位限界、(d)低ディスパッチ優先順位限界
によって定義される境界内でプロセッサ使用率に関する
優先順位をユーザに付けるステップと、(2)(a)選
択されたユーザに割り当てられるユーザ最大限定シェア
割当てを確立し、(b)限界リストを設け、(c)ユー
ザがシステム・リソースを消費している場合および前記
システム・リソースが待機している場合に前進する第2
の人工時刻クロックを設けることにより、ユーザによる
中央演算処理装置の消費を前記境界内の指定の絶対値に
制限するステップと、(3)限界リスト優先順序を決定
し、前記第2の人工時刻クロックの前進に基づいて前記
限界リストから除去すべき時期を決定するステップと、
(4)前記CPUがアイドルであるときに、着信タスク
の活動待機対話式連続モニタを用意するステップと、
(5)最大使用率シェアに基づいてユーザに優先順位を
割り当てるステップと、(6)前記低ディスパッチ優先
順位限界を超過したときに、前記限界リストにユーザを
掲載するステップと、(7)前記限界リスト上の存続持
続時間を決定するために前記第1の人工時刻クロックの
時間を前記第2の人工時刻クロックの時間に変換するス
テップと、(8)限界シェア・ユーザがCPUリソース
を求めて競合する時期を認識するステップと、(9)前
記システム・リソースが定義された実時間間隔の間、連
続活動待機状況になっていた時期を認識し、それに対す
る応答として、前記第1の人工時刻クロックおよび前記
第2の人工時刻クロックを待機時間分だけ更新するステ
ップと、(10)それに関する前記第2の人工時刻クロ
ック値が低ロード条件下で前記第2の人工時刻クロック
に含まれる前記待機時間の実質的にすべてによって前記
限界リスト優先順位を超過するユーザを前記限界リスト
から除去するステップを含む方法。 (6)ユーザによるシステム・リソースの使用をスケジ
ューリングするための方法ステップを実行するためにマ
シンによって実行可能な命令からなるプログラムを具体
的に実施する、マシンによって読取り可能なプログラム
記憶装置において、前記方法ステップが、第1のクロッ
クを維持することと、第2のクロックを維持すること
と、ディスパッチ・プロセス中に実行すべき作業がある
場合、前記ユーザが待機状況になっていないときのみ、
他のユーザとともにディスパッチ優先順位順に前記ユー
ザに対してシステム・リソースの使用をスケジューリン
グすることと、それ以外の場合にユーザ時間分だけ前記
第1のクロックを前進することと、ユーザ時間および待
機時間分だけ前記第2のクロックを前進することと、待
機プロセス中に実行すべき作業がある場合、前記ディス
パッチ・プロセスを呼び出すことと、それ以外の場合に
待機時間の時間的調節を行うことと、前記待機時間が所
定の値を超過したときに待機状況にあるユーザが存在す
る場合、前記待機時間分だけ前記第1のクロックを増分
し、前記ディスパッチ・プロセスを呼び出すこととを含
む、プログラム記憶装置。 (7)ユーザによるシステム・リソースの使用をスケジ
ューリングするためにそこで実施されるコンピュータ可
読プログラム・コード手段を有するコンピュータ使用可
能媒体を含む製品において、前記製品における前記コン
ピュータ可読プログラム手段が、第1のクロックを維持
することをコンピュータに実施させるためのコンピュー
タ可読プログラム・コード手段と、第2のクロックを維
持することをコンピュータに実施させるためのコンピュ
ータ可読プログラム・コード手段と、ディスパッチ・プ
ロセス中に実行すべき作業がある場合、前記ユーザが待
機状況になっていないときのみ、他のユーザとともにデ
ィスパッチ優先順位順に前記ユーザに対してシステム・
リソースの使用をスケジューリングすることと、それ以
外の場合にユーザ時間分だけ前記第1のクロックを前進
することと、ユーザ時間および待機時間分だけ前記第2
のクロックを前進することをコンピュータに実施させる
ためのコンピュータ可読プログラム・コード手段と、待
機プロセス中に実行すべき作業がある場合、前記ディス
パッチ・プロセスを呼び出すことと、それ以外の場合に
待機時間の時間的調節を行うことと、前記待機時間が所
定の値を超過したときに待機状況にあるユーザが存在す
る場合、前記待機時間分だけ前記第1のクロックを増分
し、前記ディスパッチ・プロセスを呼び出すことをコン
ピュータに実施させるためのコンピュータ可読プログラ
ム・コード手段とを含む製品。 (8)ユーザによるシステム・リソースの使用をスケジ
ューリングするためのシステムにおいて、第1のクロッ
クと、第2のクロックと、ディスパッチ・プロセスであ
って実行すべき作業がある場合、前記ユーザが待機状況
になっていないときのみ、他のユーザとともにディスパ
ッチ優先順位順に前記ユーザに対してシステム・リソー
スの使用をスケジューリングし、それ以外の場合にユー
ザ時間分だけ前記第1のクロックを前進し、ユーザ時間
および待機時間分だけ前記第2のクロックを前進するた
めのディスパッチ・プロセスと、待機プロセスであって
実行すべき作業がある場合、前記ディスパッチ・プロセ
スを呼び出し、それ以外の場合に待機時間の時間的調節
を行い、前記待機時間が所定の値を超過したときに待機
状況にあるユーザが存在する場合、前記待機時間分だけ
前記第1のクロックを増分し、前記ディスパッチ・プロ
セスを呼び出すための待機プロセスとを含むシステム。 (9)スケジューラ・プロセスであって前記ユーザのユ
ーザ・シェアを決定し、前記ユーザ・シェアが所定の最
大許容シェアを超過した場合、前記ユーザ・シェアと、
前のタイム・スライス上のオーバランに応じて調整され
たタイム・スライスとに基づいてユーザ・オフセットを
計算し、前記ユーザ・オフセットを加えた現行ディスパ
ッチ優先順位に等しい前記ユーザの新しいディスパッチ
優先順位を計算し、前記新しいディスパッチ優先順位が
前記ユーザ・オフセットの関数分だけ前記第1のクロッ
クを超過した場合、前記ユーザを待機状況にして前記デ
ィスパッチ・プロセスを呼び出し、それ以外の場合に前
記ディスパッチ・プロセスを呼び出すためのスケジュー
ラ・プロセスと、前記ユーザがタイム・スライスを完了
したときに、前記スケジューラ・プロセスを呼び出す前
記ディスパッチ・プロセスをさらに含む、上記(8)に
記載のシステム。 (10)前記ディスパッチ・プロセスであって前記ユー
ザが前記第2のクロックの1つのタイム・スライス内の
限界優先順位で待機状況になっている場合、限界状況か
ら前記ユーザを除去するための前記ディスパッチ・プロ
セスをさらに含む、上記(9)に記載のシステム。
【図面の簡単な説明】
【図1】本発明の好ましい実施の形態を実現する方法お
よびデータ構造のシステム図である。
【図2】コンピュータ・オペレーティング・システムの
流れ図である。
【図3】ディスパッチャの流れ図の関係を示す図であ
る。
【図4】ディスパッチャの流れ図である。
【図5】ディスパッチャの流れ図である。
【図6】ディスパッチャの流れ図である。
【図7】図2のオペレーティング・システム内のスケジ
ューラの(小さい部分の)流れ図である。
【図8】ディスパッチ・リストを示す図である。
【図9】本発明の方法の好ましい実施の形態を実現する
プログラミング・モジュールの図解表現である。
【符号の説明】
18 最大降下 20 システム・リソース 21 ATOD2 22 実時間クロック 23 ATOD 24 ユーザ最小シェア割当て 25 オフセット 26 ユーザ最大シェア割当て 27 限界リスト 28 TOD−TIED 29 限界リスト上の存続時間(限界リスト優先順位) 30 活動待機連続モニタ 32 着信タスク 35 ユーザのディスパッチ・リスト優先順位 37 ディスパッチ・リスト 40 ディスパッチャ 44 スケジューラ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク・ジェイ・ローレンス アメリカ合衆国13760 ニューヨーク州エ ンドウェル ヴァーナ・ドライブ 528

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】ユーザによるシステム・リソースの使用を
    スケジューリングする方法であって、 第1のクロックを維持するステップと、 第2のクロックを維持するステップと、 ディスパッチ・プロセス中に実行すべき作業がある場
    合、前記ユーザが待機状況になっていないときのみ、他
    のユーザとともにディスパッチ優先順位順に前記ユーザ
    に対してシステム・リソースの使用をスケジューリング
    するステップと、 それ以外の場合に、 ユーザ時間分だけ前記第1のクロックを進めるステップ
    と、 ユーザ時間および待機時間分だけ前記第2のクロックを
    進めるステップと、 待機プロセス中に実行すべき作業がある場合、前記ディ
    スパッチ・プロセスを呼び出すステップと、 それ以外の場合に待機時間の時間的調節を行うステップ
    と、 前記待機時間が所定の値を超過したときに待機状況にあ
    るユーザが存在する場合、前記待機時間分だけ前記第1
    のクロックを増分し、前記ディスパッチ・プロセスを呼
    び出すステップを含む方法。
  2. 【請求項2】スケジューラ・プロセス中に前記ユーザの
    ユーザ・シェアを決定するステップと、 前記ユーザ・シェアが所定の最大許容シェアを超過した
    場合、前記ユーザ・シェアと、前のタイム・スライス上
    のオーバランに応じて調整されたタイム・スライスとに
    基づいてユーザ・オフセットを計算するステップと、 前記ユーザ・オフセットを加えた現行ディスパッチ優先
    順位に等しい前記ユーザの新しいディスパッチ優先順位
    を計算するステップと、 前記新しいディスパッチ優先順位が前記ユーザ・オフセ
    ットの関数分だけ前記第1のクロックを超過した場合、
    前記ユーザを待機状況にして前記ディスパッチ・プロセ
    スを呼び出し、それ以外の場合に前記ディスパッチ・プ
    ロセスを呼び出すステップと、 前記ディスパッチ・プロセス中に、前記ユーザがタイム
    ・スライスを完了したときに、前記スケジューラ・プロ
    セスを呼び出すステップをさらに含む請求項1に記載の
    方法。
  3. 【請求項3】さらに前記ディスパッチ・プロセス中に前
    記ユーザが前記第2のクロックの1つのタイム・スライ
    ス内の限界優先順位で待機状況になっている場合、限界
    状況から前記ユーザを除去するステップをさらに含む請
    求項2に記載の方法。
  4. 【請求項4】複数の限定ユーザ間でシステム・リソース
    の使用をスケジューリングする方法であって、 第1の時刻クロックを維持するステップと、 第2の時刻クロックを維持するステップと、 ディスパッチ・ルーチンを実行するステップと、 活動待機ルーチンを実行するステップと、 優先順位再計算ルーチンを実行するステップを含み、 前記優先順位再計算ルーチンが第1のユーザのユーザ・
    シェアを計算するステップと、 前記ユーザ・シェアが所定の最大許容シェアを超過した
    場合、前記ユーザ・シェアと、前のマイナー・タイム・
    スライス上のオーバランに応じて調整されたマイナー・
    タイム・スライスのサイズとに基づいてユーザ・オフセ
    ットを計算するステップと、 前記ユーザ・オフセットを加えた古い優先順位に等しい
    ユーザ・ディスパッチ優先順位を計算するステップと、 前記ユーザ・ディスパッチ優先順位が前記ユーザ・オフ
    セットの関数を加えた前記第1のクロックに等しい最大
    降下値を超過し、これが限定ユーザであり、このユーザ
    がその最大シェアでスケジューリングされる場合、前記
    ユーザを限界リストに追加するステップと、 それ以外の場合に前記ユーザをディスパッチ・リスト上
    に優先順位順に再順序付けするステップと、 前記ディスパッチャ・ルーチンを実行するステップを含
    み、 前記ディスパッチャ・ルーチンがディスパッチすべき作
    業がない場合、前記活動待機ルーチンを実行し、それ以
    外の場合にいずれかの優先順位システム作業を実行する
    ステップと、 前記ユーザのマイナー・タイム・スライスが終了したば
    かりの場合、前記スケジューラ・ルーチンを実行するス
    テップと、 それ以外の場合にユーザ時間によって前記第1の時刻ク
    ロックを進めるステップと、 ユーザ時間および待機時間によって第2の時刻クロック
    を進めるステップと、 前記限界リスト上のユーザが前記第2の時刻クロックの
    1つのマイナー・タイム・スライス内にある場合、前記
    限界リストから前記ユーザを除去するステップと、 ディスパッチ・リスト優先順位に基づいてユーザをディ
    スパッチするステップを含み、 前記活動待機ルーチンが実行すべき新しい作業がある場
    合、前記ディスパッチャ・ルーチンを実行するステップ
    と、 それ以外の場合に前記限界リスト上にユーザが存在し、
    活動待機処理が所定の限界を超過した場合、 前記第1の時刻クロックに待機時間を追加するステップ
    と、 前記ディスパッチャ・ルーチンを実行するステップを含
    み、 それにより、ユーザが早すぎない時期に前記限界リスト
    に追加され、遅すぎない時期に前記限界リストから除去
    される方法。
  5. 【請求項5】システム・リソースをスケジューリングす
    る方法において、 (1)(a)ユーザ最小シェア割当て、(b)ユーザが
    システム・リソースを消費しているときに前進する第1
    の人工時刻クロック、(c)高ディスパッチ優先順位限
    界、(d)低ディスパッチ優先順位限界によって定義さ
    れる境界内でプロセッサ使用率に関する優先順位をユー
    ザに付けるステップと、 (2)(a)選択されたユーザに割り当てられるユーザ
    最大限定シェア割当てを確立し、(b)限界リストを設
    け、(c)ユーザがシステム・リソースを消費している
    場合および前記システム・リソースが待機している場合
    に前進する第2の人工時刻クロックを設けることによ
    り、ユーザによる中央演算処理装置の消費を前記境界内
    の指定の絶対値に制限するステップと、 (3)限界リスト優先順序を決定し、前記第2の人工時
    刻クロックの前進に基づいて前記限界リストから除去す
    べき時期を決定するステップと、 (4)前記CPUがアイドルであるときに、着信タスク
    の活動待機対話式連続モニタを用意するステップと、 (5)最大使用率シェアに基づいてユーザに優先順位を
    割り当てるステップと、 (6)前記低ディスパッチ優先順位限界を超過したとき
    に、前記限界リストにユーザを掲載するステップと、 (7)前記限界リスト上の存続持続時間を決定するため
    に前記第1の人工時刻クロックの時間を前記第2の人工
    時刻クロックの時間に変換するステップと、 (8)限界シェア・ユーザがCPUリソースを求めて競
    合する時期を認識するステップと、 (9)前記システム・リソースが定義された実時間間隔
    の間、連続活動待機状況になっていた時期を認識し、そ
    れに対する応答として、前記第1の人工時刻クロックお
    よび前記第2の人工時刻クロックを待機時間分だけ更新
    するステップと、 (10)それに関する前記第2の人工時刻クロック値が
    低ロード条件下で前記第2の人工時刻クロックに含まれ
    る前記待機時間の実質的にすべてによって前記限界リス
    ト優先順位を超過するユーザを前記限界リストから除去
    するステップを含む方法。
  6. 【請求項6】ユーザによるシステム・リソースの使用を
    スケジューリングするための方法ステップを実行するた
    めにマシンによって実行可能な命令からなるプログラム
    を具体的に実施する、マシンによって読取り可能なプロ
    グラム記憶装置において、前記方法ステップが、 第1のクロックを維持することと、 第2のクロックを維持することと、 ディスパッチ・プロセス中に実行すべき作業がある場
    合、前記ユーザが待機状況になっていないときのみ、他
    のユーザとともにディスパッチ優先順位順に前記ユーザ
    に対してシステム・リソースの使用をスケジューリング
    することと、 それ以外の場合にユーザ時間分だけ前記第1のクロック
    を前進することと、 ユーザ時間および待機時間分だけ前記第2のクロックを
    前進することと、 待機プロセス中に実行すべき作業がある場合、前記ディ
    スパッチ・プロセスを呼び出すことと、 それ以外の場合に待機時間の時間的調節を行うことと、 前記待機時間が所定の値を超過したときに待機状況にあ
    るユーザが存在する場合、前記待機時間分だけ前記第1
    のクロックを増分し、前記ディスパッチ・プロセスを呼
    び出すこととを含む、プログラム記憶装置。
  7. 【請求項7】ユーザによるシステム・リソースの使用を
    スケジューリングするためにそこで実施されるコンピュ
    ータ可読プログラム・コード手段を有するコンピュータ
    使用可能媒体を含む製品において、前記製品における前
    記コンピュータ可読プログラム手段が、 第1のクロックを維持することをコンピュータに実施さ
    せるためのコンピュータ可読プログラム・コード手段
    と、 第2のクロックを維持することをコンピュータに実施さ
    せるためのコンピュータ可読プログラム・コード手段
    と、 ディスパッチ・プロセス中に実行すべき作業がある場
    合、前記ユーザが待機状況になっていないときのみ、他
    のユーザとともにディスパッチ優先順位順に前記ユーザ
    に対してシステム・リソースの使用をスケジューリング
    することと、 それ以外の場合にユーザ時間分だけ前記第1のクロック
    を前進することと、 ユーザ時間および待機時間分だけ前記第2のクロックを
    前進することをコンピュータに実施させるためのコンピ
    ュータ可読プログラム・コード手段と、 待機プロセス中に実行すべき作業がある場合、前記ディ
    スパッチ・プロセスを呼び出すことと、 それ以外の場合に待機時間の時間的調節を行うことと、 前記待機時間が所定の値を超過したときに待機状況にあ
    るユーザが存在する場合、前記待機時間分だけ前記第1
    のクロックを増分し、前記ディスパッチ・プロセスを呼
    び出すことをコンピュータに実施させるためのコンピュ
    ータ可読プログラム・コード手段とを含む製品。
  8. 【請求項8】ユーザによるシステム・リソースの使用を
    スケジューリングするためのシステムにおいて、 第1のクロックと、 第2のクロックと、 ディスパッチ・プロセスであって実行すべき作業がある
    場合、前記ユーザが待機状況になっていないときのみ、
    他のユーザとともにディスパッチ優先順位順に前記ユー
    ザに対してシステム・リソースの使用をスケジューリン
    グし、 それ以外の場合にユーザ時間分だけ前記第1のクロック
    を前進し、 ユーザ時間および待機時間分だけ前記第2のクロックを
    前進するためのディスパッチ・プロセスと、 待機プロセスであって実行すべき作業がある場合、前記
    ディスパッチ・プロセスを呼び出し、 それ以外の場合に待機時間の時間的調節を行い、 前記待機時間が所定の値を超過したときに待機状況にあ
    るユーザが存在する場合、前記待機時間分だけ前記第1
    のクロックを増分し、前記ディスパッチ・プロセスを呼
    び出すための待機プロセスとを含むシステム。
  9. 【請求項9】スケジューラ・プロセスであって前記ユー
    ザのユーザ・シェアを決定し、 前記ユーザ・シェアが所定の最大許容シェアを超過した
    場合、前記ユーザ・シェアと、前のタイム・スライス上
    のオーバランに応じて調整されたタイム・スライスとに
    基づいてユーザ・オフセットを計算し、 前記ユーザ・オフセットを加えた現行ディスパッチ優先
    順位に等しい前記ユーザの新しいディスパッチ優先順位
    を計算し、 前記新しいディスパッチ優先順位が前記ユーザ・オフセ
    ットの関数分だけ前記第1のクロックを超過した場合、
    前記ユーザを待機状況にして前記ディスパッチ・プロセ
    スを呼び出し、それ以外の場合に前記ディスパッチ・プ
    ロセスを呼び出すためのスケジューラ・プロセスと、 前記ユーザがタイム・スライスを完了したときに、前記
    スケジューラ・プロセスを呼び出す前記ディスパッチ・
    プロセスをさらに含む、請求項8に記載のシステム。
  10. 【請求項10】前記ディスパッチ・プロセスであって前
    記ユーザが前記第2のクロックの1つのタイム・スライ
    ス内の限界優先順位で待機状況になっている場合、限界
    状況から前記ユーザを除去するための前記ディスパッチ
    ・プロセスをさらに含む、請求項9に記載のシステム。
JP2000070538A 1999-03-25 2000-03-14 システム・リソースのスケジューリングのためのシステムおよび方法 Expired - Fee Related JP3606555B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/276,525 US6438704B1 (en) 1999-03-25 1999-03-25 System and method for scheduling use of system resources among a plurality of limited users
US09/276525 1999-03-25

Publications (2)

Publication Number Publication Date
JP2000284975A true JP2000284975A (ja) 2000-10-13
JP3606555B2 JP3606555B2 (ja) 2005-01-05

Family

ID=23056982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000070538A Expired - Fee Related JP3606555B2 (ja) 1999-03-25 2000-03-14 システム・リソースのスケジューリングのためのシステムおよび方法

Country Status (7)

Country Link
US (1) US6438704B1 (ja)
EP (1) EP1039383B1 (ja)
JP (1) JP3606555B2 (ja)
KR (1) KR100352668B1 (ja)
AT (1) ATE395663T1 (ja)
DE (1) DE60038837D1 (ja)
TW (1) TW526452B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021170216A (ja) * 2020-04-15 2021-10-28 富士通株式会社 割当制御プログラム、割当制御方法および情報処理装置

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451448B1 (en) * 1998-08-28 2008-11-11 Oracle International Corporation Methods for selectively quiescing a computer system
US7526767B1 (en) * 1998-08-28 2009-04-28 Oracle International Corporation Methods for automatic group switching according to a resource plan
US7017156B1 (en) 1998-08-28 2006-03-21 Oracle International Corporation System for computing an estimate execution time by totaling the time value base on an architecture or a software operating environment
JP3739610B2 (ja) * 1999-09-24 2006-01-25 松下電器産業株式会社 訪問計画生成装置
US20020198996A1 (en) 2000-03-16 2002-12-26 Padmanabhan Sreenivasan Flexible failover policies in high availability computing systems
US7627694B2 (en) * 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US20010049710A1 (en) * 2000-05-16 2001-12-06 Curey Randall K. Partitioned executive structure for real-time programs
US7849463B2 (en) 2000-06-02 2010-12-07 Microsoft Corporation Dynamically variable idle time thread scheduling
US7137117B2 (en) * 2000-06-02 2006-11-14 Microsoft Corporation Dynamically variable idle time thread scheduling
CN1316361C (zh) * 2000-06-27 2007-05-16 皇家菲利浦电子有限公司 确定一个进度表的方法、调度器和系统
US6795873B1 (en) * 2000-06-30 2004-09-21 Intel Corporation Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts
KR100487543B1 (ko) * 2000-09-01 2005-05-03 엘지전자 주식회사 시피유 스케쥴링 방법
US7096469B1 (en) * 2000-10-02 2006-08-22 International Business Machines Corporation Method and apparatus for enforcing capacity limitations in a logically partitioned system
US7032222B1 (en) * 2000-10-13 2006-04-18 Hewlett-Packard Development Company, L.P. Method and system for determining resource allocation to users by granting request based on user associated different limits and resource limit
US6671658B2 (en) * 2000-12-23 2003-12-30 Hewlett-Packard Development Company, L.P Method for service level estimation in an operating computer system
US20020147966A1 (en) * 2001-02-14 2002-10-10 Ncr Corporation Operating software performance monitor
US7170862B1 (en) * 2001-07-31 2007-01-30 Cisco Technology, Inc. Partitioning a network element into multiple virtual network elements
US7143411B2 (en) * 2002-03-15 2006-11-28 Hewlett-Packard Development Company, L.P. Capping processor utilization
KR100471746B1 (ko) * 2002-07-26 2005-03-16 재단법인서울대학교산학협력재단 연성 실시간 태스크 스케줄링 방법 및 그 기록매체
US20060179136A1 (en) * 2002-12-27 2006-08-10 Loboz Charles Z Accuracy of the estimation of computer resource usage
WO2004059466A1 (en) * 2002-12-27 2004-07-15 Unisys Corporation Improving the accuracy of the estimation of computer resource usage
US7191320B2 (en) * 2003-02-11 2007-03-13 Via Technologies, Inc. Apparatus and method for performing a detached load operation in a pipeline microprocessor
JP4107155B2 (ja) * 2003-05-12 2008-06-25 日本電気株式会社 ネットワークセッション制御システム、ネットワーク管理装置およびプログラム
US7751315B1 (en) * 2003-07-15 2010-07-06 Microsoft Corporation Shared network path contention reduction
US7406691B2 (en) * 2004-01-13 2008-07-29 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US7562143B2 (en) * 2004-01-13 2009-07-14 International Business Machines Corporation Managing escalating resource needs within a grid environment
US7552437B2 (en) * 2004-01-14 2009-06-23 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
US7266547B2 (en) * 2004-06-10 2007-09-04 International Business Machines Corporation Query meaning determination through a grid service
US7752415B2 (en) * 2004-12-22 2010-07-06 International Business Machines Corporation Method for controlling the capacity usage of a logically partitioned data processing system
US7668741B2 (en) * 2005-01-06 2010-02-23 International Business Machines Corporation Managing compliance with service level agreements in a grid environment
US20060149652A1 (en) * 2005-01-06 2006-07-06 Fellenstein Craig W Receiving bid requests and pricing bid responses for potential grid job submissions within a grid environment
US7707288B2 (en) * 2005-01-06 2010-04-27 International Business Machines Corporation Automatically building a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism within a grid environment
US7761557B2 (en) * 2005-01-06 2010-07-20 International Business Machines Corporation Facilitating overall grid environment management by monitoring and distributing grid activity
US7502850B2 (en) * 2005-01-06 2009-03-10 International Business Machines Corporation Verifying resource functionality before use by a grid job submitted to a grid environment
US7590623B2 (en) * 2005-01-06 2009-09-15 International Business Machines Corporation Automated management of software images for efficient resource node building within a grid environment
US7793308B2 (en) * 2005-01-06 2010-09-07 International Business Machines Corporation Setting operation based resource utilization thresholds for resource use by a process
US7472079B2 (en) * 2005-01-12 2008-12-30 International Business Machines Corporation Computer implemented method for automatically controlling selection of a grid provider for a grid job
US7571120B2 (en) * 2005-01-12 2009-08-04 International Business Machines Corporation Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms
US7562035B2 (en) * 2005-01-12 2009-07-14 International Business Machines Corporation Automating responses by grid providers to bid requests indicating criteria for a grid job
US7467196B2 (en) * 2005-01-12 2008-12-16 International Business Machines Corporation Managing network errors communicated in a message transaction with error information using a troubleshooting agent
US20060195845A1 (en) * 2005-02-28 2006-08-31 Rhine Scott A System and method for scheduling executables
US7908606B2 (en) * 2005-05-20 2011-03-15 Unisys Corporation Usage metering system
US7979460B2 (en) 2006-02-15 2011-07-12 Sony Computer Entainment America Inc. Systems and methods for server management
US8117614B2 (en) * 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
US7844970B2 (en) * 2006-08-22 2010-11-30 International Business Machines Corporation Method and apparatus to control priority preemption of tasks
US8286173B2 (en) * 2007-03-23 2012-10-09 Oracle America, Inc. Methods and apparatus for window-based fair priority scheduling
US8046766B2 (en) * 2007-04-26 2011-10-25 Hewlett-Packard Development Company, L.P. Process assignment to physical processors using minimum and maximum processor shares
US8276143B2 (en) * 2008-03-10 2012-09-25 Oracle America, Inc. Dynamic scheduling of application tasks in a distributed task based system
US8250579B2 (en) * 2008-06-27 2012-08-21 Oracle America, Inc. Method for stage-based cost analysis for task scheduling
WO2010032205A1 (en) * 2008-09-17 2010-03-25 Nxp B.V. Electronic circuit comprising a plurality of processing devices
TWI394027B (zh) * 2008-10-27 2013-04-21 Tatung Co 頻率調整方法及使用此方法的電腦程式產品
CN102955559A (zh) * 2011-08-24 2013-03-06 宏碁股份有限公司 节能系统以及节能方法
US9063795B2 (en) * 2012-12-19 2015-06-23 International Business Machines Corporation Adaptive resource usage limits for workload management
EP3090339B1 (en) * 2014-01-02 2020-11-11 Sky Atlas Iletisim Sanayi ve Ticaret Anonim Sirket Method and system for allocating resources to resource consumers in a cloud computing environment
US9411629B1 (en) 2015-03-10 2016-08-09 International Business Machines Corporation Reducing virtual machine pre-emption in virtualized environment
US10931674B2 (en) * 2018-04-30 2021-02-23 Paypal, Inc. Detecting whether to implement one or more security measures on a shared resource
US10768981B2 (en) * 2018-06-21 2020-09-08 Microsoft Technology Licensing, Llc Dynamic time slicing for data-processing workflow
CN117376423B (zh) * 2023-12-08 2024-03-12 西南民族大学 一种深度学习推理服务调度方法、系统、设备及存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4183083A (en) 1972-04-14 1980-01-08 Duquesne Systems, Inc. Method of operating a multiprogrammed computing system
US4551812A (en) 1981-06-17 1985-11-05 Cyborex Laboratories, Inc. Energy controller and method for dynamic allocation of priorities of controlled load curtailment to ensure adequate load sharing
US4481583A (en) 1981-10-30 1984-11-06 At&T Bell Laboratories Method for distributing resources in a time-shared system
US4388688A (en) 1981-11-10 1983-06-14 International Business Machines Corp. Shared TOD clock modification bit
US4989133A (en) 1984-11-30 1991-01-29 Inmos Limited System for executing, scheduling, and selectively linking time dependent processes based upon scheduling time thereof
US4631674A (en) 1985-02-05 1986-12-23 International Business Machines Corporation Active wait
US4736318A (en) 1985-03-01 1988-04-05 Wang Laboratories, Inc. Data processing system having tunable operating system means
CA1329432C (en) * 1988-11-02 1994-05-10 William Davy Method of memory and cpu time allocation for a multi-user computer system
IE61336B1 (en) 1989-10-02 1994-11-02 Sportables Limited A method for controlling the operation of a computer to handle interrupts
US5193187A (en) 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
US5325525A (en) * 1991-04-04 1994-06-28 Hewlett-Packard Company Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time
JPH0774984B2 (ja) 1991-06-10 1995-08-09 インターナショナル・ビジネス・マシーンズ・コーポレイション システム資源利用率測定方法とデータ処理システム
US5291599A (en) 1991-08-08 1994-03-01 International Business Machines Corporation Dispatcher switch for a partitioner
US5375202A (en) * 1993-01-04 1994-12-20 Xerox Corporation Dispatching and scheduling memory operations in an electronic printing system
US5623404A (en) * 1994-03-18 1997-04-22 Minnesota Mining And Manufacturing Company System and method for producing schedules of resource requests having uncertain durations
AU2364095A (en) 1994-05-12 1995-12-05 Ast Research, Inc. Cpu activity monitoring through cache watching
JP3588485B2 (ja) 1994-08-26 2004-11-10 富士通株式会社 プロセススケジューリング方式
US5615121A (en) * 1995-01-31 1997-03-25 U S West Technologies, Inc. System and method for scheduling service providers to perform customer service requests
US5668942A (en) * 1995-06-07 1997-09-16 Xerox Corporation Generic system for describing and using resources for print engine scheduling
JPH0954699A (ja) * 1995-08-11 1997-02-25 Fujitsu Ltd 計算機のプロセススケジューラ
US5987492A (en) * 1997-10-31 1999-11-16 Sun Microsystems, Inc. Method and apparatus for processor sharing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021170216A (ja) * 2020-04-15 2021-10-28 富士通株式会社 割当制御プログラム、割当制御方法および情報処理装置
JP7363653B2 (ja) 2020-04-15 2023-10-18 富士通株式会社 割当制御プログラム、割当制御方法および情報処理装置

Also Published As

Publication number Publication date
EP1039383A3 (en) 2006-08-23
ATE395663T1 (de) 2008-05-15
JP3606555B2 (ja) 2005-01-05
KR100352668B1 (ko) 2002-09-13
EP1039383A2 (en) 2000-09-27
KR20010006756A (ko) 2001-01-26
US6438704B1 (en) 2002-08-20
DE60038837D1 (de) 2008-06-26
TW526452B (en) 2003-04-01
EP1039383B1 (en) 2008-05-14

Similar Documents

Publication Publication Date Title
JP2000284975A (ja) システム・リソースのスケジューリングのためのシステムおよび方法
US10754706B1 (en) Task scheduling for multiprocessor systems
Mercer et al. Processor capacity reserves for multimedia operating systems
WO2021233261A1 (zh) 一种多任务动态资源调度方法
US7752622B1 (en) Method and apparatus for flexible job pre-emption
US20080086734A1 (en) Resource-based scheduler
US7743378B1 (en) Method and apparatus for multi-dimensional priority determination for job scheduling
US6430592B1 (en) System for sharing CPU time amongst multiple users
US20050028160A1 (en) Adaptive scheduler for anytime tasks
US20040123297A1 (en) Performance level setting of a data processing system
US7984447B1 (en) Method and apparatus for balancing project shares within job assignment and scheduling
US20050086030A1 (en) Software tool for synthesizing a real-time operating system
KR20090024256A (ko) 비파괴 시간에 실행하도록 컴퓨터 마이크로-작업을 스케쥴링하는 방법, 시스템 및 장치
US8214836B1 (en) Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
KR101373786B1 (ko) 자원-기반 스케쥴러
EP2840513B1 (en) Dynamic task prioritization for in-memory databases
WO2023165485A1 (zh) 调度方法及计算机系统
US10606636B2 (en) Automated predictions for not-yet-completed jobs
KR101377195B1 (ko) 컴퓨터 마이크로 작업
US20200034203A1 (en) Distributed job framework and task queue
US11449502B1 (en) Calculating a throttle limit for requests in a database system
EP2595057B1 (en) Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements
Rooney et al. Intelligent resource director
Mullery et al. A processor allocation method for time-sharing
CN116501486A (zh) 一种集群资源调度方法、系统、终端及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040120

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040409

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040720

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20040720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040913

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20040913

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041004

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111015

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees