JPH07114518A - マルチプロセッサシステムにおけるタスクスケジューリング方式 - Google Patents

マルチプロセッサシステムにおけるタスクスケジューリング方式

Info

Publication number
JPH07114518A
JPH07114518A JP5257935A JP25793593A JPH07114518A JP H07114518 A JPH07114518 A JP H07114518A JP 5257935 A JP5257935 A JP 5257935A JP 25793593 A JP25793593 A JP 25793593A JP H07114518 A JPH07114518 A JP H07114518A
Authority
JP
Japan
Prior art keywords
task
processor
queue
execution
tasks
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.)
Withdrawn
Application number
JP5257935A
Other languages
English (en)
Inventor
Kiyofumi Shigeno
潔史 繁野
Hideji Fukuhara
秀治 福原
Takanari Hoshiai
隆成 星合
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.)
Fujitsu Ltd
Nippon Telegraph and Telephone Corp
Original Assignee
Fujitsu Ltd
Nippon Telegraph and Telephone 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 Fujitsu Ltd, Nippon Telegraph and Telephone Corp filed Critical Fujitsu Ltd
Priority to JP5257935A priority Critical patent/JPH07114518A/ja
Publication of JPH07114518A publication Critical patent/JPH07114518A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 マルチプロセッサ機能を十分発揮でき、か
つ、プロセッサ数を増減する場合でもソフトウエア側に
手を加えること無く、また、特定のプロセッサで実行す
る必要のあるタスクがある場合は、プロセッサ指定を可
能とする。 【構成】 各プロセッサに共通の一つの実行待ちキュー
を有し、実行待ち状態となった複数のタスクを実行待ち
キューに繋ぎ、所定のプロセッサのディスパッチ時に
は、該プロセッサのディスパッチ対象のタスクを、実行
待ちキューから取り外して、この実行待ちキューから外
された実行すべきタスクを実行待ちキュー以外の管理下
に置いて、そのタスクを実行する。また、実行待ちキュ
ーから取り外された実行すべきタスクを管理する一つの
手段として、実行中キューを設け、実行中キューに繋が
れたタスクの中で最も優先度の低いタスクを即時に検索
・比較し、優先度の高いタスクを先に実行させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、密結合型マルチプロセ
ッサ(Tightly Coupled Multiprocessor、以下、TCM
Pという)構成システム上で動作するマルチプロセッサ
システムにおけるタスクスケジューリング方式に関す
る。
【0002】
【従来の技術】マルチプロセッサ方式の一つとして、T
CMP構成のシステムがある。このTCMP構成のシス
テムは、図13に示すように、一つのメモリ1を複数の
プロセッサ21 ,22 ,・・・2n (CPU#1、CP
U#2、・・・CPU#n)で共有する構成であり、メ
モリを共有することから、各プロセッサ間にて排他制御
を行う必要があるが、プロセッサを増やす場合は、プロ
セッサのみを増設することで対応でき、また、処理能力
を向上させるのに適したシステムである。
【0003】ところで、このようなTCMP構成のシス
テムにおけるマルチタスクのスケジューリング方式は後
述の通りであるが、TCMP構成のシステムにおけるタ
スクのスケジューリング方式を説明する前に、まず、シ
ングルプロセッサ構成システムにおけるマルチタスクの
タスクスケジューリング方式を、図14、図15により
説明する。
【0004】図14は、ある一つのタスクの状態遷移を
示すもので、このような状態遷移を行うタスクの実行順
序を、図15に示す一つの実行待ちキュー(Ready キュ
ー,以下、RDY−Qという)を使用して制御する。つ
まり、複数のタスクが実行待ち状態(Ready )になった
ときに図15に示すようにRDY−Qに順番に(この例
では、タスク#1、タスク#2、・・・タスク#n)繋
ぎ、そのRDY−Qの先頭に繋がっているタスク#1か
ら順に実行(Running )して行く。そして、実行が中断
したり終了した場合は、そのタスクをRDY−Qから外
し、各々次の状態(Wait,Non-Existent )に遷移させ
る。なお、図15において、各タスクのTCBはそれぞ
れのタスクの固有情報を示すもので、実際には、この固
有情報がRDY−Qに順番に繋がれている。
【0005】また、マルチタスクオペレーティングシス
テムでは、各タスクに優先度を持たせ、優先度の高いタ
スクから順に実行するのが一般的である。更に、高度な
リアルタイム性が要求される場合は、プリエンプション
機能を具備する。プリエンプション機能とは、現在実行
中のタスクよりも、優先度の高いタスクがREADY状
態になった場合、該実行中タスクを中断させて、即座に
優先度の高いタスクを実行させる機能である。
【0006】シングルプロセッサ構成では、実行中(R
UN状態)のタスクが同時に1個しか存在しないため、
新たに実行待ちのタスクが生成された場合、RDY−Q
の先頭にある実行中タスクの優先度と比較することによ
り、容易にプリエンプション機能を実現することができ
た。
【0007】
【発明が解決しようとする課題】以上はシングルプロセ
ッサ構成システムにおけるマルチタスクオペレーティン
グシステムにおけるタスクのスケジューリング方式であ
るが、TCMP構成システムでは、プロセッサが複数あ
ることから、図15のようなRDY−Qが設定されてい
た場合、今、タスク#1があるプロセッサ(CPU#1
とする)によって実行されていたとすると、他のプロセ
ッサ、たとえばCPU#2が処理に空きが出て次のタス
クの実行を行おうとしたとき、CPU#2は現在どのタ
スクが実行中であるか否かを知ることはできず、自動的
に、RDY−Qの先頭のタスク#1を実行しようとする
不都合が生じる。
【0008】この不都合を解消するためには、各プロセ
ッサ毎にRDY−Qを用意すれば、前記したシングルプ
ロセッサ構成システムと同等のマルチタスクのスケジュ
ーリング処理を行うことは可能である。
【0009】すなわち、この各プロセッサ毎にRDY−
Qを用意してスケジューリング処理を行う方式は図16
に示すように、同図(a) の如く、タスク#1〜#10を
CPU#1に振り分けるとともに、このCPU#1用の
RDY−Q#1を持ち、また、同図(b) の如く、タスク
#11〜#20をCPU#2に振り分けるとともに、こ
のCPU#2用のRDY−Q#2を持ち、また、同図
(c) の如く、タスク#21〜#30をCPU#3に振り
分けるとともに、このCPU#3用のRDY−Q#3を
持つというように、あらかじめ、各プロセッサ毎にタス
クを振り分けて、各プロセッサ毎にRDY−Qを用意す
るという方式である。
【0010】しかしながら、この方式では、あらかじめ
タスクがプロセッサに割り付けられてしまうことから、
たとえば、CPU#1が自己のタスク処理を終了し、他
のCPUが処理を多く残している状態でも、CPU#1
は他のCPUの処理を行うという融通性はなく、つま
り、負荷分散が可能なマルチプロセッサシステムの機能
を十分発揮できないことになる。さらに、このTCMP
構成システムでは、プロセッサ数を適宜、増減する事が
容易にできることも特徴の一つとしているが、図16に
示す方式では、プロセッサ数を増減する毎に、ソフトウ
エアを大幅に手を加えてタスクの振り分けを変更しなけ
ればならないという問題があった。
【0011】本発明は、マルチプロセッサ機能を十分発
揮でき、かつ、プロセッサ数を増減する場合でもソフト
ウエア側に手を加えること無く、また、特定のプロセッ
サで実行する必要のあるタスクがある場合は、プロセッ
サ指定を可能とするなど極めて汎用性の広いタスクスケ
ジューリング方式を実現することを目的としている。
【0012】
【課題を解決するための手段】本発明は、一つのTCM
P構成のシステムにおいてRDY−Qは一つだけ用意
し、そのシステムを構成する複数のプロセッサが、上記
RDY−Qに繋がれた実行待ちのタスクを、繋がれた順
番に先頭から早い者勝ちでタスク処理を行う方式とす
る。
【0013】これを実現するために、現時点において実
行すべきタスクはRDY−Qから外して実行するものと
する。また、マルチプロセッサ構成システムにおいてプ
リエンプション機能を実現するためには、現在実行中の
タスクの中で、最も優先度の低いタスクをより高速に検
索する方式が要求される。
【0014】そこで、実行状態に遷移させるタスクをR
EADY−Qから外すだけでなく、新たに実行中キュー
(RUN−Q)を設け、READY状態からRUN状態
に遷移した時に、READY−Qから外すと同時にRU
N−Qに繋いでおくこととする。そして、新たなタスク
がREADY状態に遷移した時、RUN−Qをサーチ
し、優先度を比較し、READY状態に遷移したタスク
よりも優先度の低いタスクがRUN−Qにあれば、該実
行中タスクをRUN−Qから外し、READY−Qに繋
ぎ替え、READY状態に遷移したタスクを実行中に遷
移させ、RUN−Qに繋ぐ。一方、READY状態に遷
移したタスクよりも優先度の低いタスクがRUN−Qに
存在しなかった場合は、READY−Qに繋ぐ。また、
RUN−Qに繋ぐ際に、優先度の低い順に繋いでおけ
ば、プリエンプション時にRUN−Qをサーチする必要
がなくなり、より高速にプリエンプションが実現でき
る。これにより、TCMP構成システムにおけるマルチ
タスクオペレーティングシステムにおいても高速なプリ
エンプション機能を具備することができる。
【0015】これにより、RDY−Qには図1に示すよ
うに、実行待ち状態のタスクだけが繋がった状態とな
る。図1は、たとえばタスク#1とタスク#2がその時
点において実行中であり、RDY−Qの管理下から外さ
れ(これを図中、破線で示している)、RDY−Qには
タスク#3、タスク#4・・・が実行待ちタスクとして
繋がれている例を示したものである。
【0016】また、本発明では、各タスクの固有情報
(TCB)の中に、特定のプロセッサを指定する識別子
(ID)を設ける。たとえば、ID=0であればプロセ
ッサ指定は無し、ID=1であれば#1のプロセッサ指
定、ID=2であれば#2のプロセッサ指定というよう
な設定を行う。そして、RDY−Qの先頭からタスクを
読みだして処理を行う、いわゆるディスパッチ(Dispat
ch)時に、その識別子を参照して、それに応じた処理を
行う。つまり、ID=0であればいずれのプロセッサで
も直ちに実行開始、プロセッサ指定が自プロセッサであ
れば直ちに実行開始、プロセッサ指定が自プロセッサで
なければ、RDY−Qを順番に検索して行き、そのプロ
セッサが実行可能なタスクを探して実行するというよう
な動作を行う。
【0017】
【作用】このように、RDY−Qには、常に、実行待ち
状態のタスクだけが繋がっているため、複数のプロセッ
サのうち、たとえば、あるCPUがディスパッチ処理を
行おうとした場合、図1の例では、RDY−Qのその時
点において先頭にあるタスク#3をディスパッチ処理対
象とすることができる。そして、タスク#3の固有情報
に設けられた識別子を参照して、その識別子がプロセッ
サ指定無し、または自プロセッサ指定であれば、直ちに
実行開始する。このタスク#3が実行中となることによ
り、タスク#3は、RDY−Qから外され、RDY−Q
の先頭はタスク#4というようになる。 そして、その
時点で処理に空きの出たプロセッサがあると、その時点
においてRDY−Qの先頭にあるタスク#4を読み出し
にいって、上記同様の処理を行う。
【0018】したがって、各プロセッサは処理に空きが
出れば、他のプロセッサによるタスクの実行状況を何ら
意識することなく、RDY−Qの先頭のタスクを読みだ
しにいけば良いことから、空きプロセッサを使って効率
よくタスクを実行することができ、また、各タスクに設
定されたプロセッサ指定IDにより、タスク毎に特定の
プロセッサを指定して実行させることができる。
【0019】
【実施例】次に本発明の実施例を説明する。図2はこの
実施例によるTCMP構成を示すもので、この実施例で
は、メモリ1に3台のプロセッサ21 ,22 ,23 (C
PU#1,CPU#2,CPU#3)が接続された構成
となっているものとし、この3台のプロセッサによるT
CMP構成システム上で動作するマルチタスクオペレー
ティングシステムにおけるスケジューリング処理につい
てを説明する。
【0020】また、この実施例では、RDY−Qとは別
にRUN−Qを設け、実行中のタスクはRDY−Qから
外して、RUN−Qに繋ぎ変えるようにする。まず、図
3のフローチャートにより、ある一つのプロセッサを例
にとって、そのスケジューリング処理動作を説明する。
【0021】今、あるプロセッサ(CPU#1とする)
があるタスクを実行しているものとし、そのタスクの実
行が中断または終了すると、そのタスクをRUN−Q
(実行中においては、そのタスクはRUN−Qに繋がっ
ている)から外す(ステップS1)。このRUN−Qか
ら外す具体的な処理としては、該タスクの固有情報(T
CB)をRUN−Qから外すという処理行う。この処理
を行っている間は、RUN−Qが他のプロセッサからア
クセスできないように、RUN−Qをマスクする。
【0022】そして、ある一つのタスクの実行が終わっ
たCPU#1は、RDY−Qの先頭にあるタスクのTC
Bを読み出しに行き(ステップS2)、そのタスクのプ
ロセッサIDがID=0(任意)であるか否かを判断す
る(ステップS3)。ID=0であれば、そのタスクは
CPU#1が実行可能なタスクであり、該タスクのTC
BをRDY−Qから外す(ステップS4)。一方、ID
=0でない場合は、プロセッサIDが自プロセッサ指定
(ID=1)であるか否かを判断し(ステップS5)、
自プロセッサ指定であれば、前記ステップS4に処理を
移し、自プロセッサ指定でなければRDY−Qから次の
タスクのTCBを取りだして(ステップS6)、前記ス
テップS3の処理を行う。このステップS2からステッ
プS6の処理を行っている間は、RDY−Qが他のプロ
セッサからアクセスできないように、RDY−Qをマス
クする。
【0023】このようにしてCPU#1の実行可能なタ
スクがあると、該タスクのTCBをRUN−Qに繋ぐ
(ステップS7)。この処理を行っている間は、RUN
−Qが他のプロセッサからアクセスできないように、R
UN−Qをマスクする。
【0024】そして、CPU#1はRUN−Qに繋がれ
たタスクを実行する(ステップS8)。以上が、ある一
つのプロセッサのスケジューリング処理動作であるが、
このスケジューリング処理を用いて、具体的な処理動作
を次に説明する。
【0025】ここでは、多数のタスクのうち、タスク#
00〜#05はプロセッサ指定無し(ID=0)と設定
され、タスク#11,#12はCPU#1のみで実行可
(ID=1)と設定され、タスク#31,#32はCP
U#3のみで実行可(ID=3)と設定されているもの
とする。このようにプロセッサ指定を行う必要性がある
例としては、たとえば、タスクに実行順序性を必要とす
るような場合、一つのプロセッサにて実行しないと順序
性が保証できなくなるというときに、プロセッサ指定を
行う。
【0026】このような複数のタスクが、RDY−Qに
図4に示すように接続されている場合のスケジューリン
グ処理動作によるRDY−QとRUN−Qの変化の様子
を、以下、順を追って説明する。
【0027】図4は初期設定状態において、タスク#0
0があるプロセッサ(CPU#1とする)により実行中
であることを示し、タスク#00はRDY−Qから外れ
てRUN−Qに繋がっている状態を示している。そし
て、RDY−Qにはタスク#01を先頭に、タスク#0
2,#11,#31,#03,#04,#12,#3
2,#05というように繋がっている。
【0028】このような初期設定状態において、CPU
#2がRDY−Qの先頭にあるタスク#01を読み出す
と、このタスク#01のIDはID=0であるので、タ
スク#01をRDY−Qから外して、RUN−Qに繋い
で実行する。これとほぼ並列動作で、CPU#3がRD
Y−Qのその時点において先頭にあるタスク#02を読
み出すと、このタスク#02のIDはID=0であるの
で、タスク#02をRDY−Qから外して、RUN−Q
に繋いで実行する。この状態を示すのが図5である(こ
れを状態変化1という)。この状態変化1では、タスク
#01,#02がRDY−Qから外され(図では破線で
示している)、RUN−Qに繋がれたことを示してい
る。すなわち、この時点においては、RUN−Qにはタ
スク#00,#01,#02が接続されており、これら
のタスクがそれぞれCPU#1,#2,#3により実行
中となっている。
【0029】そして、タスク#00が終了すると、それ
を実行していたCPU#1が次の処理を行うために、R
DY−Qのその時点において先頭にあるタスク#11
(図5参照)をRDY−Qから読み出すと、このタスク
#11のIDはID=1(CPU#1指定)であるの
で、タスク#11をRDY−Qから外して、RUN−Q
に繋いで実行する。続いて、CPU#2で処理していた
タスク#01が終了すると、CPU#2は次の処理を行
うために、RDY−Qのその時点において先頭にあるタ
スク#31をRDY−Qから読み出すが、このタスク#
31のIDはID=3(CPU#3指定)であるので、
次のタスク#03を読み出しに行く。このタスク#03
のIDはID=0であるので、タスク#03をRDY−
Qから外して、RUN−Qに繋いで実行する。この状態
(状態変化2という)を示したのが図6である。
【0030】なお、図6において、破線で示されたタス
クはRDY−Qから外されて、RUN−Qに繋ぎ換えら
れたことを示し、また、RUN−Qにおいて、破線で示
されたタスクは処理が終了したことを示している。これ
は、以下同様である。また、本実施例ではプロセッサは
3台であるから、RUN−Qには最大3個のタスクが接
続されることになる。
【0031】したがって、この状態変化2では、タスク
#02,#11,#03がRUN−Qに接続されてお
り、これらのタスクがそれぞれCPU#3,#1,#2
により実行処理されている。
【0032】次に、CPU#3で処理していたタスク#
02が終了すると、CPU#3は次の処理を行うため
に、RDY−Qのその時点において先頭にあるタスク#
31(図6参照)をRDY−Qから読み出すと、このタ
スク#31のIDはID=3(CPU#3指定)である
ので、タスク#31をRDY−Qから外して、RUN−
Qに繋いで実行する。この状態(状態変化3という)を
示したのが図7である。この状態変化3では、タスク#
11,#03,#31がRUN−Qに接続されており、
これらのタスクがそれぞれCPU#1,#2,#3によ
り実行中処理されている。
【0033】この状態変化3において、たとえば、CP
U#1,#2,#3の順でそれぞれのタスクの実行が終
了すると、CPU#1はタスク#04(ID=0)をR
DY−Qから外して、RUN−Qに繋いで実行し、CP
U#2はタスク#05(ID=0)をRDY−Qから外
して、RUN−Qに繋いで実行し(タスク#12、タス
ク#32はCPU#2指定でないため)、CPU#3は
タスク#32(ID=3)をRDY−Qから外して、R
UN−Qに繋いで実行する(タスク#12はCPU#3
指定でないため)。この状態(状態変化4という)を示
したのが図8である。この状態変化4では、タスク#0
4,#05,#32がRUN−Qに接続されており、こ
れらのタスクがそれぞれCPU#1,#2,#3により
実行処理されている。また、この状態変化4では、RD
Y−Qにはタスク#12だけが繋がった状態となってい
る。
【0034】そして最後に、CPU#1がタスク#04
の実行を終了した時点で、RDY−Qからタスク#12
(ID=1)を外して、RUN−Qに繋いで実行する。
この状態(状態変化5という)を示したのが図9であ
る。
【0035】このように、この実施例では、RDY−Q
とは別にRUN−Qを設け、実行すべきタスクはRDY
−Qから外して、RUN−Qに繋ぎ変えて実行するよう
にしている。したがって、RDY−Qには実行待ちのタ
スクのみが繋がれることになるため、各プロセッサは処
理に空きが出れば、他のプロセッサによるタスクの実行
状況を何ら意識することなく、RDY−Qの先頭のタス
クを読みだしにいけば良いことから、空きプロセッサを
使って効率よくタスクを実行することができ、また、タ
スク毎にプロセッサを指定するIDを設けているので、
タスクの実行に順序性が有るような場合でも、その順序
性を確実に保証して実行させることができる。
【0036】なお、上記実施例では、実行すべきタスク
をRUN−Qに繋いで実行、つまり、キュー管理した状
態にして実行するようにしたが、キュー管理する方式に
限られるものでなく、前記したように、たとえば、実行
すべきタスクのアドレスをメモリに格納していくような
方式でもよい。
【0037】上記実施例では、タスク、プロセッサを一
般例として説明したが、次に本発明を、交換処理装置に
適応した場合についてを説明する。一般に交換処理装置
は以下の特徴を有する。
【0038】システム負荷は呼に比例する。 1呼に対する処理(タスク)は、発呼処理、応答処
理、切断処理で構成される。
【0039】発呼処理、応答処理、切断処理はどのプ
ロセッサで処理されてもよいが、同一呼の中では、実行
順序(発呼処理→応答処理→切断処理)を保証しなけれ
ばならない。
【0040】このような特徴を持つ交換処理装置のプロ
セッサ(CPU)をTCMP構成とし、本発明を適応し
た場合の具体例を説明する。まず、図10に示すように
呼(これを呼#1,呼#2,呼#3とする)が発生し、
各々の呼が、発呼(発)、応答(応)、切断(切)の順
で遷移したとする。
【0041】発呼があるとCPUがこれを検出し、発呼
処理タスクを生成する。すなわち、図11に示すよう
に、呼#1における発呼に対しては発呼処理タスク#
1、呼#2における発呼に対しては発呼処理タスク#
2、呼#3における発呼に対しては発呼処理タスク#3
を生成する。また、応答検出時には、呼#1における応
答に対しては応答処理タスク#1、呼#2における応答
に対しては応答処理タスク#2、呼#3における応答に
対しては応答処理タスク#3を生成する。さらに、切断
検出時には、呼#1における切断に対しては切断処理タ
スク#1、呼#2における切断に対しては切断処理タス
ク#2、呼#3における切断に対しては切断処理タスク
#3を生成する。
【0042】このように生成された各タスクは、図3の
フローチャートに示した手順でスケジューリング処理さ
れて実行されるが、ここで、前記した交換処理の特徴
に示した実行順序を保証するために、各呼毎にCPUを
割り当てることにする。
【0043】この各呼毎にCPUを割り当てる割り当て
方はいくつかあるが、以下にそれらを列挙する。 (1) 各発呼処理タスクは、CPUの指定は任意とし、同
一呼の応答処理タスクと切断処理タスクは、その発呼処
理タスクと同一のCPUとする。
【0044】(2) 各CPUの処理呼数を均等にすること
を目的とし、発呼順に、CPUをCPU#1,CPU#
2,CPU#3というように、順番に割り振る。なお、
同一呼の応答処理タスクと切断処理タスクは、その発呼
処理タスクと同一のCPUとする。
【0045】(3) 処理中呼(発呼受付け後から切断処理
完了前まで)の各CPUへの割り振り状態により、以後
の処理負荷を推定し、最も負荷が軽いと予想されるCP
Uを割り当てる。
【0046】これら(1) 、(2) 、(3) のいずれかによっ
て、発呼処理タスクの実行CPUが決まる。応答処理タ
スクと切断処理タスクは、発呼処理タスクと同一のCP
Uであるから、各タスク生成時に、発呼処理タスクで実
行したCPUのプロセッサIDを、該当するタスクのT
CBに設定しておけば、図3のフローチャートに示すス
ケジューリング処理手順で処理できる。
【0047】図12は、たまたま呼#1がCPU#1
に、呼#2がCPU#2に、呼#3がCPU#3に割り
当てられた場合の各CPU#1,#2,#3の実行状態
を示すもので、応答処理タスクと切断処理タスクは、発
呼処理タスクと同一のCPUで実行される。
【0048】なお、前記(1) 、(2) 、(3) のどれを使用
するかは、呼の発生の仕方によるが、前記交換処理の特
徴で示したように、システム負荷は呼に比例するた
め、(1) 、(2) 、(3) のいずれの方法でも、呼毎にCP
Uを割り当てることによって、各CPUに対する負荷は
概ね分散させることができる。したがって、発呼が同時
に多発したような場合でも、TCMP構成の特徴を最大
限生かして処理することができる。
【0049】
【発明の効果】本発明によれば、一つのTCMP構成の
システムにおいてRDY−Qは一つだけ用意し、実行中
のタスクはRDY−Qには残さずに、RDY−Qから外
した状態で管理することにより、RDY−Qには実行待
ち状態のタスクだけが繋がった状態とすることができ、
各プロセッサは処理に空きが出れば、他のプロセッサに
よるタスクの実行状況を何ら意識することなく、RDY
−Qの先頭のタスクを読み出しにいけば良いことから、
空きプロセッサがダイナミックに実行待ちタスクを実行
でき、マルチプロセッサ構成の処理能力を最大限発揮さ
せることが可能となり、かつ、プロセッサ数を増減する
場合でもソフトウエアに手を加えること無く任意に増減
を可能とし、また、各タスクの固有情報の中に、プロセ
ッサを指定する識別子を設定したことにより、特定のプ
ロセッサで実行する必要のあるタスクがある場合でも、
容易にプロセッサ指定を可能とするなど極めて汎用性の
広いタスクスケジューリング方式を実現することができ
る。
【0050】又、新たにRUN−Qを設けたことによ
り、実行中タスクの中で、最も実行レベルの低いタスク
を即座に検索することが可能になったため、高速なプリ
エンプション機能を具備することも可能になった。
【図面の簡単な説明】
【図1】本発明の原理を説明するブロック図である。
【図2】本発明の実施例のTCMP構成システムを示す
ブロック図である。
【図3】同実施例のタスクスケジューリング処理を説明
するフローチャートである。
【図4】同実施例におけるRDY−QとRUN−Qの初
期設定状態を示す図である。
【図5】同実施例におけるRDY−QとRUN−Qの状
態変化1を示す図である。
【図6】同実施例におけるRDY−QとRUN−Qの状
態変化2を示す図である。
【図7】同実施例におけるRDY−QとRUN−Qの状
態変化3を示す図である。
【図8】同実施例におけるRDY−QとRUN−Qの状
態変化4を示す図である。
【図9】同実施例におけるRDY−QとRUN−Qの状
態変化5を示す図である。
【図10】本発明を交換処理装置に適用する場合の呼の
発生シーケンスを示す図である。
【図11】本発明を交換処理装置に適用する場合の各処
理タスクの生成状態を説明する図である。
【図12】本発明を交換処理装置に適用する場合の各C
PUの実行状態を説明する図である。
【図13】TCMP構成のシステムを説明する図であ
る。
【図14】タスクの状態遷移を説明する図である。
【図15】RDY−Qの構成を説明する図である。
【図16】プロセッサ対応に設けられたRDY−Qの構
成を示す図である。
【符号の説明】 RDY−Q・・・実行待ちキュー RUN−Q・・・実行中キュー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 星合 隆成 東京都千代田区内幸町1丁目1番6号 日 本電信電話株式会社内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】密結合構成のマルチプロセッサシステム上
    で動作するマルチタスクオペレーティングシステムにお
    けるタスクスケジューリング方式において、 各プロセッサに共通の一つの実行待ちキューを有し、実
    行待ち状態となった複数のタスクを上記実行待ちキュー
    に繋ぎ、所定のプロセッサのディスパッチ時には、該プ
    ロセッサのディスパッチ対象のタスクを、実行待ちキュ
    ーから取り外して、この実行待ちキューから外された実
    行すべきタスクを上記実行待ちキュー以外の管理下に置
    いて、そのタスクを実行することを特徴とするマルチプ
    ロセッサシステムにおけるタスクスケジューリング方
    式。
  2. 【請求項2】前記実行待ちキューから取り外された実行
    すべきタスクを管理する手段として、実行中キューを設
    け、この実行中キューはその時点において実行中のタス
    クのみを繋いだ構成としたことを特徴とする請求項1記
    載のマルチプロセッサシステムにおけるタスクスケジュ
    ーリング方式。
  3. 【請求項3】密結合構成のマルチプロセッサシステム上
    で動作するマルチタスクオペレーティングシステムにお
    けるタスクスケジューリング方式において、 各プロセッサに共通の一つの実行待ちキューを有し、実
    行待ち状態となった複数のタスクを上記実行待ちキュー
    に繋ぎ、これら各タスクには、各タスクの持っている固
    有情報にプロセッサ指定情報を設定し、所定のプロセッ
    サのディスパッチ時には、該プロセッサが上記実行待ち
    キューの先頭のタスクから順に、そのタスクのプロセッ
    サ指定情報を検索し、そのタスクが該プロセッサのディ
    スパッチ対象のタスクであるか否かを判定して、ディス
    パッチ対象のタスクである場合には、そのタスクを実行
    待ちキューから取り外して、上記実行待ちキュー以外の
    管理下に置いて、そのタスクを実行することを特徴とす
    るマルチプロセッサシステムにおけるタスクスケジュー
    リング方式。
  4. 【請求項4】前記実行待ちキューから取り外された実行
    すべきタスクを管理する手段として、実行中キューを設
    け、この実行中キューはその時点において実行中のタス
    クのみを繋いだ構成としたことを特徴とする請求項3記
    載のマルチプロセッサシステムにおけるタスクスケジュ
    ーリング方式。
JP5257935A 1993-10-15 1993-10-15 マルチプロセッサシステムにおけるタスクスケジューリング方式 Withdrawn JPH07114518A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5257935A JPH07114518A (ja) 1993-10-15 1993-10-15 マルチプロセッサシステムにおけるタスクスケジューリング方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5257935A JPH07114518A (ja) 1993-10-15 1993-10-15 マルチプロセッサシステムにおけるタスクスケジューリング方式

Publications (1)

Publication Number Publication Date
JPH07114518A true JPH07114518A (ja) 1995-05-02

Family

ID=17313249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5257935A Withdrawn JPH07114518A (ja) 1993-10-15 1993-10-15 マルチプロセッサシステムにおけるタスクスケジューリング方式

Country Status (1)

Country Link
JP (1) JPH07114518A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073690A (ja) * 2000-08-31 2002-03-12 Eidai Co Ltd 自動作図システム
JP2009176146A (ja) * 2008-01-25 2009-08-06 Fujitsu Ltd マルチプロセッサシステム、障害検出方法および障害検出プログラム
WO2009110084A1 (ja) * 2008-03-06 2009-09-11 富士通株式会社 プロセス制御方法
JP2012523637A (ja) * 2009-04-14 2012-10-04 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・コンピューティング装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073690A (ja) * 2000-08-31 2002-03-12 Eidai Co Ltd 自動作図システム
JP2009176146A (ja) * 2008-01-25 2009-08-06 Fujitsu Ltd マルチプロセッサシステム、障害検出方法および障害検出プログラム
WO2009110084A1 (ja) * 2008-03-06 2009-09-11 富士通株式会社 プロセス制御方法
JP2012523637A (ja) * 2009-04-14 2012-10-04 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・コンピューティング装置

Similar Documents

Publication Publication Date Title
US8793695B2 (en) Information processing device and information processing method
JP3676827B2 (ja) マルチプロセッサシステム用のスケジューリング方法
US6560628B1 (en) Apparatus, method, and recording medium for scheduling execution using time slot data
US6993767B2 (en) System for preventing periodic load balancing if processor associated with lightest local run queue has benefited from idle processor load balancing within a determined time period
JP4117202B2 (ja) マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法
EP0326671B1 (en) A computer system and a method of monitoring transient data structures of a computer system
JPH09128252A (ja) 優先度付きタスク実行制御方法及びデータ処理装置
EP1536335A2 (en) Intelligent scheduler for multi-level exhaustive scheduling of tasks
US20090083746A1 (en) Method for job management of computer system
JPH04215158A (ja) データ転送制御方法及びインタフェース・システム
JPH0563821B2 (ja)
JPS5833586B2 (ja) 情報処理システム
JPH1153202A (ja) 並列トランザクション処理システム
US5241676A (en) Method for controlling process priority in semaphore operation
US20030110203A1 (en) Apparatus and method for dispatching fixed priority threads using a global run queue in a multiple run queue system
JPH07114518A (ja) マルチプロセッサシステムにおけるタスクスケジューリング方式
JP3005562B1 (ja) タスク管理装置及びタスクスケジューリング方法
JPH08292932A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
CN114035926A (zh) 应用线程调度方法、装置、存储介质及电子设备
JPH05108380A (ja) データ処理システム
CN113032098A (zh) 一种虚拟机调度方法、装置、设备及可读存储介质
JP2693916B2 (ja) タスクスケジュール方法
WO2023122891A1 (zh) 任务调度方法及多核处理器系统
JPH01180641A (ja) Cpuソース平均化方式
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20001226