JPH0424828A - マルチタスク管理方式 - Google Patents
マルチタスク管理方式Info
- Publication number
- JPH0424828A JPH0424828A JP12923190A JP12923190A JPH0424828A JP H0424828 A JPH0424828 A JP H0424828A JP 12923190 A JP12923190 A JP 12923190A JP 12923190 A JP12923190 A JP 12923190A JP H0424828 A JPH0424828 A JP H0424828A
- Authority
- JP
- Japan
- Prior art keywords
- task
- execution
- register
- tasks
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
本発明は、マルチタスクのタスクスイッチングを制御す
るマルチタスク管理方式に関する。
るマルチタスク管理方式に関する。
従来の汎用的なマルチタスク・モニタのようなマルチタ
スク管理方式では、タスクの状態や優先順位などのタス
ク管理資源を格納する一般にタスク・コントロール・ブ
ロック(TCB)と呼ばれるテーブルを用いてタスクの
切替制御が行われていた(例えば、CQ出版(株)発行
「インタフェース」誌1990年1月号、第139〜1
94頁参照)。 その−例として、タスク・コントロール・ブロックは、
タスクごとに用意され、タスクには固有のタスク番号が
割り振られ、構造体の配列として定義されている。その
各タスク・コントロール・ブロックのデータ構造は、タ
スクの動作状態を表す状態区分、タスク・プログラムへ
のポインタ、タスクニ割り付けられたスタック情報、タ
スクが使用している資源リストへのポインタ等の各要素
から構成されている。タスクの起動においては、指定さ
れたタスクの状態区分を停止状態から待機状態にした後
、タスクの実行順序を制御するスケジューラを呼び出す
。スケジューラは配列として定義されているタスク・コ
ントロール・ブロックを1番から順に検索し、最初に見
つかった待機状態のタスクすなわち最も優先順位の高い
待機状態のタスクを選択し、ディスパッチャを呼び出す
。 ディスパッチャは選択されたタスクの制御を行い、その
タスクは実行される。タスクは実行が終了すると、自分
のタスク・コントロール番ブロックの状態区分を停止状
態にする。
スク管理方式では、タスクの状態や優先順位などのタス
ク管理資源を格納する一般にタスク・コントロール・ブ
ロック(TCB)と呼ばれるテーブルを用いてタスクの
切替制御が行われていた(例えば、CQ出版(株)発行
「インタフェース」誌1990年1月号、第139〜1
94頁参照)。 その−例として、タスク・コントロール・ブロックは、
タスクごとに用意され、タスクには固有のタスク番号が
割り振られ、構造体の配列として定義されている。その
各タスク・コントロール・ブロックのデータ構造は、タ
スクの動作状態を表す状態区分、タスク・プログラムへ
のポインタ、タスクニ割り付けられたスタック情報、タ
スクが使用している資源リストへのポインタ等の各要素
から構成されている。タスクの起動においては、指定さ
れたタスクの状態区分を停止状態から待機状態にした後
、タスクの実行順序を制御するスケジューラを呼び出す
。スケジューラは配列として定義されているタスク・コ
ントロール・ブロックを1番から順に検索し、最初に見
つかった待機状態のタスクすなわち最も優先順位の高い
待機状態のタスクを選択し、ディスパッチャを呼び出す
。 ディスパッチャは選択されたタスクの制御を行い、その
タスクは実行される。タスクは実行が終了すると、自分
のタスク・コントロール番ブロックの状態区分を停止状
態にする。
上記従来の技術において、タスク・コントロール・ブロ
ックは、メモリ上に展開されており、このよう1こメモ
リ上にタスクの管理資源が多く存在する場合、タスクの
実行要求の発生時や実行終了時におけるタスク・スイッ
チングの判断あるいはスイッチング処理の実行のために
行われるタスク・コントロール・ブロックの参照や更新
に要するメモリ・アクセスの頻度が高くなる。 従って、従来の技術においては、タスクのスイッチング
が頻繁に行われほど、本来のタスクの実行時間に対する
タスク・スイッチング処理に要する時間の割合が増加す
ることとなり、実行効率が悪くなっていた。 本発明は、上記従来技術の欠点を除去することを目的と
するものである。すなわち、本発明はマルチタスクのタ
スク−スイッチング処理を1li1′速化し、タスクの
実行効率を高(することのできるマルチタスク管理方式
を提供することを目的とするものである。
ックは、メモリ上に展開されており、このよう1こメモ
リ上にタスクの管理資源が多く存在する場合、タスクの
実行要求の発生時や実行終了時におけるタスク・スイッ
チングの判断あるいはスイッチング処理の実行のために
行われるタスク・コントロール・ブロックの参照や更新
に要するメモリ・アクセスの頻度が高くなる。 従って、従来の技術においては、タスクのスイッチング
が頻繁に行われほど、本来のタスクの実行時間に対する
タスク・スイッチング処理に要する時間の割合が増加す
ることとなり、実行効率が悪くなっていた。 本発明は、上記従来技術の欠点を除去することを目的と
するものである。すなわち、本発明はマルチタスクのタ
スク−スイッチング処理を1li1′速化し、タスクの
実行効率を高(することのできるマルチタスク管理方式
を提供することを目的とするものである。
【課題を解決するための手段]
本発明のマルチタスク管理方式は、複数のタスクに対応
する複数の記憶単位を有し、それらの記憶単位の配列順
序がタスクの優先順位に対応し、各記憶単位にタスクの
実行要求の育無を格納するタスク実行要求レジスタ(第
1図1)と、複数のタスクに対応する複数の記憶単位を
有し、それらの記憶単位の配列順序がタスクの優先順位
に対応し、各記憶単位にタスクの状態を格納するタスク
状態レジスタ(第1図2)と、タスク要求レジスタの内
容に基づいて、最も優先順位の高いタスクがどれである
かを判定し、そのタスクに対応するタスク状態レジスタ
の記憶単位に実行状態であることを示す情報を格納する
とともに、そのタスクの実行を指示するタスク管理手段
(第1図3)とを備えている。 【作用】 タスク管理手段は、タスクの実行要求が発生すると、タ
スク実行要求レジスタの対応する記憶単位(記憶ビット
素子)、すなわちそのタスクに割り当てられている記憶
単位に実行要求があったことを示す情報(例えば2進数
“1”)を書き込む。 また、一つのタスクの実行が終了したとき、タスク管理
手段は、実行要求が無いことを示す情報(例えば2進数
“0”)をタスク実行要求レジスタの対応する記憶単位
に書き込む。このようにタスク実行要求レジスタは、実
行要求の発生、消滅に応じて更新され、常に最新のタス
クの実行要求の状況が保持されている。 タスクの実行をする場合、タスク実行要求レジスタの内
容を調べて、タスク実行要求のあるタスクのうち最も優
先順位の高いタスクを捜し、それを次に実行すべきタス
クと決定する。 次に、タスク管理手段は、その決定されたタスクに対応
するタスク状態レジスタの記憶単位にタスクが実行状態
であることを示す情報(2進数“1”)を書き込み、そ
のタスクの実行を指示する。もしいずれのタスクにも実
行要求がなければ、その場合にのみ実行されるバックグ
ラウンドタスクに制御を渡す。 なお、タスクの状態としては、例えば、■実行要求がな
く、また実行状態でもない停止状態、■実行要求はあっ
たがまだ実行には移っていない状態、■実行中の状態お
よび実行が割込により中断している状態などがある。 本発明によれば、タスク実行要求、タスクの状態、優先
順位等のタスク管理資源をレジスタに保持して、タスク
の管理をするので、マルチタスクのタスク切替処理を高
速化し、タスクの実行効率を高くすることができる。ま
た、タスク管理資源として、最小限必要なもののみを用
い、データ構造を簡略化しているので、メモリアクセス
の必要がないレジスタの使用と相俟って、タスクの実行
効率を一層高(することができる。
する複数の記憶単位を有し、それらの記憶単位の配列順
序がタスクの優先順位に対応し、各記憶単位にタスクの
実行要求の育無を格納するタスク実行要求レジスタ(第
1図1)と、複数のタスクに対応する複数の記憶単位を
有し、それらの記憶単位の配列順序がタスクの優先順位
に対応し、各記憶単位にタスクの状態を格納するタスク
状態レジスタ(第1図2)と、タスク要求レジスタの内
容に基づいて、最も優先順位の高いタスクがどれである
かを判定し、そのタスクに対応するタスク状態レジスタ
の記憶単位に実行状態であることを示す情報を格納する
とともに、そのタスクの実行を指示するタスク管理手段
(第1図3)とを備えている。 【作用】 タスク管理手段は、タスクの実行要求が発生すると、タ
スク実行要求レジスタの対応する記憶単位(記憶ビット
素子)、すなわちそのタスクに割り当てられている記憶
単位に実行要求があったことを示す情報(例えば2進数
“1”)を書き込む。 また、一つのタスクの実行が終了したとき、タスク管理
手段は、実行要求が無いことを示す情報(例えば2進数
“0”)をタスク実行要求レジスタの対応する記憶単位
に書き込む。このようにタスク実行要求レジスタは、実
行要求の発生、消滅に応じて更新され、常に最新のタス
クの実行要求の状況が保持されている。 タスクの実行をする場合、タスク実行要求レジスタの内
容を調べて、タスク実行要求のあるタスクのうち最も優
先順位の高いタスクを捜し、それを次に実行すべきタス
クと決定する。 次に、タスク管理手段は、その決定されたタスクに対応
するタスク状態レジスタの記憶単位にタスクが実行状態
であることを示す情報(2進数“1”)を書き込み、そ
のタスクの実行を指示する。もしいずれのタスクにも実
行要求がなければ、その場合にのみ実行されるバックグ
ラウンドタスクに制御を渡す。 なお、タスクの状態としては、例えば、■実行要求がな
く、また実行状態でもない停止状態、■実行要求はあっ
たがまだ実行には移っていない状態、■実行中の状態お
よび実行が割込により中断している状態などがある。 本発明によれば、タスク実行要求、タスクの状態、優先
順位等のタスク管理資源をレジスタに保持して、タスク
の管理をするので、マルチタスクのタスク切替処理を高
速化し、タスクの実行効率を高くすることができる。ま
た、タスク管理資源として、最小限必要なもののみを用
い、データ構造を簡略化しているので、メモリアクセス
の必要がないレジスタの使用と相俟って、タスクの実行
効率を一層高(することができる。
【実施例]
以下、図面に示す実施例より本発明の詳細な説明する。
第1図は、本発明の実施例の構成を示すブロック図であ
り、第2図は第1図におけるレジスタの構成を説明する
ための図である。 この実施例は、第1図に示すように、タスクに対する実
行要求のを無を各タスクごとに記憶するタスク実行要求
レジスタ1と、タスクの状態を各タスクごとに記憶する
タスク状態レジスタ2と、タスクの切替の管理をするス
ケジューラ(タスク管理手段)3と、複数のタスクを含
むタスク群4とを備えている。 タスク実行要求レジスタ1およびタスク状態レジスタ2
は、それぞれn+1個のタスク#0〜#nに対応するn
+1ビットの記憶位置を有している。すなわちレジスタ
の各ビットは、そのビット番号に等しいタスク番号を持
つタスクが関連づけられている。従ってこれら二つのレ
ジスタのサイズであるビット数が本実施例の方式によっ
て制御できるタスクの数を左右する。また、タスク番号
の値が優先順位を表し、その値の大小関係が優先度とな
って表れるようになっている。 タスク実行要求レジスタ1の各ビットはそれに対応する
タスクに対する実行要求の有無を表す。 第4図に示すように、“0″は実行要求の無いことを表
し、′1”は実行要求のあることを表す。 タスク状態レジスタ2は、実行中であったがより優先度
の高いタスクの実行によって中断されている( Pre
empted )状態、または現在実行中(Run)の
場合に“l”となり、それ以外の場合(Co閣plet
e 、 Ready )には“0”となる。 そのタスクの状態には、第3図に示すように、「停止(
Coi+plete)」r待機(Ready) J
r実行(Run)J「中断(Pree++pted)
Jの4個の状態がある。「停止」は実行要求が無い状態
を意味し、「待機」は実行要求は発生しているが、実行
権を得ていない状態を意味し、「実行」は実行権を獲得
し、そのタスクが実行中である状態を意味し、「中断」
は実行状態にあったタスクが、割込処理ルーチンの実行
によりその処理を中断されている状態を意味する。 以上4つの状態と各レジスタの対応するビットとの関係
は、タスク実行要求レジスタ1の値が“0″ならば停止
状態、タスク実行要求レジスタ1の値が“1”かつタス
ク状態レジスタ2の値が“0”ならば待機状態、タスク
実行要求レジスタ1の値が“1″かつタスク状態レジス
タ2の値が“1”ならば中断状態または実行状態を表す
。。 スケジューラ3は、タスク実行要求レジスタ1およびタ
スク状態レジスタ2を用いて、タスク切替の制御と管理
をするものである。次に掲げる各場合(1)(2)(3
)に分けてスケジユーラ3の処理を説明する。 (1) タスク実行要求の発生 実行を要求するタスクがタスク実行要求レジスタ1上の
被要求タスクに対応したビットを“1″にすることによ
りそのタスクへの実行要求の発生をスケジューラ3へ伝
える。スケジューラ3はタスク実行要求レジスタlを参
照し、被要求タスクの優先順位がその時点で実行要求の
発生しているタスクの中で最高位のものであればタスク
状態レジスタ2の該当ビットを“1”にセットして、そ
のタスクが実行中であることを表示した後、即座にその
タスクの実行を開始する。それ以外の場合には実行を要
求したタスクの処理を再開する。 (2) タスクの実行終了 あるタスクの実行が終了した場合、まずスケジューラ3
は、タスク実行要求レジスタlとタスク状態レジスタ2
の二つのレジスタの該当ビットを“0”にし、要求され
た実行が終了してタスクが「停止」状態になったことを
表示する。このようにして最高位の優先順位を持ったタ
スクの実行が終了したので、その次に優先順位が高いタ
スクを二つのレジスタ1,2を見て捜す。もし最高位の
優先順位を持つタスクの状態が「中断」であった場合も
しくは実行要求の発生しているタスクが無かった場合に
は、実行が終了したタスクの直前に実行されていたタス
クへ実行権を戻す。それ以外つまり「待機」状態のタス
クの優先順位が一番高い場合には新たにそのタスクの実
行を開始する。 (3) 割込の発生 割込が発生した場合には、その割込に関連付けられた割
込処理ルーチンが実行される。この時に実行中のタスク
が存在した場合には、そのタスクの状態は「実行」から
「中断」に移行される。そして割込処理ルーチンの実行
終了後、割込発生前に実行されていたタスクは再び「実
行」状態に復帰される。また、この割込処理ルーチンの
中で任意のタスクに実行要求を発行することも可能であ
る。その場合には、前項(2)のタスクの実行終了時の
処理と同様の処理によって次に実行されるべきタスクが
決定される。 以上に、本実施例の基本的動作について説明したが、こ
こで具体的な例を挙げて動作を説明する。 第5図は動作フローの一例を示す図である。 ここに32ビツトのレジスタが2つあるものとし、これ
らをそれぞれタスク実行要求レジスタ1とタスク状態レ
ジスタ2として割り当てる。また、説明のためにタスク
#1とタスク#2という構成を定義する。 スケジューラ3ははじめにタスク実行要求レジスタ1と
タスク状態レジスタ2を初期化する(第5図ステップ5
1)。 現在実行状態にあるタスク#1から実行要求を何も受け
ていない停止状態のタスク#2への実行要求が発生した
と仮定する。そうすると、まず要求元タスクがタスク実
行要求レジスタ1内の要求先タスクのビットを“1″に
セットすることにより要求先タスクを実行させたい旨を
表示する(ステップ53)。 ここでスケジューラ3が要求元タスクと要求先タスクの
優先順位を比較してその値の高い方のタスクに実行権を
移す(ステップ54)。結果として優先順位の高い方が
要求元であればこれ以上例もせずに要求元タスクの実行
を継続する。 その逆に要求先タスクの優先順位の方が高ければ、タス
ク状態レジスタ2のビットを“1”にセットして実行状
態に入ったことを表示する(ステップ56)。そして、
タスクの実行を開始する(ステップ57)。第6図の例
においてはタスク#2の方が優先順位が高いため、タス
ク#2が即座に実行される。 タスクの実行終了によりスケジューラ3に制御が渡る。 ここではタスク実行要求レジスタ1とタスク状態レジス
タ2内のビットのうち、実行を終了したタスクに対応す
るビットを“0”にし、実行要求の存在と実行状態にあ
ることの表示を抹消する(ステップ58.59)。 そして、実行要求の表示が有りかつ優先順位の一番高い
タスク、つまり第6図の場合にはタスク#1しかないの
でこのタスク#1に再び実行権が戻る(ステップ54)
。 実行すべきタスクが無くなった場合には、バックグラウ
ンドタスクへ制御を移し、新たなタスクの実行要求の発
生を待つ。 以上が基本的なタスク切替動作の例であるが、次に割込
発生時の動作例を説明する。 第7図に示すように、タスク#1の実行中に、ある割り
込みが発生したと仮定する。そうするとこの割り込みに
関連付けられた割り込み処理ルーチンに制御が渡る。こ
の例では、この割り込み処理ルーチンの中でタスク#2
の実行を要求するものとする。そのためにタスク実行要
求レジスタ1内のタスク#2のビットを“1”にセット
する。 その後、この割り込み処理ルーチンを終了する際に再び
タスクのスケジュールが行われ、その結果、割り込み発
生前に実行されていたタスク#1よりも割り込み処理ル
ーチンの中で新たに実行を要求されたタスク#2の方が
優先順位が高いため、タスク#1には戻らずにタスク#
2の実行が開始される。 【発明の効果】 本発明によれば、タスク実行要求、タスクの状態、優先
順位等のタスク管理資源をレジスタに保持して、タスク
の管理をするので、マルチタスクのタスク切替処理を高
速化し、タスクの実行効率を高くすることができる。 また、本発明は、タスク管理資源として、最小限必要な
もののみを用い、データ構造を開路化しているので、メ
モリアクセスの必要がないレジスタの使用と相俟って、
タスクの実行効率を一層高くすることができ、簡易タス
クモニタとして有用である。
り、第2図は第1図におけるレジスタの構成を説明する
ための図である。 この実施例は、第1図に示すように、タスクに対する実
行要求のを無を各タスクごとに記憶するタスク実行要求
レジスタ1と、タスクの状態を各タスクごとに記憶する
タスク状態レジスタ2と、タスクの切替の管理をするス
ケジューラ(タスク管理手段)3と、複数のタスクを含
むタスク群4とを備えている。 タスク実行要求レジスタ1およびタスク状態レジスタ2
は、それぞれn+1個のタスク#0〜#nに対応するn
+1ビットの記憶位置を有している。すなわちレジスタ
の各ビットは、そのビット番号に等しいタスク番号を持
つタスクが関連づけられている。従ってこれら二つのレ
ジスタのサイズであるビット数が本実施例の方式によっ
て制御できるタスクの数を左右する。また、タスク番号
の値が優先順位を表し、その値の大小関係が優先度とな
って表れるようになっている。 タスク実行要求レジスタ1の各ビットはそれに対応する
タスクに対する実行要求の有無を表す。 第4図に示すように、“0″は実行要求の無いことを表
し、′1”は実行要求のあることを表す。 タスク状態レジスタ2は、実行中であったがより優先度
の高いタスクの実行によって中断されている( Pre
empted )状態、または現在実行中(Run)の
場合に“l”となり、それ以外の場合(Co閣plet
e 、 Ready )には“0”となる。 そのタスクの状態には、第3図に示すように、「停止(
Coi+plete)」r待機(Ready) J
r実行(Run)J「中断(Pree++pted)
Jの4個の状態がある。「停止」は実行要求が無い状態
を意味し、「待機」は実行要求は発生しているが、実行
権を得ていない状態を意味し、「実行」は実行権を獲得
し、そのタスクが実行中である状態を意味し、「中断」
は実行状態にあったタスクが、割込処理ルーチンの実行
によりその処理を中断されている状態を意味する。 以上4つの状態と各レジスタの対応するビットとの関係
は、タスク実行要求レジスタ1の値が“0″ならば停止
状態、タスク実行要求レジスタ1の値が“1”かつタス
ク状態レジスタ2の値が“0”ならば待機状態、タスク
実行要求レジスタ1の値が“1″かつタスク状態レジス
タ2の値が“1”ならば中断状態または実行状態を表す
。。 スケジューラ3は、タスク実行要求レジスタ1およびタ
スク状態レジスタ2を用いて、タスク切替の制御と管理
をするものである。次に掲げる各場合(1)(2)(3
)に分けてスケジユーラ3の処理を説明する。 (1) タスク実行要求の発生 実行を要求するタスクがタスク実行要求レジスタ1上の
被要求タスクに対応したビットを“1″にすることによ
りそのタスクへの実行要求の発生をスケジューラ3へ伝
える。スケジューラ3はタスク実行要求レジスタlを参
照し、被要求タスクの優先順位がその時点で実行要求の
発生しているタスクの中で最高位のものであればタスク
状態レジスタ2の該当ビットを“1”にセットして、そ
のタスクが実行中であることを表示した後、即座にその
タスクの実行を開始する。それ以外の場合には実行を要
求したタスクの処理を再開する。 (2) タスクの実行終了 あるタスクの実行が終了した場合、まずスケジューラ3
は、タスク実行要求レジスタlとタスク状態レジスタ2
の二つのレジスタの該当ビットを“0”にし、要求され
た実行が終了してタスクが「停止」状態になったことを
表示する。このようにして最高位の優先順位を持ったタ
スクの実行が終了したので、その次に優先順位が高いタ
スクを二つのレジスタ1,2を見て捜す。もし最高位の
優先順位を持つタスクの状態が「中断」であった場合も
しくは実行要求の発生しているタスクが無かった場合に
は、実行が終了したタスクの直前に実行されていたタス
クへ実行権を戻す。それ以外つまり「待機」状態のタス
クの優先順位が一番高い場合には新たにそのタスクの実
行を開始する。 (3) 割込の発生 割込が発生した場合には、その割込に関連付けられた割
込処理ルーチンが実行される。この時に実行中のタスク
が存在した場合には、そのタスクの状態は「実行」から
「中断」に移行される。そして割込処理ルーチンの実行
終了後、割込発生前に実行されていたタスクは再び「実
行」状態に復帰される。また、この割込処理ルーチンの
中で任意のタスクに実行要求を発行することも可能であ
る。その場合には、前項(2)のタスクの実行終了時の
処理と同様の処理によって次に実行されるべきタスクが
決定される。 以上に、本実施例の基本的動作について説明したが、こ
こで具体的な例を挙げて動作を説明する。 第5図は動作フローの一例を示す図である。 ここに32ビツトのレジスタが2つあるものとし、これ
らをそれぞれタスク実行要求レジスタ1とタスク状態レ
ジスタ2として割り当てる。また、説明のためにタスク
#1とタスク#2という構成を定義する。 スケジューラ3ははじめにタスク実行要求レジスタ1と
タスク状態レジスタ2を初期化する(第5図ステップ5
1)。 現在実行状態にあるタスク#1から実行要求を何も受け
ていない停止状態のタスク#2への実行要求が発生した
と仮定する。そうすると、まず要求元タスクがタスク実
行要求レジスタ1内の要求先タスクのビットを“1″に
セットすることにより要求先タスクを実行させたい旨を
表示する(ステップ53)。 ここでスケジューラ3が要求元タスクと要求先タスクの
優先順位を比較してその値の高い方のタスクに実行権を
移す(ステップ54)。結果として優先順位の高い方が
要求元であればこれ以上例もせずに要求元タスクの実行
を継続する。 その逆に要求先タスクの優先順位の方が高ければ、タス
ク状態レジスタ2のビットを“1”にセットして実行状
態に入ったことを表示する(ステップ56)。そして、
タスクの実行を開始する(ステップ57)。第6図の例
においてはタスク#2の方が優先順位が高いため、タス
ク#2が即座に実行される。 タスクの実行終了によりスケジューラ3に制御が渡る。 ここではタスク実行要求レジスタ1とタスク状態レジス
タ2内のビットのうち、実行を終了したタスクに対応す
るビットを“0”にし、実行要求の存在と実行状態にあ
ることの表示を抹消する(ステップ58.59)。 そして、実行要求の表示が有りかつ優先順位の一番高い
タスク、つまり第6図の場合にはタスク#1しかないの
でこのタスク#1に再び実行権が戻る(ステップ54)
。 実行すべきタスクが無くなった場合には、バックグラウ
ンドタスクへ制御を移し、新たなタスクの実行要求の発
生を待つ。 以上が基本的なタスク切替動作の例であるが、次に割込
発生時の動作例を説明する。 第7図に示すように、タスク#1の実行中に、ある割り
込みが発生したと仮定する。そうするとこの割り込みに
関連付けられた割り込み処理ルーチンに制御が渡る。こ
の例では、この割り込み処理ルーチンの中でタスク#2
の実行を要求するものとする。そのためにタスク実行要
求レジスタ1内のタスク#2のビットを“1”にセット
する。 その後、この割り込み処理ルーチンを終了する際に再び
タスクのスケジュールが行われ、その結果、割り込み発
生前に実行されていたタスク#1よりも割り込み処理ル
ーチンの中で新たに実行を要求されたタスク#2の方が
優先順位が高いため、タスク#1には戻らずにタスク#
2の実行が開始される。 【発明の効果】 本発明によれば、タスク実行要求、タスクの状態、優先
順位等のタスク管理資源をレジスタに保持して、タスク
の管理をするので、マルチタスクのタスク切替処理を高
速化し、タスクの実行効率を高くすることができる。 また、本発明は、タスク管理資源として、最小限必要な
もののみを用い、データ構造を開路化しているので、メ
モリアクセスの必要がないレジスタの使用と相俟って、
タスクの実行効率を一層高くすることができ、簡易タス
クモニタとして有用である。
第1図は、本発明の実施例の構成を示すブロック図であ
る。 第2図は第1図におけるレジスタの構成を説明するため
の図である。 第3図はタスクの動作状態の遷移を説明するための図で
ある。 第4図はタスクの状態と各レジスタの値との対応を示す
図である。 第5図は本発明の実施例に動作の一例を示す動作フロー
図である。 第6図はタスクの切替を説明するための図である。 第7図は割り込みによるタスクの切替を説明するための
図である。 1・・・タスク実行要求レジスタ、2・・・タスク状態
レジスタ、3・・・スケジューラ、4・・・タスク実行
手段。 特許出願人 富士ゼロックス株式会社 代 理 人 弁理士 岩上昇 第1図 高い 優先順位 ビット番号 応 低い 応 第3図 第4図 第6図 第7図
る。 第2図は第1図におけるレジスタの構成を説明するため
の図である。 第3図はタスクの動作状態の遷移を説明するための図で
ある。 第4図はタスクの状態と各レジスタの値との対応を示す
図である。 第5図は本発明の実施例に動作の一例を示す動作フロー
図である。 第6図はタスクの切替を説明するための図である。 第7図は割り込みによるタスクの切替を説明するための
図である。 1・・・タスク実行要求レジスタ、2・・・タスク状態
レジスタ、3・・・スケジューラ、4・・・タスク実行
手段。 特許出願人 富士ゼロックス株式会社 代 理 人 弁理士 岩上昇 第1図 高い 優先順位 ビット番号 応 低い 応 第3図 第4図 第6図 第7図
Claims (1)
- 【特許請求の範囲】 複数のタスクに対応する複数の記憶単位を有し、それら
の記憶単位の配列がタスクの優先順位に対応し、各記憶
単位にタスクの実行要求の有無を格納するタスク実行要
求レジスタと、 複数のタスクに対応する複数の記憶単位を有し、それら
の記憶単位の配列がタスクの優先順位に対応し、各記憶
単位にタスクの状態を格納するタスク状態レジスタと、 タスク要求レジスタの内容に基づいて、最も優先順位の
高いタスクがどれであるかを判定し、そのタスクに対応
するタスク状態レジスタの記憶単位に実行状態であるこ
とを示す情報を格納するとともに、そのタスクの実行を
指示するタスク管理手段と を備えたことを特徴とするマルチタスク管理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12923190A JPH0424828A (ja) | 1990-05-21 | 1990-05-21 | マルチタスク管理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12923190A JPH0424828A (ja) | 1990-05-21 | 1990-05-21 | マルチタスク管理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0424828A true JPH0424828A (ja) | 1992-01-28 |
Family
ID=15004413
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP12923190A Pending JPH0424828A (ja) | 1990-05-21 | 1990-05-21 | マルチタスク管理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0424828A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6702352B2 (en) | 2001-12-25 | 2004-03-09 | Moriroku Kabushiki Kaisha | Console for vehicle |
| WO2007020739A1 (ja) * | 2005-08-15 | 2007-02-22 | Sony Computer Entertainment Inc. | スケジューリング方法およびスケジューリング装置 |
-
1990
- 1990-05-21 JP JP12923190A patent/JPH0424828A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6702352B2 (en) | 2001-12-25 | 2004-03-09 | Moriroku Kabushiki Kaisha | Console for vehicle |
| WO2007020739A1 (ja) * | 2005-08-15 | 2007-02-22 | Sony Computer Entertainment Inc. | スケジューリング方法およびスケジューリング装置 |
| JP2007052511A (ja) * | 2005-08-15 | 2007-03-01 | Sony Computer Entertainment Inc | スケジューリング方法およびスケジューリング装置 |
| US8375390B2 (en) | 2005-08-15 | 2013-02-12 | Sony Computer Entertainment Inc. | Scheduling method and scheduling apparatus |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7441240B2 (en) | Process scheduling apparatus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling | |
| US5613114A (en) | System and method for custom context switching | |
| US6272517B1 (en) | Method and apparatus for sharing a time quantum | |
| US20240289173A1 (en) | Task processing method and apparatus, device, and medium | |
| US6430594B1 (en) | Real-time operating system and a task management system therefor | |
| US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
| US9870252B2 (en) | Multi-threaded processing with reduced context switching | |
| CN103729480B (zh) | 一种多核实时操作系统多个就绪任务快速查找及调度方法 | |
| EP0969382A2 (en) | Method for efficient non-virtual main memory management | |
| US20090083746A1 (en) | Method for job management of computer system | |
| JPH04195577A (ja) | マルチプロセッサにおけるタスクスケジューリング方式 | |
| WO2005046304A2 (en) | Method and system for allocation of special purpose computing resources in a multiprocessor system | |
| GB2348306A (en) | Batch processing of tasks in data processing systems | |
| US7032099B1 (en) | Parallel processor, parallel processing method, and storing medium | |
| US5355488A (en) | Method for adaptively building a library of program threads | |
| EP0676693A2 (en) | Method and system for dynamically selecting a communication mode | |
| US8032884B2 (en) | Thread hand off | |
| US6820153B2 (en) | Interrupt processing and memory management method in an operation processing device and a device using the same | |
| CA2252238A1 (en) | Method and apparatus for sharing a time quantum | |
| CN111158875A (zh) | 基于多模块的多任务处理方法、装置及系统 | |
| JPH0424828A (ja) | マルチタスク管理方式 | |
| JP3019317B2 (ja) | プロセススケジューリング方法 | |
| JP3349547B2 (ja) | スケジューリングシステム | |
| JPH09160790A (ja) | タスクスケジュール装置及びタスクスケジュール方法 | |
| JP2004234643A (ja) | プロセススケジューリング装置、プロセススケジューリング方法、プロセススケジューリングのためのプログラム、及びプロセススケジューリングのためのプログラムを記録した記録媒体 |