JPH0836553A - Multiprocessor system and task scheduling method therein - Google Patents

Multiprocessor system and task scheduling method therein

Info

Publication number
JPH0836553A
JPH0836553A JP16937094A JP16937094A JPH0836553A JP H0836553 A JPH0836553 A JP H0836553A JP 16937094 A JP16937094 A JP 16937094A JP 16937094 A JP16937094 A JP 16937094A JP H0836553 A JPH0836553 A JP H0836553A
Authority
JP
Japan
Prior art keywords
task
cpu
priority
executed
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP16937094A
Other languages
Japanese (ja)
Other versions
JP3524961B2 (en
Inventor
Takeshi Sawazaki
武 澤崎
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 JP16937094A priority Critical patent/JP3524961B2/en
Publication of JPH0836553A publication Critical patent/JPH0836553A/en
Application granted granted Critical
Publication of JP3524961B2 publication Critical patent/JP3524961B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PURPOSE:To perform an optimum task scheduling in the case where a task that is being executed by a CPU on the multiprocessor system, changes the states of other tasks. CONSTITUTION:When the task 11A that is being executed by the CPU 10-0 changes the states of the tasks indicated by task control blocks 61E and 61F in a 'wait' task group 60 and a connection with a task ready queue 50 is made, a CPU, which should perform task switching has its order determined in the increasing order of the execution priority of the task being executed by the CPU on the basis of CPU numbers and the priority of the in-execution task recorded in blocks 42 to 44 connected to the queue 40, and a specific interruption is generated to the determined CPU at each time to switch the task to be executed by the interrupted CPU to the task indicated by the head task control block connected to the queue 50.

Description

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

【0001】[0001]

【産業上の利用分野】この発明は、マルチプロセッサシ
ステムおよび同システムにおけるタスクスケジューリン
グ方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor system and a task scheduling method in the system.

【0002】[0002]

【従来の技術】従来、複数のCPU(プロセッサ)が並
列に動作するマルチプロセッサシステムでは、システム
内の或るCPUで実行中のタスクの動作によりタスクス
ケジューリングの必要が生じた場合、自CPUに割り込
みを発生し、自CPU上で実行すべきタスクの決定のみ
を行っていた。
2. Description of the Related Art Conventionally, in a multiprocessor system in which a plurality of CPUs (processors) operate in parallel, when task scheduling becomes necessary due to the operation of a task being executed by a certain CPU in the system, the CPU is interrupted. Occurred, and only the task to be executed on its own CPU was determined.

【0003】例えば、CPU上で実行中のタスクが、他
のタスクを「待ち」の状態から「実行可能」状態にした
場合、タスクスケジューリングをする必要がある。この
とき自CPUに割り込みを発生し、割り込み処理として
自CPU上で次に実行するタスクを以下のように決定す
る。即ち、実行中タスク(自タスク)の優先度(実行優
先度)と、(直前に「実行可能」状態にしたタスクを含
む)実行可能タスクが優先度順につながれているキュー
(以下、タスクレディーキューと称する)の中で最高優
先度のものを比較し、優先度の高い方を次に実行するタ
スクとして決定する。そして、この決定したタスクを自
CPUで実行する。
For example, when a task being executed on the CPU changes another task from the "waiting" state to the "executable" state, it is necessary to perform task scheduling. At this time, an interrupt is generated in the own CPU, and the task to be executed next on the own CPU as interrupt processing is determined as follows. That is, the priority (execution priority) of the task being executed (self task) and the queue in which the executable tasks (including the task that has been placed in the “executable” state immediately before) are connected in order of priority (hereinafter, task ready queue). (Referred to as), the one with the highest priority is compared, and the one with the higher priority is determined as the task to be executed next. Then, the determined task is executed by the own CPU.

【0004】[0004]

【発明が解決しようとする課題】上記したように従来の
マルチプロセッサシステムにおけるタスクスケジューリ
ングでは、或るCPUでのタスク実行中にタスクスケジ
ューリング処理が必要となった場合、自CPUに割り込
みを発生し、そのCPU自身が、実行中のタスクとタス
クレディーキューにつながれているタスク群(中の最高
優先度のタスク)をもとに、次に実行するタスクを決定
するようにしていた。
As described above, in conventional task scheduling in a multiprocessor system, when task scheduling processing is required during task execution in a certain CPU, an interrupt is generated in the own CPU, The CPU itself determines the next task to be executed based on the task being executed and the task group (the highest priority task among them) connected to the task ready queue.

【0005】このように従来は、或るCPU上で実行中
のタスクが他のタスクを「待ち」状態から「実行可能」
状態にした場合に必要となるタスクスケジューリング処
理で扱えるのは、そのCPU自身と実行中タスク(自タ
スク)とタスクレディーキュー内のタスク群だけであっ
た。
As described above, conventionally, a task being executed on a certain CPU is "executable" from the "waiting" state for another task.
Only the CPU itself, the executing task (invoking task), and the task group in the task ready queue can be handled by the task scheduling processing required when the state is set.

【0006】ところが、マルチプロセッサシステムにお
いては、他のCPU群とそこで実行中のタスクも存在す
る。そこで本発明者は、タスクスケジューリングの際に
は、これらも考慮しなければ、最適なCPUの割り当て
ができないことを認識するに至った。
However, in a multiprocessor system, there are also other CPU groups and tasks being executed there. Therefore, the present inventor has come to recognize that the optimum CPU allocation cannot be performed without considering these in the task scheduling.

【0007】例えば、或るCPU上で実行中の優先度が
1のタスク(数値が小さい方が優先度が高いとする)
が、優先度が2の別のタスクを「待ち」状態から「実行
可能」状態にする処理を行ったものとする。
For example, a task with a priority of 1 being executed on a certain CPU (the smaller the numerical value, the higher the priority).
However, it is assumed that another task having a priority of 2 is changed from the “waiting” state to the “executable” state.

【0008】この処理に続くタスクスケジューリング処
理では、現在実行中のタスクの方が優先度が高いため、
新たに実行可能となった優先度が2のタスクはCPU割
り当て待ちのままとなる。
In the task scheduling process following this process, the currently executing task has a higher priority.
The newly executable task whose priority is 2 remains in the CPU allocation wait state.

【0009】また、他のCPUで実行中のタスクの優先
度が例えば100のように極めて低かったとしても、次
に実行するタスクは自CPUで実行中のタスクとの優先
度関係だけで決まることから、上記優先度が2のタスク
はCPU割り当て待ちのままとなる。
Further, even if the priority of a task being executed by another CPU is extremely low, such as 100, the task to be executed next is determined only by the priority relationship with the task being executed by the own CPU. Therefore, the task with the priority of 2 remains in the CPU allocation wait state.

【0010】更に、自CPUで実行中のタスク(優先度
が2であるとする)が、例えば優先度が1の3つのタス
クを「実行可能」状態に変えた場合、タスクスケジュー
リングによりCPUを割り当てられるのは、そのうちの
1つだけで、残りのタスクは、他のCPUで実行中のタ
スクより優先度が高くてもCPU割り当て待ちとなる。
Further, when the task being executed by the own CPU (assuming that the priority is 2) changes, for example, three tasks having the priority 1 to the "executable" state, the CPU is assigned by the task scheduling. Only one of them is executed, and the remaining tasks wait for CPU allocation even if they have a higher priority than tasks running on other CPUs.

【0011】このように従来は、マルチプロセッサシス
テム上の或るCPUでタスク実行中にタスクスケジュー
リング処理が必要となった場合に、そのCPU(自CP
U)で実行中のタスクとタスクレディーキューのタスク
群との優先度(実行優先度)関係だけで、次に実行する
タスクが決定されていたため、最適なスケジューリング
が行えないという問題があった。
As described above, conventionally, when a task scheduling process is required during execution of a task by a certain CPU on a multiprocessor system, that CPU (own CP
In U), since the task to be executed next is determined only by the priority (execution priority) relationship between the task being executed and the task group in the task ready queue, there is a problem that optimal scheduling cannot be performed.

【0012】この発明は上記事情を考慮してなされたも
のでその目的は、マルチプロセッサシステム上のCPU
でタスク実行中にタスクスケジューリング処理が必要と
なった場合に、その実行中のタスクの優先度とCPU割
り当て待ち状態にあるタスク群の優先度の他に、他のC
PUで実行中のタスクの優先度をも考慮して、タスク切
り替えを実行すべき全てのCPUを決定することによ
り、マルチプロセッサ構成を生かした最適なタスクスケ
ジューリングが行える、マルチプロセッサシステムおよ
び同システムにおけるタスクスケジューリング方法を提
供することにある。
The present invention has been made in consideration of the above circumstances, and an object thereof is to provide a CPU on a multiprocessor system.
If task scheduling processing is required during task execution in C, in addition to the priority of the task under execution and the priority of the task group in the CPU allocation waiting state, other C
In a multiprocessor system and in the same system, optimal task scheduling that makes use of a multiprocessor configuration can be performed by determining all CPUs that should execute task switching in consideration of the priority of tasks being executed in PU. It is to provide a task scheduling method.

【0013】[0013]

【課題を解決するための手段および作用】この発明の第
1の観点に係る構成は、マルチプロセッサシステム上の
或るCPUで実行中のタスクが他の少なくとも1つのタ
スクの状態を変更した結果タスクスケジューリング処理
が必要となった場合に、その時点においてCPU割り当
て待ち状態にある各タスクを、そのタスクの優先度が高
い順に、そのタスクより低い実行優先度のタスクを実行
中のマルチプロセッサシステム上のCPUに対して、よ
り低い実行優先度のタスクを実行中のCPUから順に割
り当てるようにしたことを特徴とするものである。
The configuration according to the first aspect of the present invention is a result task in which a task being executed by a certain CPU on a multiprocessor system changes the state of at least one other task. When the scheduling process becomes necessary, the tasks in the CPU allocation waiting state at that time are displayed in the order of the priority of the task in the multiprocessor system which is executing the tasks of the execution priority lower than the task. It is characterized in that tasks having lower execution priorities are assigned to CPUs in order from the CPU being executed.

【0014】上記の構成においては、或るCPUで実行
中のタスクが他の少なくとも1つのタスクの状態を例え
ば「待ち」から「実行可能」に変えたとき、その実行中
のタスクの優先度と、その時点においてCPU割り当て
待ち状態にあるタスク群の優先度の他に、他のCPUで
実行中のタスクの優先度も考慮され、まず、タスク状態
変更時点においてCPU割り当て待ち状態にあるタスク
群の中で最も優先度の高いタスクが、システム上のCP
Uのうち最も低い優先度のタスクを実行中のCPUに割
り当てられる。但し、割り当ての対象となるタスクの優
先度の方が、(割り当て先となるCPUで)実行中のタ
スクの優先度より高い場合に限る。次に、タスク状態変
更時点においてCPU割り当て待ち状態にあるタスク群
の中で2番目に優先度の高いタスクが、システム上のC
PUのうち2番目に低い優先度のタスクを実行中のCP
Uに割り当てられる。
In the above configuration, when a task being executed by a certain CPU changes the state of at least one other task from, for example, "waiting" to "executable", the priority of the task being executed is In addition to the priority of the task group that is in the CPU allocation waiting state at that time, the priority of the task that is being executed by another CPU is also considered. The highest priority task is CP on the system
The lowest priority task of U is assigned to the executing CPU. However, this is limited to the case where the priority of the task to be assigned is higher than the priority of the task being executed (in the CPU that is the assignment destination). Next, the task with the second highest priority in the task group in the CPU allocation waiting state at the time of changing the task state is C on the system.
CP that is executing the task with the second lowest priority among PUs
Assigned to U.

【0015】以下同様にして、上記のタスク割り当て
が、割り当ての対象となるタスクの優先度より、そのタ
スクの割り当て予定先のCPUで実行中のタスクの優先
度の方が高くなるか、或いは割り当て対象となるタスク
と割り当て予定先のCPUの少なくとも一方が尽きるま
で繰り返される。
Similarly, in the above-mentioned task allocation, the priority of the task being executed by the CPU to which the task is scheduled to be assigned is higher than the priority of the task to be assigned, or the task is assigned. The process is repeated until at least one of the target task and the CPU of the allocation destination is exhausted.

【0016】このように、或るCPUで実行中のタスク
が他のタスクの状態を変更した場合に、そのCPUを含
むマルチプロセッサシステム上の全てのCPUの中に、
CPU割り当て待ち状態にあるタスクより低い優先度の
タスクを実行中のCPUがあれば、それらのCPUに対
して、より低い実行優先度のタスクを実行中のCPUか
ら順に、CPU割り当て待ち状態にある各タスクが、そ
のタスクの優先度が高い順に割り当てられるため、マル
チプロセッサ構成を生かした最適なタスクスケジューリ
ングが可能となる。
In this way, when a task being executed by a certain CPU changes the state of another task, all the CPUs in the multiprocessor system including that CPU are
If there is a CPU that is executing a task with a lower priority than the task in the CPU allocation wait state, those CPUs are in the CPU allocation wait state in order from the CPU that is executing the task with a lower execution priority. Since each task is assigned in descending order of priority of the task, optimal task scheduling that makes the most of the multiprocessor configuration is possible.

【0017】この発明の第2の観点に係る構成は、上記
のタスク割り当てのために、該当するCPUに対してタ
スク切り替え処理を行う合図となる特定割り込みを発生
し、この割り込みを受けたCPUにおいて、当該割り込
みに応じてタスク切り替えを行うようにしたことを特徴
とするものである。
In the configuration according to the second aspect of the present invention, for the above-mentioned task allocation, a specific interrupt which is a signal for performing the task switching process is generated for the corresponding CPU, and the CPU which has received this interrupt The task switching is performed according to the interrupt.

【0018】上記の構成においては、タスクの割り当て
先となるCPUへの特定割り込みの発生により、そのC
PUで実行中のタスクより優先度の高い、CPU割り込
み待ち状態にあるタスクが、上記タスクの状態変化後に
直ちに割り当てられる。
In the above configuration, when a specific interrupt is issued to the CPU to which the task is assigned, the C
The task in the CPU interrupt waiting state, which has a higher priority than the task being executed by the PU, is assigned immediately after the state change of the task.

【0019】[0019]

【実施例】図1は本発明の一実施例に係るマルチプロセ
ッサシステムのブロック構成図である。図1に示すマル
チプロセッサシステムは、並列に動作する複数のCP
U、例えば3台のCPU10-0〜10-2と、これら各C
PU10-0〜10-2により共有される共有メモリ20
と、CPU10-0〜10-2および共有メモリ20が相互
接続されるシステムバス30から構成される。CPU1
0-0〜10-2には、CPU識別子としてCPU番号#0
〜#2が割り当てられている。
1 is a block diagram of a multiprocessor system according to an embodiment of the present invention. The multiprocessor system shown in FIG. 1 has a plurality of CPs operating in parallel.
U, for example, three CPUs 10-0 to 10-2 and each of these Cs
Shared memory 20 shared by PUs 10-0 to 10-2
And a system bus 30 interconnecting the CPUs 10-0 to 10-2 and the shared memory 20. CPU1
0-0 to 10-2 have CPU numbers # 0 as CPU identifiers.
~ # 2 is assigned.

【0020】図1の例では、CPU10-0がタスク11
Aを実行し、CPU10-1がタスク11Bを実行し、C
PU10-2がタスク11Cを実行している様子が示され
ている。タスク11Aの優先度(実行優先度)は1、タ
スク11Bの優先度は5、そしてタスク11Cの優先度
は4であるものとする。
In the example of FIG. 1, the CPU 10-0 executes the task 11
A is executed, CPU 10-1 executes task 11B, and C
It is shown that the PU 10-2 is executing the task 11C. It is assumed that the task 11A has a priority (execution priority) of 1, the task 11B has a priority of 5, and the task 11C has a priority of 4.

【0021】共有メモリ20には、CPU実行中タスク
優先度データキュー40、タスクレディーキュー50お
よび「待ち」タスク群60が置かれる。CPU実行中タ
スク優先度データキュー40は、各CPU10-0〜10
-2で実行中のタスクの優先度を管理するデータ構造であ
り、各CPU番号と実行中のタスクの実行優先度を記録
したデータ(以下、CPU実行中タスク優先度データブ
ロックと称する)を優先度の低い順(ここでは、数値が
大きい方が優先度は低いものとする)につないでおくた
めのものである。
In the shared memory 20, a CPU executing task priority data queue 40, a task ready queue 50 and a “waiting” task group 60 are placed. The CPU executing task priority data queue 40 has CPUs 10-0 to 10-10.
-2 is a data structure that manages the priority of the task being executed, and data that records the execution priority of each CPU number and the task being executed (hereinafter referred to as the CPU executing task priority data block) is given priority. This is for connecting in ascending order (here, the higher the numerical value, the lower the priority).

【0022】CPU実行中タスク優先度データキュー4
0は、先頭のCPU実行中タスク優先度データブロック
(の位置)を指すキューエントリ41を有している。図
1の例において、CPU実行中タスク優先度データキュ
ー40には、キューエントリ41により指されるCPU
実行中タスク優先度データブロック42を含む3つのC
PU実行中タスク優先度データブロック42〜44がつ
ながれている。
CPU executing task priority data queue 4
0 has a queue entry 41 pointing to (the position of) the CPU priority task priority data block at the head. In the example of FIG. 1, the CPU pointed to by the queue entry 41 in the CPU executing task priority data queue 40.
Three Cs including the executing task priority data block 42
PU executing task priority data blocks 42 to 44 are connected.

【0023】CPU実行中タスク優先度データブロック
42には、CPU10-1のCPU番号#1とCPU10
-1で実行中のタスク11Bの優先度5が記録されてい
る。また、CPU実行中タスク優先度データブロック4
3には、CPU10-2のCPU番号#2とCPU10-2
で実行中のタスク11Cの優先度4が記録され、CPU
実行中タスク優先度データブロック44には、CPU1
0-0のCPU番号#0とCPU10-0で実行中のタスク
11Aの優先度1が記録されている。
In the CPU executing task priority data block 42, the CPU number # 1 of the CPU 10-1 and the CPU 10 # 1 are stored.
At -1, the priority 5 of the task 11B being executed is recorded. In addition, the CPU executing task priority data block 4
3 includes CPU number # 2 of CPU 10-2 and CPU 10-2.
The priority 4 of the task 11C being executed is recorded in
The CPU 1 is included in the executing task priority data block 44.
The CPU number # 0 of 0-0 and the priority 1 of the task 11A being executed by the CPU 10-0 are recorded.

【0024】各CPU実行中タスク優先度データブロッ
ク42〜44は、次のCPU実行中タスク優先度データ
ブロック(の位置)を指し示すキューフィールド400
を有している。次の優先度データブロックが存在しない
場合、キューフィールド400には、その旨を示す特定
データ(例えばオール“0”データ)が設定される。図
1の例では、CPU実行中タスク優先度データブロック
42のキューフィールド400により、次のCPU実行
中タスク優先度データブロック43が指し示され、当該
データブロック43のキューフィールド400により次
のCPU実行中タスク優先度データブロック44が指し
示されている。
Each CPU executing task priority data block 42-44 indicates a queue field 400 indicating (position of) the next CPU executing task priority data block.
have. When the next priority data block does not exist, the cue field 400 is set with specific data (for example, all “0” data) indicating that. In the example of FIG. 1, the queue field 400 of the CPU executing task priority data block 42 indicates the next CPU executing task priority data block 43, and the queue field 400 of the data block 43 executes the next CPU execution. A medium task priority data block 44 is indicated.

【0025】タスクレディーキュー50は、「実行可
能」状態でCPU割り当て待ちとなっているタスクのタ
スク制御ブロックを優先度順(優先度の高い順)につな
いでおくためのものである。タスクレディーキュー50
は、先頭のタスク制御ブロック(の位置)を指すキュー
エントリ51を有している。図1の例では、タスクレデ
ィーキュー50につながれているタスク制御ブロックは
存在しない。
The task ready queue 50 is for connecting the task control blocks of tasks in the "executable" state and waiting for CPU allocation in order of priority (highest priority). Task ready cue 50
Has a queue entry 51 pointing to (position of) the head task control block. In the example of FIG. 1, there is no task control block connected to the task ready queue 50.

【0026】「待ち」タスク群60は、「待ち」状態に
あるタスク(実行可能状態にないタスク)のタスク制御
ブロックからなる。図1の例では、「待ち」タスク群6
0は、3つのタスク制御ブロック61D〜61Fからな
る。タスク制御ブロック61D〜61Fは、その識別子
であるタスクID、そのタスクが「実行可能」状態(レ
ディー状態)にあるか或いは「待ち」状態(ウエイト状
態)にあるかを示す状態情報、そのタスクの実行環境、
そのタスクの実行優先度等の各情報を有している。タス
ク制御ブロック61D,61E,61Fで示されるタス
クの優先度は、図1に示すように、それぞれ6,2,3
であるものとする。
The "waiting" task group 60 is composed of task control blocks of tasks in the "waiting" state (tasks not in the ready state). In the example of FIG. 1, the “waiting” task group 6
0 consists of three task control blocks 61D to 61F. The task control blocks 61D to 61F include task IDs that are identifiers thereof, status information indicating whether the task is in the "executable" state (ready state) or the "waiting" state (wait state), and Execution environment,
It has information such as the execution priority of the task. As shown in FIG. 1, the priority levels of the tasks indicated by the task control blocks 61D, 61E, and 61F are 6, 2, and 3, respectively.
Shall be

【0027】次に、図1のマルチプロセッサシステムに
おけるタスクスケジューリング処理について説明する。
まず、(CPU番号が#0)のCPU10-0で実行中の
タスク11Aが、「待ち」タスク群60に含まれている
タスク制御ブロック61E,61Fの示す「待ち」状態
のタスクを「実行可能」状態に変えたものとする。即
ち、タスク制御ブロック61E,61Fの状態情報を
「待ち」状態から「実行可能」状態に変えたものとす
る。
Next, task scheduling processing in the multiprocessor system of FIG. 1 will be described.
First, the task 11A running on the CPU 10-0 (CPU number is # 0) "executes the task in the" waiting "state indicated by the task control blocks 61E and 61F included in the" waiting "task group 60. It has been changed to the state. That is, the state information of the task control blocks 61E and 61F is changed from the "waiting" state to the "executable" state.

【0028】この場合、タスク制御ブロック61E,6
1F(の示すタスク)はCPU割り当て待ちとなり、C
PU10-0(で実行中のタスク11A)によりタスクレ
ディーキュー50につながれる。ここでは、タスク制御
ブロック61E(のタスク)の優先度は2、タスク制御
ブロック61F(のタスク)の優先度は3であることか
ら、図2に示すように、タスク制御ブロック61E、そ
してタスク制御ブロック61Fの順につながれる。ここ
で、タスクレディーキュー50上のタスク制御ブロック
61Eはキューエントリ51により指し示される。この
タスク制御ブロック61Eには、キューフィールド50
0が設定され、当該フィールド500により、次のタス
ク制御ブロック61Fが指し示される。
In this case, the task control blocks 61E, 6
1F (the task indicated by) waits for CPU allocation, and C
It is connected to the task ready queue 50 by PU10-0 (task 11A being executed by PU10-0). Here, the priority of the task control block 61E (task thereof) is 2 and the priority of the task control block 61F (task thereof) is 3, so that as shown in FIG. Blocks 61F are connected in this order. Here, the task control block 61E on the task ready queue 50 is pointed to by the queue entry 51. The task control block 61E includes a queue field 50.
0 is set, and the field 500 indicates the next task control block 61F.

【0029】さて、CPU10-0(で実行中のタスク1
1A)は、タスク制御ブロック61E,61Fで示され
るタスクにCPUを割り当てるため、タスク切り替えを
実行するCPUを選択する処理(タスク切り替え実行C
PU選択処理)を、図3のフローチャートに従って次の
ように行う。
Now, the task 1 being executed by the CPU 10-0 (
1A) assigns CPUs to the tasks indicated by the task control blocks 61E and 61F, so processing for selecting a CPU that executes task switching (task switching execution C
The PU selection process) is performed as follows according to the flowchart of FIG.

【0030】まずCPU10-0(で実行中のタスク11
A)は、CPU実行中タスク優先度データキュー40に
つながれている先頭のCPU実行中タスク優先度データ
ブロックを参照し、当該優先度データブロックからCP
U番号と優先度を取り出す(ステップS1)。
First, the CPU 10-0 (task 11 being executed by
A) refers to the head CPU in-execution task priority data block connected to the CPU-in-execution task priority data queue 40, and starts CP from the priority data block.
The U number and the priority are extracted (step S1).

【0031】次にCPU10-0(で実行中のタスク11
A)は、タスクレディーキュー50につながれている先
頭のタスク制御ブロックを参照し、当該ブロックから対
応するタスクの優先度を取り出す(ステップS2)。
Next, the task 11 being executed by the CPU 10-0 (
A) refers to the head task control block connected to the task ready queue 50, and extracts the priority of the corresponding task from the block (step S2).

【0032】そしてCPU10-0(で実行中のタスク1
1A)は、ステップS1,S2で取り出した両優先度を
比較する(ステップS3)。1回目のステップS3で
は、CPU実行中タスク優先度データキュー40の先頭
のCPU実行中タスク優先度データブロックに記録され
ている優先度と、タスクレディーキュー50の先頭の優
先度データブロックに記録されている優先度とが比較さ
れる。
Then, the task 1 being executed by the CPU 10-0 (
1A) compares the two priorities extracted in steps S1 and S2 (step S3). In step S3 for the first time, the priority recorded in the first CPU executing task priority data block of the CPU executing task priority data queue 40 and the first priority data block of the task ready queue 50 are recorded. The priority is compared.

【0033】もし、ステップS1で取り出した、CPU
10-0〜10-2のいずれかで実行中のタスク(CPU実
行中タスク)の優先度の方が、ステップS2で取り出し
た、タスクレディーキュー50側の「実行可能」状態タ
スク(即ちCPU割り当て待ちタスク)の優先度より高
い場合には、CPU10-0(で実行中のタスク11A)
は、タスク切り替えは無駄であるとして、何もせずにタ
スク切り替え実行CPU選択処理を終了する。
If the CPU extracted in step S1
The priority of the task being executed in any of 10-0 to 10-2 (CPU executing task) is the "executable" state task (that is, CPU allocation) on the task ready queue 50 side extracted in step S2. If the priority is higher than the (waiting task), CPU 10-0 (task 11A being executed)
Determines that the task switching is useless, and ends the task switching execution CPU selection processing without doing anything.

【0034】これに対し、ステップS2で取り出した、
タスクレディーキュー50側の「実行可能」状態タスク
(CPU割り当て待ちタスク)の優先度の方が、ステッ
プS1で取り出した、CPU10-0〜10-2のうちのい
ずれかのCPUで実行中のタスク(CPU実行中タス
ク)の優先度より高い場合には、そのCPU(ステップ
S1で取り出したCPU番号のCPU)において当該
「実行可能」状態タスク(CPU割り当て待ちタスク)
へのタスク切り替えを行わせるために、CPU10-0
(で実行中のタスク11A)は、そのCPUに対してタ
スク切り替え実行用割り込みを発生させるための命令を
実行する(ステップS4)。このタスク切り替え実行用
割り込みを受けたCPUでの割り込み処理については後
述する。
On the other hand, in step S2,
The task of the "ready" state (CPU allocation waiting task) on the task ready queue 50 side has a higher priority than the task being executed by any of the CPUs 10-0 to 10-2 fetched in step S1. If the priority is higher than that of the (CPU executing task), the "executable" state task (CPU allocation waiting task) in the CPU (CPU having the CPU number extracted in step S1)
CPU 10-0 to switch the task to
(The task 11A being executed at) executes an instruction for generating a task switching execution interrupt to the CPU (step S4). The interrupt processing in the CPU that receives the task switching execution interrupt will be described later.

【0035】CPU10-0(で実行中のタスク11A)
は、ステップS4を実行すると、ステップS1での(C
PU番号および)優先度取り出しの対象となったCPU
実行中タスク優先度データブロックのキューフィールド
400と、ステップS2での優先度取り出しの対象とな
ったタスク制御ブロックのキューフィールド500を参
照し(ステップS5)、少くとも一方が最終ブロックで
あるか否か(即ちCPU実行中タスク優先度データキュ
ー40或いはタスクレディーキュー50の少くとも一方
で最終ブロックまで参照したか否か)を判断する(ステ
ップS6)。
CPU 10-0 (task 11A being executed by)
Executes step S4, (C
CPU for which the PU number and priority are retrieved
The queue field 400 of the executing task priority data block and the queue field 500 of the task control block that was the priority extraction target in step S2 are referenced (step S5) to determine whether at least one is the final block. Whether (i.e., whether at least one of the task priority data queue 40 and the task ready queue 50 during CPU execution refers to the final block) is determined (step S6).

【0036】もし、CPU実行中タスク優先度データキ
ュー40およびタスクレディーキュー50のいずれにお
いても、最終ブロックまで参照していないならば、即ち
(ステップS3で)比較すべき優先度が記録されている
次のブロックが存在するならば、CPU10-0(で実行
中のタスク11A)は再びステップS1,S2を実行
し、ステップS5で参照したCPU実行中タスク優先度
データブロック中のキューフィールド400の指し示す
次のCPU実行中タスク優先度データブロックからCP
U番号と優先度を取り出すと共に、ステップS5で参照
したタスク制御ブロック中のキューフィールド500の
指し示す次のタスク制御ブロックから優先度を取り出
す。
If neither the CPU executing task priority data queue 40 nor the task ready queue 50 refers to the final block, that is, the priority to be compared (in step S3) is recorded. If the next block exists, the CPU 10-0 (task 11A being executed) again executes steps S1 and S2, and indicates the queue field 400 in the CPU executing task priority data block referred to in step S5. CP from the next CPU executing task priority data block
The U number and the priority are fetched, and the priority is fetched from the next task control block indicated by the queue field 500 in the task control block referred to in step S5.

【0037】このようにして、2回目のステップS1,
S2では、CPU実行中タスク優先度データキュー40
の2番目のCPU実行中タスク優先度データブロックに
記録されている(CPU番号および)優先度と、タスク
レディーキュー50の2番目の優先度データブロックに
記録されている優先度が取り出される。続いて、この両
優先度が、次のステップS3において比較される。も
し、タスクレディーキュー50側のタスクの優先度の方
が高いならば、前記したようにステップS4〜S6が行
われる。
In this way, the second step S1,
In S2, the CPU executing task priority data queue 40
The priority (CPU number and) recorded in the second CPU executing task priority data block and the priority recorded in the second priority data block of the task ready queue 50 are extracted. Subsequently, the two priorities are compared in the next step S3. If the task on the task ready queue 50 side has a higher priority, steps S4 to S6 are performed as described above.

【0038】上記ステップS1〜S6の処理は、優先度
比較処理でCPU実行中タスク側の優先度の方が高いと
判断されるか(ステップS3)、比較するデータの少く
とも一方がなくなったことが検出されるまで(ステップ
S6)、繰り返される。
In the processes of steps S1 to S6, it is judged in the priority comparison process that the priority of the task being executed by the CPU is higher (step S3), or at least one of the data to be compared is lost. Is repeated (step S6).

【0039】以上の説明から明らかなように、図2の例
では、まずCPU実行中タスク優先度データキュー40
につながれている先頭のCPU実行中タスク優先度デー
タブロック42からCPU番号#1と当該CPU番号#
1のCPU10-1が実行中のタスク11Bの優先度5が
取り出されると共に、、タスクレディーキュー50につ
ながれている先頭のタスク制御ブロック61Eから当該
ブロック61Eの示すタスクの優先度2が取り出され
る。
As is clear from the above description, in the example of FIG. 2, first, the CPU executing task priority data queue 40
CPU number # 1 and CPU number # from the task priority data block 42 for the first CPU being executed
The priority 5 of the task 11B being executed by the first CPU 10-1 is extracted, and the priority 2 of the task indicated by the block 61E is extracted from the first task control block 61E connected to the task ready queue 50.

【0040】そして、CPU10-1で実行中のタスク1
1Bの優先度5、即ちCPU10-0〜10-2で実行中の
タスク11A〜11Cの優先度のうち最も低い優先度5
と、タスク制御ブロック61Eの示すタスクの優先度、
即ち「実行可能」状態にあるタスク(CPU割り当て待
ちタスク)の優先度のうち最も高い優先度2とが比較さ
れる。
Then, the task 1 being executed by the CPU 10-1
1B, that is, the lowest priority 5 among the tasks 11A to 11C being executed by the CPUs 10-0 to 10-2.
And the priority of the task indicated by the task control block 61E,
That is, the highest priority 2 among the priorities of the tasks (CPU allocation waiting tasks) in the “executable” state is compared.

【0041】ここでは、タスク制御ブロック61Eの示
すタスクの優先度2の方が、CPU10-1で実行中のタ
スク11Bの優先度5より高いため、CPU10-0(で
実行中のタスク11A)は、CPU10-1に対してタス
ク切り替え実行用割り込みを発生させる命令を実行す
る。
Here, since the priority 2 of the task indicated by the task control block 61E is higher than the priority 5 of the task 11B being executed by the CPU 10-1, the CPU 10-0 (task 11A being executed by) is , Executes an instruction for generating a task switching execution interrupt to the CPU 10-1.

【0042】次に、CPU実行中タスク優先度データキ
ュー40につながれている2番目のCPU実行中タスク
優先度データブロック43からCPU番号#2と当該C
PU番号#2のCPU10-2が実行中のタスク11Cの
優先度4が取り出されると共に、、タスクレディーキュ
ー50につながれている2番目(=最終)のタスク制御
ブロック61Fから当該ブロック61Fの示すタスクの
優先度3が取り出される。
Next, from the second CPU executing task priority data block 43, which is connected to the CPU executing task priority data queue 40, the CPU number # 2 and the corresponding C number.
The priority 4 of the task 11C being executed by the CPU 10-2 having the PU number # 2 is taken out, and the task indicated by the second (= final) task control block 61F connected to the task ready queue 50 is shown. Priority of 3 is taken out.

【0043】そして、CPU10-2で実行中のタスク1
1Cの優先度4、即ちCPU10−0〜10−2で実行
中のタスク11A〜11Cの優先度のうち2番目に低い
優先度4と、タスク制御ブロック61Fの示すタスクの
優先度、即ち「実行可能」状態にあるタスク(CPU割
り当て待ちタスク)の優先度のうち2番目に高い優先度
3とが比較される。
Then, the task 1 being executed by the CPU 10-2
1C, which is the second lowest priority of the tasks 11A to 11C being executed by the CPUs 10-0 to 10-2, and the priority of the task indicated by the task control block 61F, that is, "execution". The second highest priority among the priorities of the tasks (CPU allocation waiting tasks) in the “possible” state is compared.

【0044】ここでは、タスク制御ブロック61Fの示
すタスクの優先度3の方が、CPU10-2で実行中のタ
スク11Cの優先度4より高いため、CPU10-0(で
実行中のタスク11A)は、CPU10-2に対してタス
ク切り替え実行用割り込みを発生させる命令を実行す
る。
In this case, the priority 3 of the task indicated by the task control block 61F is higher than the priority 4 of the task 11C being executed by the CPU 10-2, so that the CPU 10-0 (task 11A being executed by) is , Executes an instruction for generating a task switching execution interrupt to the CPU 10-2.

【0045】タスクレディーキュー50には2つしかC
PU割り当て待ちタスクが存在しない。このため、図3
のフローチャートに従うタスク切り替え実行CPU選択
処理は、ここで終了する。
There are only two C in the task ready queue 50.
There is no PU allocation waiting task. Therefore, in FIG.
The task switching execution CPU selection processing according to the flowchart of FIG.

【0046】次に、タスク切り替え実行用割り込みを受
けたCPUでの割り込み処理について、図4のフローチ
ャートを参照して説明する。まずCPU10-0が、上記
したようにCPU10-1或いはCPU10-2に対してタ
スク切り替え実行用割り込みを発生させる命令を実行す
ると、CPU10-0からCPU10-1或いはCPU10
-2に対し、システムバス30を介してタスク切り替え実
行用割り込みが発行される。上記の例では、まずCPU
10-1に対してタスク切り替え実行用割り込みが発行さ
れ、その後、CPU10-2に対してタスク切り替え実行
用割り込みが発行される。
Next, the interrupt processing in the CPU which has received the task switching execution interrupt will be described with reference to the flowchart of FIG. First, when the CPU 10-0 executes an instruction for generating a task switching execution interrupt to the CPU 10-1 or CPU 10-2 as described above, the CPU 10-0 to the CPU 10-1 or CPU 10
For -2, a task switching execution interrupt is issued via the system bus 30. In the above example, first the CPU
A task switching execution interrupt is issued to 10-1, and then a task switching execution interrupt is issued to the CPU 10-2.

【0047】CPU10-1は、CPU10-0からのタス
ク切り替え実行用割り込みを受け付けると、通常のタス
ク切り替え処理と同様に、実行中のタスク11Bのタス
ク制御ブロックを生成して、当該制御ブロック内に実行
中タスク11Bの実行環境(CPU10-0内の各種レジ
スタの内容等)を保存し、当該制御ブロックをタスクレ
ディーキュー50につなぐ(ステップS11)。図2の
例では、タスク11Bのタスク制御ブロックは、タスク
レディーキュー50の最後(タスク制御ブロック61F
の次)につながれる。以上のステップS11の実行環境
保存処理を行っておくことにより、該当するタスク制御
ブロックのタスクにCPUが割り当てられた場合に、実
行の再開が可能となる。
Upon receipt of the task switching execution interrupt from the CPU 10-0, the CPU 10-1 generates a task control block for the task 11B being executed and stores it in the control block, as in the normal task switching process. The execution environment (contents of various registers in the CPU 10-0) of the running task 11B is saved, and the control block is connected to the task ready queue 50 (step S11). In the example of FIG. 2, the task control block of the task 11B is the end of the task ready queue 50 (task control block 61F).
Next). By performing the execution environment saving process in step S11 described above, the execution can be restarted when the CPU is assigned to the task of the corresponding task control block.

【0048】次にCPU10-1は、タスクレディーキュ
ー50から先頭のタスク制御ブロック61Eを取り外し
て、当該ブロック61Eに保存されている実行環境をC
PU10-1内のレジスタ等にロードする(ステップS1
2)。その際、CPU10-1は、タスクレディーキュー
50の2番目のタスク制御ブロック61Fが先頭となる
ように、キューフィールド400の内容を更新する。
Next, the CPU 10-1 removes the leading task control block 61E from the task ready queue 50 and sets the execution environment saved in the block 61E to C.
It is loaded into a register or the like in the PU 10-1 (step S1)
2). At that time, the CPU 10-1 updates the contents of the queue field 400 so that the second task control block 61F of the task ready queue 50 is at the head.

【0049】また、CPU10-1は、自身のCPU番号
#1が設定されているCPU実行中タスク優先度データ
ブロック42に、自身が実行中のタスクの優先度とし
て、新たに実行を開始しようとする(実行を再開しよう
とする)タスクの優先度を設定する(ステップS1
3)。即ちCPU10-1は、CPU実行中タスク優先度
データブロック42に設定されている優先度を、実行を
再開しようとするタスクの優先度に更新する。その際、
CPU10-1は、CPU実行中タスク優先度データキュ
ー40上のCPU実行中タスク優先度データブロック4
2〜44を、優先度の低い順につなぎ換える。
Further, the CPU 10-1 attempts to newly start the execution in the CPU executing task priority data block 42 in which its own CPU number # 1 is set as the priority of the task being executed by itself. Set the priority of the task to execute (try to restart execution) (step S1)
3). That is, the CPU 10-1 updates the priority set in the CPU executing task priority data block 42 to the priority of the task whose execution is to be resumed. that time,
The CPU 10-1 is the CPU executing task priority data block 4 on the CPU executing task priority data queue 40.
Nos. 2 to 44 are re-connected in ascending order of priority.

【0050】そしてCPU10-1は、ステップS12で
ロードした実行環境に従い、タスクレディーキュー50
から取り外したタスク制御ブロック61Eの示すタスク
の実行を再開する(ステップS14)。
Then, the CPU 10-1 follows the task ready queue 50 according to the execution environment loaded in step S12.
The execution of the task indicated by the task control block 61E removed from is restarted (step S14).

【0051】このように、CPU10-0で実行中のタス
ク11Aが、タスク制御ブロック61E,61Fの示す
「待ち」状態のタスクを「実行可能」状態に変えた場
合、図2の例では、CPU10-0から(CPU10-0〜
10-2の中で最も優先度の低いタスク11Bを実行して
いた)CPU10-1に対するタスク切り替え実行用割り
込みに応じ、当該CPU10-1において、優先度が5の
タスク11Bから、タスク制御ブロック61Eの示す優
先度が2のタスク(図2の状態においてCPU割り当て
待ちとなっていたタスクのうち最も優先度が高いタス
ク)への切り替えが行われる。
As described above, when the task 11A being executed by the CPU 10-0 changes the task in the "waiting" state indicated by the task control blocks 61E and 61F to the "executable" state, in the example of FIG. From -0 (CPU 10-0 ~
In response to an interrupt for executing task switching to the CPU 10-1 which was executing the task 11B having the lowest priority among 10-2), the task control block 61E from the task 11B having the priority of 5 in the CPU 10-1. Is switched to the task having the priority of 2 (the task having the highest priority among the tasks waiting for CPU allocation in the state of FIG. 2).

【0052】次に、CPU10-0から(CPU10-0〜
10-2の中で2番目に優先度の低いタスク11Cを実行
していた)CPU10-2に対してタスク切り替え実行用
割り込みが発行されると、上記したCPU10-1での割
り込み処理と同様にして、当該CPU10-2において、
優先度が4のタスク11Cから、(先にタスク制御ブロ
ック61Eが取り外されたことにより、その時点におい
てタスクレディーキュー50の先頭につながれている)
タスク制御ブロック61Fの示す優先度が3のタスク
(図2の状態においてCPU割り当て待ちとなっていた
タスクのうち2番目に優先度が高かったタスク)への切
り替えが行われる。
Next, from the CPU 10-0 (CPU 10-0 ...
When a task switching execution interrupt is issued to the CPU 10-2, which was executing the task 11C having the second lowest priority among 10-2), the same interrupt processing as that of the CPU 10-1 described above is performed. Then, in the CPU 10-2,
From the task 11C having the priority of 4 (because the task control block 61E is removed first, the task is connected to the head of the task ready queue 50 at that time)
The task control block 61F switches to the task with the priority of 3 (the task with the second highest priority among the tasks waiting for CPU allocation in the state of FIG. 2).

【0053】以上を整理すると、本実施例では、CPU
10-0で優先度1のタスク11Aが、CPU10-1で優
先度5のタスク11Bが、そしてCPU10-2で優先度
4の11Cが、それぞれ実行されている状態で、CPU
10-0で実行中のタスク11Aがタスク制御ブロック6
1E,61Fの示す優先度2,3の「待ち」状態のタス
クを「実行可能」状態(したがってCPU割り当て待
ち)に変えた場合には、CPU10-0〜10-2で実行さ
れるタスクと、CPU割り当て待ちとなるタスクは次の
通りとなる。
To summarize the above, in this embodiment, the CPU
In the state where the task 11A of priority 1 is executed at 10-0, the task 11B of priority 5 is executed at the CPU 10-1, and the task 11C of priority 4 is executed at the CPU 10-2,
Task 11A running at 10-0 has task control block 6
When the tasks in the "waiting" state with the priorities 2 and 3 indicated by 1E and 61F are changed to the "executable" state (therefore, waiting for CPU allocation), the tasks executed by the CPUs 10-0 to 10-2, The tasks waiting for CPU allocation are as follows.

【0054】まず、CPU割り当てタスクの中で最も優
先度の高い、即ちCPU割り当てを最も必要とする、タ
スク制御ブロック61Eの示す優先度2のタスクは、C
PU10-0〜10-2のうち、最も低い優先度(で且つ当
該タスク制御ブロック61Eの示すタスクより低優先
度)のタスク11B(優先度5のタスク11B)を実行
中のCPU10-1に割り当てられ、このCPU10-1で
実行される。そして、それまでCPU10-1で実行され
ていた優先度5のタスク11BはCPU割り当て待ちと
なる。
First, the task with the highest priority among the CPU allocation tasks, that is, the task with the highest priority, that is, the task with the priority 2 indicated by the task control block 61E, is C.
Of the PUs 10-0 to 10-2, the task 11B with the lowest priority (and lower priority than the task indicated by the task control block 61E) (task 11B with priority 5) is assigned to the executing CPU 10-1. And is executed by the CPU 10-1. Then, the task 11B having the priority of 5 which has been executed by the CPU 10-1 until then becomes the CPU allocation wait.

【0055】同様に、タスク制御ブロック61Eの示す
タスクの次に優先度が高い、タスク制御ブロック61F
の示す優先度3のタスクは、CPU10-0〜10-2のう
ち、次に低い優先度(で且つ当該タスク制御ブロック6
1Eの示すタスクより低優先度)のタスク11C(優先
度4のタスク11C)を実行中のCPU10-2に割り当
てられ、このCPU10-2で実行される。そして、それ
までCPU10-2で実行されていた優先度4のタスク1
1CはCPU割り当て待ちとなる。
Similarly, the task control block 61F having the second highest priority next to the task indicated by the task control block 61E
The task with the priority of 3 indicates the next lower priority of the CPUs 10-0 to 10-2 (and the task control block 6 concerned).
A task 11C having a lower priority than the task indicated by 1E (task 11C having a priority of 4) is assigned to the executing CPU 10-2 and executed by this CPU 10-2. Then, the task 1 of priority 4 which has been executed by the CPU 10-2 until then
1C is waiting for CPU allocation.

【0056】このように本実施例によれば、CPU10
-0で実行中のタスク11Aがタスク制御ブロック61
E,61Fの示す「待ち」状態のタスクを「実行可能」
状態に変えた場合に、その実行中のタスク11Aの優先
度1とタスクレディーキュー50のタスク制御ブロック
61E,61Fの示すタスクの優先度2,3の他に、他
のCPU10-1,10-2で実行中のタスク11B,11
Cの優先度5,4をも考慮して、タスク切り替えを実行
するCPUとその数を決定するようにしたので、タスク
レディーキュー50のタスク制御ブロック61E,61
Fの示す、CPU割り当て待ちのタスクの優先度2,3
が、「待ち」状態のタスクを「実行可能」状態に変えた
実行中タスク11Aの優先度1より低優先度でも、その
優先度2,3のタスクを、それより更に低優先度5,4
のタスク11B,11Cを実行中のCPU10-1,10
-2に割り当てることができるため、マルチプロセッサ構
成を生かした効果的なスケジューリングが行える。
As described above, according to this embodiment, the CPU 10
The task 11A running at -0 is the task control block 61
"Runnable" task in "waiting" state indicated by E and 61F
When the state is changed to the state, in addition to the priority 1 of the running task 11A and the task priorities 2 and 3 indicated by the task control blocks 61E and 61F of the task ready queue 50, other CPUs 10-1 and 10- Tasks 11B and 11 running in 2
Since the CPUs that execute task switching and the number thereof are determined in consideration of the priorities 5 and 4 of C as well, the task control blocks 61E and 61 of the task ready queue 50.
Priority of tasks waiting for CPU allocation indicated by F 2, 3
However, even if the priority is lower than the priority 1 of the executing task 11A that has changed the task in the "waiting" state to the "executable" state, the tasks having the priorities 2 and 3 are further lowered in priority 5 and 4
CPUs 10-1 and 10 executing tasks 11B and 11C of
Since it can be assigned to -2, effective scheduling that makes use of the multiprocessor configuration can be performed.

【0057】以上は、他のCPU10-1,10-2で「待
ち」状態のタスクを「実行可能」状態に変えた場合も同
様である。なお、前記実施例では、CPUが3台のマル
チプロセッサシステムに実施した場合について説明した
が、この発明は、複数のCPUを備えたプロセッサシス
テム全般に適用可能である。
The above is the same when the tasks in the "waiting" state are changed to the "executable" state in the other CPUs 10-1 and 10-2. It should be noted that in the above-described embodiment, the case where it is implemented in a multiprocessor system having three CPUs has been described, but the present invention is applicable to all processor systems including a plurality of CPUs.

【0058】また、前記実施例では、タスク切り替え実
行用割り込みを受け付けたCPUは、タスクレディーキ
ュー50から先頭タスク制御ブロックを取り外して、当
該ブロックの示すタスクに切り替えるものとして説明し
た。この方式は、図3のフローチャートに示す一連のタ
スク切り替え実行CPU選択処理が終了した後に、タス
ク切り替え実行用割り込みに従うタスク切り替えが行わ
れ、しかも当該タスク切り替えの順番が、対応するタス
ク切り替え実行用割り込みの発行順に一致する場合には
問題ない。しかし、そうでない場合には、或るCPUに
割り当てるべきタスクが他のCPUに割り当てられる虞
が生じる。
Further, in the above-described embodiment, the CPU that has accepted the task switching execution interrupt removes the first task control block from the task ready queue 50 and switches to the task indicated by the block. In this method, after a series of task switching execution CPU selection processing shown in the flowchart of FIG. 3 is completed, task switching is performed according to the task switching execution interrupt, and the task switching order is the corresponding task switching execution interrupt. There is no problem if they match the issue order. However, if this is not the case, the task that should be assigned to one CPU may be assigned to another CPU.

【0059】そこで、このような不都合を防止するため
に、タスク切り替え実行用割り込みを受け付けたCPU
がタスクレディーキュー50から先頭タスク制御ブロッ
クを取り外して、当該ブロックの示すタスクに切り替え
る方式に代えて、次の方式を適用するようにしても良
い。
Therefore, in order to prevent such inconvenience, the CPU that has accepted the task switching execution interrupt
The following method may be applied instead of the method of removing the first task control block from the task ready queue 50 and switching to the task indicated by the block.

【0060】即ち、例えば共有メモリ20上に、タスク
切り替え実行CPU選択処理状態(モード)にあること
を示すフラグ等の状態管理領域(状態管理手段)と、各
CPU10-0〜10-2に対応してタスクIDが設定され
るタスクID領域(タスクID管理手段)を設ける。そ
して、或るCPU(例えばCPU10-0)がタスク切り
替え実行CPU選択処理を開始する際には、上記状態管
理領域に処理状態にあることを示す情報を設定し(即ち
タスク切り替え実行CPU選択処理モードを設定し)、
タスク切り替え実行用割り込みを発生する際には、その
割り込み先のCPUに割り当てるタスクのタスクID
を、当該CPUに対応するタスクID領域に設定する。
このタスクIDは、図3のステップS2でタスク制御ブ
ロックから優先度を取り出す際に取得することが可能で
ある。また、一連のタスク切り替え実行CPU選択処理
を終了する際には、状態管理領域に設定されている処理
状態にあることを示す情報をクリアする(即ちタスク切
り替え実行CPU選択処理モードを解除する)。
That is, for example, in the shared memory 20, a state management area (state management means) such as a flag indicating that the task switching execution CPU selection processing state (mode) is present, and each CPU 10-0 to 10-2 are associated. Then, a task ID area (task ID management means) in which the task ID is set is provided. Then, when a certain CPU (for example, the CPU 10-0) starts the task switching execution CPU selection processing, information indicating that it is in the processing state is set in the state management area (that is, the task switching execution CPU selection processing mode). Set),
When a task switching execution interrupt is generated, the task ID of the task assigned to the interrupt destination CPU
Is set in the task ID area corresponding to the CPU.
This task ID can be acquired when the priority is extracted from the task control block in step S2 of FIG. Further, when ending the series of task switching execution CPU selection processing, information indicating that the processing state is set in the state management area is cleared (that is, the task switching execution CPU selection processing mode is released).

【0061】タスク切り替え実行用割り込みを受けたC
PUは、状態管理領域を参照し、タスク切り替え実行C
PU選択処理モードにないならば直ちに、タスク切り替
え実行CPU選択処理モードにあるならば、当該モード
が解除される(即ち割り込み元CPUでのタスク切り替
え実行CPU選択処理が終了する)のを待った後、自身
に対応するタスクID領域から、自身が切り替えるべき
(新たに実行すべき)タスクのタスクIDを取得し、そ
のタスクIDを持つタスク制御ブロックをタスクレディ
ーキュー50から取り外して、当該タスク制御ブロック
の示すタスクへの切り替えを行う。
C which has received the task switching execution interrupt
The PU refers to the state management area and executes task switching C
If it is not in the PU selection processing mode, immediately if it is in the task switching execution CPU selection processing mode, after waiting for the mode to be released (that is, the task switching execution CPU selection processing in the interrupt source CPU is completed), From the task ID area corresponding to itself, the task ID of the task to be switched (newly executed) is acquired, the task control block having the task ID is removed from the task ready queue 50, and the task control block Switch to the task shown.

【0062】このようにして、タスク切り替え実行用割
り込みを受けたCPUは、先にタスク切り替え実行用割
り込みを受けた他のCPUがタスク切り替えを終了して
いなくても、或いは後からタスク切り替え実行用割り込
みを受けた他のCPUが先にタスク切り替えを終了して
いても、正しいタスク切り替えを行うことができる。
In this way, the CPU that has received the task switching execution interrupt can execute the task switching execution after another CPU that has received the task switching execution interrupt has not finished the task switching. Correct task switching can be performed even if the other CPU that has received the interrupt has completed the task switching first.

【0063】また、タスク切り替え中に、タスク切り替
え実行CPU選択処理が開始されるような場合には、タ
スク切り替え処理により、CPU実行中タスク優先度デ
ータキュー40とタスクレディーキュー50の状態が変
化することから、当該タスク切り替え実行CPU選択処
理が正しく行えなくなる虞がある。そこで、これを防止
するために、タスク切り替え期間中、その旨(タスク切
り替えモード)を示す情報が状態管理領域に設定される
ようにして、この期間は、タスク切り替え実行CPU選
択処理が待たされるようにしても良い。即ち、タスク切
り替え処理とタスク切り替え実行CPU選択処理との排
他を取るようにしても良い。
When the task switching execution CPU selection process is started during task switching, the task switching process changes the states of the CPU executing task priority data queue 40 and the task ready queue 50. Therefore, there is a fear that the task switching execution CPU selection process cannot be performed correctly. Therefore, in order to prevent this, during the task switching period, information indicating that (task switching mode) is set in the state management area, and during this period, the task switching execution CPU selection process is made to wait. You can That is, the task switching process and the task switching execution CPU selection process may be exclusively controlled.

【0064】また、前記実施例では、タスク切り替え実
行CPU選択処理が効率的に行えるように、マルチプロ
セッサシステム上の各CPUで実行中の優先度がCPU
実行中タスク優先度データキュー40により優先度の低
い順で管理され、「実行可能」状態でCPU割り当て待
ちとなっているタスクが、タスクレディーキュー50に
より優先度の高い順に管理されているものとして説明し
たが、本発明はこれらの優先度管理方法に限るものでは
ない。処理効率を考慮しないならば、必ずしも優先度順
に管理する必要はない。
Further, in the above embodiment, in order to efficiently perform the task switching execution CPU selection processing, the priority being executed by each CPU in the multiprocessor system is the CPU.
Assuming that tasks that are being managed by the task-in-progress priority data queue 40 in ascending order of priority, and tasks that are waiting for CPU allocation in the “executable” state are managed by the task ready queue 50 in order of increasing priority. Although described, the present invention is not limited to these priority management methods. If the processing efficiency is not considered, it is not always necessary to manage in order of priority.

【0065】[0065]

【発明の効果】以上詳述したようにこの発明によれば、
マルチプロセッサシステム上のCPUでタスク実行中に
タスクスケジューリング処理が必要となった場合に、そ
の実行中のタスクの優先度とCPU割り当て待ち状態に
あるタスク群の優先度だけでなく、他のCPUで実行中
のタスクの優先度をも考慮して、タスク切り替えを実行
すべき全てのCPUを、より低い優先度のタスクを実行
中のCPUから順に決定する構成としたので、マルチプ
ロセッサ構成を生かした最適なタスクスケジューリング
を行うことができる。
As described above in detail, according to the present invention,
When task scheduling processing is required during execution of a task on a CPU in a multiprocessor system, not only the priority of the task being executed and the priority of the task group in the CPU allocation waiting state but also other CPUs In consideration of the priority of the task being executed, all the CPUs that should execute the task switching are configured so that the task having the lower priority is determined in order from the CPU that is executing. Therefore, the multiprocessor configuration is utilized. Optimal task scheduling can be performed.

【0066】また、この発明によれば、タスク切り替え
を実行すべきものとして決定したCPUに対して、タス
ク切り替え処理を起動するための特定割り込みを発生さ
せる構成とすることにより、その割り込みを受け付けた
CPUにおいて、より高い優先度のタスクへのタスク切
り替えを直ちに行うことができる。
Further, according to the present invention, the CPU that has accepted the interrupt is configured by generating a specific interrupt for activating the task switching process to the CPU that is determined to execute the task switching. In, the task switching to the task with higher priority can be performed immediately.

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

【図1】本発明の一実施例に係るマルチプロセッサシス
テムのブロック構成図。
FIG. 1 is a block configuration diagram of a multiprocessor system according to an embodiment of the present invention.

【図2】同実施例において、「待ち」タスク群60にあ
るタスク制御ブロック61E,61Fの示すタスクが、
CPU10-0で実行中のタスク11Aにより「待ち」状
態から「実行可能」状態に変えられて、タスクレディー
キュー50につながれた際のシステム状態を示す図。
FIG. 2 is a block diagram showing a task control block 61E, 61F in a “waiting” task group 60 in the same embodiment;
The figure which shows the system state at the time of being connected to the task ready queue 50 by changing from the "waiting" state to the "executable" state by the task 11A being executed by the CPU 10-0.

【図3】同実施例におけるタスク切り替え実行CPU選
択処理を説明するためのフローチャート。
FIG. 3 is a flowchart for explaining task switching execution CPU selection processing in the embodiment.

【図4】同実施例におけるタスク切り替え実行用割り込
み受け付け時の割り込み処理を説明するためのフローチ
ャート。
FIG. 4 is a flowchart for explaining an interrupt process at the time of accepting a task switching execution interrupt in the embodiment.

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

10-0〜10-2…CPU(CPU選択手段、特定割り込
み発生手段)、11A〜11C…タスク、20…共有メ
モリ、30…システムバス、40…CPU実行中タスク
優先度データキュー(第1の管理手段)、42〜44…
CPU実行中タスク優先度データブロック、50…タス
クレディーキュー(第2の管理手段)、61D〜61F
…タスク制御ブロック。
10-0 to 10-2 ... CPU (CPU selecting means, specific interrupt generating means), 11A to 11C ... Task, 20 ... Shared memory, 30 ... System bus, 40 ... CPU executing task priority data queue (first Management means), 42-44 ...
CPU executing task priority data block, 50 ... Task ready queue (second management means), 61D to 61F
... task control block.

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 複数のCPUが並列に動作するマルチプ
ロセッサシステムににおいて、 前記各CPUで実行中のタスクの実行優先度を管理する
第1の管理手段と、 実行可能な状態でCPU割り当て待ちとなっているタス
ク群を管理する第2の管理手段と、 前記マルチプロセッサシステム上のCPUで実行中のタ
スクが他の少なくとも1つのタスクの状態を変更した結
果タスクスケジューリング処理が必要となった場合に、
そのCPUにより、前記第1の管理手段で管理されてい
る前記各CPUで実行中のタスクの実行優先度と前記第
2の管理手段で管理されている前記CPU割り当て待ち
状態にある各タスクの実行優先度をもとに、タスク切り
替えを実行すべき全てのCPUを、そのCPUで実行中
のタスクの実行優先度が低い順に順次決定するCPU選
択手段と、 このCPU選択手段によりタスク切り替えを実行すべき
CPUが決定される毎に、そのCPUに対してタスク切
り替え処理を起動するための特定割り込みを発生させる
特定割り込み発生手段と、 前記特定割り込みを受けたCPUにおいて、当該割り込
みに応じてタスク切り替えを行う割り込み処理手段とを
具備することを特徴とするマルチプロセッサシステム。
1. In a multiprocessor system in which a plurality of CPUs operate in parallel, a first management unit that manages the execution priority of a task that is being executed by each CPU, and a CPU allocation wait state in an executable state. A second managing means for managing a group of tasks that have become active, and when a task being executed by the CPU on the multiprocessor system changes the state of at least one other task, task scheduling processing is required. ,
By the CPU, the execution priority of the task being executed by each CPU managed by the first managing means and the execution of each task in the CPU allocation waiting state managed by the second managing means. Based on the priority, all the CPUs for which the task switching should be executed are sequentially determined in descending order of the execution priority of the task being executed by the CPU, and the task switching is executed by this CPU selecting means. Each time a CPU to be determined is determined, a specific interrupt generation unit that generates a specific interrupt for activating a task switching process for the CPU, and a CPU that has received the specific interrupt perform task switching according to the interrupt. A multiprocessor system comprising: interrupt processing means for performing.
【請求項2】 複数のCPUが並列に動作するマルチプ
ロセッサシステムににおいて、 前記各CPUで実行中のタスクの実行優先度を優先度が
低い順に管理する第1の管理手段と、 実行可能な状態でCPU割り当て待ちとなっているタス
ク群をその実行優先度が高い順に管理する第2の管理手
段と、 前記マルチプロセッサシステム上のCPUで実行中のタ
スクが他の少なくとも1つのタスクの状態を変更した結
果タスクスケジューリング処理が必要となった場合に、
そのCPUにより、前記第1の管理手段で管理されてい
る前記各CPUで実行中のタスクの実行優先度と前記第
2の管理手段で管理されている前記CPU割り当て待ち
状態にある各タスクの実行優先度を先頭から順に同期し
て取り出して、その都度両優先度を比較し、前記CPU
割り当て待ち状態にあるタスクの実行優先度の方が前記
実行中タスクの実行優先度より高いならば、当該実行中
タスクが実行されているCPUをタスク切り替えを実行
すべきCPUとして決定するCPU選択手段と、 このCPU選択手段によりタスク切り替えを実行すべき
CPUが決定される毎に、そのCPUに対してタスク切
り替え処理を起動するための特定割り込みを発生させる
特定割り込み発生手段と、 前記特定割り込みを受けたCPUにおいて、当該割り込
みに応じてタスク切り替えを行う割り込み処理手段とを
具備することを特徴とするマルチプロセッサシステム。
2. In a multiprocessor system in which a plurality of CPUs operate in parallel, first management means for managing the execution priority of tasks being executed by each CPU in ascending order of priority, and an executable state. Second managing means for managing a task group waiting for CPU allocation in descending order of execution priority, and a task being executed by the CPU on the multiprocessor system changes the state of at least one other task. As a result, when task scheduling processing becomes necessary,
By the CPU, the execution priority of the task being executed by each CPU managed by the first managing means and the execution of each task in the CPU allocation waiting state managed by the second managing means. The priorities are taken out synchronously in order from the beginning, and both priorities are compared each time, and the CPU
If the execution priority of the task in the allocation waiting state is higher than the execution priority of the executing task, the CPU selecting means for determining the CPU on which the executing task is executed as the CPU to execute the task switching. Each time the CPU selecting means determines a CPU to execute the task switching, a specific interrupt generating means for generating a specific interrupt for activating the task switching process to the CPU, and a specific interrupt generating means for receiving the specific interrupt A multiprocessor system, comprising: an interrupt processing unit that switches a task in accordance with the interrupt in the CPU.
【請求項3】 複数のCPUが並列に動作するマルチプ
ロセッサシステムにおけるタスクスケジューリング方法
において、 前記マルチプロセッサシステム上の或るCPUで実行中
のタスクが他の少なくとも1つのタスクの状態を変更し
た結果タスクスケジューリング処理が必要となった場合
に、 その時点においてCPU割り当て待ち状態にある各タス
クを、そのタスクの優先度が高い順に、そのタスクより
低い実行優先度のタスクを実行中の前記マルチプロセッ
サシステム上のCPUに対して、より低い実行優先度の
タスクを実行中のCPUから順に割り当てるようにした
ことを特徴とするマルチプロセッサシステムにおけるタ
スクスケジューリング方法。
3. A task scheduling method in a multiprocessor system in which a plurality of CPUs operate in parallel, wherein a task being executed by a CPU on the multiprocessor system changes the state of at least one other task. When the scheduling process is required, the tasks in the CPU allocation waiting state at that time are executed in the order of higher priority of the tasks on the multiprocessor system which is executing the tasks of lower execution priority than the tasks. A task scheduling method in a multiprocessor system, wherein a task having a lower execution priority is sequentially assigned to the CPU of the first CPU.
【請求項4】 複数のCPUが並列に動作するマルチプ
ロセッサシステムにおけるタスクスケジューリング方法
において、 前記マルチプロセッサシステム上の或るCPUで実行中
のタスクが他の少なくとも1つのタスクの状態を変更し
た結果タスクスケジューリング処理が必要となった場合
に、 その時点において前記マルチプロセッサシステム上の各
CPUで実行中のタスクの実行優先度およびCPU割り
当て待ち状態にある各タスクの実行優先度の実行優先度
をもとに、タスク切り替えを実行すべき全てのCPU
を、そのCPUで実行中のタスクの実行優先度が低い順
に順次決定する第1の段階と、 この第1の段階でタスク切り替えを実行するCPUが決
定される毎に、そのCPUに対してタスク切り替え処理
を起動するための特定割り込みを発生させる第2の段階
と、 前記特定割り込みを受けたCPUにおいて、当該割り込
みに応じてタスク切り替えを行う第3の段階とを具備す
ることを特徴とするマルチプロセッサシステムにおける
タスクスケジューリング方法。
4. A task scheduling method in a multiprocessor system in which a plurality of CPUs operate in parallel, wherein a task being executed by a CPU in the multiprocessor system changes the state of at least one other task. When a scheduling process becomes necessary, the execution priority of the task being executed by each CPU on the multiprocessor system at that time and the execution priority of the execution priority of each task in the CPU allocation waiting state are calculated based on the execution priority. All CPUs that should execute task switching
Is sequentially determined in the order of decreasing execution priority of tasks being executed by that CPU, and every time a CPU that executes task switching is determined in this first step, a task is executed for that CPU. A multistage comprising a second step of generating a specific interrupt for activating the switching process, and a third step of performing task switching in response to the interrupt in the CPU that has received the specific interrupt. Task scheduling method for processor system.
【請求項5】 複数のCPUが並列に動作するマルチプ
ロセッサシステムにおけるタスクスケジューリング方法
において、 前記マルチプロセッサシステム上のCPUで実行中のタ
スクが他の少なくとも1つのタスクの状態を変更した結
果タスクスケジューリング処理が必要となった場合に、 前記各CPUで実行中のタスクの実行優先度を優先度の
低い順に順次抽出する動作、およびCPU割り当て待ち
状態にある各タスクの実行優先度を優先度の高い順に順
次抽出する動作を同期して実行する第1の段階と、 この第1の段階で、前記実行中タスクの実行優先度と前
記CPU割り当て待ち状態にあるタスクの実行優先度と
がそれぞれ1つ抽出される毎に、両優先度を比較する第
2の段階と、 この第2の段階で前記CPU割り当て待ち状態にあるタ
スクの実行優先度の方が前記実行中タスクの実行優先度
より高いと判断される毎に、その実行中タスクが実行さ
れているCPUに対してタスク切り替え処理を起動する
ための特定割り込みを発生させる第3の段階と、 前記特定割り込みを受けたCPUにおいて、当該割り込
みに応じてタスク切り替えを行う第4の段階とを具備
し、前記第1乃至第3の段階を、前記実行中タスクの実
行優先度の方が前記CPU割り当て待ち状態にあるタス
クの実行優先度より高いと前記第2の段階で判断される
か、或いは前記第2の段階で比較すべき前記CPUで実
行中のタスクの実行優先度および前記CPU割り当て待
ち状態にあるタスクの実行優先度の少なくとも一方が尽
きるまで続けることを特徴とするマルチプロセッサシス
テムにおけるタスクスケジューリング方法。
5. A task scheduling method in a multiprocessor system in which a plurality of CPUs operate in parallel, a task scheduling process as a result of a task being executed by a CPU on the multiprocessor system changing the state of at least one other task. When it becomes necessary, the operation of sequentially extracting the execution priorities of the tasks being executed by the CPUs in the ascending order of priority, and the execution priorities of the tasks in the CPU allocation waiting state in the descending order of priority. A first step of synchronously executing sequentially extracting operations, and at the first step, one execution priority of the task under execution and one execution priority of the task in the CPU allocation waiting state are extracted. Each time it is executed, the second step of comparing the two priorities is performed, and in the second step, the CPU allocation waiting state is set. Each time it is determined that the task execution priority is higher than the execution priority of the executing task, a specific interrupt for activating the task switching process is issued to the CPU on which the executing task is executed. And a fourth step of performing task switching in response to the interrupt in the CPU that has received the specific interrupt. The first to third steps are executed for the execution of the running task. It is judged in the second step that the priority is higher than the execution priority of the task in the CPU allocation waiting state, or the execution of the task being executed in the CPU to be compared in the second step. A task task in a multiprocessor system characterized by continuing until at least one of the priority and the execution priority of the task in the CPU allocation waiting state is exhausted. Scheduling method.
JP16937094A 1994-07-21 1994-07-21 Multiprocessor system and task scheduling method in the system Expired - Fee Related JP3524961B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16937094A JP3524961B2 (en) 1994-07-21 1994-07-21 Multiprocessor system and task scheduling method in the system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16937094A JP3524961B2 (en) 1994-07-21 1994-07-21 Multiprocessor system and task scheduling method in the system

Publications (2)

Publication Number Publication Date
JPH0836553A true JPH0836553A (en) 1996-02-06
JP3524961B2 JP3524961B2 (en) 2004-05-10

Family

ID=15885336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16937094A Expired - Fee Related JP3524961B2 (en) 1994-07-21 1994-07-21 Multiprocessor system and task scheduling method in the system

Country Status (1)

Country Link
JP (1) JP3524961B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167478B2 (en) 2002-09-16 2007-01-23 Ericsson Inc. Versatile system for message scheduling within a packet operating system
JP2012022451A (en) * 2010-07-13 2012-02-02 Fujitsu Ltd Multi-core processor system, schedule management program and computer-readable storage medium storing the same
JP2012520531A (en) * 2009-03-17 2012-09-06 クアルコム,インコーポレイテッド Real-time multi-thread scheduler and scheduling method
CN112659119A (en) * 2020-12-02 2021-04-16 广东博智林机器人有限公司 Control method and device of mechanical arm, electronic equipment and storage medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167478B2 (en) 2002-09-16 2007-01-23 Ericsson Inc. Versatile system for message scheduling within a packet operating system
JP2012520531A (en) * 2009-03-17 2012-09-06 クアルコム,インコーポレイテッド Real-time multi-thread scheduler and scheduling method
US9207943B2 (en) 2009-03-17 2015-12-08 Qualcomm Incorporated Real time multithreaded scheduler and scheduling method
JP2012022451A (en) * 2010-07-13 2012-02-02 Fujitsu Ltd Multi-core processor system, schedule management program and computer-readable storage medium storing the same
CN112659119A (en) * 2020-12-02 2021-04-16 广东博智林机器人有限公司 Control method and device of mechanical arm, electronic equipment and storage medium

Also Published As

Publication number Publication date
JP3524961B2 (en) 2004-05-10

Similar Documents

Publication Publication Date Title
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
US8612986B2 (en) Computer program product for scheduling ready threads in a multiprocessor computer based on an interrupt mask flag value associated with a thread and a current processor priority register value
US20060130062A1 (en) Scheduling threads in a multi-threaded computer
KR970016979A (en) Queuing system and method of tasks in a multiprocessing system
US5526521A (en) Method and system for process scheduling from within a current context and switching contexts only when the next scheduled context is different
US7590990B2 (en) Computer system
GB2348306A (en) Batch processing of tasks in data processing systems
AU603876B2 (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
US5884021A (en) Computer system having a checkpoint and restart function
JP3524961B2 (en) Multiprocessor system and task scheduling method in the system
JP2007172611A (en) Method and storage medium (effective use method for processor in virtual sharing environment)
JP2636722B2 (en) Multitask execution management method
JPH05108380A (en) Data processing system
JP2986930B2 (en) Task Scheduling Method for Symmetric Multiprocessor
JP2000076081A (en) Task manager and program recording medium
CN115617533B (en) Process switching management method in heterogeneous computing and computing device
JPS63636A (en) Task control system
JPH11249917A (en) Parallel computers, their batch processing method, and storage medium
JP2001229038A (en) Multi-operating computer system
JPH04367942A (en) Operation management processing system for system
JP2005071141A (en) Method and device for managing stack and stack management program
JPH06214811A (en) Scheduling system
JPH02139630A (en) Online task exchange device
JP3362673B2 (en) Channel control device
JPH06230982A (en) Transaction processing control system

Legal Events

Date Code Title Description
A521 Written amendment

Effective date: 20040109

Free format text: JAPANESE INTERMEDIATE CODE: A523

A01 Written decision to grant a patent or to grant a registration (utility model)

Effective date: 20040203

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Effective date: 20040216

Free format text: JAPANESE INTERMEDIATE CODE: A61

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080220

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 5

Free format text: PAYMENT UNTIL: 20090220

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110220

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 8

Free format text: PAYMENT UNTIL: 20120220

LAPS Cancellation because of no payment of annual fees