(57)【要約】優先スケジューリングを備えたマルチプログラミングコンピュータシステム(1)における優先レベルを設定する方法であって、各処理(13,14)の実行のスレッド(15,16,17)が標準的な優先レベルを有し、処理(13,14)の実行のスレッド(15,16,17)によって前記システム(1)内の１またはそれ以上のプロセッサ(2)の相対的使用量を測定する段階を備える。エスカレーション時間(ΔT1)の間、それらの測定された相対的使用量が所定のエスカレーション閾値を上回る場合、実行の１またはそれ以上のスレッド(15,16,17)の優先レベルが低くされる。
2005516303.tif 000002
【特許請求の範囲】
【請求項１】
優先スケジューリングを備えたマルチプログラミングコンピュータシステム(1)における優先レベルを設定する方法であって、
各処理(13,14)の実行のスレッド(15,16,17)が標準的な優先レベルを有し、
処理(13,14)の実行のスレッド(15,16,17)によって前記システム(1)内の１またはそれ以上のプロセッサ(2)の相対的使用量を測定する段階を備え、
エスカレーション時間(ΔT１)の間、それらの測定された相対的使用量が所定のエスカレーション閾値を上回る場合、１またはそれ以上の実行のスレッド(15,16,17)の優先レベルが低くされることを特徴とする方法。
【請求項２】
前記エスカレーション時間(ΔT１)の間、その処理(13,14)の前記スレッド(15,16,17)による全相対的使用量がエスカレーション閾値を上回る場合、１つの処理(13,14)に属する実行の全スレッド(15,16,17)の優先レベルが低くされることを特徴とする請求項１に記載の方法。
【請求項３】
少なくとも１つのスレッドの前記優先レベルは、可能な値(19)の範囲内で最低レベルまで低くされることを特徴とする請求項１または２に記載の方法。
【請求項４】
前記相対的使用量が試験閾値より低い場合、より低い優先レベルは標準的な優先レベルに戻されることを特徴とする請求項１ないし３のいずれか１に記載の方法。
【請求項５】
好ましくは、試験時間(ΔT２)の間、前記相対的使用量が試験閾値より低い場合、低くされた優先レベルが標準的な優先レベルに戻されることを特徴とする請求項４に記載の方法。
【請求項６】
前記優先レベルがユーザ空間で実行しているプログラムによって変更され、かつ、優先度がオペレーティングシステムスケジューラによって用いられることを特徴とする請求項１ないし５のいずれか１に記載の方法。
【請求項７】
優先レベルの変更の範囲は登録されることを特徴とする請求項１ないし６のいずれか１に記載の方法。
【請求項８】
前記エスカレーション時間(ΔT１)が１秒より長いことを特徴とする請求項１ないし７のいずれか１に記載の方法。
【請求項９】
前記閾値および/または時間(ΔT1、ΔT2)の少なくとも１つが前記コンピュータシステム(1)の管理者による裁量で調整されることを特徴とする請求項１ないし８のいずれか１に記載の方法。
【請求項１０】
請求項１ないし９のいずれか１による方法を実行可能な、または実行するのに適したことを特徴とする優先スケジューリングを備えたマルチプログラミングコンピュータシステム。
【請求項１１】
実行時、前記コンピュータシステム(1)が請求項１ないし９のいずれか１による方法を実行することができるようなことを特徴とする優先スケジューリングを備えたマルチプログラミングコンピュータシステム(1)にロード可能なコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、優先スケジューリングを備えたマルチプログラミングコンピュータシステムにおける優先レベルを設定する方法、優先スケジューリングを備えたマルチプログラミングコンピュータシステムおよび優先スケジューリングを備えたマルチプログラミングコンピュータシステムにロード可能なコンピュータプログラムに関する。
【背景技術】
【０００２】
マルチプログラミングコンピュータシステムは、メモリにロードされた複数のプログラム間で交互に切り替えすることができるコンピュータシステムである。このようなコンピュータのオペレーティングシステムは、スケジューラを具備し、その一部は、実行使用としている２またはそれ以上の実行のスレッドのうち次にどれを実行すべきかを選択するものである。あるスレッドが他のものに比べてより確実に選ばれるよう、スレッドはそれらに割り当てられた優先レベルを有する。
【０００３】
通常のオペレーティングシステムは、優先レベルを変更する手段を有するが、 アプリケーションプログラムが実行されているときに生成される処理および/またはスレッドのための優先レベルの基本設定は、前記オペレーティングシステムによっては実行されない。レベルは、アプリケーションプログラムの供給者によって設定されるか、システム管理者によって設定される。このことは、あるプログラムの実行が大量のプロセッサ容量を必要とするときに問題をもたらす。高優先度設定は、前記スレッドまたはこのプログラムの実行のスレッドが、利用可能な処理手続きリソースのすべてを消費する状況をもたらす。これは、前記コンピュータシステム上で同時に実行される他の処理能力にとって不利となる。１つのシステム上で異なるユーザがアプリケーションプログラムを実行する状況では、ユーザのうちの１人によって起動された処理によって、他の処理が他のユーザによって入力された命令に対してとてもゆっくりと応答するようになる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、実行の処理集約型(processing-intensive)スレッドによって引き起こされる性能の問題を軽減するのに用いられ、請求項1、10および11それぞれの前提条件による方法、マルチプログラミングコンピュータシステムおよびコンピュータプログラムを提供することである。
【課題を解決するための手段】
【０００５】
従って、本発明は、優先スケジューリングを備えたマルチプログラミングコンピュータシステムにおける優先レベルを設定する方法であって、各処理の実行のスレッドが標準的な優先レベルを有し、処理の実行のスレッドによってシステム内の１またはそれ以上のプロセッサの相対的使用量(relative use)を測定する段階を備え、エスカレーション時間(escalation time period)の間、それらの測定された相対的使用量が所定のエスカレーション閾値を上回る場合、１またはそれ以上の実行のスレッドの優先レベルが低くされる方法を提供する。
【０００６】
この方法では、処理集約型スレッドが検出(detect)される。それは、実行の他のスレッドと比較してより低い優先レベルを受信する。そのため、前記オペレーティングシステム内の前記スケジューラは、そのスレッドにより少ない時間スロットを割り当てる。より多くの時間スロットが、実行の他のスレッドに提供される。
【０００７】
好ましくは、エスカレーション時間の間、その処理の前記スレッドによる全相対的使用量がエスカレーション閾値を上回る場合、１つの処理に属する実行の全スレッドの優先レベルは低くされる。
【０００８】
従って、マルチスレッドされたコードを実行可能なコンピュータシステムにおいて、他より極めて多くの実行のスレッドを備えた処理は検出を逃れられない。ユーザは、一般的に処理が遅いことに気付くだけである。それらによって用いられた全処理手続き容量が閾値を上回る場合に、処理の実行の全スレッドの優先度を低くさせることは、他の処理をより応答しやすくさせる。
【０００９】
好ましくは、少なくとも１つのスレッドの優先レベルは、可能な値(possible value)の範囲内で最低レベルまで低くされる。
【００１０】
従って、効果が即座に現れる。いくつかの時間に渡って優先度を除々に減らす必要はない。エスカレーション時間の使用と相まって、前記方法は安定しており、さらにユーザ側のもどかしさを避けるのに充分な応答性がある。
【００１１】
好ましくは、試験時間(probation time period)の間、相対的使用量が試験閾値より低い場合、低くされた優先レベルは標準的な優先レベルに戻される。
【００１２】
すべてが前記最低レベルになるまで、各処理の前記優先レベルが順に低くされることはできないので、そのため、前記方法は、延長された時間間隔(time interval)に渡って有効のままとなる。
【００１３】
好ましい実施形態では、優先レベルの変更の範囲は登録される。
【００１４】
従って、’CPUハングリー(CPU-hungry)’処理を検出することが可能となる。この認識は、例えば、夜間でのこのような処理の実行によって有利になるよう用いられる。
【００１５】
本発明の特徴によると、請求項1-9のいずれか１による方法を実行可能な、または実行するのに適したことを特徴とする優先スケジューリングを備えたマルチプログラミングコンピュータシステムが提供される。
【００１６】
マルチユーザコンピュータシステムでもある前記コンピュータシステムは、複数の処理が同時に実行されているときでさえ、ユーザ命令に対して応答する。
【００１７】
本発明の別の特徴によると、実行時、前記コンピュータシステムが請求項1-9のいずれか１による方法を実行することができることを特徴とする優先スケジューリングを備えたマルチプログラミングコンピュータシステムにロード可能なコンピュータプログラムが提供される。
【００１８】
このプログラムは、過度の処理手続き容量を要求する処理によって引き起こされる問題を軽減するのに用いられる。特に、前記コンピュータシステムの前記ユーザに受け入れられる速度で他の処理が実行し続けることを保証する。
【発明を実施するための最良の形態】
【００１９】
本発明は、添付の図面を参照することによって、さらに詳細に記述される。
図１は、単に本発明の目的を説明するためのコンピュータシステムのいくつかの基本的な構成要素の概略図を示している。前記システムは、キャッシュバス4を介して接続されたキャッシュ3を備えた中央演算処理装置(CPU2)を備えている。ブリッジチップ5は、それぞれローカルバス8とシステムバス9とメインバス10とを介して、前記CPU2をシステムメモリ6およびディスクコントローラ7に接続する。前記ディスクコントローラは、周辺機器デバイスバス12を介してハードディスク10へのアクセスを提供する。
【００２０】
図１のシステムはシングルCPU2を有しているが、本発明はシングルプロセッサコンピュータシステムに限定されない。実際、それはマルチプロセッサコンピュータと接続して用いられるだけでなく、相互に接続されたいくつかのノードを備え、各ノードが図１のシステムに類似したシステムを備える分散型コンピュータシステムと接続して用いられる。このような分散型システムでは、本発明による方法は、各ノードで別個に実行することができるか、または、システム全体で実行することができる。
【００２１】
本発明の前記方法は、マルチプログラミングシステムを対象としている。以下では、図２を参照しながらマルチプログラミングシステムにおけるいくつかの概念を説明する。
【００２２】
１またはそれ以上のプログラム、ある適切な表記法で表現されるアルゴリズムは、前記ハードディスク10に記憶される。プログラムが実行されると、１またはそれ以上の処理が前記コンピュータシステム上で実行される。本発明に関連する処理は、ある種の活動(activity)である。１つの処理は、入力、出力および状態を有する。通常、実行している各アプリケーションプログラムに対して１つの処理が存在するが、前記アプリケーションプログラムが他の処理を開始する場合がある。
【００２３】
図２では、第１処理13および第２処理14が図式的に記載されている。各処理13,14は、それに割り当てられた前記システムメモリ6内に、処理の読み書き可能なメモリ位置のリストである、いくつかのアドレス空間を有する。前記処理13,14のうちの１つが実行されると、前記アドレス空間の内容が前記CPUのレジスタにロードされ、かつ、各処理のアドレス空間に格納されていた命令も実行される。
【００２４】
図１の前記システムは、第１および第２処理13,14がシステムメモリ6内に同時に存在可能であることを意味するマルチプログラミングシステムである。。前記システムは、ユーザにとって前記処理13,14が同時に実行されているように見える方法で、前記処理13,14間を交互に切り替える。両方の処理13,14を実行しようとする場合、前記オペレーティングシステム内のスケジューリングアルゴリズムがどちらを実行すべきか決定するのに用いられる。
【００２５】
マルチスレッド(multithread)されたシステムでは、各処理は、１またはそれ以上の実行のスレッドを有することができる。図２の例では、図２の前記第１処理13は、第１スレッド15および第２スレッド16を有する。前記第２処理14もまた、２つのスレッド17を有する。実行のスレッドは、CPU2上での実行に対してスケジュール化されたもの(entity)である。各スレッド15、16、17は、その進捗を示すプログラムカウンタと、その最新の作業変数(working variables)を保持するレジスタと、スタックとを有する。前記第１処理13の実行のスレッド15、16は、その処理13のアドレス空間、オープンファイルおよび他のリソースを共有する。前記第２処理14の前記スレッド17にも同じことが当てはまる。
【００２６】
マルチスレッディング(multithreading)を支援するマルチプログラミングシステムでは、前記システムは、実行のスレッド15-17の間を交互に切り替える。１つ以上の準備ができると、前記スケジューリングアルゴリズムは再び、スレッド15-17のどれを実行すべきか決定する。本発明は、マルチスレッディングを支援するマルチプログラミングシステムに関連して説明される。しかしながら、当業者は、マルチスレッディングを支援しないシステムでは、各処理が正確に実行の１つのスレッドを有することを理解する。このようなシステムでもやはり、本発明を適用することができる。従って、スレッドおよび処理という用語は、互いに交換可能に用いられることが可能である。
【００２７】
最近のオペレーティングシステムは、ある種の優先度スケジューリングアルゴリズムを用いる。いくつかの変形例が存在し、かつ、本発明はいずれか１つの特定の変形例を用いることに限定されない。しかしながら、本発明は、同様にマルチスレッディングを支援し、広く用いられる１つのオペレーティングシステムで展開される変形例に関連して説明される。図２を参照すると、優先レベルの配列18が示されている。実行の各スレッド15-17は、利用可能なユーザ優先レベルの範囲内の優先レベルである。例えば、P0は最低利用可能なレベルを示し、P1は最高利用可能なレベルを示している。前記配列18はまた、P1からP2までの範囲内のシステム優先レベル20の範囲を備えている。前記システム優先レベルは、オペレーティングシステム処理のスレッドのために蓄えておかれる。
【００２８】
本発明を説明するためにここで用いられる前記オペレーティングシステムでは、いくつかの処理優先度クラスおよびいくつかのスレッド優先度クラスが存在する。各スレッド15-17は、それに割り当てられた前記スレッド優先度クラスと、処理の一部であり、処理に割り当てられた前記処理優先度クラスとの両方によって決定された基本優先レベルを有する。従って、前記第１処理13の前記第１スレッド15は、第２スレッド16より高いスレッド優先度クラスにある。それゆえに、前記第１スレッド15は、前記第２スレッド16より高いユーザ優先レベル13にある。
【００２９】
CPU2での処理手続き時間は、一般的に20msと200msとの間のクォンタ(quanta)に分けられる。前記スケジューラは、タイムクォンタム(time quantum)が終了する、スレッドがブロックする(すなわち、すぐに利用できない入力を必要とするので、それが実行を続けられないこと)、または割込みが生じる：という３つの事象のうち１つがいつ生じても動作する。そのとき、前記スケジューラは、最高の優先レベルにあるスレッドを最初に選択する。いくつかのスレッドが１つの優先レベルにある場合、そのレベルにある各スレッドが順に選択されるように、待ち行列が用いられる。
【００３０】
スレッドの基本優先レベルは、前記オペレーティングシステムによっては変えられない。それは、通常は前記スレッドの実行を通して保持される標準レベル；プログラムまたはシステム管理者によって設定されるレベルで開始する。
【００３１】
前記オペレーティングシステムは、前記基本優先レベルに値を付加することができる。例示のオペレーティングシステムでは、スレッドの前記優先レベルは、基本優先レベルに係数(factor)を付加することによって、一時的に押し上げられる。他のオペレーティングシステムは、前記スレッドが実行されると全優先レベルが減少し、かつ、実行されないと全優先レベルが増えるように、基本優先レベルに時間変化量(time-varying amount)を加える。
【００３２】
一時的に押し上げることも、基本優先レベルに時間変化係数を付加することも、過度に高い基本優先レベルを有するスレッドまたは処理によって生じる問題を適切に回避できないということが知られている。このようなスレッドは、多くの場合、全タイムクォンタムを費やし、実行の間に頻繁に選択される。ここで、例として用いられた前記オペレーティングシステムでは、低いユーザ優先レベルは、１または２つのタイムクォンタの間だけ押し上げられる。このことは、このような処理に入るべき命令には充分であるが、前記命令によってさらに多くを行う処理には充分でない。一時的な押し上げが終了すると、より高い基本優先レベルを有するスレッドが再び引き継がれる。タイムクォンタより数桁大きい巨視的な時間スケールでは、前記CPUは、より高い基本優先レベルを有するスレッドを主に実行する。
【００３３】
特に、ネットワーク化されたハイエンドサーバおよび数人のユーザによって使用されるワークステーションを備えるコンピュータシステムでは、深刻な問題が起こり得る。例えば、あるユーザが高い基本優先レベルを備えた画像処理アプリケーションを実行している場合、他のユーザは、彼らのアプリケーションの応答がより遅くなるとともに鈍くなることに気付く。一般的に、あるユーザがシステム管理者に不満を言い、システム管理者は手動で前記画像処理アプリケーションのスレッドの基本優先レベルを戻す。
【００３４】
本発明は、システム管理者によるこのような調整がもはや不要となるように、基本優先レベルを自動的に調整可能なプログラムを提供する。実行の前記スレッド15,16,17によるCPU2の前記相対的使用量が測定される。所定の長さのエスカレーション時間の間、前記相対的使用量が所定のエスカレーション閾値を上回る場合、実行のスレッドの基本優先レベルは、その標準レベルから低くされる。上述したように、前記標準レベルは、スレッドが標準的に実行される初期設定レベルである。
【００３５】
従って、例示のシステムでは、前記第２処理14の実行の前記スレッド17による前記相対的使用量のように、前記第１処理13の実行の前記スレッド15、16による前記プロセッサの前記相対的使用量が測定される。マルチスレッディングを支援するシステムでは、個々の実行の各スレッドに注目することは、ユーザ観点からは望ましいものではない。それぞれ個々のスレッドは処理時間の大部分を消費しないので、実行の多くのスレッドを備えた画像処理アプリケーションは、注目を免れるかもしれない。しかしながら、これらをもとに、ある処理のスレッドは、他の処理のスレッドが実行されるのを完全に防止してもよい。
【００３６】
それゆえに、マルチスレッディングを支援するシステムでは、一定期間の間、その処理のスレッドによる全相対的使用量が所定のエスカレーション閾値を上回る場合、１つの処理に属する実行の全てのスレッドの優先レベルは低くされる。
【００３７】
例示のシステムでは、このことは処理優先度クラスを低くすることによって、例えば、前記オペレーティングシステムをへのシステムコール(call)を介して容易に達成される。
【００３８】
図３を参照すると、前記第１処理13による前記CPU2の前記相対的使用量が示されている。グラフは、本発明による方法を用いるシステムから得られる。前記相対的使用量は、処理時間の割合として表現されるが、おおむね演算数のようないくつかの他の基準(measure)が用いられる。この例では、前記エスカレーション閾値が80%に設定されている。時間T0点で、前記第１処理13による前記プロセッサの前記相対的使用量は、前記エスカレーション閾値を上回る。実際、それは実質的に100%となる。時間間隔ΔT1の間中、前記相対的使用量が80%より上のままであるので、前記第１処理13は、より低い処理優先度クラスへ移動される。前記’CPU-hungry’スレッドを備えている前記処理13の両方のスレッド15、16の優先レベルもまた、その結果として低くされる。結果として、前記相対的使用量は、甚だしい妨害なく、前記第２処理が進行するのに充分な95%近傍まで低くされる。
【００３９】
前記時間間隔ΔT1の長さは、前記コンピュータシステムのユーザの忍耐量に大きく依存する。図３の前記グラフから明らかなように、時間間隔ΔT1の間、他の処理が実行を効果的に妨げられる可能性がある。勿論、前記第１処理13の前記優先レベルが低くされた後、’CPU-hungry’スレッドの優先レベルが前記第２処理14の全てのスレッドのそれ(優先レベル)より依然として高い場合、長さΔT1の他の時間間隔が経過するまでは何も生じない。このことは受け入れられないであろう。
【００４０】
従って、優先レベルは、T1における許容値の範囲内で最低レベルまで低くされる。例示のシステムでは、前記処理優先度クラスは、最低限の可能なレベルまで下げられる。しかしながら、本発明の範囲内で、処理の全てのスレッドのスレッド優先度クラスは、最低限の可能なレベルまで低くされる。その後、前記第１処理13の両方のスレッド15,16はレベルP0になる。
【００４１】
多くの場合、処理またはスレッドは、一時的にのみ、過度にプロセッサ容量を消費する。例示的な状況は、２人のユーザが１台のマシン上でワードプロセッシングアプリケーションを実行しているものである。２つの処理のそれぞれが同一の基本優先レベルにある。１人のユーザがマクロの実行を決定するかもしれない。この時点で、ユーザの処理は、他の処理が影響を受けるほど大きなプロセッサ容量を消費するかもしれない。従って、マクロを実行する処理の前記優先レベルが低くされる。それより後の時点で、他のユーザがマクロを実行する場合、他のユーザの処理の前記優先レベルは低くされる。いずれの処理も、今度は最低優先レベルとなる。一方の処理が再び優勢になり始めると、何の救済措置も残されていない。
【００４２】
前記相対的使用量が試験閾値より低い場合、低くされた優先レベルが標準的な優先レベルに戻されるため、この好ましくない状況が回避される。図３では、前記試験閾値は、40%に設定される。
【００４３】
勿論、前記CPU使用量が、前記試験閾値を一時的に割ることもあり得る。前記優先レベルが標準的な優先レベルへすぐに戻される場合、そのとき基本優先レベルがほぼ毎秒変化する極めて不安定なシステムになってしまう。
【００４４】
このことは、所定の長さΔT2の試験時間の間、前記相対的使用量が試験閾値より低くされる場合に、優先レベルを標準的な優先レベルへ戻すことによってのみ回避される。従って、図３では、前記第１処理13のスレッド15、16の優先レベルは、T3におけるそれらの標準的なレベルに戻される。
【００４５】
本発明による方法は、前記オペレーティングシステムのスケジューリングアルゴリズムと共存する。それは、ユーザ空間で実行する別個のプログラムとして提供される。前記オペレーティングシステムの前記スケジューラは、本発明のプログラムによってを決定された基本優先レベルを用いて、カーネル(kernel)空間で実行される。
【００４６】
前記オペレーティングシステムスケジューラと、本発明の方法とは、相違するが賞賛する(complimentary)目的を果たす。前記スケジューラは主に、例えば、キーボード命令および他の入出力形態へ応答する、前記コンピュータシステムリソースによってリソースが効率的に使用されることを確実にする。それゆえに、スケジューラパラメータは、プラットホームに依存する。
【００４７】
本発明の方法は、より良いユーザ経験を提供することを確実にする。それゆえに、パラメータは、処理が再開するまで人がどのくらいの長さ待つ用意があるかというような、ユーザ好みに基づくものとなる。従って、前記プログラムが異なるオペレーティングシステムを備えた異なるシステムで実行され得るか、またはオペレーティングシステムへ移植される得るように、ユーザ空間で前記方法を実行することは好都合となる。
【００４８】
前記オペレーティングシステムスケジューラと本発明の前記プログラムとは、いずれもスレッド優先レベルを調整するが、それらは異なる時間スケールでそれを行う。前記オペレーティングシステムスケジューラは、一般的に10-100msのタイムクォンタによって決定された時間スケール上で動作する。本発明の前記プログラムは、エスカレーション時間の長さΔT1によって設定された前記時間スケール上で動作する。前記エスカレーション時間の長さは1秒(1s)より長い。さらに一般的には、それはより一層大きく、例えば、2秒または5秒である。それゆえに、本発明の前記プログラムは、前記コンピュータシステムが不安定になるような方法では前記スケジューリングアルゴリズムを妨げない。
【００４９】
本発明の前記プログラムは、システム管理者が一般に直面する問題の解決が意図されている。それは、スレッドまたは処理の基本優先レベルを手動で調整しなければならないという負担から、ユーザを解放する。それはまた、２つの付加的な特徴を提供する。
【００５０】
第１に、優先レベルの変更の範囲が登録される。エントリは、T1およびT3におけるログでつくられる。前記エントリは、少なくとも不都合な処理を識別する。システム管理者は、処理の標準的な優先レベルを低くすること、または前記処理をより都合のよい時間、例えば、夜間に実行させることを決定するのに前記ログを用いる。優先レベルが低くされるとき、および優先レベルが高くされるときのいずれのときにもエントリは作られるので、どれくらいの期間だけ処理が前記CPU2の処理力に過度の要求をもたらすかを決定することが可能である。
【００５１】
第２の特徴として、前記システム管理者は少なくとも１つの閾値および/または時間長さΔT1、ΔT2を調整できるが、好ましくはこれら全てを調整できる。従って、彼はいつでも前記システムの性能を微調整することができる。
【００５２】
エスカレーション閾値の変更は、実行中の処理数を考慮することでなされる。２つの処理のみが実行中の場合、残りの5%がかなり十分なものであるので、95%は十分に許容可能なものとしてもよい。数百の処理が実行中の場合、それら全てを許容可能な速度で実行するためには、5%ははるかに小さいものとなる。試験閾値に対する変更は、同様に実行中の処理数を考慮することでなされる。
【００５３】
エスカレーション時間ΔT1に対する微小な増加は、例えば、いくつかの大きなCPUによって特徴付けられる処理が、通常のエスカレーション時間ΔT1よりわずかに長い各期間をバーストする場合に有効である。ΔT1における増加は、基本優先レベルの頻繁な変化を防止する。
【００５４】
当業者であれば、本発明は上述の実施形態に限定されることなく、請求の範囲の範囲内で変形し得ることは明らかである。この点において、いくつかのオペレーティングシステムが負の優先レベルを用いていることに留意すべきである。より低い(すなわち、より負の)値の優先レベルでの処理またはスレッドは、より高い値のそれに優先する。本発明において、より高い優先レベルは、そのレベルでの処理またはスレッドがより低いレベルでの処理に優先することを可能にする優先レベルであるとして解釈されるべきである。
【図面の簡単な説明】
【００５５】
【図１】単純なコンピュータシステムのいくつかの構成要素の概略図である。
【図２】異なる優先レベルでの処理およびスレッドのブロック図である。
【図３】処理によって使用されるCPU-処理力の相対的な量を示すグラフである。
【符号の説明】
【００５６】
２      CPU
３      キャッシュ
４      キャッシュバス
５      ブリッジチップ
６      システムメモリ
７      ディスクコントローラ
９      システムバス
１０    メインバス
１２    周辺機器デバイスバス
１３    第１処理
１４    第２処理
１５，１６，１７    スレッド
１８    配列
【図１】
2005516303.tif 000003
【図２】
2005516303.tif 000004
【図３】
2005516303.tif 000005
【国際調査報告】
2005516303.tif 000006
2005516303.tif 000007
2005516303.tif 000008