[go: up one dir, main page]

JPH07302246A - Scheduling system - Google Patents

Scheduling system

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
recognition means
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
JP6095146A
Other languages
Japanese (ja)
Inventor
Keisuke Yasui
啓介 安井
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6095146A priority Critical patent/JPH07302246A/en
Publication of JPH07302246A publication Critical patent/JPH07302246A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To effectively utilize a cache provided in a processor by considering a process to which a thread belongs in the case of dispatching the thread and dispatching the plural threads altogether. CONSTITUTION:An executable thread recognition means 62 recognizes the number of executable threads connected to an executable thread queue and a thread belonging process recognition means 63 most preferentially recognizes the thread belonging to the same process as the thread of a dispatching object among the executable threads recognized in the executable thread recognition means 62. When the plural threads are recognized in the thread belonging process recognition means 63 and the number of the threads connected to the executable thread queue is larger than a certain specified value, a dispatching means 66 dispatches the plural threads recognized in the thread belonging process recognition means 63 altogether to a prescribed processor. Thus, the cache provided in the processor is effectively utilized.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、マルチスレッド構造の
オペレーティングシステムにおけるスケジューリング方
式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a scheduling method in an operating system having a multithread structure.

【0002】[0002]

【従来の技術】現在、多くのマルチプロセッサコンピュ
ータシステムでは、各プロセッサがキャッシュを持つこ
とでメモリへのアクセス回数を減らし処理速度を向上さ
せている。
2. Description of the Related Art Currently, in many multiprocessor computer systems, each processor has a cache to reduce the number of accesses to a memory and improve the processing speed.

【0003】ところで、最近では1つのプロセス中に複
数のスレッドを定義することが可能なマルチスレッド構
造のオペレーティングシステムが一般的になってきてい
る。このオペレーティングシステムの長所は、同一プロ
セス中のスレッドが同じアドレス空間を共有することが
できるため、プロセッサで実行するスレッドをスイッチ
する際にアドレス空間をスイッチする必要がなくなり、
キャッシュやTLB(table look-up buffer:アドレス
変換バッファ)を有効に利用できる点にある。
By the way, recently, an operating system having a multi-thread structure capable of defining a plurality of threads in one process has become common. The advantage of this operating system is that threads in the same process can share the same address space, so there is no need to switch the address space when switching threads running on the processor,
The point is that the cache and TLB (table look-up buffer) can be effectively used.

【0004】ところで、あるプロセッサにより処理され
ているスレッドが、プリエンプトやブロックなどによっ
て切替えられる時、オペレーティングシステムのプロセ
ス管理機能であるスケジューラは、実行可能スレッドの
キューの中から一番プライオリティの高いスレッドをプ
ロセッサにディスパッチする。
By the way, when a thread processed by a certain processor is switched by preemption or block, the scheduler, which is the process management function of the operating system, selects the thread with the highest priority from the queue of executable threads. Dispatch to the processor.

【0005】ここでもし、実行可能スレッドのキューの
中に、同一プロセスに属する複数のスレッドがある場
合、それらのスレッドが同じプロセッサに割り当てられ
る確率はプロセッサの数が増えるのに伴い低くなる。
Here, if there are a plurality of threads belonging to the same process in the queue of executable threads, the probability that these threads will be assigned to the same processor decreases as the number of processors increases.

【0006】プロセッサにスレッドが割り当てられた
際、先に同一プロセス中のスレッドが同一プロセッサに
割り当てられていると、そのプロセッサのキャッシュの
中に共有データが残っている可能性が高い。この場合、
スレッドを実行する際に、共有データを他のプロセッサ
のキャッシュや共有メモリからキャッシュに持ってくる
必要がない。こうした場合には、処理時間が短縮され、
またバスのトランザクションが低減される等、効率的で
ある。
When a thread is assigned to a processor and a thread in the same process is assigned to the same processor, shared data is likely to remain in the cache of the processor. in this case,
When executing a thread, it is not necessary to bring shared data into the cache from another processor's cache or shared memory. In such cases, the processing time is shortened,
Further, it is efficient in that bus transactions are reduced.

【0007】一方、同一プロセス中のスレッドが別々の
プロセッサに割り当てられた場合には、共有データをそ
れぞれのプロセッサでキャッシュに取り込まなければな
らないため、同一プロセッサに割り当てられる場合と比
べると非効率的である。
On the other hand, when threads in the same process are assigned to different processors, shared data must be fetched in the cache by each processor, which is inefficient compared to the case of being assigned to the same processor. is there.

【0008】現在のマルチスレッド構造のオペレーティ
ングシステムでは、プロセッサにスレッドを割り当てる
場合に、スレッドがどのプロセスに属しているかという
ようなことを考慮していない。すなわち、同一プロセス
中のスレッドが同一プロセッサで実行される確率が低い
ため、キャッシュが有効利用されていないということに
なる。
In the current multithreaded operating system, when a thread is assigned to a processor, it does not consider which process the thread belongs to. That is, the probability that threads in the same process are executed by the same processor is low, so the cache is not effectively used.

【0009】[0009]

【発明が解決しようとする課題】このように従来のマル
チプロセッサコンピュータシステム上で動作する現在の
マルチスレッド構造のオペレーテイングシステムでは、
プロセッサにスレッドを割り当てる場合に、そのスレッ
ドがどのプロセスに属しているかというようなことを考
慮していなかった。このため、同一プロセス中のスレッ
ドが同一プロセッサで実行される確率が低くなってしま
い、各プロセッサでキャッシュへの共有データ読み込み
が発生し、プロセッサに装備されたキャッシュが十分に
有効利用されていないという問題があった。
Thus, in the current multithreaded operating system operating on the conventional multiprocessor computer system,
When assigning a thread to a processor, we did not consider what process the thread belonged to. As a result, the probability that threads in the same process are executed by the same processor will be low, shared data will be read into the cache by each processor, and the cache equipped in the processor will not be used effectively. There was a problem.

【0010】本発明は前記のような事情を考慮してなさ
れたもので、スレッドをディスパッチする場合には、そ
のスレッドが属しているプロセスと実行するプロセッサ
を考慮することによってキャッシュを有効利用すること
が可能なスケジューリング方式を提供することを目的と
する。
The present invention has been made in consideration of the above circumstances, and when a thread is dispatched, the cache is effectively used by considering the process to which the thread belongs and the processor to be executed. It is an object of the present invention to provide a scheduling method capable of performing.

【0011】[0011]

【課題を解決するための手段】本発明は、1つのプロセ
ス中に複数のスレッドを定義することが可能なマルチス
レッド構造のオペレーティングシステムにより動作す
る、プロセッサ毎にキャッシュが設けられたマルチプロ
セッサコンピュータシステムにおいて、実行可能スレッ
ドのキューに繋がれた実行可能スレッドの数を認識する
実行可能スレッド認識手段と、前記実行可能スレッド認
識手段によって認識された実行可能スレッドのうち、最
優先にディスパッチ対象とされるスレッドと同じプロセ
スに属しているスレッドを認識する所属プロセス認識手
段と、前記所属プロセス認識手段によって認識されたス
レッドが複数で、かつ前記実行可能スレッドのキューに
繋がれたスレッドの数が、ある特定の値より多い場合
に、前記所属プロセス認識手段によって認識された複数
のスレッドをまとめて、所定のプロセッサにディスパッ
チするディスパッチ手段とを具備したことを特徴とす
る。
SUMMARY OF THE INVENTION The present invention is a multiprocessor computer system provided with a cache for each processor, which is operated by an operating system having a multithread structure capable of defining a plurality of threads in one process. In the above, in the executable thread recognition means for recognizing the number of the executable threads connected to the queue of the executable threads and the executable thread recognized by the executable thread recognition means, the dispatch target is given the highest priority. There is a certain number of belonging processes recognizing means for recognizing threads belonging to the same process as the thread, and a plurality of threads recognized by the belonging process recognizing means, and the number of threads connected to the queue of the executable threads is a certain value. If there are more than Together multiple threads that are recognized by identification means, characterized by comprising a dispatch unit for dispatching to a predetermined processor.

【0012】また、前記ディスパッチ手段によりディス
パッチされる各スレッドが、前回どのプロセッサ上で実
行されたかを認識する前回実行プロセッサ認識手段をさ
らに具備し、前記ディスパッチ手段が前回と同じプロセ
ッサ上にスレッドをディスパッチするように、ディスパ
ッチ時期を調整することを特徴とする。
[0012] Further, each thread dispatched by the dispatch means further comprises a last-execution processor recognition means for recognizing on which processor the thread was last executed, and the dispatch means dispatches the thread on the same processor as the last time. As described above, the dispatch time is adjusted.

【0013】[0013]

【作用】このような構成によれば、マルチプロセッサコ
ンピュータシステム上で動作する、マルチスレッド構造
のオペレーティングシステムにおいて、スレッドをディ
スパッチする場合には、そのスレッドが属しているプロ
セスを考慮し、複数のスレッドをまとめてディスパッチ
することによって、プロセッサに設けられたキャッシュ
が有効に利用される。
According to such a configuration, in a multithreaded operating system operating on a multiprocessor computer system, when dispatching a thread, the process to which the thread belongs is taken into consideration, and a plurality of threads are considered. The cache provided in the processor is effectively used by dispatching all the.

【0014】[0014]

【実施例】以下、図面を参照して本発明の一実施例を説
明する。図1は本実施例に係わるマルチプロセッサコン
ピュータシステムの概略構成を示すシステム構成図であ
る。図1に示すように、マルチプロセッサコンピュータ
システムは、複数のCPU31,32,33が設けられ
ている。各CPU31,32,33は、それぞれキャッ
シュ34,35,36を装備している。CPU31,3
2,33は、バス37を介して共有メモリ38と接続さ
れる。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a system configuration diagram showing a schematic configuration of a multiprocessor computer system according to this embodiment. As shown in FIG. 1, the multiprocessor computer system is provided with a plurality of CPUs 31, 32, 33. Each CPU 31, 32, 33 is equipped with a cache 34, 35, 36, respectively. CPU31,3
2, 33 are connected to the shared memory 38 via the bus 37.

【0015】共有メモリ38は、各CPU31,32,
33が、本発明によるスケジューリング方式を実行する
ためのスケジューラの機能を含むオペレーティングシス
テムを格納している。また、共有メモリ38には、実行
可能なスレッドのキュー(実行可能スレッドキュー3
9)が繋がれて格納され、またスリープキュー40が格
納される。
The shared memory 38 includes CPUs 31, 32,
33 stores an operating system including a function of a scheduler for executing the scheduling method according to the present invention. In the shared memory 38, a queue of executable threads (executable thread queue 3
9) are connected and stored, and the sleep queue 40 is also stored.

【0016】図2は本発明によるスケジューリング方式
の機能を実現する構成を示す機能ブロック図である。図
2に示すように、本発明のスケジューラ56は、プロセ
ッサ数認識手段61、実行可能スレッド認識手段62、
スレッド所属プロセス認識手段63、プロセス中スレッ
ド数認識手段64、前回実行プロセッサ認識手段65、
及びディスパッチ手段66の機能が設けられている。
FIG. 2 is a functional block diagram showing a configuration for realizing the function of the scheduling system according to the present invention. As shown in FIG. 2, the scheduler 56 of the present invention includes a processor number recognition unit 61, an executable thread recognition unit 62,
Thread belonging process recognition means 63, in-process thread number recognition means 64, previously executed processor recognition means 65,
And the function of the dispatch means 66 is provided.

【0017】プロセッサ数認識手段61は、スケジュー
ラ56がスケジューリングを行なう際に、マルチプロセ
ッサコンピュータシステム中に存在するプロセッサの数
(P)を認識するものである。
The processor number recognition means 61 recognizes the number (P) of processors existing in the multiprocessor computer system when the scheduler 56 performs scheduling.

【0018】実行可能スレッド認識手段62は、現在、
マルチプロセッサコンピュータシステムで同時に実行可
能なスレッドの数(T)を認識するものである。スレッ
ド所属プロセス認識手段63は、実行可能スレッド認識
手段62によって認識された実行可能スレッドキューに
繋がれたスレッドの数(T)が特定の値(N)を越える
ときに、後述するプロセス中スレッド数認識手段64で
認識されたスレッドの数が複数であれば、実行可能スレ
ッドキューの中からプライオリティの最も高いスレッド
と同じプロセスに属するスレッドを認識して実行可能ス
レッドキューからまとめて取り外すものである。
The executable thread recognition means 62 is currently
It recognizes the number (T) of threads that can be simultaneously executed in a multiprocessor computer system. When the number (T) of threads connected to the executable thread queue recognized by the executable thread recognition unit 62 exceeds a specific value (N), the thread belonging process recognition unit 63 determines the number of in-process threads to be described later. If the number of threads recognized by the recognition unit 64 is plural, the threads belonging to the same process as the thread having the highest priority are recognized from the executable thread queue and are collectively removed from the executable thread queue.

【0019】プロセス中スレッド数認識手段64は、実
行可能スレッド認識手段62によって認識されたスレッ
ド数を認識するものである。前回実行プロセッサ認識手
段65は、実行可能スレッド認識手段62によって認識
されたスレッドが、ディスパッチ手段66により複数の
CPU31,32,33の何れかにディスパッチされる
際に、スレッドを前回実行したプロセッサに再びディス
パッチするようにディスパッチ時期を調整するものであ
る。
The in-process thread number recognition means 64 recognizes the number of threads recognized by the executable thread recognition means 62. When the thread recognized by the executable thread recognition unit 62 is dispatched to any of the plurality of CPUs 31, 32, 33 by the dispatch unit 66, the last-execution processor recognition unit 65 returns to the processor that executed the thread again. The dispatch timing is adjusted so as to be dispatched.

【0020】ディスパッチ手段66は、実行可能スレッ
ド認識手段62によって認識され、スレッド所属プロセ
ス認識手段63によって取り外された複数のスレッド
を、前回実行プロセッサ認識手段65の調整に従って、
CPU31,32,33の何れか(前回実行したCP
U)にまとめてディスパッチするものである。
The dispatch means 66 recognizes the plurality of threads recognized by the executable thread recognition means 62 and removed by the thread belonging process recognition means 63 according to the adjustment of the previously executed processor recognition means 65.
Any of the CPUs 31, 32, 33 (the CP that was previously executed
U) is to be collectively dispatched.

【0021】次に、本実施例のスケジューラ56の動作
について、図3に示すフローチャートを参照しながら説
明する。まず、スケジューラ56は、スケジュール要求
があると、プロセッサ数認識手段11により、マルチプ
ロセッサコンピュータシステム中に存在するプロセッサ
の数(P)を認識する(ステップS1,S2)。
Next, the operation of the scheduler 56 of this embodiment will be described with reference to the flow chart shown in FIG. First, when the scheduler 56 receives a schedule request, the processor number recognition unit 11 recognizes the number (P) of processors existing in the multiprocessor computer system (steps S1 and S2).

【0022】また同時に、スケジューラ56は、実行可
能スレッド認識手段62により、共有メモリ38の中の
実行可能スレッドキューに繋がれた、現在、実行可能な
スレッドの数(T)を認識する(ステップS3)。
At the same time, the scheduler 56 uses the executable thread recognition means 62 to recognize the number (T) of currently executable threads connected to the executable thread queue in the shared memory 38 (step S3). ).

【0023】例えば、ここでは、図4に示すように、シ
ステム中には2つのプロセスP1とP2があり、それぞ
れのプロセスP1,P2に属している複数のスレッド
(プロセスP1にはT11,T12,T13、プロセスP2に
はT21,T22)があるものとして説明する。
For example, here, as shown in FIG. 4, there are two processes P1 and P2 in the system, and a plurality of threads belonging to the respective processes P1 and P2 (T11, T12, It is assumed that T13 and process P2 have T21 and T22).

【0024】共有メモリ38の中には実行可能状態のス
レッドを繋いでおく実行可能スレッドキュー、スリープ
状態のスレッドを繋いでおくスリープキューがおかれて
いる。各キューには、図1に示すように、異なるプロセ
スに属するスレッドが混在している。
In the shared memory 38, there are an executable thread queue for connecting the threads in the executable state and a sleep queue for connecting the threads in the sleep state. As shown in FIG. 1, threads belonging to different processes are mixed in each queue.

【0025】システムで実行可能なスレッドの数(T)
を認識した結果、マルチプロセッサコンピュータシステ
ムで実行可能なスレッドの数(T)が、ある特定の値
(N)を越えるようならば、スケジューラ56は、実行
可能なスレッドを、複数(M)まとめて実行可能スレッ
ドキューから取り外す。
Number of threads that can be executed in the system (T)
If the number of threads (T) that can be executed in the multiprocessor computer system exceeds a certain value (N) as a result of recognizing the above, the scheduler 56 collects a plurality of (M) executable threads. Remove from the runnable thread queue.

【0026】すなわち、スケジューラ56は、スレッド
の数(T)がある特定の値(N)より大きければ、最初
にプライオリティ制御に基づき、一番プライオリティの
高いスレッド、すなわち実行可能スレッドキュー17の
先頭に位置するスレッド(T11)を取り外す。
That is, if the number of threads (T) is larger than a certain value (N), the scheduler 56 first sets the thread having the highest priority, that is, the head of the executable thread queue 17, based on the priority control. Remove the thread (T11) located.

【0027】なお、ある特定の値(N)は、本発明によ
るスケジューリング方式を適用することによって十分に
効果が得られるスレッド数であるかを判別するための基
準値である。すなわち、特定の値(N)よりスレッド数
が少ない場合には、大きな問題とならないため本方式を
用いないこともできるが、特定の値(N)よりスレッド
数が多い場合には、本方式を用いたスケジューリングを
行なうことにより、大きな効果が得られる。
It should be noted that the certain value (N) is a reference value for determining whether or not the number of threads is sufficiently effective by applying the scheduling method according to the present invention. That is, when the number of threads is smaller than the specific value (N), this method may not be used because it does not cause a big problem. However, when the number of threads is larger than the specific value (N), this method is used. A large effect can be obtained by performing the scheduling used.

【0028】スケジューラ56は、スレッド所属プロセ
ス認識手段13により、実行可能スレッドキューの中か
らスレッドT11と同じプロセスに所属するスレッド、図
1に示す例ではスレッドT12,T13を認識し、これら同
じプロセスに属するスレッドT11,T12,T13をまとめ
て実行可能スレッドキューからまとめて取り外す(ステ
ップS5,S6)。
The scheduler 56 recognizes the threads belonging to the same process as the thread T11 from the executable thread queue, that is, the threads T12 and T13 in the example shown in FIG. The belonging threads T11, T12, T13 are collectively removed from the executable thread queue (steps S5, S6).

【0029】次に、スケジューラ56は、実行可能スレ
ッドキューから取り外したM個(例では3個)のスレッ
ドを、例えばCPU31にディスパッチ(図1中41)
する(ステップS8)。
Next, the scheduler 56 dispatches M (three in the example) threads removed from the executable thread queue to, for example, the CPU 31 (41 in FIG. 1).
Yes (step S8).

【0030】この際、スケジューラ56は、スレッドの
前回実行プロセッサ認識手段18によって、できる限り
スレッドが前回実行したプロセッサに再びディスパッチ
されるようにディスパッチ時期を調整する。
At this time, the scheduler 56 adjusts the dispatch timing by the last-execution processor recognition means 18 of the thread so that the thread is re-dispatched to the last-executed processor as much as possible.

【0031】CPU31は、まとめてディスパッチされ
たM個のスレッドを順番に実行していく。この際、ディ
スパッチされたM個のスレッドは、全ての実行が終わる
までキューには戻らず、CPU31に割り当てられたま
まとなる(ステップS9)。この時、キャッシュ34に
は、割り当てられた複数のスレッドで扱われる共有デー
タが1度格納されていれば、各スレッドを実行する毎
に、共有メモリ38や他のCPU32,33のキャッシ
ュ35,36に格納されたデータを読み込む必要がな
い。
The CPU 31 sequentially executes the M threads dispatched collectively. At this time, the dispatched M threads do not return to the queue until all the executions are completed, and remain allocated to the CPU 31 (step S9). At this time, if shared data handled by a plurality of allocated threads is stored once in the cache 34, the shared memory 38 and the caches 35, 36 of the other CPUs 32, 33 are executed each time each thread is executed. There is no need to read the data stored in.

【0032】スケジューラ56は、M個のスレッド全て
の実行が終わった所で、M個のスレッドをまとめて実行
可能スレッドキュー、あるいはスリープキューに戻す
(図1中42、ステップS10)。
When the execution of all the M threads is completed, the scheduler 56 returns the M threads to the executable thread queue or the sleep queue collectively (42 in FIG. 1, step S10).

【0033】このようにして、共有メモリ38中に格納
された実行可能スレッドキューに繋がれた複数のスレッ
ドから、同じプロセスに所属するスレッドをまとめてC
PU31にディスパッチすることにより、各スレッドを
実行する際、キャッシュ34に格納された、複数のスレ
ッドで共有される共有データを利用することができる。
すなわち、キャッシュ34へのデータ読み込みが必要と
なる可能性が低く、処理時間が短縮され、またバス37
のトランザクション量を低減させることができる。
In this way, the threads belonging to the same process are collectively C from the plurality of threads connected to the executable thread queue stored in the shared memory 38.
By dispatching to the PU 31, it is possible to use shared data stored in the cache 34 and shared by a plurality of threads when executing each thread.
That is, there is a low possibility that data will need to be read into the cache 34, processing time will be shortened, and the bus 37
It is possible to reduce the transaction amount of.

【0034】また、CPU31で実行されたスレッドを
1つづつ戻すのではなく、まとめて戻すことで、同じプ
ロセスに属するスレッドがまとまっているのを再び分散
するのを防ぐことができる。これにより、同じプロセス
に属するスレッドが、1つづつ異なるCPUにスケジュ
ーリングされないようにでき、またコストも低減させる
ことができる。
By returning the threads executed by the CPU 31 collectively instead of returning them one by one, it is possible to prevent the threads belonging to the same process from being distributed again. As a result, threads belonging to the same process can be prevented from being scheduled to different CPUs one by one, and the cost can be reduced.

【0035】また、スレッドをまとめてディスパッチす
る際に、前回と同じCPUにディスパッチするように調
整することで、キャッシュに前回ディスパッチされた際
に格納されたデータが残っている可能性が、不特定のC
PUにディスパッチする場合よりも高いため、各CPU
31,32,33に設けられたキャッシュ34,35,
36を有効に利用することができる。
Further, when dispatching threads collectively, by adjusting so that they are dispatched to the same CPU as the previous time, it is unspecified that the data stored at the time of the previous dispatch in the cache may remain. C
Higher than when dispatching to PU, so each CPU
Caches 34, 35 provided in 31, 32, 33,
36 can be effectively used.

【0036】[0036]

【発明の効果】以上のように本発明によれば、マルチス
レッド構造のオペレーティングシステムにおいて、スレ
ッドをディスパッチする場合には、そのスレッドが属し
ているプロセスと実行するプロセッサを考慮することに
よって、キャッシュを有効利用できるものである。
As described above, according to the present invention, when a thread is dispatched in an operating system having a multi-thread structure, a cache can be created by considering a process to which the thread belongs and a processor to execute the thread. It can be effectively used.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の一実施例に係わるマルチプロセッサコ
ンピュータシステムの概略構成を示すシステム構成図。
FIG. 1 is a system configuration diagram showing a schematic configuration of a multiprocessor computer system according to an embodiment of the present invention.

【図2】本発明によるスケジューリング方式の機能を実
現する構成を示す機能ブロック図。
FIG. 2 is a functional block diagram showing a configuration for realizing the function of the scheduling system according to the present invention.

【図3】本実施例によるスケジューリング方式の動作手
順を説明するためのフローチャート。
FIG. 3 is a flowchart for explaining an operation procedure of the scheduling method according to the present embodiment.

【図4】本実施例におけるプロセスの一例を示す図。FIG. 4 is a diagram showing an example of a process in this embodiment.

【符号の説明】[Explanation of symbols]

31,32,33…CPU、34,35,36…キャッ
シュ、37…バス、38…共有メモリ、36…スケジュ
ーラ、61…プロセッサ数認識手段、62…実行可能ス
レッド認識手段、63…スレッド所属プロセス認識手
段、64…プロセス中スレッド数認識手段、65…前回
実行プロセッサ認識手段、66…ディスパッチ手段
31, 32, 33 ... CPU, 34, 35, 36 ... Cache, 37 ... Bus, 38 ... Shared memory, 36 ... Scheduler, 61 ... Processor number recognition means, 62 ... Executable thread recognition means, 63 ... Thread belonging process recognition Means, 64 ... In-process thread number recognition means, 65 ... Previously executed processor recognition means, 66 ... Dispatch means

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 1つのプロセス中に複数のスレッドを定
義することが可能なマルチスレッド構造のオペレーティ
ングシステムにより動作する、プロセッサ毎にキャッシ
ュが設けられたマルチプロセッサコンピュータシステム
において、 実行可能スレッドのキューに繋がれた実行可能スレッド
の数を認識する実行可能スレッド認識手段と、 前記実行可能スレッド認識手段によって認識された実行
可能スレッドのうち、最優先にディスパッチ対象とされ
るスレッドと同じプロセスに属しているスレッドを認識
する所属プロセス認識手段と、 前記所属プロセス認識手段によって認識されたスレッド
が複数で、かつ前記実行可能スレッドのキューに繋がれ
たスレッドの数が、ある特定の値より多い場合に、前記
所属プロセス認識手段によって認識された複数のスレッ
ドをまとめて、所定のプロセッサにディスパッチするデ
ィスパッチ手段と、 を具備したことを特徴とするスケジューリング方式。
1. In a multiprocessor computer system provided with a cache for each processor, which is operated by a multithread structure operating system capable of defining a plurality of threads in one process, a queue of executable threads is provided. An executable thread recognition unit that recognizes the number of connected executable threads, and among the executable threads recognized by the executable thread recognition unit, belongs to the same process as the thread that is the dispatch target with the highest priority. If a plurality of threads are recognized by the belonging process recognition means for recognizing threads and the belonging process recognition means, and the number of threads connected to the queue of the executable threads is larger than a certain specific value, Recognized by belonging process recognition means A scheduling method comprising: a dispatching unit that dispatches a plurality of threads together to a predetermined processor.
【請求項2】 前記ディスパッチ手段によってディスパ
ッチされた複数のスレッドは、プロセッサでまとめて実
行された後、まとめて実行可能スレッドのキューに戻さ
れることを特徴とする請求項1記載のスケジューリング
方式。
2. The scheduling method according to claim 1, wherein the plurality of threads dispatched by the dispatching unit are collectively executed by a processor and then returned to the queue of executable threads collectively.
【請求項3】 前記ディスパッチ手段によりディスパッ
チされる各スレッドが、前回どのプロセッサ上で実行さ
れたかを認識する前回実行プロセッサ認識手段をさらに
具備し、 前記ディスパッチ手段が前回と同じプロセッサ上にスレ
ッドをディスパッチするように、ディスパッチ時期を調
整することを特徴とする請求項1記載のスケジューリン
グ方式。
3. The previously executed processor recognition means for recognizing on which processor each thread dispatched by the dispatch means was executed last time, the dispatch means dispatches the thread on the same processor as the last time. The scheduling method according to claim 1, wherein the dispatch timing is adjusted so as to do so.
JP6095146A 1994-05-09 1994-05-09 Scheduling system Pending JPH07302246A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6095146A JPH07302246A (en) 1994-05-09 1994-05-09 Scheduling system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6095146A JPH07302246A (en) 1994-05-09 1994-05-09 Scheduling system

Publications (1)

Publication Number Publication Date
JPH07302246A true JPH07302246A (en) 1995-11-14

Family

ID=14129666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6095146A Pending JPH07302246A (en) 1994-05-09 1994-05-09 Scheduling system

Country Status (1)

Country Link
JP (1) JPH07302246A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004044745A1 (en) * 2002-11-13 2004-05-27 Fujitsu Limited Scheduling method in multithreading processor and multithreading processor
US6751478B1 (en) 2000-01-17 2004-06-15 Fujitsu Limited Mobile-service switch, home memory node, and gateway switch
KR100466726B1 (en) * 2000-06-20 2005-01-24 인터내셔널 비지네스 머신즈 코포레이션 Method of using a distinct flow of computational control as a reusable abstract data object
KR100608220B1 (en) * 2003-06-27 2006-08-08 가부시끼가이샤 도시바 Information processing system, memory management method and recording medium for storing program to execute the method
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 (en) * 2005-09-02 2007-06-27 엘지노텔 주식회사 Call Processing Scheduling in a Multi-Threaded Environment
US7954102B2 (en) 2002-11-13 2011-05-31 Fujitsu Limited Scheduling method in multithreading processor, and multithreading processor
JP2011123494A (en) * 2009-12-14 2011-06-23 Intel Corp Method and system to traverse graph-based network

Cited By (12)

* Cited by examiner, † Cited by third party
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 (en) * 2000-06-20 2005-01-24 인터내셔널 비지네스 머신즈 코포레이션 Method of using a distinct flow of computational control as a reusable abstract data object
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 (en) * 2002-11-13 2004-05-27 Fujitsu Limited Scheduling method in multithreading processor and multithreading processor
US7954102B2 (en) 2002-11-13 2011-05-31 Fujitsu Limited Scheduling method in multithreading processor, and multithreading processor
KR100608220B1 (en) * 2003-06-27 2006-08-08 가부시끼가이샤 도시바 Information processing system, memory management method and recording medium for storing program to execute the method
KR100732088B1 (en) * 2005-09-02 2007-06-27 엘지노텔 주식회사 Call Processing Scheduling in a Multi-Threaded Environment
JP2011123494A (en) * 2009-12-14 2011-06-23 Intel Corp Method and system to traverse graph-based network
CN102110437A (en) * 2009-12-14 2011-06-29 英特尔公司 Methods and systems to traverse graph-based networks
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
US5452452A (en) System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US6779182B1 (en) Real time thread dispatcher for multiprocessor applications
US7318128B1 (en) Methods and apparatus for selecting processes for execution
US6389446B1 (en) Multi-processor system executing a plurality of threads simultaneously and an execution method therefor
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
US7650601B2 (en) Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US6532509B1 (en) Arbitrating command requests in a parallel multi-threaded processing system
US10545892B2 (en) Multi-thread processor and its interrupt processing method
US7203823B2 (en) Partial and start-over threads in embedded real-time kernel
US5526521A (en) Method and system for process scheduling from within a current context and switching contexts only when the next scheduled context is different
JP2005517228A (en) Method and apparatus for scheduling requests using criteria of an ordered stage of scheduling
US7565659B2 (en) Light weight context switching
CN119248435A (en) Method and system for processing tasks based on multithreading
US7937710B1 (en) Context switch signaling method and system
JPH07302246A (en) Scheduling system
CN102193828A (en) Decoupling the number of logical threads from the number of simultaneous physical threads in a processor
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 (en) External interrupt control method
JPH08305671A (en) Job scheduling system
WO2002046887A2 (en) Concurrent-multitasking processor
JPH11249917A (en) Parallel computers, their batch processing method, and storage medium
JP4122212B2 (en) Multiprocessor system
JPH06187171A (en) Scheduling system for interruption
WO1992003784A1 (en) Scheduling method for a multiprocessing operating system