JPH07302246A - スケジューリング方式 - Google Patents
スケジューリング方式Info
- Publication number
- JPH07302246A JPH07302246A JP6095146A JP9514694A JPH07302246A JP H07302246 A JPH07302246 A JP H07302246A JP 6095146 A JP6095146 A JP 6095146A JP 9514694 A JP9514694 A JP 9514694A JP H07302246 A JPH07302246 A JP H07302246A
- Authority
- JP
- Japan
- Prior art keywords
- threads
- thread
- executable
- processor
- queue
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】スレッドをディスパッチする場合に、スレッド
が属しているプロセスと実行するプロセッサを考慮する
ことによってキャッシュを有効利用する。 【構成】プロセス中に複数スレッドを定義可能なOSに
より動作する、各プロセッサがキャッシュを有するマル
チプロセッサコンピュータシステムにおいて、実行可能
スレッドのキューに繋がれた実行可能スレッドの数を認
識する実行可能スレッド認識手段62と、実行可能スレ
ッド認識手段62によって認識された実行可能スレッド
のうち、ディスパッチ対象のスレッドと同じプロセスに
属しているプロセスを認識する所属プロセス認識手段6
3と、所属プロセス認識手段63によって認識されたス
レッドが複数で、かつ実行可能スレッドのキューに繋が
れたスレッドの数が特定の値(N個)より多い場合に、
複数のスレッドをまとめて(M個)プロセッサにディス
パッチするディスパッチ手段66とを具備して構成す
る。
が属しているプロセスと実行するプロセッサを考慮する
ことによってキャッシュを有効利用する。 【構成】プロセス中に複数スレッドを定義可能なOSに
より動作する、各プロセッサがキャッシュを有するマル
チプロセッサコンピュータシステムにおいて、実行可能
スレッドのキューに繋がれた実行可能スレッドの数を認
識する実行可能スレッド認識手段62と、実行可能スレ
ッド認識手段62によって認識された実行可能スレッド
のうち、ディスパッチ対象のスレッドと同じプロセスに
属しているプロセスを認識する所属プロセス認識手段6
3と、所属プロセス認識手段63によって認識されたス
レッドが複数で、かつ実行可能スレッドのキューに繋が
れたスレッドの数が特定の値(N個)より多い場合に、
複数のスレッドをまとめて(M個)プロセッサにディス
パッチするディスパッチ手段66とを具備して構成す
る。
Description
【0001】
【産業上の利用分野】本発明は、マルチスレッド構造の
オペレーティングシステムにおけるスケジューリング方
式に関する。
オペレーティングシステムにおけるスケジューリング方
式に関する。
【0002】
【従来の技術】現在、多くのマルチプロセッサコンピュ
ータシステムでは、各プロセッサがキャッシュを持つこ
とでメモリへのアクセス回数を減らし処理速度を向上さ
せている。
ータシステムでは、各プロセッサがキャッシュを持つこ
とでメモリへのアクセス回数を減らし処理速度を向上さ
せている。
【0003】ところで、最近では1つのプロセス中に複
数のスレッドを定義することが可能なマルチスレッド構
造のオペレーティングシステムが一般的になってきてい
る。このオペレーティングシステムの長所は、同一プロ
セス中のスレッドが同じアドレス空間を共有することが
できるため、プロセッサで実行するスレッドをスイッチ
する際にアドレス空間をスイッチする必要がなくなり、
キャッシュやTLB(table look-up buffer:アドレス
変換バッファ)を有効に利用できる点にある。
数のスレッドを定義することが可能なマルチスレッド構
造のオペレーティングシステムが一般的になってきてい
る。このオペレーティングシステムの長所は、同一プロ
セス中のスレッドが同じアドレス空間を共有することが
できるため、プロセッサで実行するスレッドをスイッチ
する際にアドレス空間をスイッチする必要がなくなり、
キャッシュやTLB(table look-up buffer:アドレス
変換バッファ)を有効に利用できる点にある。
【0004】ところで、あるプロセッサにより処理され
ているスレッドが、プリエンプトやブロックなどによっ
て切替えられる時、オペレーティングシステムのプロセ
ス管理機能であるスケジューラは、実行可能スレッドの
キューの中から一番プライオリティの高いスレッドをプ
ロセッサにディスパッチする。
ているスレッドが、プリエンプトやブロックなどによっ
て切替えられる時、オペレーティングシステムのプロセ
ス管理機能であるスケジューラは、実行可能スレッドの
キューの中から一番プライオリティの高いスレッドをプ
ロセッサにディスパッチする。
【0005】ここでもし、実行可能スレッドのキューの
中に、同一プロセスに属する複数のスレッドがある場
合、それらのスレッドが同じプロセッサに割り当てられ
る確率はプロセッサの数が増えるのに伴い低くなる。
中に、同一プロセスに属する複数のスレッドがある場
合、それらのスレッドが同じプロセッサに割り当てられ
る確率はプロセッサの数が増えるのに伴い低くなる。
【0006】プロセッサにスレッドが割り当てられた
際、先に同一プロセス中のスレッドが同一プロセッサに
割り当てられていると、そのプロセッサのキャッシュの
中に共有データが残っている可能性が高い。この場合、
スレッドを実行する際に、共有データを他のプロセッサ
のキャッシュや共有メモリからキャッシュに持ってくる
必要がない。こうした場合には、処理時間が短縮され、
またバスのトランザクションが低減される等、効率的で
ある。
際、先に同一プロセス中のスレッドが同一プロセッサに
割り当てられていると、そのプロセッサのキャッシュの
中に共有データが残っている可能性が高い。この場合、
スレッドを実行する際に、共有データを他のプロセッサ
のキャッシュや共有メモリからキャッシュに持ってくる
必要がない。こうした場合には、処理時間が短縮され、
またバスのトランザクションが低減される等、効率的で
ある。
【0007】一方、同一プロセス中のスレッドが別々の
プロセッサに割り当てられた場合には、共有データをそ
れぞれのプロセッサでキャッシュに取り込まなければな
らないため、同一プロセッサに割り当てられる場合と比
べると非効率的である。
プロセッサに割り当てられた場合には、共有データをそ
れぞれのプロセッサでキャッシュに取り込まなければな
らないため、同一プロセッサに割り当てられる場合と比
べると非効率的である。
【0008】現在のマルチスレッド構造のオペレーティ
ングシステムでは、プロセッサにスレッドを割り当てる
場合に、スレッドがどのプロセスに属しているかという
ようなことを考慮していない。すなわち、同一プロセス
中のスレッドが同一プロセッサで実行される確率が低い
ため、キャッシュが有効利用されていないということに
なる。
ングシステムでは、プロセッサにスレッドを割り当てる
場合に、スレッドがどのプロセスに属しているかという
ようなことを考慮していない。すなわち、同一プロセス
中のスレッドが同一プロセッサで実行される確率が低い
ため、キャッシュが有効利用されていないということに
なる。
【0009】
【発明が解決しようとする課題】このように従来のマル
チプロセッサコンピュータシステム上で動作する現在の
マルチスレッド構造のオペレーテイングシステムでは、
プロセッサにスレッドを割り当てる場合に、そのスレッ
ドがどのプロセスに属しているかというようなことを考
慮していなかった。このため、同一プロセス中のスレッ
ドが同一プロセッサで実行される確率が低くなってしま
い、各プロセッサでキャッシュへの共有データ読み込み
が発生し、プロセッサに装備されたキャッシュが十分に
有効利用されていないという問題があった。
チプロセッサコンピュータシステム上で動作する現在の
マルチスレッド構造のオペレーテイングシステムでは、
プロセッサにスレッドを割り当てる場合に、そのスレッ
ドがどのプロセスに属しているかというようなことを考
慮していなかった。このため、同一プロセス中のスレッ
ドが同一プロセッサで実行される確率が低くなってしま
い、各プロセッサでキャッシュへの共有データ読み込み
が発生し、プロセッサに装備されたキャッシュが十分に
有効利用されていないという問題があった。
【0010】本発明は前記のような事情を考慮してなさ
れたもので、スレッドをディスパッチする場合には、そ
のスレッドが属しているプロセスと実行するプロセッサ
を考慮することによってキャッシュを有効利用すること
が可能なスケジューリング方式を提供することを目的と
する。
れたもので、スレッドをディスパッチする場合には、そ
のスレッドが属しているプロセスと実行するプロセッサ
を考慮することによってキャッシュを有効利用すること
が可能なスケジューリング方式を提供することを目的と
する。
【0011】
【課題を解決するための手段】本発明は、1つのプロセ
ス中に複数のスレッドを定義することが可能なマルチス
レッド構造のオペレーティングシステムにより動作す
る、プロセッサ毎にキャッシュが設けられたマルチプロ
セッサコンピュータシステムにおいて、実行可能スレッ
ドのキューに繋がれた実行可能スレッドの数を認識する
実行可能スレッド認識手段と、前記実行可能スレッド認
識手段によって認識された実行可能スレッドのうち、最
優先にディスパッチ対象とされるスレッドと同じプロセ
スに属しているスレッドを認識する所属プロセス認識手
段と、前記所属プロセス認識手段によって認識されたス
レッドが複数で、かつ前記実行可能スレッドのキューに
繋がれたスレッドの数が、ある特定の値より多い場合
に、前記所属プロセス認識手段によって認識された複数
のスレッドをまとめて、所定のプロセッサにディスパッ
チするディスパッチ手段とを具備したことを特徴とす
る。
ス中に複数のスレッドを定義することが可能なマルチス
レッド構造のオペレーティングシステムにより動作す
る、プロセッサ毎にキャッシュが設けられたマルチプロ
セッサコンピュータシステムにおいて、実行可能スレッ
ドのキューに繋がれた実行可能スレッドの数を認識する
実行可能スレッド認識手段と、前記実行可能スレッド認
識手段によって認識された実行可能スレッドのうち、最
優先にディスパッチ対象とされるスレッドと同じプロセ
スに属しているスレッドを認識する所属プロセス認識手
段と、前記所属プロセス認識手段によって認識されたス
レッドが複数で、かつ前記実行可能スレッドのキューに
繋がれたスレッドの数が、ある特定の値より多い場合
に、前記所属プロセス認識手段によって認識された複数
のスレッドをまとめて、所定のプロセッサにディスパッ
チするディスパッチ手段とを具備したことを特徴とす
る。
【0012】また、前記ディスパッチ手段によりディス
パッチされる各スレッドが、前回どのプロセッサ上で実
行されたかを認識する前回実行プロセッサ認識手段をさ
らに具備し、前記ディスパッチ手段が前回と同じプロセ
ッサ上にスレッドをディスパッチするように、ディスパ
ッチ時期を調整することを特徴とする。
パッチされる各スレッドが、前回どのプロセッサ上で実
行されたかを認識する前回実行プロセッサ認識手段をさ
らに具備し、前記ディスパッチ手段が前回と同じプロセ
ッサ上にスレッドをディスパッチするように、ディスパ
ッチ時期を調整することを特徴とする。
【0013】
【作用】このような構成によれば、マルチプロセッサコ
ンピュータシステム上で動作する、マルチスレッド構造
のオペレーティングシステムにおいて、スレッドをディ
スパッチする場合には、そのスレッドが属しているプロ
セスを考慮し、複数のスレッドをまとめてディスパッチ
することによって、プロセッサに設けられたキャッシュ
が有効に利用される。
ンピュータシステム上で動作する、マルチスレッド構造
のオペレーティングシステムにおいて、スレッドをディ
スパッチする場合には、そのスレッドが属しているプロ
セスを考慮し、複数のスレッドをまとめてディスパッチ
することによって、プロセッサに設けられたキャッシュ
が有効に利用される。
【0014】
【実施例】以下、図面を参照して本発明の一実施例を説
明する。図1は本実施例に係わるマルチプロセッサコン
ピュータシステムの概略構成を示すシステム構成図であ
る。図1に示すように、マルチプロセッサコンピュータ
システムは、複数のCPU31,32,33が設けられ
ている。各CPU31,32,33は、それぞれキャッ
シュ34,35,36を装備している。CPU31,3
2,33は、バス37を介して共有メモリ38と接続さ
れる。
明する。図1は本実施例に係わるマルチプロセッサコン
ピュータシステムの概略構成を示すシステム構成図であ
る。図1に示すように、マルチプロセッサコンピュータ
システムは、複数のCPU31,32,33が設けられ
ている。各CPU31,32,33は、それぞれキャッ
シュ34,35,36を装備している。CPU31,3
2,33は、バス37を介して共有メモリ38と接続さ
れる。
【0015】共有メモリ38は、各CPU31,32,
33が、本発明によるスケジューリング方式を実行する
ためのスケジューラの機能を含むオペレーティングシス
テムを格納している。また、共有メモリ38には、実行
可能なスレッドのキュー(実行可能スレッドキュー3
9)が繋がれて格納され、またスリープキュー40が格
納される。
33が、本発明によるスケジューリング方式を実行する
ためのスケジューラの機能を含むオペレーティングシス
テムを格納している。また、共有メモリ38には、実行
可能なスレッドのキュー(実行可能スレッドキュー3
9)が繋がれて格納され、またスリープキュー40が格
納される。
【0016】図2は本発明によるスケジューリング方式
の機能を実現する構成を示す機能ブロック図である。図
2に示すように、本発明のスケジューラ56は、プロセ
ッサ数認識手段61、実行可能スレッド認識手段62、
スレッド所属プロセス認識手段63、プロセス中スレッ
ド数認識手段64、前回実行プロセッサ認識手段65、
及びディスパッチ手段66の機能が設けられている。
の機能を実現する構成を示す機能ブロック図である。図
2に示すように、本発明のスケジューラ56は、プロセ
ッサ数認識手段61、実行可能スレッド認識手段62、
スレッド所属プロセス認識手段63、プロセス中スレッ
ド数認識手段64、前回実行プロセッサ認識手段65、
及びディスパッチ手段66の機能が設けられている。
【0017】プロセッサ数認識手段61は、スケジュー
ラ56がスケジューリングを行なう際に、マルチプロセ
ッサコンピュータシステム中に存在するプロセッサの数
(P)を認識するものである。
ラ56がスケジューリングを行なう際に、マルチプロセ
ッサコンピュータシステム中に存在するプロセッサの数
(P)を認識するものである。
【0018】実行可能スレッド認識手段62は、現在、
マルチプロセッサコンピュータシステムで同時に実行可
能なスレッドの数(T)を認識するものである。スレッ
ド所属プロセス認識手段63は、実行可能スレッド認識
手段62によって認識された実行可能スレッドキューに
繋がれたスレッドの数(T)が特定の値(N)を越える
ときに、後述するプロセス中スレッド数認識手段64で
認識されたスレッドの数が複数であれば、実行可能スレ
ッドキューの中からプライオリティの最も高いスレッド
と同じプロセスに属するスレッドを認識して実行可能ス
レッドキューからまとめて取り外すものである。
マルチプロセッサコンピュータシステムで同時に実行可
能なスレッドの数(T)を認識するものである。スレッ
ド所属プロセス認識手段63は、実行可能スレッド認識
手段62によって認識された実行可能スレッドキューに
繋がれたスレッドの数(T)が特定の値(N)を越える
ときに、後述するプロセス中スレッド数認識手段64で
認識されたスレッドの数が複数であれば、実行可能スレ
ッドキューの中からプライオリティの最も高いスレッド
と同じプロセスに属するスレッドを認識して実行可能ス
レッドキューからまとめて取り外すものである。
【0019】プロセス中スレッド数認識手段64は、実
行可能スレッド認識手段62によって認識されたスレッ
ド数を認識するものである。前回実行プロセッサ認識手
段65は、実行可能スレッド認識手段62によって認識
されたスレッドが、ディスパッチ手段66により複数の
CPU31,32,33の何れかにディスパッチされる
際に、スレッドを前回実行したプロセッサに再びディス
パッチするようにディスパッチ時期を調整するものであ
る。
行可能スレッド認識手段62によって認識されたスレッ
ド数を認識するものである。前回実行プロセッサ認識手
段65は、実行可能スレッド認識手段62によって認識
されたスレッドが、ディスパッチ手段66により複数の
CPU31,32,33の何れかにディスパッチされる
際に、スレッドを前回実行したプロセッサに再びディス
パッチするようにディスパッチ時期を調整するものであ
る。
【0020】ディスパッチ手段66は、実行可能スレッ
ド認識手段62によって認識され、スレッド所属プロセ
ス認識手段63によって取り外された複数のスレッド
を、前回実行プロセッサ認識手段65の調整に従って、
CPU31,32,33の何れか(前回実行したCP
U)にまとめてディスパッチするものである。
ド認識手段62によって認識され、スレッド所属プロセ
ス認識手段63によって取り外された複数のスレッド
を、前回実行プロセッサ認識手段65の調整に従って、
CPU31,32,33の何れか(前回実行したCP
U)にまとめてディスパッチするものである。
【0021】次に、本実施例のスケジューラ56の動作
について、図3に示すフローチャートを参照しながら説
明する。まず、スケジューラ56は、スケジュール要求
があると、プロセッサ数認識手段11により、マルチプ
ロセッサコンピュータシステム中に存在するプロセッサ
の数(P)を認識する(ステップS1,S2)。
について、図3に示すフローチャートを参照しながら説
明する。まず、スケジューラ56は、スケジュール要求
があると、プロセッサ数認識手段11により、マルチプ
ロセッサコンピュータシステム中に存在するプロセッサ
の数(P)を認識する(ステップS1,S2)。
【0022】また同時に、スケジューラ56は、実行可
能スレッド認識手段62により、共有メモリ38の中の
実行可能スレッドキューに繋がれた、現在、実行可能な
スレッドの数(T)を認識する(ステップS3)。
能スレッド認識手段62により、共有メモリ38の中の
実行可能スレッドキューに繋がれた、現在、実行可能な
スレッドの数(T)を認識する(ステップS3)。
【0023】例えば、ここでは、図4に示すように、シ
ステム中には2つのプロセスP1とP2があり、それぞ
れのプロセスP1,P2に属している複数のスレッド
(プロセスP1にはT11,T12,T13、プロセスP2に
はT21,T22)があるものとして説明する。
ステム中には2つのプロセスP1とP2があり、それぞ
れのプロセスP1,P2に属している複数のスレッド
(プロセスP1にはT11,T12,T13、プロセスP2に
はT21,T22)があるものとして説明する。
【0024】共有メモリ38の中には実行可能状態のス
レッドを繋いでおく実行可能スレッドキュー、スリープ
状態のスレッドを繋いでおくスリープキューがおかれて
いる。各キューには、図1に示すように、異なるプロセ
スに属するスレッドが混在している。
レッドを繋いでおく実行可能スレッドキュー、スリープ
状態のスレッドを繋いでおくスリープキューがおかれて
いる。各キューには、図1に示すように、異なるプロセ
スに属するスレッドが混在している。
【0025】システムで実行可能なスレッドの数(T)
を認識した結果、マルチプロセッサコンピュータシステ
ムで実行可能なスレッドの数(T)が、ある特定の値
(N)を越えるようならば、スケジューラ56は、実行
可能なスレッドを、複数(M)まとめて実行可能スレッ
ドキューから取り外す。
を認識した結果、マルチプロセッサコンピュータシステ
ムで実行可能なスレッドの数(T)が、ある特定の値
(N)を越えるようならば、スケジューラ56は、実行
可能なスレッドを、複数(M)まとめて実行可能スレッ
ドキューから取り外す。
【0026】すなわち、スケジューラ56は、スレッド
の数(T)がある特定の値(N)より大きければ、最初
にプライオリティ制御に基づき、一番プライオリティの
高いスレッド、すなわち実行可能スレッドキュー17の
先頭に位置するスレッド(T11)を取り外す。
の数(T)がある特定の値(N)より大きければ、最初
にプライオリティ制御に基づき、一番プライオリティの
高いスレッド、すなわち実行可能スレッドキュー17の
先頭に位置するスレッド(T11)を取り外す。
【0027】なお、ある特定の値(N)は、本発明によ
るスケジューリング方式を適用することによって十分に
効果が得られるスレッド数であるかを判別するための基
準値である。すなわち、特定の値(N)よりスレッド数
が少ない場合には、大きな問題とならないため本方式を
用いないこともできるが、特定の値(N)よりスレッド
数が多い場合には、本方式を用いたスケジューリングを
行なうことにより、大きな効果が得られる。
るスケジューリング方式を適用することによって十分に
効果が得られるスレッド数であるかを判別するための基
準値である。すなわち、特定の値(N)よりスレッド数
が少ない場合には、大きな問題とならないため本方式を
用いないこともできるが、特定の値(N)よりスレッド
数が多い場合には、本方式を用いたスケジューリングを
行なうことにより、大きな効果が得られる。
【0028】スケジューラ56は、スレッド所属プロセ
ス認識手段13により、実行可能スレッドキューの中か
らスレッドT11と同じプロセスに所属するスレッド、図
1に示す例ではスレッドT12,T13を認識し、これら同
じプロセスに属するスレッドT11,T12,T13をまとめ
て実行可能スレッドキューからまとめて取り外す(ステ
ップS5,S6)。
ス認識手段13により、実行可能スレッドキューの中か
らスレッドT11と同じプロセスに所属するスレッド、図
1に示す例ではスレッドT12,T13を認識し、これら同
じプロセスに属するスレッドT11,T12,T13をまとめ
て実行可能スレッドキューからまとめて取り外す(ステ
ップS5,S6)。
【0029】次に、スケジューラ56は、実行可能スレ
ッドキューから取り外したM個(例では3個)のスレッ
ドを、例えばCPU31にディスパッチ(図1中41)
する(ステップS8)。
ッドキューから取り外したM個(例では3個)のスレッ
ドを、例えばCPU31にディスパッチ(図1中41)
する(ステップS8)。
【0030】この際、スケジューラ56は、スレッドの
前回実行プロセッサ認識手段18によって、できる限り
スレッドが前回実行したプロセッサに再びディスパッチ
されるようにディスパッチ時期を調整する。
前回実行プロセッサ認識手段18によって、できる限り
スレッドが前回実行したプロセッサに再びディスパッチ
されるようにディスパッチ時期を調整する。
【0031】CPU31は、まとめてディスパッチされ
たM個のスレッドを順番に実行していく。この際、ディ
スパッチされたM個のスレッドは、全ての実行が終わる
までキューには戻らず、CPU31に割り当てられたま
まとなる(ステップS9)。この時、キャッシュ34に
は、割り当てられた複数のスレッドで扱われる共有デー
タが1度格納されていれば、各スレッドを実行する毎
に、共有メモリ38や他のCPU32,33のキャッシ
ュ35,36に格納されたデータを読み込む必要がな
い。
たM個のスレッドを順番に実行していく。この際、ディ
スパッチされたM個のスレッドは、全ての実行が終わる
までキューには戻らず、CPU31に割り当てられたま
まとなる(ステップS9)。この時、キャッシュ34に
は、割り当てられた複数のスレッドで扱われる共有デー
タが1度格納されていれば、各スレッドを実行する毎
に、共有メモリ38や他のCPU32,33のキャッシ
ュ35,36に格納されたデータを読み込む必要がな
い。
【0032】スケジューラ56は、M個のスレッド全て
の実行が終わった所で、M個のスレッドをまとめて実行
可能スレッドキュー、あるいはスリープキューに戻す
(図1中42、ステップS10)。
の実行が終わった所で、M個のスレッドをまとめて実行
可能スレッドキュー、あるいはスリープキューに戻す
(図1中42、ステップS10)。
【0033】このようにして、共有メモリ38中に格納
された実行可能スレッドキューに繋がれた複数のスレッ
ドから、同じプロセスに所属するスレッドをまとめてC
PU31にディスパッチすることにより、各スレッドを
実行する際、キャッシュ34に格納された、複数のスレ
ッドで共有される共有データを利用することができる。
すなわち、キャッシュ34へのデータ読み込みが必要と
なる可能性が低く、処理時間が短縮され、またバス37
のトランザクション量を低減させることができる。
された実行可能スレッドキューに繋がれた複数のスレッ
ドから、同じプロセスに所属するスレッドをまとめてC
PU31にディスパッチすることにより、各スレッドを
実行する際、キャッシュ34に格納された、複数のスレ
ッドで共有される共有データを利用することができる。
すなわち、キャッシュ34へのデータ読み込みが必要と
なる可能性が低く、処理時間が短縮され、またバス37
のトランザクション量を低減させることができる。
【0034】また、CPU31で実行されたスレッドを
1つづつ戻すのではなく、まとめて戻すことで、同じプ
ロセスに属するスレッドがまとまっているのを再び分散
するのを防ぐことができる。これにより、同じプロセス
に属するスレッドが、1つづつ異なるCPUにスケジュ
ーリングされないようにでき、またコストも低減させる
ことができる。
1つづつ戻すのではなく、まとめて戻すことで、同じプ
ロセスに属するスレッドがまとまっているのを再び分散
するのを防ぐことができる。これにより、同じプロセス
に属するスレッドが、1つづつ異なるCPUにスケジュ
ーリングされないようにでき、またコストも低減させる
ことができる。
【0035】また、スレッドをまとめてディスパッチす
る際に、前回と同じCPUにディスパッチするように調
整することで、キャッシュに前回ディスパッチされた際
に格納されたデータが残っている可能性が、不特定のC
PUにディスパッチする場合よりも高いため、各CPU
31,32,33に設けられたキャッシュ34,35,
36を有効に利用することができる。
る際に、前回と同じCPUにディスパッチするように調
整することで、キャッシュに前回ディスパッチされた際
に格納されたデータが残っている可能性が、不特定のC
PUにディスパッチする場合よりも高いため、各CPU
31,32,33に設けられたキャッシュ34,35,
36を有効に利用することができる。
【0036】
【発明の効果】以上のように本発明によれば、マルチス
レッド構造のオペレーティングシステムにおいて、スレ
ッドをディスパッチする場合には、そのスレッドが属し
ているプロセスと実行するプロセッサを考慮することに
よって、キャッシュを有効利用できるものである。
レッド構造のオペレーティングシステムにおいて、スレ
ッドをディスパッチする場合には、そのスレッドが属し
ているプロセスと実行するプロセッサを考慮することに
よって、キャッシュを有効利用できるものである。
【図1】本発明の一実施例に係わるマルチプロセッサコ
ンピュータシステムの概略構成を示すシステム構成図。
ンピュータシステムの概略構成を示すシステム構成図。
【図2】本発明によるスケジューリング方式の機能を実
現する構成を示す機能ブロック図。
現する構成を示す機能ブロック図。
【図3】本実施例によるスケジューリング方式の動作手
順を説明するためのフローチャート。
順を説明するためのフローチャート。
【図4】本実施例におけるプロセスの一例を示す図。
31,32,33…CPU、34,35,36…キャッ
シュ、37…バス、38…共有メモリ、36…スケジュ
ーラ、61…プロセッサ数認識手段、62…実行可能ス
レッド認識手段、63…スレッド所属プロセス認識手
段、64…プロセス中スレッド数認識手段、65…前回
実行プロセッサ認識手段、66…ディスパッチ手段
シュ、37…バス、38…共有メモリ、36…スケジュ
ーラ、61…プロセッサ数認識手段、62…実行可能ス
レッド認識手段、63…スレッド所属プロセス認識手
段、64…プロセス中スレッド数認識手段、65…前回
実行プロセッサ認識手段、66…ディスパッチ手段
Claims (3)
- 【請求項1】 1つのプロセス中に複数のスレッドを定
義することが可能なマルチスレッド構造のオペレーティ
ングシステムにより動作する、プロセッサ毎にキャッシ
ュが設けられたマルチプロセッサコンピュータシステム
において、 実行可能スレッドのキューに繋がれた実行可能スレッド
の数を認識する実行可能スレッド認識手段と、 前記実行可能スレッド認識手段によって認識された実行
可能スレッドのうち、最優先にディスパッチ対象とされ
るスレッドと同じプロセスに属しているスレッドを認識
する所属プロセス認識手段と、 前記所属プロセス認識手段によって認識されたスレッド
が複数で、かつ前記実行可能スレッドのキューに繋がれ
たスレッドの数が、ある特定の値より多い場合に、前記
所属プロセス認識手段によって認識された複数のスレッ
ドをまとめて、所定のプロセッサにディスパッチするデ
ィスパッチ手段と、 を具備したことを特徴とするスケジューリング方式。 - 【請求項2】 前記ディスパッチ手段によってディスパ
ッチされた複数のスレッドは、プロセッサでまとめて実
行された後、まとめて実行可能スレッドのキューに戻さ
れることを特徴とする請求項1記載のスケジューリング
方式。 - 【請求項3】 前記ディスパッチ手段によりディスパッ
チされる各スレッドが、前回どのプロセッサ上で実行さ
れたかを認識する前回実行プロセッサ認識手段をさらに
具備し、 前記ディスパッチ手段が前回と同じプロセッサ上にスレ
ッドをディスパッチするように、ディスパッチ時期を調
整することを特徴とする請求項1記載のスケジューリン
グ方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6095146A JPH07302246A (ja) | 1994-05-09 | 1994-05-09 | スケジューリング方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6095146A JPH07302246A (ja) | 1994-05-09 | 1994-05-09 | スケジューリング方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07302246A true JPH07302246A (ja) | 1995-11-14 |
Family
ID=14129666
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6095146A Pending JPH07302246A (ja) | 1994-05-09 | 1994-05-09 | スケジューリング方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07302246A (ja) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2004044745A1 (ja) * | 2002-11-13 | 2004-05-27 | Fujitsu Limited | マルチスレッディングプロセッサにおけるスケジューリング方法およびマルチスレッディングプロセッサ |
| US6751478B1 (en) | 2000-01-17 | 2004-06-15 | Fujitsu Limited | Mobile-service switch, home memory node, and gateway switch |
| KR100466726B1 (ko) * | 2000-06-20 | 2005-01-24 | 인터내셔널 비지네스 머신즈 코포레이션 | 병렬 처리 방법 및 프로그램 저장 장치 |
| KR100608220B1 (ko) * | 2003-06-27 | 2006-08-08 | 가부시끼가이샤 도시바 | 정보처리시스템 및 메모리 관리방법과 이 방법을 실행하기 위한 프로그램을 기록한 기록매체 |
| US7159216B2 (en) | 2001-11-07 | 2007-01-02 | International Business Machines Corporation | Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system |
| KR100732088B1 (ko) * | 2005-09-02 | 2007-06-27 | 엘지노텔 주식회사 | 멀티 스레드 환경에서의 호 처리 스케줄링 방법 |
| US7954102B2 (en) | 2002-11-13 | 2011-05-31 | Fujitsu Limited | Scheduling method in multithreading processor, and multithreading processor |
| JP2011123494A (ja) * | 2009-12-14 | 2011-06-23 | Intel Corp | グラフベースのネットワークを横断するための方法及びシステム |
-
1994
- 1994-05-09 JP JP6095146A patent/JPH07302246A/ja active Pending
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6751478B1 (en) | 2000-01-17 | 2004-06-15 | Fujitsu Limited | Mobile-service switch, home memory node, and gateway switch |
| KR100466726B1 (ko) * | 2000-06-20 | 2005-01-24 | 인터내셔널 비지네스 머신즈 코포레이션 | 병렬 처리 방법 및 프로그램 저장 장치 |
| US7159216B2 (en) | 2001-11-07 | 2007-01-02 | International Business Machines Corporation | Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system |
| US8122451B2 (en) | 2001-11-07 | 2012-02-21 | International Business Machines Corporation | Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system |
| WO2004044745A1 (ja) * | 2002-11-13 | 2004-05-27 | Fujitsu Limited | マルチスレッディングプロセッサにおけるスケジューリング方法およびマルチスレッディングプロセッサ |
| US7954102B2 (en) | 2002-11-13 | 2011-05-31 | Fujitsu Limited | Scheduling method in multithreading processor, and multithreading processor |
| KR100608220B1 (ko) * | 2003-06-27 | 2006-08-08 | 가부시끼가이샤 도시바 | 정보처리시스템 및 메모리 관리방법과 이 방법을 실행하기 위한 프로그램을 기록한 기록매체 |
| KR100732088B1 (ko) * | 2005-09-02 | 2007-06-27 | 엘지노텔 주식회사 | 멀티 스레드 환경에서의 호 처리 스케줄링 방법 |
| JP2011123494A (ja) * | 2009-12-14 | 2011-06-23 | Intel Corp | グラフベースのネットワークを横断するための方法及びシステム |
| CN102110437A (zh) * | 2009-12-14 | 2011-06-29 | 英特尔公司 | 遍历基于图的网络的方法和系统 |
| US8484154B2 (en) | 2009-12-14 | 2013-07-09 | Intel Corporation | Methods and systems to traverse graph-based networks |
| US10229670B2 (en) | 2009-12-14 | 2019-03-12 | Intel Corporation | Methods and systems to traverse graph-based networks |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6779182B1 (en) | Real time thread dispatcher for multiprocessor applications | |
| US7318128B1 (en) | Methods and apparatus for selecting processes for execution | |
| US5469571A (en) | Operating system architecture using multiple priority light weight kernel task based interrupt handling | |
| US6532509B1 (en) | Arbitrating command requests in a parallel multi-threaded processing system | |
| US8132178B2 (en) | System and method for delayed priority boost | |
| US20050125793A1 (en) | Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment | |
| US20120260257A1 (en) | Scheduling threads in multiprocessor computer | |
| US20040172631A1 (en) | Concurrent-multitasking processor | |
| US20030177288A1 (en) | Multiprocessor system | |
| EP2187316A1 (en) | Gated storage system and synchronization controller and method for multiple multi-threaded processors | |
| EP2131278A1 (en) | Scheduling of multiple tasks in a system including multiple computing elements | |
| JP2005517228A (ja) | スケジューリングの順序付けられたステージの基準を使用してリクエストをスケジューリングする方法及び装置 | |
| US7203823B2 (en) | Partial and start-over threads in embedded real-time kernel | |
| US7565659B2 (en) | Light weight context switching | |
| CN119248435A (zh) | 基于多线程对任务进行处理的方法及系统 | |
| JPH07302246A (ja) | スケジューリング方式 | |
| CN102193828A (zh) | 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目 | |
| US7711925B2 (en) | Information-processing device with transaction processor for executing subset of instruction set where if transaction processor cannot efficiently execute the instruction it is sent to general-purpose processor via interrupt | |
| US7590990B2 (en) | Computer system | |
| JPH07160656A (ja) | 外部割込み制御方法 | |
| CN119248434A (zh) | 基于配置队列数据进行任务处理的方法及系统 | |
| CN115599508A (zh) | Cpu及任务调度方法 | |
| CN121077987B (zh) | 一种队列切换方法、电子设备及存储介质 | |
| JPH0836553A (ja) | マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法 | |
| JPH11249917A (ja) | 並列型計算機及びそのバッチ処理方法及び記録媒体 |