JPH06324888A - Scheduling system - Google Patents

Scheduling system

Info

Publication number
JPH06324888A
JPH06324888A JP10841793A JP10841793A JPH06324888A JP H06324888 A JPH06324888 A JP H06324888A JP 10841793 A JP10841793 A JP 10841793A JP 10841793 A JP10841793 A JP 10841793A JP H06324888 A JPH06324888 A JP H06324888A
Authority
JP
Japan
Prior art keywords
priority
thread
priority order
virtual processor
effective
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.)
Granted
Application number
JP10841793A
Other languages
Japanese (ja)
Other versions
JP3349547B2 (en
Inventor
Kunihiko Tsunetomi
邦彦 恒冨
Takanori Yokoyama
孝典 横山
Shinichiro Yamaguchi
伸一朗 山口
Tomoaki Nakamura
智明 中村
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10841793A priority Critical patent/JP3349547B2/en
Publication of JPH06324888A publication Critical patent/JPH06324888A/en
Application granted granted Critical
Publication of JP3349547B2 publication Critical patent/JP3349547B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PURPOSE:To evade the execution of thread switching processing while an object is being processed in processing where no interruption of the processing of the object is permitted even when the thread which calls and executes the object is provided with low priority. CONSTITUTION:This system is a means comprised of, for example, a thread managing part 300 equipped with a thread state operation managing part 301, a thread priority decision part 302j a priority storage part 303, a thread dispatcher 304, and a thread information storage part 305, and an object dispatcher 310, an object address information storage part 320, an object priority decision part 330, and an object priority storage part 340, thereby, a program 100 can be processed by the system.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、複数の仮想プロセッサ
が、並列オブジェクト指向言語によって記述されたプロ
グラムを並行または並列処理する計算機システム等に適
用される、オブジェクト実行のスケジューリングを行う
スケジューリング装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a scheduling apparatus for scheduling object execution, which is applied to a computer system or the like in which a plurality of virtual processors processes programs written in a parallel object-oriented language in parallel or in parallel.

【0002】[0002]

【従来の技術】並列オブジェクト指向言語によって記述
されたプログラムは、並行処理可能な複数のオブジェク
ト群を有して構成される。
2. Description of the Related Art A program written in a parallel object-oriented language has a plurality of groups of objects that can be processed in parallel.

【0003】オブジェクト群は、各種の処理内容を有し
ており、各々の処理内容に対して要求される応答時間が
異なる。
The object group has various processing contents, and the response time required for each processing content is different.

【0004】そこで、複数のオブジェクト群が同時に存
在する場合には、要求される応答時間内に応答すること
が厳しいオブジェクト群が、応答時間内にその処理が間
に合うように、優先的に実行する機能を有するスケジュ
ーリング手段が必要である。
Therefore, when a plurality of object groups exist at the same time, the object group that is difficult to respond within the required response time preferentially executes the processing so that the processing can be done within the response time. A scheduling means having

【0005】また、オブジェクト群は、少なくとも1以
上のオブジェクトを有して構成される。
The object group is composed of at least one object.

【0006】かかるオブジェクトは、例えばオブジェク
ト間の通信手段を使用して、他のオブジェクトに処理を
要求することがある。したがって、1つのオブジェクト
群の実行ために、オブジェクトの切り替えが頻繁に発生
するため、かかる切り替え処理が高速に行われなければ
ならない。
Such an object may request processing from another object, for example, by using a communication means between the objects. Therefore, since switching of objects frequently occurs in order to execute one object group, such switching processing must be performed at high speed.

【0007】上記目的を達成するため、従来では、オブ
ジェクト群を実行するスレッドの優先順位を、オブジェ
クト群の応答時間の厳しさに応じて設定するスケジュー
リング方法が採用されている。
In order to achieve the above-mentioned object, conventionally, a scheduling method has been adopted in which the priority order of threads executing object groups is set according to the severity of the response time of the object groups.

【0008】ここで、「スレッド」とは、各々、プロセ
ッサが備えるレジスタの内容とスタックとを少なくとも
保有している、いわゆる仮想プロセッサのことをいう。
各スレッドは、与えられたプログラムを他のスレッドと
共有する。したがって、複数のスレッドは、複数のオブ
ジェクト群を並行実行処理することが可能となる。
Here, the "thread" refers to a so-called virtual processor that holds at least the contents of the registers and the stack included in the processor.
Each thread shares a given program with other threads. Therefore, it becomes possible for a plurality of threads to execute a plurality of object groups in parallel.

【0009】スレッドは、その優先順位にしたがって実
プロセッサを割り当てられるため、高い優先順位を有す
るスレッドが実行するオブジェクト群が、優先的に実行
される。かかる方法には、オブジェクト群へのスレッド
の割り当て方の違いにより、次の2方法が考えられる。
Since a real processor is assigned to a thread according to its priority, a group of objects executed by a thread having a high priority is preferentially executed. As such a method, the following two methods are conceivable depending on the difference in thread allocation to the object group.

【0010】第1の方法は、スレッド独立方法である。The first method is a thread independent method.

【0011】本方法は、オブジェクト群を構成するオブ
ジェクトごとにスレッドを割り当てる方法である。応答
時間の厳しいオブジェクト群の全てのスレッドは、予め
静的に優先順位を高く設定しておき、優先的に実プロセ
ッサを割り当てる。
This method is a method of allocating a thread for each object that constitutes an object group. All threads of an object group with a severe response time are statically set to a high priority in advance, and real processors are preferentially assigned.

【0012】しかし、本方法においては、オブジェクト
が切り替わるごとにスレッドが切り替わる。 また、ス
レッド切り替え処理は、プロセッサのレジスタ内容をす
べて、例えば主記憶内に保存し、別のスレッドのレジス
タ内容を読み込むため、一般に低速で行われる。
However, in this method, the thread is switched every time the object is switched. The thread switching process is generally performed at a low speed because all the register contents of the processor are saved in, for example, the main memory and the register contents of another thread are read.

【0013】第2の方法は、スレッド連続方法である。The second method is a thread continuation method.

【0014】本方法は、1つのオブジェクト群に対し
て、1つのスレッドを割り当てるものである。
The method allocates one thread to one object group.

【0015】応答時間の厳しいプログラムを処理するス
レッドは、予め静的に優先順位を高く設定し、優先的に
プロセッサが割り当てられるようにしておく。
A thread that processes a program having a severe response time is statically set to a high priority in advance so that a processor is preferentially assigned.

【0016】オブジェクトがオブジェクト間の通信手段
を使用して、他のオブジェクトに処理を要求する場合、
同一スレッドが、いわゆる「関数呼び出し」を行って、
オブジェクトを切り替えて、そのオブジェクトの手続き
を実行する。
When objects request communication with other objects by using communication means between objects,
The same thread makes a so-called "function call",
Switch between objects and execute the procedure for that object.

【0017】したがって、オブジェクト切り替えに際
し、スレッドの切り替えが不要なので、オブジェクトの
切り替えが高速に行われる。
Therefore, at the time of switching objects, it is not necessary to switch threads, so that switching of objects can be performed at high speed.

【0018】スレッド独立方法は、例えば、カーネギー
メロン大学のアートシステム(ARTS)、また、スレッド連
続方法は、例えば、クラウドシステム(Clouds)において
使用されている。
The thread-independent method is used in, for example, the Carnegie Mellon University Art System (ARTS), and the thread-continuous method is used in, for example, the Cloud system (Clouds).

【0019】その詳細については、例えば「コンピュー
タソフトウエアVol.9 No.3 May 1992」に記載されてい
る。
Details thereof are described, for example, in "Computer Software Vol. 9 No. 3 May 1992".

【0020】なお、上記2方法のうち、オブジェクト切
り替え処理が高速に行えるという理由から、現在では、
スレッド連続方法の採用が主流となっている。
Of the above two methods, the object switching process can be performed at high speed, so that at present,
The thread continuous method is mainly used.

【0021】[0021]

【発明が解決しようとする課題】ところで、上記スレッ
ド連続方法は、オブジェクト群全体を1つの固定された
優先順位を有するスレッドにて実行するため、オブジェ
クト群全体での応答時間は満たされるものの、オブジェ
クト群を構成する個々のオブジェクトの応答時間は満た
されないという問題が発生する。
By the way, in the thread continuation method, since the entire object group is executed by the thread having one fixed priority, the response time of the entire object group is satisfied, but the object The problem arises that the response times of the individual objects that make up the group are not met.

【0022】オブジェクト指向プログラミングにおいて
は、オブジェクトごとの処理に分割して、プログラミン
グを行う。
In object-oriented programming, programming is performed by dividing the processing into objects.

【0023】また、プログラムに要求される応答時間と
は別に、個々のオブジェクトの応答時間が、オブジェク
トの性質によって決められる。
In addition to the response time required for the program, the response time of each object is determined by the property of the object.

【0024】したがって、応答時間の厳しくないオブジ
ェクト群が、応答時間の厳しいオブジェクトを含む場合
がある。
Therefore, the object group whose response time is not severe may include objects whose response time is severe.

【0025】応答時間の厳しいオブジェクトとして、例
えば、画面描画処理オブジェクトが考えられる。スレッ
ド連続方法では、応答時間の厳しくないオブジェクト群
を、低い優先順位のスレッドが実行するため、描画処理
が他の高い優先順位のスレッドに中断され、とぎれとぎ
れに描画処理(例えば、マンマシーン・インターフェイ
スにおける表示画像への所定のコマンドの表示処理等)
が行われる事態が生ずる。
As an object having a severe response time, for example, a screen drawing processing object can be considered. In the thread continuous method, a group of objects with low response time is executed by a thread with a lower priority, so the drawing process is interrupted by another thread with a higher priority, and the drawing process is interrupted (for example, in the man-machine interface). Display processing of specified command on display image etc.)
Occurs.

【0026】そこで、本発明は、かかる点に鑑み、スレ
ッド連続方法において、各々のオブジェクトの応答時間
に合わせたオブジェクト優先順位を設定し、スレッドの
優先順位を、実行中のオブジェクトのオブジェクト優先
順位にしたがって変動させることにより、応答時間の厳
しくないオブジェクト群中のオブジェクトであっても、
応答制限時間の厳しいオブジェクトを優先的に実行させ
るスケジューリング手段を提供することを目的とする。
Therefore, in view of the above, the present invention sets the object priority order according to the response time of each object in the thread continuation method, and sets the thread priority order as the object priority order of the running object. Therefore, by varying it, even if it is an object in the group of objects with a low response time,
An object of the present invention is to provide a scheduling means for preferentially executing an object having a severe response time limit.

【0027】[0027]

【課題を解決するための手段】上記目的を達成するた
め、以下の手段が考えられる。
In order to achieve the above object, the following means are considered.

【0028】並列オブジェクト指向プログラムを構成す
る複数のオブジェクト群を、複数の仮想プロセッサが、
並行または並列処理する計算機システムにおける、仮想
プロセッサのスケジューリングを行うスケジューリング
システムであって、前記各オブジェクト群を構成する各
オブジェクトに対して、予め定めた優先順位を記憶する
オブジェクト優先順位記憶手段と、前記オブジェクト優
先順位記憶手段の内容を参照して、仮想プロセッサが次
に実行すべきオブジェクトの優先順位を判定するオブジ
ェクト優先順位判定手段と、前記仮想プロセッサに予め
定められている優先順位と、前記オブジェクト優先順位
判定手段により得られたオブジェクトの優先順位とか
ら、予め定められた関係にもとづいて優先順位を決定す
る手段と、該決定された優先順位を実効優先順位として
記憶する実効優先順位記憶手段と、前記実効優先順位記
憶手段に記憶された実効優先順位を参照し、予め定めら
れた規則にしたがって、次に実行する仮想プロセッサを
決定する仮想プロセッサ管理手段とを備える手段であ
る。
A plurality of virtual processors generate a plurality of object groups that form a parallel object-oriented program.
A scheduling system for scheduling virtual processors in a computer system for parallel or parallel processing, comprising: object priority storage means for storing a predetermined priority for each object constituting each object group; An object priority determination unit that determines the priority of an object to be executed next by a virtual processor by referring to the contents of the object priority storage unit, a priority that is predetermined for the virtual processor, and the object priority. From the priority order of the objects obtained by the order determination means, means for determining the priority order based on a predetermined relationship, effective priority storage means for storing the determined priority as the effective priority order, Stored in the effective priority storage means Referring to effect priority, according to a predetermined rule, a means and a virtual processor managing means for determining a virtual processors to be executed next.

【0029】[0029]

【作用】オブジェクト優先順位記憶手段は、例えば、各
オブジェクトを実行するスレッドの優先順位がどれだけ
上がるかを示す値である「優先順位上昇数」を記憶す
る。
The object priority storage means stores, for example, a "priority increase number" which is a value indicating how much the priority of the thread executing each object is increased.

【0030】かかるオブジェクト優先順位記憶手段の記
憶内容にもとづいて、実効スレッド優先順位を再計算す
るスレッドの、オブジェクトにおける優先順位上昇数
(オブジェクト優先順位)を、オブジェクト優先順位判
定手段が決定する。
Based on the contents stored in the object priority order storage means, the object priority order determination means determines the priority increase number (object priority order) in the object of the thread for recalculating the effective thread priority order.

【0031】スレッド管理手段は、例えば、スレッドの
優先順位とオブジェクト優先順位を加えた値を、実効ス
レッド優先順位とし、スレッドごとに対応して存在する
スレッド優先順位にもとづき、次に実行するスレッドを
決定する。
The thread management means sets, for example, a value obtained by adding the priority order of the threads and the object priority order to the effective thread priority order, and determines the thread to be executed next based on the thread priority order existing corresponding to each thread. decide.

【0032】上記構成によれば、オブジェクト群が制限
時間の厳しくない処理であり、その結果、当該オブジェ
クト群が低い優先順位のスレッドによって実行される場
合でも、これに含まれる、特定のオブジェクトが、制限
時間の厳しい処理であれば、プログラマーが、オブジェ
クト優先順位記憶手段に、予め優先順位を高く設定して
記憶しておくことにより、当該オブジェクト処理中だけ
は、スレッドの実行の中断を回避することが可能とな
る。
According to the above configuration, the object group is a process whose time limit is not severe, and as a result, even when the object group is executed by a thread having a low priority, a specific object included in this is If the processing has a strict time limit, the programmer sets the priority in the object priority storage unit in advance and stores it in order to avoid interruption of the thread execution only while the object is being processed. Is possible.

【0033】また、オブジェクトごとに優先順位を設定
することができるため、オブジェクトの性質に合わせ、
きめ細かに、オブジェクトの処理が可能となる。
Since the priority can be set for each object,
The object can be processed finely.

【0034】さらに、オブジェクトの優先順位が変動し
ない場合には、オブジェクトの切り替えに際し、スレッ
ドの切り替え、再スケジューリングが不要である。した
がって、従来のスレッド連続方法と同様に、オブジェク
トの切り替えは、高速に行われることになる。
Furthermore, when the priority order of objects does not change, thread switching and rescheduling are not required when switching objects. Therefore, similar to the conventional thread continuation method, switching of objects is performed at high speed.

【0035】[0035]

【実施例】以下、本発明にかかる実施例について、図1
から14を参照して詳細に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT An embodiment according to the present invention will be described below with reference to FIG.
This will be described in detail with reference to FIGS.

【0036】図1は、スレッドが並列オブジェクト指向
言語により記述されたプログラムが実行される様子を示
す図である。
FIG. 1 is a diagram showing how a program whose threads are written in a parallel object-oriented language is executed.

【0037】図2は、図1におけるスレッドの優先順位
および状態遷移の変動を示すタイムチャート図である。
FIG. 2 is a time chart showing changes in priority and state transition of threads in FIG.

【0038】図3は、本発明にかかるスケジューリング
装置の一実施例である。
FIG. 3 shows an embodiment of the scheduling device according to the present invention.

【0039】図4は、図3のスケジューリング装置を計
算機上に実現した構成を示す構成図である。
FIG. 4 is a configuration diagram showing a configuration in which the scheduling device of FIG. 3 is realized on a computer.

【0040】図5は、スレッドの状態遷移図、図6は、
スケジューリング装置を構成するスレッド管理部300
内に配置されたスレッド情報記憶部305の構成図、図
7は、スケジューリング装置を構成するスレッド管理部
300内に配置された優先順位記憶部303の構成図、
図8は、スケジューリング装置を構成するオブジェクト
アドレス情報記憶部320の構成図、図9は、スケジュ
ーリング装置を構成するオブジェクト優先順位記憶部3
40の構成図、図10から14は、本発明にかかる実施
例における動作を示すフローチャートである。 さて、
図1において、プログラム100は、オブジェクト1、
オブジェクト2、オブジェクト3、オブジェクト4を有
して構成される。
FIG. 5 is a thread state transition diagram, and FIG. 6 is
Thread management unit 300 constituting a scheduling device
FIG. 7 is a configuration diagram of a thread information storage unit 305 disposed in the thread management unit 300. FIG. 7 is a configuration diagram of a priority order storage unit 303 disposed in the thread management unit 300 that configures the scheduling device.
FIG. 8 is a block diagram of the object address information storage unit 320 which constitutes the scheduling device, and FIG. 9 shows the object priority order storage unit 3 which constitutes the scheduling device.
10 and 14 are flowcharts showing the operation of the embodiment of the present invention. Now,
In FIG. 1, the program 100 is an object 1,
It is configured to have an object 2, an object 3, and an object 4.

【0041】オブジェクト1から4は、ライブラリとし
て予め用意された、メッセージをオブジェクト間で通信
する機能を有するメッセージ通信関数を使用して、互い
に他のオブジェクトを起動する。メッセージ通信関数に
おける、メッセージを送信する機能を有するメッセージ
送信関数は、メッセージ関数「call」およびメッセージ
関数「send」がある。
Objects 1 to 4 mutually activate other objects using a message communication function prepared in advance as a library and having a function of communicating a message between objects. In the message communication function, there are a message function “call” and a message function “send” as message transmission functions having a function of transmitting a message.

【0042】「call」は、受信側のオブジェクトが結果
を返すまで、送信側オブジェクトの実行を中断させる機
能を有するメッセージ送信関数である。
"Call" is a message sending function having a function of suspending the execution of the sending object until the receiving object returns a result.

【0043】「send」は、送信側オブジェクトが、受信
側オブジェクトによる処理の結果を待たずに、実行を継
続させる機能を有するメッセージ送信関数である。。
"Send" is a message transmission function having a function of allowing the sender object to continue execution without waiting for the result of processing by the receiver object. .

【0044】「call」を使用して、相手オブジェクトに
メッセージを送信するため、逐次的に処理される一連の
オブジェクトを、「オブジェクト群」と称する。また。
オブジェクト群は、互いに並列実行が可能である。
A series of objects that are sequentially processed to send a message to a partner object using "call" is called an "object group". Also.
Objects can be executed in parallel with each other.

【0045】本実施例においては、オブジェクト2とオ
ブジェクト3は、オブジェクト群110を構成し、オブ
ジェクト2が、「call」150により、オブジェクト3
を起動する。
In this embodiment, the object 2 and the object 3 form the object group 110, and the object 2 makes the object 3 by the “call” 150.
To start.

【0046】また、オブジェクト4は、オブジェクト群
120を構成する。
The objects 4 form an object group 120.

【0047】オブジェクト1は、プログラム100の実
行開始直後に実行される。オブジェクト1は、オブジェ
クト2とオブジェクト4に、「send」130、140を
呼び出して実行し、オブジェクト群110、オブジェク
ト群120の順番で処理を開始させる。
The object 1 is executed immediately after the execution of the program 100 is started. The object 1 calls the “send” 130, 140 for the object 2 and the object 4 and executes them to start the processing in the order of the object group 110 and the object group 120.

【0048】さて、オブジェクトは、スレッドにより実
行される。
Objects are executed by threads.

【0049】オブジェクト群の処理開始時には、スレッ
ド10が、オブジェクト1に割り当てられている。送信
側オブジェクトが「send」を呼び出して実行したときの
み、受信側オブジェクトを含むオブジェクト群に対し、
新たにスレッドが割り当てられる。
At the start of processing an object group, the thread 10 is assigned to the object 1. Only when the sending object calls and executes "send", for the object group including the receiving object,
A new thread is assigned.

【0050】プログラム100では、スレッド20がオ
ブジェクト群110、スレッド30がオブジェクト群1
20に割り当てられる。また、スレッドを新たに割り当
てる場合、オブジェクト群の制限時間に合わせてスレッ
ドの優先順位を設定する。
In the program 100, the thread 20 is the object group 110 and the thread 30 is the object group 1
Twenty. When a new thread is assigned, the thread priority is set according to the time limit of the object group.

【0051】なお、本実施例において、優先順位は、そ
の値が高ければ高いほど、優先度の高いことを意味する
ものとする。
In this embodiment, the higher the priority, the higher the priority.

【0052】次に、図5に、スレッドの状態遷移図を示
す。
Next, FIG. 5 shows a thread state transition diagram.

【0053】スレッドは、図5に示すように、「実行状
態」510、「実行可能状態」520、「待機状態」5
30の3つの状態を遷移する。
As shown in FIG. 5, the thread has “execution state” 510, “executable state” 520, and “waiting state” 5
The three states of 30 are transited.

【0054】「実行状態」とは、プロセッサを割り当て
られたスレッドが、オブジェクト内に存在する手続きを
実行している状態である。
The "execution state" is a state in which a thread assigned a processor is executing a procedure existing in an object.

【0055】「実行可能状態」とは、オブジェクトを実
行する環境が整ったスレッドが、プロセッサの割り当て
を待っている状態である。「待機状態」とは、イベント
等の特定の事象が起きるの待ち、実行を一時中断してプ
ロセッサを解放している状態である。
The "executable state" is a state in which a thread in which an environment for executing an object is prepared is waiting for processor allocation. The "standby state" is a state in which a processor waits for a specific event such as an event to occur, suspends execution, and releases the processor.

【0056】プログラム実行開始時は、最初に処理され
るべきオブジェクトを実行するスレッド以外は、全ての
スレッドが待機状態となっている。
At the start of program execution, all threads are in a standby state except the thread that executes the object to be processed first.

【0057】「call」の呼び出しにより、スレッドが新
たにオブジェクト群に割り当てられる時、あるいは、ス
レッドを待機状態にしている要因が解決された場合、例
えば、待機状態を実行可能状態にする「wakeupルーチ
ン」により、スレッドは、待機状態から実行可能状態に
移る(図5、531)。
When a thread is newly assigned to an object group by calling "call", or when a factor that puts the thread in a waiting state is resolved, for example, a "wakeup routine that puts the waiting state in an executable state Causes the thread to move from the waiting state to the ready state (FIGS. 5 and 531).

【0058】実行可能状態のスレッドがプロセッサを割
り当てられると、521に示すように実行状態に移る。
実行状態のスレッドは、プロセッサを他のスレッドに明
け渡すと511のように実行可能状態になる。
When a thread in the runnable state is assigned a processor, the thread enters the runnable state as indicated by 521.
The thread in the running state becomes the runnable state as indicated by 511 when the processor yields to another thread.

【0059】実行状態にあるスレッドが、所定時間プロ
セッサを放棄する「sleepルーチン」による処理を行う
場合、あるいは、スレッドがオブジェクト群の処理を終
了した場合には、512のように、当該スレッドは、実
行状態から待機状態へとに戻る。
When the thread in the execution state performs the processing by the "sleep routine" that abandons the processor for a predetermined time, or when the thread finishes the processing of the object group, the thread, as in 512, Return from the running state to the waiting state.

【0060】なお、本実施例においては、主として仮想
プロセッサとしてスレッドを考慮しているが、かかる仮
想プロセッサは、いわゆるライトウエイトプロセスでも
よい。
In this embodiment, threads are mainly considered as virtual processors, but such virtual processors may be so-called light weight processes.

【0061】図3は、本発明にかかる実施例であるスケ
ジューリング装置の構成の一例を示したものである。
FIG. 3 shows an example of the configuration of the scheduling apparatus according to the embodiment of the present invention.

【0062】図3において、310は、オブジェクトの
メッセージ通信処理、オブジェクトの管理等を行うオブ
ジェクトディスパッチャ、320は、オブジェクトのメ
モリ上のアドレスを記憶するオブジェクトアドレス情報
記憶部、330は、新たに実行するオブジェクトの優先
順位を、オブジェクト優先順位記憶部340の記憶内容
に基づいて判定するオブジェクト優先順位判定部、34
0は、オブジェクトごとのスレッドの優先順位の上昇数
を記憶するオブジェクト優先順位記憶部である。
In FIG. 3, reference numeral 310 denotes an object dispatcher for carrying out message communication processing of objects, management of objects, etc., 320 is an object address information storage unit for storing the memory address of the object, and 330 is newly executed. An object priority order determination unit that determines the priority order of objects based on the stored contents of the object priority order storage unit 340, 34
Reference numeral 0 is an object priority storage unit that stores the number of rising thread priorities for each object.

【0063】さらに、305は、スレッドの情報を格納
するスレッド情報記憶部、301は、スレッドが状態遷
移する時に、状態情報およびレジスタの内容を当該スレ
ッドのスレッド情報記憶部に保存するスレッド状態操作
管理部、302は、オブジェクトの優先順位と当該オブ
ジェクトを実行するスレッドの優先順位から、実効スレ
ッド優先順位を計算し決定するスレッド優先順位決定
部、303は、上記スレッド優先順位決定部302で決
定した実効スレッド優先順位を記憶する優先順位記憶
部、304は、優先順位記憶部303内の優先順位情報
と、スレッド情報記憶部305内のスレッド状態情報に
より、スレッドに割り当てるプロセッサのスケジューリ
ングを行い、スレッド切り替え処理を行うスレッドディ
スパッチャである。
Further, 305 is a thread information storage unit for storing thread information, and 301 is a thread state operation management for storing the state information and the contents of the register in the thread information storage unit of the thread when the thread makes a state transition. Reference numeral 302 denotes a thread priority determining unit that calculates and determines the effective thread priority from the priority of the object and the priority of the thread that executes the object. Reference numeral 303 denotes the effective priority determined by the thread priority determining unit 302. The priority storage unit 304 that stores the thread priority order schedules the processor assigned to the thread based on the priority order information in the priority order storage unit 303 and the thread state information in the thread information storage unit 305, and performs a thread switching process. It is a thread dispatcher that does.

【0064】300は、スレッドを管理するスレッド管
理部であり、上記スレッド状態操作管理部301、スレ
ッド優先順位決定部302、優先順位記憶部303、ス
レッドディスパッチャ304、およびスレッド情報記憶
部305を有して構成されている。
A thread management unit 300 manages threads, and has the thread state operation management unit 301, thread priority order determination unit 302, priority order storage unit 303, thread dispatcher 304, and thread information storage unit 305. Is configured.

【0065】1、4は、プログラム100を構成するオ
ブジェクト、3011、3041は、オブジェクトの内
部データ、3012、3013、3042、3043
は、オブジェクトが提供する手続きである。
Reference numerals 1 and 4 are objects constituting the program 100, 3011 and 3041 are internal data of the objects, 3012, 3013, 3042 and 3043.
Is a procedure provided by the object.

【0066】なお、「点線」の矢印は、データの流れを
示し、「実線」の矢印は、制御の流れを示す。 スレッ
ド管理部300以外は、オブジェクト群に割り当てられ
たスレッドが、いわゆるコンテキストの切り替えなしに
実行する。
The "dotted line" arrow indicates the flow of data, and the "solid line" arrow indicates the flow of control. Except for the thread management unit 300, the threads assigned to the object group execute without so-called context switching.

【0067】スレッド管理部300は、スレッドの切り
替え処理を行うためにコンテキストの切り換えが必要で
ある。具体的には、スレッドのコンテキストをスレッド
情報記憶部305に保存し、スレッド管理部300のコ
ンテキストにより実行する。
The thread management unit 300 needs to switch contexts in order to perform thread switching processing. Specifically, the thread context is stored in the thread information storage unit 305, and the thread management unit 300 executes the context.

【0068】以下、図3のスケジューリング装置の動作
を説明する。
The operation of the scheduling device shown in FIG. 3 will be described below.

【0069】まず、スレッドは、プログラム実行開始時
に、オブジェクト1の手続きを実行する。
First, the thread executes the procedure of object 1 at the start of program execution.

【0070】手続き中で、他のオブジエクトへ、「cal
l」、「send」を呼び出し、実行する場合、または、オ
ブジェクトの処理が終了した場合には、当該スレッド
は、オブジェクトディスパッチャのライブラリを呼び出
し、実行する。
During the procedure, to another object, "cal
When "l", "send" is called and executed, or when the processing of the object is completed, the thread calls and executes the library of the object dispatcher.

【0071】図10は、オブジェクトディスパッチャ3
10の動作を示すフローチャートである。
FIG. 10 shows the object dispatcher 3
It is a flowchart which shows operation | movement of 10.

【0072】これにより、オブジェクトディスパッチャ
310の動作を説明する。
The operation of the object dispatcher 310 will be described below.

【0073】まず、オブジェクトデスパッチャ310に
要求された処理が何かを判定する(ステップ1001)。
First, it is determined what processing is requested by the object dispatcher 310 (step 1001).

【0074】要求された処理が、call命令およびsend命
令による処理である場合、受信側オブジェクトが生成さ
れているか否かを判定し(ステップ1006)、生成さ
れていなければ、受信側オブジェクトを生成する(ステ
ップ1002)。
When the requested processing is processing by the call instruction and the send instruction, it is judged whether or not the receiving side object is generated (step 1006). If not, the receiving side object is generated. (Step 1002).

【0075】その後、受信側オブジェクトの優先順位を
調べるため、送信側、受信側オブジェクトのオブジェク
ト名および通信関数の種類(send、callのいずれである
か等)を引き数として、オブジェクト優先順位判定部3
30に制御を移す(ステップ1003)。
After that, in order to check the priority of the receiving side object, the object priority determining section is used with the object names of the transmitting side and receiving side objects and the type of communication function (whether send or call, etc.) as arguments. Three
The control is transferred to 30 (step 1003).

【0076】「call」を使用した場合、送信側オブジェ
クト、受信側オブジェクト、オブジェクトディスパッチ
ャ310、オブジェクト優先順位判定部330を、同一
スレッドが一連の関数呼び出しとして実行する。
When “call” is used, the same thread executes the sending side object, the receiving side object, the object dispatcher 310, and the object priority order determination section 330 as a series of function calls.

【0077】したがって、受信側オブジェクトの処理を
終了したスレッドは、ステップ1003における処理の
直後に戻ってくる。
Therefore, the thread that has completed the processing of the receiving side object returns immediately after the processing in step 1003.

【0078】この時、受信側オブジェクトの優先順位に
より、実効スレッド優先順位が変動していれば、元に戻
す必要がある。
At this time, if the effective thread priority varies depending on the priority of the receiving object, it must be restored.

【0079】そこで、ステップ1003における送信側
オブジェクト名と受信側オブジェクト名を入れ換えて引
数とし、オブジェクト優先順位判定部330に制御を移
す(ステップ1005)。 ステップ1001において、
要求された処理が、オブジェクト処理の終了あるいはオ
ブジェクト処理の中断であれば、当該オブジェクトを実
行しているスレッドを待機状態にするため、スレッド
名、sleep要求を引数としてスレッド状態操作管理
部301に制御を移す(ステップ1004)。
Therefore, the object name on the transmitting side and the object name on the receiving side in step 1003 are exchanged as arguments and the control is transferred to the object priority determining section 330 (step 1005). In step 1001,
If the requested process is the end of the object process or the interruption of the object process, the thread state operation management unit 301 is controlled with the thread name and the sleep request as arguments in order to put the thread executing the object into a standby state. Are transferred (step 1004).

【0080】なお、ステップ1002において、受信側
オブジェクトが存在するか否かは、オブジェクトアドレ
ス情報記憶部320の記憶内容にもとづいて判断する。
In step 1002, it is determined whether or not the receiving side object exists based on the stored contents of the object address information storage section 320.

【0081】次に、図8に、オブジェクトアドレス情報
記憶部320の構成図の一例を示す。
Next, FIG. 8 shows an example of a configuration diagram of the object address information storage unit 320.

【0082】オブジェクト名およびオブジェクトの手続
き名801と、当該オブジェクトが配置されたアドレス
802がテーブル状に記憶されている。
An object name, an object procedure name 801, and an address 802 where the object is located are stored in a table.

【0083】オブジェクトはその生成時に、オブジェク
トアドレス情報記憶部320のエントリにオブジェクト
名および手続き名が書き込まれ、メモリ上にオブジェク
トの内容がマッピングされる。また、マッピングアドレ
スが802に書き込まれる。
When an object is created, the object name and the procedure name are written in the entry of the object address information storage section 320, and the contents of the object are mapped in the memory. Further, the mapping address is written in 802.

【0084】実行しようとするオブジェクトが生成され
ていない場合、オブジェクト名のエントリに当該オブジ
ェクトの名前が存在しないことになる。
If the object to be executed has not been generated, the object name entry does not have the name of the object.

【0085】図11に、オブジェクト優先順位判定部3
30の動作を示す。
FIG. 11 shows the object priority order determination unit 3
30 shows the operation.

【0086】まず、オブジェクト優先順位判定部330
は、オブジェクトディスパッチャ310から、送信側オ
ブジェクトと受信側オブジェクトの、オブジェクト名お
よび通信関数の種類(send、callのいずれであるか等)を
引き数として得る(ステップ1101)。
First, the object priority order determination section 330.
Obtains, from the object dispatcher 310, the object name and the type of communication function (whether send or call, etc.) of the sender object and the receiver object as arguments (step 1101).

【0087】次に、オブジェクト優先順位記憶部340
の記憶内容から、送信側オブジェクト、受信側オブジェ
クトの優先順位を得る(ステップ1102)。
Next, the object priority storage unit 340
The priority of the sender object and the receiver object is obtained from the stored contents of (step 1102).

【0088】次に、通信関数の種類を判定し(ステップ
1103)、通信関数が「send」であれば、オブジェク
ト優先順位、wakeup要求を引数として、スレッド
状態操作管理部301に制御を移す(ステップ110
5)。
Next, the type of the communication function is determined (step 1103), and if the communication function is "send", control is transferred to the thread state operation management unit 301 using the object priority and the wakeup request as arguments (step). 110
5).

【0089】ステップ1103において、通信関数が
「call」であれば送信側オブジェクト、受信側オブジェ
クトの優先順位を比較し、スレッドの優先順位の変動が
あるか否かを調べる(ステップ1104)。
If the communication function is "call" in step 1103, the priorities of the transmitting side object and the receiving side object are compared, and it is checked whether or not there is a change in the thread priority order (step 1104).

【0090】ステップ1104において、優先順位の比
較結果が異なれば、当該スレッドの優先順位を変更して
再スケジューリング(次に実行するスレッドを決定しな
おすこと)するため、オブジェクト優先順位、実効スレ
ッド優先順位の変更要求を引数としてスレッド状態操作
管理部301に制御を移す(ステップ1107)。
In step 1104, if the priority comparison results are different, the priority of the thread is changed and rescheduling is performed (the thread to be executed next is determined again). The control is transferred to the thread state operation management unit 301 using the change request of (1) as an argument (step 1107).

【0091】ステップ1104において、送信側オブジ
ェクトと、受信側オブジェクトの優先順位が同一であれ
ば、当該スレッドの優先順位の変更の必要はないので、
当該スレッドはオブジェクトディスパッチャに制御を移
し、受信側オブジェクトの指定された手続きから処理を
開始する(ステップ1106)。
In step 1104, if the sending object and the receiving object have the same priority, it is not necessary to change the priority of the thread.
The thread transfers control to the object dispatcher and starts processing from the designated procedure of the receiving side object (step 1106).

【0092】図9に、ステップ1102で使用するオブ
ジェクト優先順位記憶部340の構成例を示す。
FIG. 9 shows an example of the configuration of the object priority storage unit 340 used in step 1102.

【0093】オブジェクト優先順位記憶部340は、オ
ブジェクト名901と各オブジェクトの優先順位902
を有している。オブジェクト名901と優先順位902
は、オブジェクトが生成される時に、オブジェクトディ
スパッチャ310により記入される。
The object priority storage unit 340 stores the object name 901 and the priority 902 of each object.
have. Object name 901 and priority 902
Are filled in by the object dispatcher 310 when the object is created.

【0094】なお、オブジェクトの優先順位902の内
容は、プログラム中のオブジェクトの定義部分中に、プ
ログラマが記述すればよい。
The contents of the object priority 902 may be described by the programmer in the definition part of the object in the program.

【0095】図12に、スレッド状態操作管理部301
の動作を示す。
FIG. 12 shows the thread state operation management unit 301.
Shows the operation of.

【0096】まず、スレッド状態操作管理部301は、
スレッドの切り替えに備え、現在のスレッドのコンテキ
ストをスレッド情報記憶部305に格納する(ステップ
1201)。
First, the thread state operation management unit 301
In preparation for thread switching, the context of the current thread is stored in the thread information storage unit 305 (step 1201).

【0097】次に、スレッド状態操作管理部301への
要求は何であるかを判定する(ステップ1202)。
Next, it is determined what the request is to the thread state operation management unit 301 (step 1202).

【0098】ステップ1202において、要求処理が
「wakeupルーチン処理」である場合、wakeupするスレッ
ドのスレッド情報記憶部305におけるスレッドの状態
を、待機状態から実行可能状態にする(ステップ120
4)。
If the request process is the "wakeup routine process" in step 1202, the state of the thread in the thread information storage unit 305 of the thread to wakeup is changed from the waiting state to the executable state (step 120).
4).

【0099】その後、wakeupされるスレッドが実行する
オブジェクトを、wakeupルーチンが指定しているか否か
を判定する(ステップ1205)。
After that, it is judged whether the object executed by the thread to be woken up is designated by the wakeup routine (step 1205).

【0100】実行するオブジェクト名、およびその処理
の優先順位が指定されているのは、wakeupスレッドが、
受信側オブジェクトに新たに割り当てられる場合であ
る。
The object name to be executed and the priority of its processing are specified by the wakeup thread.
This is the case when it is newly assigned to the receiving side object.

【0101】ステップ1205において、オブジェクト
が指定されている場合、新たに実行するオブジェクトの
手続きのアドレスを、スレッド情報記憶部305の当該
スレッドの領域に設けられているプログラムカウンタに
書き込む(ステップ1207)。
When an object is designated in step 1205, the address of the procedure of the object to be newly executed is written in the program counter provided in the area of the thread of the thread information storage unit 305 (step 1207).

【0102】これにより、当該スレッドがディスパッチ
ングされたときに、当該スレッドは指定されたオブジェ
クトから処理を開始できる。
As a result, when the thread is dispatched, the thread can start processing from the specified object.

【0103】また、指定された優先順位を、スレッド情
報記憶部305の当該スレッドの領域内の優先順位に書
き込む(ステップ1207)。
Further, the designated priority is written in the priority in the area of the thread of the thread information storage unit 305 (step 1207).

【0104】ステップ1207における処理の後、スレ
ッド名、実行するオブジェクトの優先順位を引数にし
て、スレッド優先順位決定部302に制御を移す(ステ
ップ1208)。
After the processing in step 1207, the thread name and the priority of the object to be executed are used as arguments and the control is transferred to the thread priority determining unit 302 (step 1208).

【0105】ステップ1205において、オブジェクト
が指定されていない場合、スレッドディスパッチャに制
御を移す(ステップ1206)。
If no object is specified in step 1205, the control is transferred to the thread dispatcher (step 1206).

【0106】ステップ1202において、要求処理がsl
eepルーチン処理である場合、指定されたスレッドのス
レッド情報記憶部305内におけるスレッドの状態を待
機状態にする(ステップ1203)。
At step 1202, the request process is sl.
If it is the eep routine process, the state of the thread in the thread information storage unit 305 of the designated thread is set to the standby state (step 1203).

【0107】その後、スレッドディスパッチャに制御を
移す(ステップ1206)。ステップ1202において、
要求処理が実効スレッド優先順位の変更のための処理で
ある場合、実行状態にあるスレッドのスレッド情報記憶
部305内におけるスレッドの状態を、実行可能状態に
する(ステップ1209)。
Thereafter, control is transferred to the thread dispatcher (step 1206). In step 1202,
If the request process is a process for changing the effective thread priority, the state of the thread in the thread information storage unit 305 of the thread in the running state is set to the runnable state (step 1209).

【0108】実効スレッド優先順位の変更は、例えばse
nd、call命令によってスレッドの優先順位がオブジェク
トの優先順位によって変更される場合に、オブジェクト
優先順位判定部330から要求が出される。
The effective thread priority can be changed by, for example, se
When the priority of the thread is changed by the priority of the object by the nd and call instructions, the object priority determination unit 330 issues a request.

【0109】ステップ1209の処理の後に、スレッド
名、実行するオブジェクトの優先順位を引数にして、ス
レッド優先順位決定部302に制御を移す(ステップ1
210)。
After the processing of step 1209, the thread name and the priority of the object to be executed are used as arguments and the control is transferred to the thread priority determining unit 302 (step 1
210).

【0110】図6に、ステップ1201、ステップ12
03、ステップ1204、およびステップ1207にお
ける処理にてアクセスされる、スレッド情報記憶部30
5の構成を示す。
FIG. 6 shows steps 1201 and 12
03, step 1204, and step 1207, the thread information storage unit 30 is accessed.
5 shows the configuration.

【0111】スレッド情報記憶部305の内容は、スレ
ッド名601、コンテキストの一部であるレジスタ60
2、603等、スレッドの優先順位604、スレッドの
状態605を有して構成される。
The contents of the thread information storage unit 305 include the thread name 601 and the register 60 which is a part of the context.
2, 603, etc., and has a thread priority 604 and a thread state 605.

【0112】図13に、スレッド優先順位決定部302
の動作を示す。
FIG. 13 shows the thread priority order determination unit 302.
Shows the operation of.

【0113】まず、スレッド状態操作管理部301か
ら、引数により指定されたスレッドのスレッド優先順位
を、スレッド情報記憶部305から読み込む(ステップ
1301)。
First, the thread state operation management unit 301 reads the thread priority of the thread designated by the argument from the thread information storage unit 305 (step 1301).

【0114】ステップ1301における処理で得られた
スレッド優先順位に、スレッド状態操作管理部301か
ら、引数によって与えられたオブジェクトの優先順位を
加え、実効スレッド優先順位とする計算を行う(ステッ
プ1302)。
The thread state operation management unit 301 adds the priority order of the object given by the argument to the thread priority order obtained in the processing in step 1301 to calculate the effective thread priority order (step 1302).

【0115】なお、後述するスレッドディスパッチャ3
04によるスケジューリングは、スレッドの優先順位で
はなく、この実効スレッド優先順位に基づいて行われ
る。
The thread dispatcher 3 described later
Scheduling by 04 is based on this effective thread priority, not the thread priority.

【0116】ステップ1302における処理の後、スレ
ッド名と実効スレッド優先順位を、優先順位記憶部30
3内に設けられているキューの適当な場所に記録する
(ステップ1303)。
After the processing in step 1302, the thread name and the effective thread priority are stored in the priority storage unit 30.
Record in an appropriate place in the cue provided in 3
(Step 1303).

【0117】最後に、スレッドディスパッチャに制御を
移す(ステップ1304)。
Finally, the control is transferred to the thread dispatcher (step 1304).

【0118】図7に優先順位記憶部303に構成される
キューの構成図を示す。
FIG. 7 shows a block diagram of a queue formed in the priority storage unit 303.

【0119】優先順位記憶部303内のキューでは、ス
レッド名701と実効スレッド優先順位702を記憶し
たテーブルが、ポインタ703により連結されている。
In the queue in the priority storage unit 303, a table storing a thread name 701 and an effective thread priority 702 is linked by a pointer 703.

【0120】連結の順番は、実効スレッド優先順位の高
い順番になっており、ステップ1303においても、順
番の高さにしたがって、新しいテーブルを連結してい
く。
The order of connection is such that the effective thread priority is high, and in step 1303, new tables are connected according to the height of the order.

【0121】図14は、スレッドディスパッチャ304
の動作を示す。
FIG. 14 shows the thread dispatcher 304.
Shows the operation of.

【0122】まず、優先順位記憶部303内のキューの
先頭からスレッド名(TRD)を得る(ステップ140
1)。
First, the thread name (TRD) is obtained from the head of the queue in the priority storage unit 303 (step 140).
1).

【0123】次に、ステップ1401で得られたスレッ
ド(スレッド名(TRD)のスレッド)の状態(STA
TE)を、スレッド情報記憶部305から得る(ステッ
プ1402)。
Next, the status (STA) of the thread (thread with the thread name (TRD)) obtained in step 1401.
TE) is obtained from the thread information storage unit 305 (step 1402).

【0124】次に、スレッドの状態(STATE)を判
定し(ステップ1403)、スレッドが待機状態であれ
ば、優先順位記憶部303内のキューの、次のテーブル
からスレッド名を新たに得て、ステップ1402に戻る
(ステップ1403)。
Next, the state of the thread (STATE) is judged (step 1403), and if the thread is in the waiting state, the thread name is newly obtained from the next table of the queue in the priority storage unit 303, Return to step 1402
(Step 1403).

【0125】ステップ1403において、スレッドの状
態が実行可能状態であれば、スレッド情報記憶部305
のうち、現在選択されているスレッド名に対応する領域
から、コンテキストを実プロセッサに回復し、当該スレ
ッドにもとづく処理を開始する(ステップ1405)。
In step 1403, if the thread is in the runnable state, the thread information storage unit 305
Of these, the context is restored to the real processor from the area corresponding to the currently selected thread name, and the processing based on the thread is started (step 1405).

【0126】図4は、図3のスケジューリング装置を計
算機上に実現した構成例を示す図である。
FIG. 4 is a diagram showing a configuration example in which the scheduling device of FIG. 3 is realized on a computer.

【0127】本構成例において、計算機は、プロセッサ
410、大容量記憶装置であるディスク420、および
記憶装置であるメモリ430を有して構成され、さら
に、表示装置であるディスプレイ440、ロケータであ
るマウス450、および入力装置であるキーボードが接
続されている。
In this configuration example, the computer is configured to have a processor 410, a disk 420 which is a mass storage device, and a memory 430 which is a storage device, and further, a display 440 which is a display device, and a mouse which is a locator. 450 and a keyboard that is an input device are connected.

【0128】図4に示すように、図3におけるスレッド
管理部300、オブジェクトディスパッチャ310、オ
ブジェクト優先順位判定部330、オブジェクトアドレ
ス情報記憶部320、オブジェクト優先順位記憶部34
0は、計算機400内のメモリにより実現され、オブジ
ェクト1、2、3、4を有するプログラム100は、計
算機400内のメモリ上に記憶され、プロセッサ410
により、プログラム100が実行される。
As shown in FIG. 4, the thread management unit 300, the object dispatcher 310, the object priority order determination unit 330, the object address information storage unit 320, and the object priority order storage unit 34 shown in FIG.
0 is realized by the memory in the computer 400, and the program 100 having the objects 1, 2, 3, and 4 is stored in the memory in the computer 400, and the processor 410
Thus, the program 100 is executed.

【0129】本実施例においては、プロセッサ410を
1つ設けた構成であるが、複数のプロセッサを備え、ス
レッドの並列処理を行うことも可能である。
In this embodiment, one processor 410 is provided, but it is also possible to provide a plurality of processors for parallel processing of threads.

【0130】図2は、本発明にかかるスケジューリング
装置が、どの様に図1に示すプログラムに作用するかを
示している。
FIG. 2 shows how the scheduling device according to the present invention acts on the program shown in FIG.

【0131】図2を参照して、本発明の具体的動作を説
明する。
The specific operation of the present invention will be described with reference to FIG.

【0132】211、212は、スレッド10の実効ス
レッド優先順位の時間変化を、221、222、22
3、224、225、226、227は、スレッド20
の実効スレッド優先順位の時間変化を、231、23
2、233、234、235、236、237は、スレ
ッド30の実効スレッド優先順位の時間変化を示す。
Reference numerals 211 and 212 indicate changes in the effective thread priority of the thread 10 with time.
3, 224, 225, 226, 227 are thread 20
Changes in the effective thread priority of 231 and 23
Reference numerals 2, 233, 234, 235, 236, and 237 represent changes over time in the effective thread priority of the thread 30.

【0133】実線にて示した211、223、224、
226、233、236は、当該スレッドが実行状態で
あることを示す。
211, 223, 224 indicated by solid lines,
226, 233, and 236 indicate that the thread is in the running state.

【0134】斜線の点線にて示した212、221、2
27、231、234、237は、当該スレッドが待機
状態であることを示す。
212, 221, and 2 shown by the diagonal dotted lines
27, 231, 234, and 237 indicate that the thread is in a standby state.

【0135】点線にて示した222、225、232、
235は、当該スレッドが実行可能状態であることを示
す。
The dotted lines 222, 225, 232,
Reference numeral 235 indicates that the thread is in an executable state.

【0136】図4に示す実施例においては、プロセッサ
は1つであるので、同一時刻には、スレッドのいずれか
1つのみが実行状態になりうる。
In the embodiment shown in FIG. 4, since there is one processor, only one of the threads can be in the running state at the same time.

【0137】実効スレッド優先順位は、その値が大きい
ほど優先度が高いものとする。
The larger the value of the effective thread priority, the higher the priority.

【0138】オブジェクト1、オブジェクト群110、
オブジェクト群120において、オブジェクト1、オブ
ジェクト群120、オブジェクト群110の順に、制限
時間が厳しいとする。
Object 1, object group 110,
In the object group 120, it is assumed that the time limit is strict in the order of the object 1, the object group 120, and the object group 110.

【0139】したがって、それぞれを実行するスレッド
10、スレッド20、スレッド30のスレッド優先順位
を、それぞれ「100」、「80」、「90」とする。
Therefore, the thread priorities of the thread 10, the thread 20, and the thread 30 executing the respective threads are set to "100", "80", and "90", respectively.

【0140】また、図9に示すようにオブジェクト3が
制限時間の厳しいオブジェクトであり、その優先順位
は、「+30」である。また、他のオブジェクトの優先
順位は、「0」である。
Further, as shown in FIG. 9, the object 3 is an object having a strict time limit, and its priority is "+30". In addition, the priority of other objects is “0”.

【0141】プログラム開始時には、スレッド10がオ
ブジェクト1を実効スレッド優先順位「100」で実行
しており、一方、スレッド20、30は待機状態にあ
る。
At the start of the program, the thread 10 is executing the object 1 with the effective thread priority "100", while the threads 20 and 30 are in the waiting state.

【0142】オブジェクト1において、オブジェクト4
に対して「send」130を呼び出し、実行させると、ス
レッド30が実行可能状態になり、オブジェクト4に割
り当てられる。
Object 1 and object 4
When "send" 130 is called for and executed, the thread 30 becomes the executable state and is assigned to the object 4.

【0143】同様にオブジェクト2に対して「send」1
40を呼び出し、実行させると、スレッド20が実行可
能状態になりオブジェクト2に割り当てられる。
Similarly, “send” 1 for object 2
When 40 is called and executed, the thread 20 enters the runnable state and is assigned to the object 2.

【0144】この時の実効スレッド優先順位は、前述の
通りスレッド20が「80」、スレッド30が「90」
である。
At this time, the effective thread priority is "80" for the thread 20 and "90" for the thread 30 as described above.
Is.

【0145】スレッド10が、オブジェクト1の終了に
ともなって待機状態になると、スレッドディスパッチャ
304により、スレッド30が選択され、オブジェクト
4の実行を開始する。
When the thread 10 enters the standby state with the end of the object 1, the thread 30 is selected by the thread dispatcher 304 and the execution of the object 4 is started.

【0146】オブジェクト4に、所定時間処理を中断す
る命令であるsleep命令160が存在すると、スレッド
30は待機状態となる。
When the sleep instruction 160, which is an instruction for interrupting the processing for a predetermined time, exists in the object 4, the thread 30 enters the waiting state.

【0147】その後、スレッドディスパッチャ304に
より、スレッド20が選択され、オブジェクト2の実行
を開始する。
After that, the thread 20 is selected by the thread dispatcher 304 and the execution of the object 2 is started.

【0148】オブジェクト2では、オブジェクト3に対
するcall命令を実行するものとする。
Object 2 executes the call instruction for object 3.

【0149】オブジェクト3は、オブジェクトの優先順
位が「+30」であることが、オブジェクト優先順位判
定部330により判定され、スレッド優先順位決定部3
02が、スレッド20の実効スレッド優先順位を「3
0」だけ上昇させた結果、スレッド20の優先順位は、
「110」に上昇する。
For the object 3, the object priority determining unit 330 determines that the priority of the object is “+30”, and the thread priority determining unit 3
02 sets the effective thread priority of the thread 20 to “3
As a result of increasing by “0”, the priority of the thread 20 is
It rises to "110".

【0150】ここではオブジェクトの優先順位を加算す
る処理にしてあるが、減算等の他の演算でも良いことは
言うまでもない。
Although the processing of adding the priority order of the objects is performed here, it goes without saying that other operations such as subtraction may be performed.

【0151】オブジェクト4におけるsleep命令により
指定した時間が経過すると、スレッド30が実行可能状
態になる。しかし、スレッド20がオブジェクト3を実
行している間はスレッド20の実効スレッド優先順位が
高くなっているので、スレッド20からプロセッサの占
有権を移転させることはできない。
When the time designated by the sleep instruction in the object 4 elapses, the thread 30 becomes ready for execution. However, since the effective thread priority of the thread 20 is high while the thread 20 is executing the object 3, the exclusive right of the processor cannot be transferred from the thread 20.

【0152】オブジェクト3の処理が終了すると、スレ
ッド20の実効スレッド優先順位が「80」へと戻る。
When the processing of the object 3 is completed, the effective thread priority of the thread 20 is returned to "80".

【0153】ここで、スレッドディスパッチャ304
は、スレッドの切り替え処理を行い、スレッド30を実
行状態にする。
Here, the thread dispatcher 304
Performs thread switching processing to put the thread 30 into the running state.

【0154】上記実施例においては、図4に示すよう
に、単一プロセッサシステムにおけるスケジューリング
について述べたが、マルチプロセッサシステム、複数の
計算機をネットワークで結合して構成した分散処理シス
テム等においても、オブジェクトを並列実行する際に、
本発明にかかるスケジューリング装置の適用が可能であ
ることは言うまでもない。
In the above embodiment, the scheduling in the single processor system is described as shown in FIG. 4, but in the multiprocessor system, the distributed processing system in which a plurality of computers are connected by the network, etc. When executing in parallel,
It goes without saying that the scheduling device according to the present invention can be applied.

【0155】また、オブジェクト間の通信関数にsend、
callの区別がない場合や、オブジェクト間の通信がメッ
セージ通信ではなく、関数呼び出しである場合において
も、同様に、本スケジューリング装置の適用が可能であ
る。
In addition, send,
Even when there is no distinction between calls or when communication between objects is not a message communication but a function call, the present scheduling device can be similarly applied.

【0156】上記実施例で示したように、オブジェクト
群が制限時間の厳しくない処理であり、その結果、当該
オブジェクト群が、低い優先順位のスレッドで実行され
る場合でも、これに含まれる特定のオブジェクトが、中
断してはならない処理であれば、プログラマがオブジェ
クト優先順位記憶部330に格納される優先順位を予め
高く設定しておき、オブジェクト処理中の該処理の中断
を回避することができる。
As shown in the above embodiment, the object group is a process whose time limit is not severe, and as a result, even when the object group is executed by a thread having a low priority, the specific group included in this object group is executed. If the object is a process that must not be interrupted, the programmer can set a high priority stored in the object priority storage unit 330 in advance to avoid interrupting the process during object processing.

【0157】また、オブジェクトごとに優先順位を設定
することができるので、オブジェクトの性質に合わせ、
きめ細かな実行順序の制御が可能である。
Further, since the priority can be set for each object, according to the nature of the object,
It is possible to finely control the execution order.

【0158】オブジェクトの優先順位が変動しない場合
には、オブジェクトの切り替えに際し、スレッドの切り
替えや、再スケジューリングが不要である。したがっ
て、従来のスレッド連続方法と同様に、オブジェクトの
切り替え処理は、高速に行える。
When the priority order of objects does not change, thread switching and rescheduling are not required when switching objects. Therefore, similar to the conventional thread continuation method, the object switching process can be performed at high speed.

【0159】さらに、オブジェクトを構成する「手続
き」を記述する際、オブジェクトがどのような優先順位
のオブジェクト群に組み込まれるかを配慮してプログラ
ミングを行う必要もない。 また、ユーザのプログラム
中に優先順位を上昇させる命令自体を記述する必要がな
く、優先順位情報を持たせるだけでよい。このため、オ
ブジェクトの汎用性が高くなる。
Furthermore, when describing a "procedure" that constitutes an object, it is not necessary to perform programming in consideration of the priority order of the object into which the object is incorporated. Further, it is not necessary to describe the instruction itself for increasing the priority in the user's program, and it is sufficient to have the priority information. Therefore, the versatility of the object is enhanced.

【0160】[0160]

【発明の効果】オブジェクトを呼び出し実行するスレッ
ドが、低い優先順位であっても、当該オブジェクトが中
断されてはならないような処理であれば、当該オブジェ
クトの優先順位を、予め高く設定しておくことにより、
オブジェクト処理中のスレッドの切替え処理を回避する
ことが可能になる。
If the thread that calls and executes an object has a low priority, and the processing is such that the object must not be suspended, the priority of the object should be set high in advance. Due to
It is possible to avoid the thread switching processing during object processing.

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

【図1】スレッドが並列オブジェクト指向言語により記
述されたプログラムを実行する様子を示す説明図であ
る。
FIG. 1 is an explanatory diagram showing how threads execute a program written in a parallel object-oriented language.

【図2】スレッドの優先順位と状態遷移の変化を示すタ
イムチャート図である。
FIG. 2 is a time chart showing changes in thread priority and state transition.

【図3】スケジューリング装置の実施例の構成図であ
る。
FIG. 3 is a configuration diagram of an embodiment of a scheduling device.

【図4】スケジューリング装置を計算機上に実現した構
成図の一例である。
FIG. 4 is an example of a configuration diagram in which a scheduling device is realized on a computer.

【図5】スレッドの状態遷移図である。FIG. 5 is a thread state transition diagram.

【図6】スレッド情報記憶部の構成図である。FIG. 6 is a configuration diagram of a thread information storage unit.

【図7】優先順位記憶部の構成図である。FIG. 7 is a configuration diagram of a priority order storage unit.

【図8】オブジェクトアドレス情報記憶部の構成図であ
る。
FIG. 8 is a configuration diagram of an object address information storage unit.

【図9】オブジェクト優先順位記憶部の構成図である。FIG. 9 is a configuration diagram of an object priority storage unit.

【図10】本発明にかかる実施例の動作を示すフローチ
ャートである。
FIG. 10 is a flowchart showing the operation of the embodiment according to the present invention.

【図11】本発明にかかる実施例の動作を示すフローチ
ャートである。
FIG. 11 is a flowchart showing the operation of the embodiment according to the present invention.

【図12】本発明にかかる実施例の動作を示すフローチ
ャートである。
FIG. 12 is a flowchart showing the operation of the embodiment according to the present invention.

【図13】本発明にかかる実施例の動作を示すフローチ
ャートである。
FIG. 13 is a flowchart showing the operation of the embodiment according to the present invention.

【図14】本発明にかかる実施例の動作を示すフローチ
ャートである。
FIG. 14 is a flowchart showing the operation of the embodiment according to the present invention.

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

1…オブジェクト、2…オブジェクト、3…オブジェク
ト、4…オブジェクト、10…スレッド、20…スレッ
ド、30…スレッド、100…プログラム、110…オ
ブジェクト群、120…オブジェクト群、130…sen
d、140…send、150…call、16…sleep命令、1
70…wakeup命令、211…スレッドの状態遷移と優先
順位、212…スレッドの状態遷移と優先順位、221
…スレッドの状態遷移と優先順位、222…スレッドの
状態遷移と優先順位、223…スレッドの状態遷移と優
先順位、224…スレッドの状態遷移と優先順位、22
5…スレッドの状態遷移と優先順位、226…スレッド
の状態遷移と優先順位、227…スレッドの状態遷移と
優先順位、231…スレッドの状態遷移と優先順位、2
32…スレッドの状態遷移と優先順位、233…スレッ
ドの状態遷移と優先順位、234…スレッドの状態遷移
と優先順位、235…スレッドの状態遷移と優先順位、
236…スレッドの状態遷移と優先順位、237…スレ
ッドの状態遷移と優先順位、300…スレッド管理部、
301…スレッド状態操作管理部、302…スレッド優
先順位決定部、303…優先順位記憶部、304…スレ
ッドディスパッチャ、305…スレッド情報記憶部、3
10…オブジェクトディスパッチャ、320…オブジェ
クトアドレス情報記憶部、330…オブジェクト優先順
位判定部、340…オブジェクト優先順位記憶部、40
0…計算機、410…プロセッサ、420…ディスク、
430…メモリ、440…ディスプレイ、450…マウ
ス、460…キーボード、510…実行状態、520…
実行可能状態、530…待機状態、601…スレッド
名、602…レジスタ、603…レジスタ、604…優
先順位、605…スレッド状態、701…スレッド名、
702…優先順位、801…オブジェクト名、802…
アドレス、803…ポインタ、901…オブジェクト
名、902…優先順位
1 ... object, 2 ... object, 3 ... object, 4 ... object, 10 ... thread, 20 ... thread, 30 ... thread, 100 ... program, 110 ... object group, 120 ... object group, 130 ... sen
d, 140 ... send, 150 ... call, 16 ... sleep instruction, 1
70 ... Wakeup command, 211 ... Thread state transition and priority, 212 ... Thread state transition and priority, 221
... Thread state transitions and priorities, 222 ... Thread state transitions and priorities, 223 ... Thread state transitions and priorities, 224 ... Thread state transitions and priorities, 22
5 ... Thread state transition and priority, 226 ... Thread state transition and priority, 227 ... Thread state transition and priority, 231 ... Thread state transition and priority, 2
32 ... Thread state transition and priority order, 233 ... Thread state transition and priority order, 234 ... Thread state transition and priority order, 235 ... Thread state transition and priority order,
236 ... Thread state transition and priority order, 237 ... Thread state transition and priority order, 300 ... Thread management unit,
301 ... Thread state operation management unit, 302 ... Thread priority order determination unit, 303 ... Priority order storage unit, 304 ... Thread dispatcher, 305 ... Thread information storage unit, 3
10 ... Object dispatcher, 320 ... Object address information storage unit, 330 ... Object priority order determination unit, 340 ... Object priority order storage unit, 40
0 ... Calculator, 410 ... Processor, 420 ... Disk,
430 ... Memory, 440 ... Display, 450 ... Mouse, 460 ... Keyboard, 510 ... Execution state, 520 ...
Executable state, 530 ... Standby state, 601 ... Thread name, 602 ... Register, 603 ... Register, 604 ... Priority order, 605 ... Thread state, 701 ... Thread name,
702 ... Priority order, 801, ... Object name, 802 ...
Address, 803 ... Pointer, 901 ... Object name, 902 ... Priority order

───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 智明 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Tomoaki Nakamura 5-2-1 Omika-cho, Hitachi-shi, Ibaraki Hitachi Ltd. Omika factory

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】並列オブジェクト指向プログラムを構成す
る複数のオブジェクト群を、複数の仮想プロセッサが、
並行または並列処理する計算機システムにおける、仮想
プロセッサのスケジューリングを行うスケジューリング
システムであって、 前記各オブジェクト群を構成する各オブジェクトに対し
て、予め定めた優先順位を記憶するオブジェクト優先順
位記憶手段と、 前記オブジェクト優先順位記憶手段の内容を参照して、
仮想プロセッサが次に実行すべきオブジェクトの優先順
位を判定するオブジェクト優先順位判定手段と、 前記仮想プロセッサに予め定められている優先順位と、
前記オブジェクト優先順位判定手段により得られたオブ
ジェクトの優先順位とから、予め定められた関係にもと
づいて優先順位を決定する手段と、該決定された優先順
位を実効優先順位として記憶する実効優先順位記憶手段
と、 前記実効優先順位記憶手段に記憶された実効優先順位を
参照し、予め定められた規則にしたがって、次に実行す
る仮想プロセッサを決定する仮想プロセッサ管理手段と
を備えることを特徴とするスケジューリングシステム。
1. A plurality of virtual processors are provided for a plurality of object groups constituting a parallel object-oriented program.
A scheduling system for scheduling virtual processors in a parallel or parallel processing computer system, comprising object priority storage means for storing a predetermined priority for each object constituting each object group, Referring to the contents of the object priority storage means,
An object priority determining unit that determines the priority of the object to be executed next by the virtual processor, and a priority that is predetermined for the virtual processor,
Means for determining a priority order based on a predetermined relationship from the object priority order obtained by the object priority order determination means, and an effective priority order memory for storing the determined priority order as an effective priority order And a virtual processor management unit that determines a virtual processor to be executed next according to a predetermined rule by referring to the effective priority stored in the effective priority storage unit. system.
【請求項2】並列オブジェクト指向言語で作成されたプ
ログラムを構成する複数のオブジェクト群を、複数の仮
想プロセッサが、並行または並列処理する計算機システ
ムであって、受信側オブジェクトが有する関数を、送信
側オブジェクトが割り当てられた仮想プロセッサが呼び
出し実行せしめ、受信側オブジェクトが実行結果を返す
まで、送信側オブジェクトの実行を中止するオブジェク
ト間同期通信手段を具備し、仮想プロセッサのスケジュ
ーリングを行うスケジューリングシステムにおいて、 前記各オブジェクト群を構成する各オブジェクトに対し
て、予め定めた優先順位を記憶するオブジェクト優先順
位記憶手段と、 前記オブジェクト優先順位記憶手段の内容を参照して、
仮想プロセッサが次に実行すべきオブジェクトの優先順
位を判定するオブジェクト優先順位判定手段と、 前記仮想プロセッサに予め定められている優先順位と、
前記オブジェクト優先順位判定手段により得られたオブ
ジェクトの優先順位とから、予め定められた関係にもと
づいて優先順位を決定する手段と、該決定された優先順
位を実効優先順位として記憶する実効優先順位記憶手段
と、 前記実効優先順位記憶手段に記憶された実効優先順位を
参照し、予め定められた規則にしたがって、次に実行す
る仮想プロセッサを決定する仮想プロセッサ管理手段と
を備えることを特徴とするスケジューリングシステム。
2. A computer system in which a plurality of virtual processors processes in parallel or in parallel a plurality of object groups constituting a program created in a parallel object-oriented language, and a function of a receiving side object has a transmitting side. A scheduling system for scheduling virtual processors, comprising: inter-object synchronous communication means for causing a virtual processor to which an object is assigned to call and execute, and stopping execution of a sender object until a receiver object returns an execution result, For each object forming each object group, referring to the contents of the object priority storage means for storing a predetermined priority and the object priority storage means,
An object priority determining unit that determines the priority of the object to be executed next by the virtual processor, and a priority that is predetermined for the virtual processor,
Means for determining a priority order based on a predetermined relationship from the object priority order obtained by the object priority order determination means, and an effective priority order memory for storing the determined priority order as an effective priority order And a virtual processor management unit that determines a virtual processor to be executed next according to a predetermined rule by referring to the effective priority stored in the effective priority storage unit. system.
【請求項3】請求項1または2において、前記予め定め
られた関係は、前記仮想プロセッサに予め定められてい
る優先順位と前記オブジェクト優先順位判定手段により
得られたオブジェクトの優先順位を加算し、前記実効優
先順位を決定するものであることを特徴とするスケジュ
ーリングシステム。
3. The predetermined relationship according to claim 1 or 2, wherein the predetermined priority of the virtual processor and the priority of the object obtained by the object priority determination means are added, A scheduling system for determining the effective priority.
【請求項4】請求項3において、前記予め定められた規
則は、実効優先順位の値の最も大きな仮想プロセッサ
を、次に実行する仮想プロセッサとすることを特徴とす
るスケジューリングシステム。
4. The scheduling system according to claim 3, wherein the predetermined rule sets a virtual processor having a largest effective priority value as a virtual processor to be executed next.
【請求項5】請求項1、2、3および4いずれかにおい
て、前記仮想プロセッサは、実プロセッサのレジスタの
値を格納する手段とスタックとを少なくとも備えて構成
されるスレッドであることを特徴とするスケジューリン
グシステム。
5. The virtual processor according to any one of claims 1, 2, 3 and 4, wherein the virtual processor is a thread including at least a unit for storing a register value of a real processor and a stack. Scheduling system to do.
JP10841793A 1993-05-10 1993-05-10 Scheduling system Expired - Fee Related JP3349547B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10841793A JP3349547B2 (en) 1993-05-10 1993-05-10 Scheduling system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10841793A JP3349547B2 (en) 1993-05-10 1993-05-10 Scheduling system

Publications (2)

Publication Number Publication Date
JPH06324888A true JPH06324888A (en) 1994-11-25
JP3349547B2 JP3349547B2 (en) 2002-11-25

Family

ID=14484240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10841793A Expired - Fee Related JP3349547B2 (en) 1993-05-10 1993-05-10 Scheduling system

Country Status (1)

Country Link
JP (1) JP3349547B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100421797B1 (en) * 1994-12-09 2004-05-20 텔레폰아크티에볼라게트 엘엠 에릭슨 An internal execution thread management system and method thereof
WO2007055055A1 (en) * 2005-11-08 2007-05-18 Yokogawa Electric Corporation Distribution system
KR100759280B1 (en) * 1999-02-19 2007-09-17 가부시키가이샤 히타치세이사쿠쇼 Computer for executing multiple operating systems
JP2007265029A (en) * 2006-03-28 2007-10-11 Nomura Research Institute Ltd Job management apparatus and job management method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100421797B1 (en) * 1994-12-09 2004-05-20 텔레폰아크티에볼라게트 엘엠 에릭슨 An internal execution thread management system and method thereof
KR100759280B1 (en) * 1999-02-19 2007-09-17 가부시키가이샤 히타치세이사쿠쇼 Computer for executing multiple operating systems
WO2007055055A1 (en) * 2005-11-08 2007-05-18 Yokogawa Electric Corporation Distribution system
JP2007133481A (en) * 2005-11-08 2007-05-31 Yokogawa Electric Corp Distributed system
CN101305348A (en) * 2005-11-08 2008-11-12 横河电机株式会社 Distributed system
US8296770B2 (en) 2005-11-08 2012-10-23 Yokogawa Electric Corporation Systems and methods for allocation of hardware resource to tasks accordance with the device-based relative value for each of the field devices
JP2007265029A (en) * 2006-03-28 2007-10-11 Nomura Research Institute Ltd Job management apparatus and job management method

Also Published As

Publication number Publication date
JP3349547B2 (en) 2002-11-25

Similar Documents

Publication Publication Date Title
US6732138B1 (en) Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process
US5333319A (en) Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US5448732A (en) Multiprocessor system and process synchronization method therefor
US5748468A (en) Prioritized co-processor resource manager and method
US9996401B2 (en) Task processing method and virtual machine
JP4072271B2 (en) A computer running multiple operating systems
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
US8161453B2 (en) Method and apparatus for implementing task management of computer operations
US5542088A (en) Method and apparatus for enabling control of task execution
JP3659062B2 (en) Computer system
JP6383518B2 (en) Virtual machine monitor and virtual machine monitor scheduling method
EP0767938B1 (en) Method for enforcing a hierarchical invocation structure in real time asynchronous software applications
JP4690437B2 (en) Communication method, communication apparatus and program for network application
EP0301221B1 (en) An improved subsystem input service for dynamically scheduling work for a computer system
US5666523A (en) Method and system for distributing asynchronous input from a system input queue to reduce context switches
US20140223437A1 (en) Method and electronic device for thread scheduling
US20100131956A1 (en) Methods and systems for managing program-level parallelism
JPH08212086A (en) System and method for operating of office machine
US20010034751A1 (en) Real-time OS simulator
JP2015520425A (en) Computer system and control method thereof
JP2004326774A (en) Selective generation of asynchronous report about compartment managing operation for logically compartmentalized computer
CN111158855A (en) Lightweight virtual clipping method based on micro-container and cloud function
JP2004078322A (en) Task management system, program, recording medium, and control method
JPH06324888A (en) Scheduling system
CN100576175C (en) The parallel executing method and the system that are used for a plurality of kernels

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees