JP2005516303A - 優先スケジューリングを備えたマルチプログラミングコンピュータシステムにおける優先レベルを設定する方法、マルチプログラミングコンピュータシステムおよびそれらのプログラム - Google Patents

優先スケジューリングを備えたマルチプログラミングコンピュータシステムにおける優先レベルを設定する方法、マルチプログラミングコンピュータシステムおよびそれらのプログラム Download PDF

Info

Publication number
JP2005516303A
JP2005516303A JP2003564738A JP2003564738A JP2005516303A JP 2005516303 A JP2005516303 A JP 2005516303A JP 2003564738 A JP2003564738 A JP 2003564738A JP 2003564738 A JP2003564738 A JP 2003564738A JP 2005516303 A JP2005516303 A JP 2005516303A
Authority
JP
Japan
Prior art keywords
priority level
priority
computer system
thread
execution
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.)
Pending
Application number
JP2003564738A
Other languages
English (en)
Inventor
ボブ・ジャンセン
ピーター・ジェラーダス・ジャンセン
Original Assignee
リアル・エンタープライズ・ソリューションズ・ディヴェロップメント・ビー・ヴィー
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 リアル・エンタープライズ・ソリューションズ・ディヴェロップメント・ビー・ヴィー filed Critical リアル・エンタープライズ・ソリューションズ・ディヴェロップメント・ビー・ヴィー
Publication of JP2005516303A publication Critical patent/JP2005516303A/ja
Pending 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

優先スケジューリングを備えたマルチプログラミングコンピュータシステム(1)における優先レベルを設定する方法であって、各処理(13,14)の実行のスレッド(15,16,17)が標準的な優先レベルを有し、処理(13,14)の実行のスレッド(15,16,17)によって前記システム(1)内の1またはそれ以上のプロセッサ(2)の相対的使用量を測定する段階を備える。エスカレーション時間(ΔT1)の間、それらの測定された相対的使用量が所定のエスカレーション閾値を上回る場合、実行の1またはそれ以上のスレッド(15,16,17)の優先レベルが低くされる。

Description

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

Claims (11)

  1. 優先スケジューリングを備えたマルチプログラミングコンピュータシステム(1)における優先レベルを設定する方法であって、
    各処理(13,14)の実行のスレッド(15,16,17)が標準的な優先レベルを有し、
    処理(13,14)の実行のスレッド(15,16,17)によって前記システム(1)内の1またはそれ以上のプロセッサ(2)の相対的使用量を測定する段階を備え、
    エスカレーション時間(ΔT)の間、それらの測定された相対的使用量が所定のエスカレーション閾値を上回る場合、1またはそれ以上の実行のスレッド(15,16,17)の優先レベルが低くされることを特徴とする方法。
  2. 前記エスカレーション時間(ΔT)の間、その処理(13,14)の前記スレッド(15,16,17)による全相対的使用量がエスカレーション閾値を上回る場合、1つの処理(13,14)に属する実行の全スレッド(15,16,17)の優先レベルが低くされることを特徴とする請求項1に記載の方法。
  3. 少なくとも1つのスレッドの前記優先レベルは、可能な値(19)の範囲内で最低レベルまで低くされることを特徴とする請求項1または2に記載の方法。
  4. 前記相対的使用量が試験閾値より低い場合、より低い優先レベルは標準的な優先レベルに戻されることを特徴とする請求項1ないし3のいずれか1に記載の方法。
  5. 好ましくは、試験時間(ΔT)の間、前記相対的使用量が試験閾値より低い場合、低くされた優先レベルが標準的な優先レベルに戻されることを特徴とする請求項4に記載の方法。
  6. 前記優先レベルがユーザ空間で実行しているプログラムによって変更され、かつ、優先度がオペレーティングシステムスケジューラによって用いられることを特徴とする請求項1ないし5のいずれか1に記載の方法。
  7. 優先レベルの変更の範囲は登録されることを特徴とする請求項1ないし6のいずれか1に記載の方法。
  8. 前記エスカレーション時間(ΔT)が1秒より長いことを特徴とする請求項1ないし7のいずれか1に記載の方法。
  9. 前記閾値および/または時間(ΔT1、ΔT2)の少なくとも1つが前記コンピュータシステム(1)の管理者による裁量で調整されることを特徴とする請求項1ないし8のいずれか1に記載の方法。
  10. 請求項1ないし9のいずれか1による方法を実行可能な、または実行するのに適したことを特徴とする優先スケジューリングを備えたマルチプログラミングコンピュータシステム。
  11. 実行時、前記コンピュータシステム(1)が請求項1ないし9のいずれか1による方法を実行することができるようなことを特徴とする優先スケジューリングを備えたマルチプログラミングコンピュータシステム(1)にロード可能なコンピュータプログラム。

JP2003564738A 2002-01-30 2002-01-30 優先スケジューリングを備えたマルチプログラミングコンピュータシステムにおける優先レベルを設定する方法、マルチプログラミングコンピュータシステムおよびそれらのプログラム Pending JP2005516303A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/NL2002/000070 WO2003065214A1 (en) 2002-01-30 2002-01-30 Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor

Publications (1)

Publication Number Publication Date
JP2005516303A true JP2005516303A (ja) 2005-06-02

Family

ID=27656496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003564738A Pending JP2005516303A (ja) 2002-01-30 2002-01-30 優先スケジューリングを備えたマルチプログラミングコンピュータシステムにおける優先レベルを設定する方法、マルチプログラミングコンピュータシステムおよびそれらのプログラム

Country Status (11)

Country Link
US (1) US7565652B2 (ja)
EP (1) EP1474744B1 (ja)
JP (1) JP2005516303A (ja)
AT (1) ATE392662T1 (ja)
AU (1) AU2002230272B2 (ja)
CA (1) CA2474477C (ja)
DE (1) DE60226176T2 (ja)
DK (1) DK1474744T3 (ja)
ES (1) ES2305216T3 (ja)
NZ (1) NZ534314A (ja)
WO (1) WO2003065214A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011180894A (ja) * 2010-03-02 2011-09-15 Fujitsu Ltd ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法
JP5152175B2 (ja) * 2007-03-20 2013-02-27 富士通モバイルコミュニケーションズ株式会社 情報処理装置
JP2013069204A (ja) * 2011-09-26 2013-04-18 Bank Of Tokyo-Mitsubishi Ufj Ltd 監視制御装置
JP2014059918A (ja) * 2013-12-27 2014-04-03 Bank Of Tokyo-Mitsubishi Ufj Ltd 監視制御装置
JP6282773B1 (ja) * 2017-06-30 2018-02-21 株式会社ショーワ マスキング治具、電気メッキ装置

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657893B2 (en) * 2003-04-23 2010-02-02 International Business Machines Corporation Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor
US20040216101A1 (en) * 2003-04-24 2004-10-28 International Business Machines Corporation Method and logical apparatus for managing resource redistribution in a simultaneous multi-threaded (SMT) processor
US7350060B2 (en) * 2003-04-24 2008-03-25 International Business Machines Corporation Method and apparatus for sending thread-execution-state-sensitive supervisory commands to a simultaneous multi-threaded (SMT) processor
US7290261B2 (en) * 2003-04-24 2007-10-30 International Business Machines Corporation Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor
US7155600B2 (en) * 2003-04-24 2006-12-26 International Business Machines Corporation Method and logical apparatus for switching between single-threaded and multi-threaded execution states in a simultaneous multi-threaded (SMT) processor
US7562362B1 (en) * 2003-06-18 2009-07-14 Apple Inc. User control of task priority
US7380247B2 (en) * 2003-07-24 2008-05-27 International Business Machines Corporation System for delaying priority boost in a priority offset amount only after detecting of preemption event during access to critical section
US9098340B2 (en) * 2003-12-08 2015-08-04 Teradata Us, Inc. Virtual regulator for a database system
US8176489B2 (en) * 2004-12-09 2012-05-08 International Business Machines Corporation Use of rollback RCU with read-side modifications to RCU-protected data structures
JP2007287085A (ja) * 2006-04-20 2007-11-01 Fuji Xerox Co Ltd 画像処理装置及びプログラム
US8813082B2 (en) * 2006-06-22 2014-08-19 International Business Machines Corporation Thread priority based on object creation rates
EP1892625B1 (en) * 2006-08-09 2018-07-11 Red Bend Software Finer grained operating system scheduling
KR101282139B1 (ko) * 2006-09-11 2013-07-04 삼성전자주식회사 별도 버튼을 이용하여 성능모드 변경이 가능한컴퓨터시스템 및 그 제어방법
US7853950B2 (en) * 2007-04-05 2010-12-14 International Business Machines Corporarion Executing multiple threads in a processor
US8832702B2 (en) * 2007-05-10 2014-09-09 Freescale Semiconductor, Inc. Thread de-emphasis instruction for multithreaded processor
US20090070762A1 (en) * 2007-09-06 2009-03-12 Franaszek Peter A System and method for event-driven scheduling of computing jobs on a multi-threaded machine using delay-costs
US8117618B2 (en) * 2007-10-12 2012-02-14 Freescale Semiconductor, Inc. Forward progress mechanism for a multithreaded processor
US9830670B2 (en) 2008-07-10 2017-11-28 Apple Inc. Intelligent power monitoring
US8161493B2 (en) * 2008-07-15 2012-04-17 International Business Machines Corporation Weighted-region cycle accounting for multi-threaded processor cores
JP5173713B2 (ja) 2008-09-30 2013-04-03 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法
EP2369478A1 (en) * 2010-02-22 2011-09-28 Telefonaktiebolaget L M Ericsson (PUBL) Technique of scheduling tasks in a system
EP2369477B1 (en) 2010-02-22 2017-10-11 Telefonaktiebolaget LM Ericsson (publ) Technique for providing task priority related information intended for task scheduling in a system
US8904399B2 (en) * 2010-03-15 2014-12-02 Qualcomm Incorporated System and method of executing threads at a processor
JPWO2011158405A1 (ja) * 2010-06-18 2013-08-15 パナソニック株式会社 優先度情報生成装置、情報処理装置
US8866701B2 (en) 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US9210213B2 (en) 2011-03-03 2015-12-08 Citrix Systems, Inc. Reverse seamless integration between local and remote computing environments
US9015449B2 (en) 2011-03-27 2015-04-21 International Business Machines Corporation Region-weighted accounting of multi-threaded processor core according to dispatch state
GB2491165A (en) * 2011-05-26 2012-11-28 Realvnc Ltd Mobile device having a priority adjusting thread for link wi th remote terminal
US8904397B2 (en) 2011-10-31 2014-12-02 International Business Machines Corporation Staggering execution of scheduled tasks based on behavioral information
US9355009B2 (en) * 2011-10-31 2016-05-31 International Business Machines Corporation Performance of scheduled tasks via behavior analysis and dynamic optimization
US9047396B2 (en) 2011-10-31 2015-06-02 International Business Machines Corporation Method, system and computer product for rescheduling processing of set of work items based on historical trend of execution time
US9128754B2 (en) * 2012-05-31 2015-09-08 Hewlett-Packard Development Company, L.P. Resource starvation management in a computer system
WO2014035936A2 (en) 2012-08-31 2014-03-06 Citrix Systems Inc. Reverse seamless integration between local and remote computing environments
US9021493B2 (en) 2012-09-14 2015-04-28 International Business Machines Corporation Management of resources within a computing environment
US9665372B2 (en) 2014-05-12 2017-05-30 International Business Machines Corporation Parallel slice processor with dynamic instruction stream mapping
US9672043B2 (en) 2014-05-12 2017-06-06 International Business Machines Corporation Processing of multiple instruction streams in a parallel slice processor
US9582326B2 (en) 2014-05-30 2017-02-28 Apple Inc. Quality of service classes
US9772959B2 (en) 2014-05-30 2017-09-26 Apple Inc. I/O scheduling
US9760375B2 (en) 2014-09-09 2017-09-12 International Business Machines Corporation Register files for storing data operated on by instructions of multiple widths
US9720696B2 (en) 2014-09-30 2017-08-01 International Business Machines Corporation Independent mapping of threads
US9977678B2 (en) 2015-01-12 2018-05-22 International Business Machines Corporation Reconfigurable parallel execution and load-store slice processor
US10133576B2 (en) 2015-01-13 2018-11-20 International Business Machines Corporation Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries
US10133581B2 (en) 2015-01-13 2018-11-20 International Business Machines Corporation Linkable issue queue parallel execution slice for a processor
DE102016200777A1 (de) * 2016-01-21 2017-07-27 Robert Bosch Gmbh Verfahren und Vorrichtung zum Überwachen und Kontrollieren quasi-paralleler Ausführungsstränge in einem ereignisorientierten Betriebssystem
US9983875B2 (en) 2016-03-04 2018-05-29 International Business Machines Corporation Operation of a multi-slice processor preventing early dependent instruction wakeup
US10037211B2 (en) 2016-03-22 2018-07-31 International Business Machines Corporation Operation of a multi-slice processor with an expanded merge fetching queue
US10346174B2 (en) 2016-03-24 2019-07-09 International Business Machines Corporation Operation of a multi-slice processor with dynamic canceling of partial loads
US10761854B2 (en) 2016-04-19 2020-09-01 International Business Machines Corporation Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor
US10037229B2 (en) 2016-05-11 2018-07-31 International Business Machines Corporation Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions
US9934033B2 (en) 2016-06-13 2018-04-03 International Business Machines Corporation Operation of a multi-slice processor implementing simultaneous two-target loads and stores
US10042647B2 (en) 2016-06-27 2018-08-07 International Business Machines Corporation Managing a divided load reorder queue
US10318419B2 (en) 2016-08-08 2019-06-11 International Business Machines Corporation Flush avoidance in a load store unit
CN109582223B (zh) * 2018-10-31 2023-07-18 华为技术有限公司 一种内存数据迁移的方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954699A (ja) * 1995-08-11 1997-02-25 Fujitsu Ltd 計算機のプロセススケジューラ
US5797305A (en) * 1996-02-12 1998-08-25 Moore Business Forms, Inc. On demand cross web perforation
US5838968A (en) * 1996-03-01 1998-11-17 Chromatic Research, Inc. System and method for dynamic resource management across tasks in real-time operating systems
US6223201B1 (en) * 1996-08-27 2001-04-24 International Business Machines Corporation Data processing system and method of task management within a self-managing application
US6601083B1 (en) * 1996-08-29 2003-07-29 Frederick John Reznak Multitasking data processing system and method of controlling allocation of a shared resource
US6263359B1 (en) 1997-05-22 2001-07-17 International Business Machines Corporation Computer resource proportional utilization and response time scheduling
FR2766592B1 (fr) * 1997-07-23 1999-08-27 Bull Sa Dispositif et procede de regulation dynamique de l'attribution des ressources sur un systeme informatique
US6212544B1 (en) * 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6697935B1 (en) * 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6243788B1 (en) 1998-06-17 2001-06-05 International Business Machines Corporation Cache architecture to enable accurate cache sensitivity
US6584488B1 (en) * 1999-04-12 2003-06-24 International Business Machines Corporation Controlling allocation of system resources with an enhanced priority calculation
US6542921B1 (en) * 1999-07-08 2003-04-01 Intel Corporation Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor
US7028298B1 (en) * 1999-09-10 2006-04-11 Sun Microsystems, Inc. Apparatus and methods for managing resource usage
US20020019843A1 (en) 2000-04-26 2002-02-14 Killian Robert T. Multiprocessor object control
US6859926B1 (en) * 2000-09-14 2005-02-22 International Business Machines Corporation Apparatus and method for workload management using class shares and tiers
GB2372847B (en) 2001-02-19 2004-12-29 Imagination Tech Ltd Control of priority and instruction rates on a multithreaded processor
JP3796124B2 (ja) * 2001-03-07 2006-07-12 株式会社ルネサステクノロジ スレッド間優先度可変プロセッサ
US6895585B2 (en) * 2001-03-30 2005-05-17 Hewlett-Packard Development Company, L.P. Method of mixed workload high performance scheduling
US20030187908A1 (en) * 2002-03-26 2003-10-02 Sun Microsystems, Inc. Methods and systems for customer based resource priority control
US7536689B2 (en) * 2003-01-10 2009-05-19 Tricerat, Inc. Method and system for optimizing thread scheduling using quality objectives
US7383548B2 (en) * 2003-11-28 2008-06-03 Nortel Networks Limited CPU usage regulation

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5152175B2 (ja) * 2007-03-20 2013-02-27 富士通モバイルコミュニケーションズ株式会社 情報処理装置
JP2011180894A (ja) * 2010-03-02 2011-09-15 Fujitsu Ltd ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法
JP2013069204A (ja) * 2011-09-26 2013-04-18 Bank Of Tokyo-Mitsubishi Ufj Ltd 監視制御装置
JP2014059918A (ja) * 2013-12-27 2014-04-03 Bank Of Tokyo-Mitsubishi Ufj Ltd 監視制御装置
JP6282773B1 (ja) * 2017-06-30 2018-02-21 株式会社ショーワ マスキング治具、電気メッキ装置
JP2019011497A (ja) * 2017-06-30 2019-01-24 株式会社ショーワ マスキング治具、電気メッキ装置

Also Published As

Publication number Publication date
DE60226176T2 (de) 2009-05-14
CA2474477C (en) 2011-04-12
ES2305216T3 (es) 2008-11-01
CA2474477A1 (en) 2003-08-07
US20060037025A1 (en) 2006-02-16
AU2002230272B2 (en) 2008-03-13
EP1474744B1 (en) 2008-04-16
ATE392662T1 (de) 2008-05-15
US7565652B2 (en) 2009-07-21
DE60226176D1 (de) 2008-05-29
DK1474744T3 (da) 2008-07-28
EP1474744A1 (en) 2004-11-10
WO2003065214A1 (en) 2003-08-07
NZ534314A (en) 2005-04-29

Similar Documents

Publication Publication Date Title
JP2005516303A (ja) 優先スケジューリングを備えたマルチプログラミングコンピュータシステムにおける優先レベルを設定する方法、マルチプログラミングコンピュータシステムおよびそれらのプログラム
US10423451B2 (en) Opportunistically scheduling and adjusting time slices
AU2002230272A1 (en) Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor
JP4367856B2 (ja) プロセス制御システム及びその制御方法
US8181047B2 (en) Apparatus and method for controlling power management by comparing tick idle time data to power management state resume time data
US6584488B1 (en) Controlling allocation of system resources with an enhanced priority calculation
JP5345990B2 (ja) 特定のプロセスを短時間で処理する方法およびコンピュータ
BRPI0907774B1 (pt) Programação de encadeamento ciente de energia e uso dinâmico de processadores
US10248463B2 (en) Apparatus and method for managing a plurality of threads in an operating system
US8640133B2 (en) Equal duration and equal fetch operations sub-context switch interval based fetch operation scheduling utilizing fetch error rate based logic for switching between plurality of sorting algorithms
US7818747B1 (en) Cache-aware scheduling for a chip multithreading processor
US8108862B2 (en) Out-of-order thread scheduling based on processor idle time thresholds
Fedorova et al. Operating system scheduling on heterogeneous core systems
JP2009223842A (ja) 仮想計算機制御プログラム及び仮想計算機システム
JP6477260B2 (ja) アプリケーションを実行する方法及びリソースマネジャ
JP2007172611A (ja) 方法、記憶媒体(仮想共有環境におけるプロセッサの有効利用法)
JP2009237858A (ja) サーバタスク管理プログラム及びサーバタスク管理方法
US7996848B1 (en) Systems and methods for suspending and resuming threads
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
US20070204083A1 (en) Bus arbitration method and computer-readable medium
JP2022550064A (ja) マルチスレッドマイクロプロセッサにおける共有リソース割り当て
US20130191839A1 (en) Information processing apparatus, control method therefor, and computer-readable storage medium
KR100455623B1 (ko) 멀티태스킹 운영체계에서 무한 루프 타스크 처리 방법
JP2008129709A (ja) タスク制御方法、データ処理システム、タスク制御プログラム及びその記憶媒体
Momtchev et al. An asymmetric real-time scheduling for Linux

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060926

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080527