JPH07210400A - マルチタスク処理の処理装置 - Google Patents
マルチタスク処理の処理装置Info
- Publication number
- JPH07210400A JPH07210400A JP6019894A JP1989494A JPH07210400A JP H07210400 A JPH07210400 A JP H07210400A JP 6019894 A JP6019894 A JP 6019894A JP 1989494 A JP1989494 A JP 1989494A JP H07210400 A JPH07210400 A JP H07210400A
- Authority
- JP
- Japan
- Prior art keywords
- task
- register bank
- register
- tasks
- banks
- 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)【要約】
【目的】 リアルタイムオペレーティングシステムのコ
ンピュータにおいて、ディスパッチ時間を短縮する。 【構成】 中央処理装置に4つのレジスタバンク11〜
14を設ける。レジスタバンク11、12を、タスク
A、Bに1対1で固定的に割り当てる。レジスタバンク
13を、タスクC、Dに共通に割り当てる。レジスタバ
ンク13を使用するタスクCあるいはDに処理が移行す
るとき、レジスタバンク13の内容を、この内容のタス
クCあるいはDに対応するセーブエリア2Cあるいは2
Dに退避する。レジスタバンク13を使用するタスクに
対応するセーブエリア2Dあるいは2Cから、ここに退
避してある内容を残りのレジスタバンク13に復帰す
る。
ンピュータにおいて、ディスパッチ時間を短縮する。 【構成】 中央処理装置に4つのレジスタバンク11〜
14を設ける。レジスタバンク11、12を、タスク
A、Bに1対1で固定的に割り当てる。レジスタバンク
13を、タスクC、Dに共通に割り当てる。レジスタバ
ンク13を使用するタスクCあるいはDに処理が移行す
るとき、レジスタバンク13の内容を、この内容のタス
クCあるいはDに対応するセーブエリア2Cあるいは2
Dに退避する。レジスタバンク13を使用するタスクに
対応するセーブエリア2Dあるいは2Cから、ここに退
避してある内容を残りのレジスタバンク13に復帰す
る。
Description
【0001】
【産業上の利用分野】この発明は、リアルタイムオペレ
ーティングシステムにおけるマルチタスク処理の処理装
置に関する。
ーティングシステムにおけるマルチタスク処理の処理装
置に関する。
【0002】
【従来の技術】コンピュータのプログラムは、通常、シ
ーケンシャルに実行されていくので、例えば2つの処理
を同時に実行するためには、それらを所定の管理プログ
ラムにより並行に処理する必要がある。
ーケンシャルに実行されていくので、例えば2つの処理
を同時に実行するためには、それらを所定の管理プログ
ラムにより並行に処理する必要がある。
【0003】この並行に処理する部分をタスクと呼び、
2つ以上のタスクを並行に時分割処理する技術を、マル
チタスク処理と呼んでいる。そして、制御用のコンピュ
ータのオペレーティングシステムは、一般に、このマル
チタスク処理の機能を有している。
2つ以上のタスクを並行に時分割処理する技術を、マル
チタスク処理と呼んでいる。そして、制御用のコンピュ
ータのオペレーティングシステムは、一般に、このマル
チタスク処理の機能を有している。
【0004】また、組み込み機器に使用されるオペレー
ティングシステムで重要な項目として、リアルタイム性
があげられるが、このリアルタイム性を考慮して作成さ
れたオペレーティングシステムは、リアルタイムオペレ
ーティングシステムと呼んでいる。そして、このリアル
タイムオペレーティングシステムの提供する機能は、以
下の項目に分類することができる。 タスク管理機能 タスクの状態を直接操作したり、参照したりする機能。 タスク付属同期機能 タスクをサスペンド状態にして一時的に実行を停止する
機能、それを解除する機能など、タスクにあらかじめ付
加されている同期機能。 同期・通信機能 セマフォ、イベントフラグ、メイルボックスを用いた、
タスクとは独立した同期機能及び通信機能。 メモリプール管理機能 カーネルによってメモリブロックの割り当て及びメモリ
プールの管理を行う機能。 割り込み管理機能 外部割り込みの禁止・許可及び外部割り込みに対するハ
ンドラの定義を行う機能。 時間管理機能 システムクロックの設定や参照する機能、タスクを遅延
させる機能及び指定した時刻に起動されるハンドラの定
義を行う機能。 システム管理機能 カーネルのバージョンを参照する機能。
ティングシステムで重要な項目として、リアルタイム性
があげられるが、このリアルタイム性を考慮して作成さ
れたオペレーティングシステムは、リアルタイムオペレ
ーティングシステムと呼んでいる。そして、このリアル
タイムオペレーティングシステムの提供する機能は、以
下の項目に分類することができる。 タスク管理機能 タスクの状態を直接操作したり、参照したりする機能。 タスク付属同期機能 タスクをサスペンド状態にして一時的に実行を停止する
機能、それを解除する機能など、タスクにあらかじめ付
加されている同期機能。 同期・通信機能 セマフォ、イベントフラグ、メイルボックスを用いた、
タスクとは独立した同期機能及び通信機能。 メモリプール管理機能 カーネルによってメモリブロックの割り当て及びメモリ
プールの管理を行う機能。 割り込み管理機能 外部割り込みの禁止・許可及び外部割り込みに対するハ
ンドラの定義を行う機能。 時間管理機能 システムクロックの設定や参照する機能、タスクを遅延
させる機能及び指定した時刻に起動されるハンドラの定
義を行う機能。 システム管理機能 カーネルのバージョンを参照する機能。
【0005】そして、リアルタイムオペレーティングシ
ステムの提供する上記の機能を利用するため、アプリケ
ーションからオペレーティングシステムに対して処理要
求をすることを、システムコールを発行すると言ってい
る。
ステムの提供する上記の機能を利用するため、アプリケ
ーションからオペレーティングシステムに対して処理要
求をすることを、システムコールを発行すると言ってい
る。
【0006】さらに、オペレーティングシステムがタス
クを管理するための制御領域を、TCB(Task Control
Block)と呼んでいる。このTCBは、各タスクを管理
するために、タスクごとに必要となる。そして、TCB
には、以下の情報が必要となる。 タスクID タスクに割り当てられたID番号 タスクステータス タスクの状態 タスク優先度 タスク起動時のタスクの優先度 スタックポインタ タスクに割り当てられたスタックポインタ コンテキスト レジスタの内容。プログラムステータスワードなど 個別情報 また、マルチタスク処理を行うためには、タスクの状態
として、少なくとも次の4つの状態が必要となる。 実行状態(RUN) カーネルによって実行権が渡されたタスクの状態。 実行可能状態(READY) カーネルから実行権が渡されれば、実行状態になれるタ
スクの状態。 待ち状態(WAIT) タスクが何らかの条件が満足されるのを待っている状
態。実行条件が整えば実行可能状態となる。 休止状態(DORMANT) タスクが起動されていない状態、または終了後の状態。
そして、アプリケーションのタスクから処理要求があっ
たときの処理の流れは、以下のとおりである。 1. タスクから処理要求を行う。 2. リアルタイムオペレーティングシステムの該当する
処理要求の中でコンテキストなどの退避を行う。 3. 処理要求の処理を行う。 4. 実行可能状態のタスクから次に実行するタスクをサ
ーチする(スケジューリング)。 5. 実際に実行するためにコンテキストなどを復帰させ
る。 6. スケジューリングの結果のタスクに実行権を与える
(ディスパッチ)。
クを管理するための制御領域を、TCB(Task Control
Block)と呼んでいる。このTCBは、各タスクを管理
するために、タスクごとに必要となる。そして、TCB
には、以下の情報が必要となる。 タスクID タスクに割り当てられたID番号 タスクステータス タスクの状態 タスク優先度 タスク起動時のタスクの優先度 スタックポインタ タスクに割り当てられたスタックポインタ コンテキスト レジスタの内容。プログラムステータスワードなど 個別情報 また、マルチタスク処理を行うためには、タスクの状態
として、少なくとも次の4つの状態が必要となる。 実行状態(RUN) カーネルによって実行権が渡されたタスクの状態。 実行可能状態(READY) カーネルから実行権が渡されれば、実行状態になれるタ
スクの状態。 待ち状態(WAIT) タスクが何らかの条件が満足されるのを待っている状
態。実行条件が整えば実行可能状態となる。 休止状態(DORMANT) タスクが起動されていない状態、または終了後の状態。
そして、アプリケーションのタスクから処理要求があっ
たときの処理の流れは、以下のとおりである。 1. タスクから処理要求を行う。 2. リアルタイムオペレーティングシステムの該当する
処理要求の中でコンテキストなどの退避を行う。 3. 処理要求の処理を行う。 4. 実行可能状態のタスクから次に実行するタスクをサ
ーチする(スケジューリング)。 5. 実際に実行するためにコンテキストなどを復帰させ
る。 6. スケジューリングの結果のタスクに実行権を与える
(ディスパッチ)。
【0007】なお、スケジューリングを行う場合、タス
クが持っているタスク優先度を考慮してスケジューリン
グを行う必要がある。つまり、2つのタスクA、Bが実
行可能状態で、先にタスクBが実行可能になったとして
も、タスクAに高い優先度が与えられていたときには、
タスクAに実行権が与えられる。以上が、リアルタイム
オペレーティングシステムの概略である。
クが持っているタスク優先度を考慮してスケジューリン
グを行う必要がある。つまり、2つのタスクA、Bが実
行可能状態で、先にタスクBが実行可能になったとして
も、タスクAに高い優先度が与えられていたときには、
タスクAに実行権が与えられる。以上が、リアルタイム
オペレーティングシステムの概略である。
【0008】
【発明が解決しようとする課題】上述からも明らかなよ
うに、リアルタイムオペレーティングシステムにおいて
は、システムコールに対する応答時間(アプリケーショ
ンがシステムコールを発行してから次のアプリケーショ
ンに処理が戻ってくるまでの時間。ディスパッチ時間)
を短縮することが、重要である。すなわち、リアルタイ
ムオペレーティングシステムにおいては、ディスパッチ
時間を短縮することが、性能を評価する指標の1つとな
る。
うに、リアルタイムオペレーティングシステムにおいて
は、システムコールに対する応答時間(アプリケーショ
ンがシステムコールを発行してから次のアプリケーショ
ンに処理が戻ってくるまでの時間。ディスパッチ時間)
を短縮することが、重要である。すなわち、リアルタイ
ムオペレーティングシステムにおいては、ディスパッチ
時間を短縮することが、性能を評価する指標の1つとな
る。
【0009】ところで、コンピュータの中央処理装置が
動作するために必要な複数のレジスタを1つのグループ
とし、その複数のグループから構成されたものを、レジ
スタバンクと呼んでいる。
動作するために必要な複数のレジスタを1つのグループ
とし、その複数のグループから構成されたものを、レジ
スタバンクと呼んでいる。
【0010】そして、上記2.項のコンテキストの退避
は、そのコンテキストをレジスタバンクからそのタスク
のセーブエリアに転送することにより実現され、上記5.
項のコンテキストの復帰は、そのコンテキストをタスク
のセーブエリアからレジスタバンクに転送することによ
り実現される。したがって、コンテキストの退避・復帰
を行う時間は、コンテキストをレジスタバンクと各タス
クのセーブエリアとの間で転送する時間となるが、この
転送にはメモリのアクセスを伴うので、時間がかかり、
ディスパッチ時間が長くなってしまう。
は、そのコンテキストをレジスタバンクからそのタスク
のセーブエリアに転送することにより実現され、上記5.
項のコンテキストの復帰は、そのコンテキストをタスク
のセーブエリアからレジスタバンクに転送することによ
り実現される。したがって、コンテキストの退避・復帰
を行う時間は、コンテキストをレジスタバンクと各タス
クのセーブエリアとの間で転送する時間となるが、この
転送にはメモリのアクセスを伴うので、時間がかかり、
ディスパッチ時間が長くなってしまう。
【0011】そこで、中央処理装置が複数のレジスタバ
ンクを提供している場合、コンテキストをレジスタバン
クとセーブエリアとの間で転送する代わりに、レジスタ
バンクを切り換えることによりコンテキストの退避・復
帰を行うことが考えられている。すなわち、そのように
しても、あるタスクのコンテキストが次のタスクにより
破壊されることがなく、かつ、コンテキストの保護に必
要な時間を短縮できるので、結果として、ディスパッチ
時間を短縮することができる。
ンクを提供している場合、コンテキストをレジスタバン
クとセーブエリアとの間で転送する代わりに、レジスタ
バンクを切り換えることによりコンテキストの退避・復
帰を行うことが考えられている。すなわち、そのように
しても、あるタスクのコンテキストが次のタスクにより
破壊されることがなく、かつ、コンテキストの保護に必
要な時間を短縮できるので、結果として、ディスパッチ
時間を短縮することができる。
【0012】しかし、中央処理装置が提供するレジスタ
バンクの数には制限があるので、1つのタスクに1つの
レジスタバンクを割り当てた場合、並行して動作のでき
るタスクの数は、レジスタバンクの数に制限されてしま
い、空いているレジスタバンクがなければ、次のタスク
を実行できないことになる。そして、このことは、アプ
リケーションを作成する上で制限事項となってしまう。
バンクの数には制限があるので、1つのタスクに1つの
レジスタバンクを割り当てた場合、並行して動作のでき
るタスクの数は、レジスタバンクの数に制限されてしま
い、空いているレジスタバンクがなければ、次のタスク
を実行できないことになる。そして、このことは、アプ
リケーションを作成する上で制限事項となってしまう。
【0013】この発明は、このような点にかんがみ、リ
アルタイムオペレーティングシステムにおいて、ディス
パッチ時間を短縮するとともに、特にアプリケーション
の作成に制限を生じないようにしようとするものであ
る。
アルタイムオペレーティングシステムにおいて、ディス
パッチ時間を短縮するとともに、特にアプリケーション
の作成に制限を生じないようにしようとするものであ
る。
【0014】
【課題を解決するための手段】今、並行して動作のでき
るタスクの数が、レジスタバンクの数により制限され
ず、タスクにレジスタバンクの空きを待つ状態がないよ
うにできれば、アプリケーション側に制限事項がなくな
る。
るタスクの数が、レジスタバンクの数により制限され
ず、タスクにレジスタバンクの空きを待つ状態がないよ
うにできれば、アプリケーション側に制限事項がなくな
る。
【0015】そこで、この発明においては、複数のレジ
スタバンクの中から例えば1つのレジスタバンクを、複
数のタスクに対して共通のレジスタバンクとして使用す
る。つまり、そのようにすれば、レジスタバンクの数が
タスクの数より少なくても、すべてのタスクを実行させ
ることができる。
スタバンクの中から例えば1つのレジスタバンクを、複
数のタスクに対して共通のレジスタバンクとして使用す
る。つまり、そのようにすれば、レジスタバンクの数が
タスクの数より少なくても、すべてのタスクを実行させ
ることができる。
【0016】しかし、単に、レジスタバンクを共通に使
用するだけでは、制御が次のタスクに移行したとき、そ
れまで動作していたタスクのコンテキストが破壊されて
しまう。また、共通のレジスタバンクを使用しているタ
スクが終了しないと、その共通のレジスタバンクを使用
する他のタスクに、レジスタバンク待ちの状態が起きて
しまい、ディスパッチ時間を短縮できない。
用するだけでは、制御が次のタスクに移行したとき、そ
れまで動作していたタスクのコンテキストが破壊されて
しまう。また、共通のレジスタバンクを使用しているタ
スクが終了しないと、その共通のレジスタバンクを使用
する他のタスクに、レジスタバンク待ちの状態が起きて
しまい、ディスパッチ時間を短縮できない。
【0017】そこで、さらに、この発明においては、制
御が共通のレジスタバンクを使用するタスクに移行する
とき、その共通のレジスタバンクの内容をタスクに固有
のセーブエリアに退避させ、共通のレジスタバンクを開
放する。また、移行先のタスクに固有のセーブエリアか
ら、ここに退避してある内容を読み出して共通のレジス
タバンクに復帰させる。
御が共通のレジスタバンクを使用するタスクに移行する
とき、その共通のレジスタバンクの内容をタスクに固有
のセーブエリアに退避させ、共通のレジスタバンクを開
放する。また、移行先のタスクに固有のセーブエリアか
ら、ここに退避してある内容を読み出して共通のレジス
タバンクに復帰させる。
【0018】すなわち、この発明においては、各部の参
照符号などを、後述する図1の実施例に対応させると、
リアルタイムオペレーティングシステムのコンピュータ
において、中央処理装置が4つのレジスタバンク11〜
14を有し、この4つのレジスタバンク11〜14のう
ちの2つのレジスタバンク11、12を、2つのタスク
A、Bに1対1で固定的に割り当て、4つのレジスタバ
ンク11〜14のうちの残りのレジスタバンク13を、
2つのタスクC、Dに共通に割り当て、残りのレジスタ
バンク13を使用するタスクCあるいはタスクDに処理
が移行するとき、この残りのレジスタバンク13の内容
を、この内容のタスクCあるいはタスクDに対応するセ
ーブエリア2Cあるいはセーブエリア2Dに退避すると
ともに、残りのレジスタバンク13を使用するタスクに
対応するセーブエリア2Dあるいはセーブエリア2Cか
ら、ここに退避してある内容を残りのレジスタバンク1
3に復帰するようにしたものである。
照符号などを、後述する図1の実施例に対応させると、
リアルタイムオペレーティングシステムのコンピュータ
において、中央処理装置が4つのレジスタバンク11〜
14を有し、この4つのレジスタバンク11〜14のう
ちの2つのレジスタバンク11、12を、2つのタスク
A、Bに1対1で固定的に割り当て、4つのレジスタバ
ンク11〜14のうちの残りのレジスタバンク13を、
2つのタスクC、Dに共通に割り当て、残りのレジスタ
バンク13を使用するタスクCあるいはタスクDに処理
が移行するとき、この残りのレジスタバンク13の内容
を、この内容のタスクCあるいはタスクDに対応するセ
ーブエリア2Cあるいはセーブエリア2Dに退避すると
ともに、残りのレジスタバンク13を使用するタスクに
対応するセーブエリア2Dあるいはセーブエリア2Cか
ら、ここに退避してある内容を残りのレジスタバンク1
3に復帰するようにしたものである。
【0019】
【作用】共通のレジスタバンク13を使用するタスク
C、Dが、レジスタバンク11、12が1対1で割り当
てられているタスクA、Bと同じように動作する。
C、Dが、レジスタバンク11、12が1対1で割り当
てられているタスクA、Bと同じように動作する。
【0020】
【実施例】図1に示す例においては、タスクが4つの場
合であり、A、B、C、Dが、その第1〜第4のタスク
を示す。また、この例においては、これらタスクA〜D
の優先順位は、上記のタスク順であり、タスクAが最も
高い優先順位であるとする。
合であり、A、B、C、Dが、その第1〜第4のタスク
を示す。また、この例においては、これらタスクA〜D
の優先順位は、上記のタスク順であり、タスクAが最も
高い優先順位であるとする。
【0021】さらに、この例においては、中央処理装置
の提供するレジスタバンクも4つの場合であり、11、
12、13、14が、その第1〜第4のレジスタバンク
を示す。
の提供するレジスタバンクも4つの場合であり、11、
12、13、14が、その第1〜第4のレジスタバンク
を示す。
【0022】また、OSはリアルタイムオペレーティン
グシステムを示し、この例においては、4つのレジスタ
バンク11〜14のうち、レジスタバンク14が、オペ
レーティングシステムOSに固定的に割り当てられる。
グシステムを示し、この例においては、4つのレジスタ
バンク11〜14のうち、レジスタバンク14が、オペ
レーティングシステムOSに固定的に割り当てられる。
【0023】したがって、残る3つのレジスタバンク1
1〜13が、4つのタスクA〜Dに割り当てられること
になるが、この例においては、タスクA、Bは、この順
に優先順位が高いので、11がタスクAに固定的に割り
当てられ、レジスタバンク12がタスクBに固定的に割
り当てられる。そして、レジスタバンク13が、タスク
Cと、タスクDとに共通に割り当てられる。
1〜13が、4つのタスクA〜Dに割り当てられること
になるが、この例においては、タスクA、Bは、この順
に優先順位が高いので、11がタスクAに固定的に割り
当てられ、レジスタバンク12がタスクBに固定的に割
り当てられる。そして、レジスタバンク13が、タスク
Cと、タスクDとに共通に割り当てられる。
【0024】さらに、1つのレジスタバンク13が、2
つのタスクC、Dに共通に割り当てられているので、タ
スクCあるいはタスクDが実行されるとき、レジスタバ
ンク13のコンテキストを保護するための退避エリアと
して、タスクC、Dに固有のセーブエリア2C、2Dが
設けられる。
つのタスクC、Dに共通に割り当てられているので、タ
スクCあるいはタスクDが実行されるとき、レジスタバ
ンク13のコンテキストを保護するための退避エリアと
して、タスクC、Dに固有のセーブエリア2C、2Dが
設けられる。
【0025】そして、アプリケーションのタスクから処
理要求があったときの処理の流れは、上記1.〜6.項のと
おりであるが、この場合、制御が、タスクA〜Dの間
で、どのような組み合わせで移行するかにしたがって、
レジスタバンク11〜13が、次のように切り換えられ
る。 A. 制御が、あるタスクからタスクAあるいはタスクB
へ移行する場合 この場合には、レジスタバンクが、それまで使用してい
たレジスタバンクからレジスタバンク11あるいはレジ
スタバンク12に切り換えられる。
理要求があったときの処理の流れは、上記1.〜6.項のと
おりであるが、この場合、制御が、タスクA〜Dの間
で、どのような組み合わせで移行するかにしたがって、
レジスタバンク11〜13が、次のように切り換えられ
る。 A. 制御が、あるタスクからタスクAあるいはタスクB
へ移行する場合 この場合には、レジスタバンクが、それまで使用してい
たレジスタバンクからレジスタバンク11あるいはレジ
スタバンク12に切り換えられる。
【0026】そして、このとき、レジスタバンク11、
12は、タスクA、Bに1対1で固定的に割り当てられ
ているので、上記のようなレジスタバンクの切り換えを
行ってもタスクA、Bの各コンテキストは保護される。
12は、タスクA、Bに1対1で固定的に割り当てられ
ているので、上記のようなレジスタバンクの切り換えを
行ってもタスクA、Bの各コンテキストは保護される。
【0027】したがって、制御は、あるタスクからタス
クAあるいはタスクBへ移行するとともに、このとき、
タスクAあるいはタスクBへの移行は、高速に実行され
ることになる。 B. 制御が、タスクAあるいはタスクBからタスクCに
移行する場合 この場合には、さらに、次のB-1項及びB-2項の場合があ
る。 B-1.タスクAあるいはタスクBの前にタスクCが実行さ
れていた場合 この場合には、レジスタバンクが、それまで使用してい
たレジスタバンク11あるいはレジスタバンク12から
レジスタバンク13に切り換えられる。
クAあるいはタスクBへ移行するとともに、このとき、
タスクAあるいはタスクBへの移行は、高速に実行され
ることになる。 B. 制御が、タスクAあるいはタスクBからタスクCに
移行する場合 この場合には、さらに、次のB-1項及びB-2項の場合があ
る。 B-1.タスクAあるいはタスクBの前にタスクCが実行さ
れていた場合 この場合には、レジスタバンクが、それまで使用してい
たレジスタバンク11あるいはレジスタバンク12から
レジスタバンク13に切り換えられる。
【0028】そして、レジスタバンク13は、タスク
C、Dに共通に割り当てられているが、今の場合、レジ
スタバンク13が、最後に使用されたとき、タスクCに
より使用されている。したがって、レジスタバンク13
には、タスクCのコンテキストが残っている。
C、Dに共通に割り当てられているが、今の場合、レジ
スタバンク13が、最後に使用されたとき、タスクCに
より使用されている。したがって、レジスタバンク13
には、タスクCのコンテキストが残っている。
【0029】したがって、レジスタバンクを、それまで
使用していたレジスタバンク11あるいはレジスタバン
ク12からレジスタバンク13に切り換えることによ
り、タスクCに移行することができる。また、タスク
A、B、Dの各コンテキストも保護される。 B-2.タスクAあるいはタスクBの前にタスクDが実行さ
れていた場合 レジスタバンク13は、タスクC、Dに共通に割り当て
られているとともに、今の場合、レジスタバンク13
が、最後に使用されたとき、タスクDにより使用されて
いる。したがって、レジスタバンク13には、タスクD
のコンテキストが残っている。
使用していたレジスタバンク11あるいはレジスタバン
ク12からレジスタバンク13に切り換えることによ
り、タスクCに移行することができる。また、タスク
A、B、Dの各コンテキストも保護される。 B-2.タスクAあるいはタスクBの前にタスクDが実行さ
れていた場合 レジスタバンク13は、タスクC、Dに共通に割り当て
られているとともに、今の場合、レジスタバンク13
が、最後に使用されたとき、タスクDにより使用されて
いる。したがって、レジスタバンク13には、タスクD
のコンテキストが残っている。
【0030】そこで、この場合には、レジスタバンク1
3のコンテキストが、タスクDのセーブエリア2Dに転
送されて退避され、次に、タスクCのセーブエリア2C
から、ここに退避されているタスクCのコンテキストが
読み出され、これがレジスタバンク13に転送されて復
帰される。
3のコンテキストが、タスクDのセーブエリア2Dに転
送されて退避され、次に、タスクCのセーブエリア2C
から、ここに退避されているタスクCのコンテキストが
読み出され、これがレジスタバンク13に転送されて復
帰される。
【0031】そして、その後、レジスタバンクが、それ
まで使用していたレジスタバンク11あるいはレジスタ
バンク12からレジスタバンク13に切り換えられる。
まで使用していたレジスタバンク11あるいはレジスタ
バンク12からレジスタバンク13に切り換えられる。
【0032】したがって、制御はタスクCに移行するこ
とができる。さらに、タスクA、B、Dの各コンテキス
トも保護される。 C. 制御が、タスクAあるいはタスクBからタスクDに
移行する場合 この場合は、B.項において、タスクC及びセーブエリア
2Cと、タスクD及びセーブエリア2Dとが入れ換わる
だけで、B.項と同様である。すなわち、やはり、次のC-
1項及びC-2項の場合がある。 C-1.タスクAあるいはタスクBの前にタスクDが実行さ
れていた場合 この場合には、レジスタバンクが、それまで使用してい
たレジスタバンク11あるいはレジスタバンク12から
レジスタバンク13に切り換えられる。
とができる。さらに、タスクA、B、Dの各コンテキス
トも保護される。 C. 制御が、タスクAあるいはタスクBからタスクDに
移行する場合 この場合は、B.項において、タスクC及びセーブエリア
2Cと、タスクD及びセーブエリア2Dとが入れ換わる
だけで、B.項と同様である。すなわち、やはり、次のC-
1項及びC-2項の場合がある。 C-1.タスクAあるいはタスクBの前にタスクDが実行さ
れていた場合 この場合には、レジスタバンクが、それまで使用してい
たレジスタバンク11あるいはレジスタバンク12から
レジスタバンク13に切り換えられる。
【0033】そして、今の場合、レジスタバンク13
が、最後に使用されたとき、タスクDにより使用されて
いるので、レジスタバンク13には、タスクDのコンテ
キストが残っている。
が、最後に使用されたとき、タスクDにより使用されて
いるので、レジスタバンク13には、タスクDのコンテ
キストが残っている。
【0034】したがって、レジスタバンクを、それまで
使用していたレジスタバンク11あるいはレジスタバン
ク12からレジスタバンク13に切り換えることによ
り、タスクDに移行することができる。また、タスク
A、B、Cの各コンテキストも保護される。 C-2.タスクAあるいはタスクBの前にタスクCが実行さ
れていた場合 レジスタバンク13は、タスクC、Dに共通に割り当て
られているとともに、今の場合、レジスタバンク13
が、最後に使用されたとき、タスクCにより使用されて
いる。したがって、レジスタバンク13には、タスクC
のコンテキストが残っている。
使用していたレジスタバンク11あるいはレジスタバン
ク12からレジスタバンク13に切り換えることによ
り、タスクDに移行することができる。また、タスク
A、B、Cの各コンテキストも保護される。 C-2.タスクAあるいはタスクBの前にタスクCが実行さ
れていた場合 レジスタバンク13は、タスクC、Dに共通に割り当て
られているとともに、今の場合、レジスタバンク13
が、最後に使用されたとき、タスクCにより使用されて
いる。したがって、レジスタバンク13には、タスクC
のコンテキストが残っている。
【0035】そこで、この場合には、レジスタバンク1
3のコンテキストが、タスクCのセーブエリア2Cに転
送されて退避され、次に、タスクDのセーブエリア2D
から、ここに退避されているタスクDのコンテキストが
読み出され、これがレジスタバンク13に転送されて復
帰される。
3のコンテキストが、タスクCのセーブエリア2Cに転
送されて退避され、次に、タスクDのセーブエリア2D
から、ここに退避されているタスクDのコンテキストが
読み出され、これがレジスタバンク13に転送されて復
帰される。
【0036】そして、その後、レジスタバンクが、それ
まで使用していたレジスタバンク11あるいはレジスタ
バンク12からレジスタバンク13に切り換えられる。
まで使用していたレジスタバンク11あるいはレジスタ
バンク12からレジスタバンク13に切り換えられる。
【0037】したがって、制御はタスクDに移行するこ
とができる。さらに、タスクA、B、Cの各コンテキス
トも保護される。 D. 制御が、タスクCからタスクDに移行する場合 今の場合、レジスタバンク13が、最後に使用されたと
き、タスクCにより使用されているので、レジスタバン
ク13には、タスクCのコンテキストが残っている。
とができる。さらに、タスクA、B、Cの各コンテキス
トも保護される。 D. 制御が、タスクCからタスクDに移行する場合 今の場合、レジスタバンク13が、最後に使用されたと
き、タスクCにより使用されているので、レジスタバン
ク13には、タスクCのコンテキストが残っている。
【0038】そこで、この場合には、レジスタバンク1
3のコンテキストが、タスクCのセーブエリア2Cに転
送されて退避され、次に、タスクDのセーブエリア2D
から、ここに退避されているタスクDのコンテキストが
読み出され、これがレジスタバンク13に転送されて復
帰される。
3のコンテキストが、タスクCのセーブエリア2Cに転
送されて退避され、次に、タスクDのセーブエリア2D
から、ここに退避されているタスクDのコンテキストが
読み出され、これがレジスタバンク13に転送されて復
帰される。
【0039】したがって、制御はタスクDに移行するこ
とができる。さらに、タスクA、B、Cの各コンテキス
トも保護される。 E. 制御が、タスクDからタスクCに移行する場合 この場合は、D.項において、タスクC及びセーブエリア
2Cと、タスクD及びセーブエリア2Dとが入れ換わる
だけで、D.項と同様である。 すなわち、今の場合、レ
ジスタバンク13が、最後に使用されたとき、タスクD
により使用されているので、レジスタバンク13には、
タスクDのコンテキストが残っている。
とができる。さらに、タスクA、B、Cの各コンテキス
トも保護される。 E. 制御が、タスクDからタスクCに移行する場合 この場合は、D.項において、タスクC及びセーブエリア
2Cと、タスクD及びセーブエリア2Dとが入れ換わる
だけで、D.項と同様である。 すなわち、今の場合、レ
ジスタバンク13が、最後に使用されたとき、タスクD
により使用されているので、レジスタバンク13には、
タスクDのコンテキストが残っている。
【0040】そこで、この場合には、レジスタバンク1
3のコンテキストが、タスクDのセーブエリア2Dに転
送されて退避され、次に、タスクCのセーブエリア2C
から、ここに退避されているタスクCのコンテキストが
読み出され、これがレジスタバンク13に転送されて復
帰される。
3のコンテキストが、タスクDのセーブエリア2Dに転
送されて退避され、次に、タスクCのセーブエリア2C
から、ここに退避されているタスクCのコンテキストが
読み出され、これがレジスタバンク13に転送されて復
帰される。
【0041】したがって、制御はタスクCに移行するこ
とができる。さらに、タスクA、B、Dの各コンテキス
トも保護される。
とができる。さらに、タスクA、B、Dの各コンテキス
トも保護される。
【0042】図1の例においては、以上のようにしてリ
アルタイムオペレーティングシステムにおいて、マルチ
タスク処理が実現される。
アルタイムオペレーティングシステムにおいて、マルチ
タスク処理が実現される。
【0043】図2に示す例においては、タスクが、タス
クA〜Eの5つであり、中央処理装置の提供するレジス
タバンクが、レジスタバンク11〜14の4つの場合で
ある。なお、タスクA〜Eの優先順位は、上記のタスク
順であり、タスクAが最も高いものとする。
クA〜Eの5つであり、中央処理装置の提供するレジス
タバンクが、レジスタバンク11〜14の4つの場合で
ある。なお、タスクA〜Eの優先順位は、上記のタスク
順であり、タスクAが最も高いものとする。
【0044】そして、この例においても、4つのレジス
タバンク11〜14のうち、レジスタバンク14が、オ
ペレーティングシステムOSに固定的に割り当てられ
る。また、11がタスクAに固定的に割り当てられ、レ
ジスタバンク12がタスクBに固定的に割り当てられ
る。そして、レジスタバンク13が、タスクCと、タス
クDと、タスクEとに共通に割り当てられる。
タバンク11〜14のうち、レジスタバンク14が、オ
ペレーティングシステムOSに固定的に割り当てられ
る。また、11がタスクAに固定的に割り当てられ、レ
ジスタバンク12がタスクBに固定的に割り当てられ
る。そして、レジスタバンク13が、タスクCと、タス
クDと、タスクEとに共通に割り当てられる。
【0045】さらに、レジスタバンク13が、タスクC
〜Eに共通に割り当てられているので、タスクC、Dあ
るいはタスクEが実行されるとき、レジスタバンク13
のコンテキストを保護するための退避エリアとして、タ
スクC、D、Eに固有のセーブエリア2C、2D、2E
が設けられる。
〜Eに共通に割り当てられているので、タスクC、Dあ
るいはタスクEが実行されるとき、レジスタバンク13
のコンテキストを保護するための退避エリアとして、タ
スクC、D、Eに固有のセーブエリア2C、2D、2E
が設けられる。
【0046】そして、アプリケーションのタスクから処
理要求があったとき、図1の例と同様に制御が実行され
る。
理要求があったとき、図1の例と同様に制御が実行され
る。
【0047】すなわち、制御が、あるタスクからタスク
AあるいはタスクBに移行する場合には、上記A.項のよ
うに、レジスタバンク11あるいはレジスタバンク12
に切り換えられる。
AあるいはタスクBに移行する場合には、上記A.項のよ
うに、レジスタバンク11あるいはレジスタバンク12
に切り換えられる。
【0048】また、制御が、タスクAあるいはタスクB
からタスクC〜Eのどれかに移行する場合には、上記B-
1項あるいはC-1項のように、レジスタバンク13のコン
テキストが変化しないときには、レジスタバンク13に
切り換えられる。
からタスクC〜Eのどれかに移行する場合には、上記B-
1項あるいはC-1項のように、レジスタバンク13のコン
テキストが変化しないときには、レジスタバンク13に
切り換えられる。
【0049】しかし、上記B-2項あるいはC-2項のよう
に、レジスタバンク13のコンテキストが変化するとき
には、レジスタバンク13のコンテキストが、セーブエ
リア2C〜2Eのうちの対応するセーブエリアに退避さ
れるとともに、処理要求のあったタスクに対応するセー
ブエリアに退避してあるコンテキストがレジスタバンク
13に復帰され、その後、レジスタバンクが、レジスタ
バンク13に切り換えられる。
に、レジスタバンク13のコンテキストが変化するとき
には、レジスタバンク13のコンテキストが、セーブエ
リア2C〜2Eのうちの対応するセーブエリアに退避さ
れるとともに、処理要求のあったタスクに対応するセー
ブエリアに退避してあるコンテキストがレジスタバンク
13に復帰され、その後、レジスタバンクが、レジスタ
バンク13に切り換えられる。
【0050】さらに、制御が、タスクC〜Eの間で移行
する場合には、上記D.項あるいはE.項のように、レジス
タバンク13のコンテキストが、セーブエリア2C〜2
Eのうちの対応するセーブエリアに退避されるととも
に、処理要求のあったタスクに対応するセーブエリアに
退避してあるコンテキストがレジスタバンク13に復帰
される。
する場合には、上記D.項あるいはE.項のように、レジス
タバンク13のコンテキストが、セーブエリア2C〜2
Eのうちの対応するセーブエリアに退避されるととも
に、処理要求のあったタスクに対応するセーブエリアに
退避してあるコンテキストがレジスタバンク13に復帰
される。
【0051】したがって、この例においては、4つのレ
ジスタバンク11〜14により5つのタスクA〜Dを実
行することができ、マルチタスク処理が実現される。
ジスタバンク11〜14により5つのタスクA〜Dを実
行することができ、マルチタスク処理が実現される。
【0052】なお、上述においては、1つのレジスタバ
ンクを2つ以上のタスクに共通に割り当てたが、i個
(i≧2)のレジスタバンクのそれぞれを2つ以上のタ
スクに共通に割り当てることもできる。
ンクを2つ以上のタスクに共通に割り当てたが、i個
(i≧2)のレジスタバンクのそれぞれを2つ以上のタ
スクに共通に割り当てることもできる。
【0053】
【発明の効果】この発明によれば、レジスタバンクの切
り換えにより各タスクのコンテキストを保護するように
しているので、ディスパッチ時間を短縮することができ
る。
り換えにより各タスクのコンテキストを保護するように
しているので、ディスパッチ時間を短縮することができ
る。
【0054】しかも、その場合、特にこの発明によれ
ば、m個(m≧1)のレジスタバンクをm個のタスクに
1対1で固定的に割り当て、他のレジスタバンクをn個
(n≧2)のタスクに共通に割り当てるとともに、この
共通のレジスタバンクを使用するタスクに処理が移行す
るとき、そのコンテキストを、対応するセーブエリアに
対して退避・復帰するようにしている。
ば、m個(m≧1)のレジスタバンクをm個のタスクに
1対1で固定的に割り当て、他のレジスタバンクをn個
(n≧2)のタスクに共通に割り当てるとともに、この
共通のレジスタバンクを使用するタスクに処理が移行す
るとき、そのコンテキストを、対応するセーブエリアに
対して退避・復帰するようにしている。
【0055】したがって、レジスタバンクの数が制限さ
れていても、並行して動作のできるタスクの数に制限を
受けることがない。さらに、レジスタバンクが空いてい
るかどうかを考慮する必要がなく、アプリケーションの
作成に制限を与えることがない。
れていても、並行して動作のできるタスクの数に制限を
受けることがない。さらに、レジスタバンクが空いてい
るかどうかを考慮する必要がなく、アプリケーションの
作成に制限を与えることがない。
【図1】この発明の一例を示す図である。
【図2】この発明の他の例を示す図である。
11〜14 レジスタバンク 2C〜2E セーブエリア A〜E タスク OS リアルタイムオペレーティングシステム
Claims (3)
- 【請求項1】 リアルタイムオペレーティングシステム
のコンピュータにおいて、 中央処理装置がp個(p≧m+1。m≧1)のレジスタ
バンクを有し、 このp個のレジスタバンクのうちのm個のレジスタバン
クを、m個のタスクに1対1で固定的に割り当て、 上記p個のレジスタバンクのうちの残りのレジスタバン
クを、n個(n≧2)のタスクに共通に割り当て、 上記残りのレジスタバンクを使用するタスクに処理が移
行するとき、この残りのレジスタバンクの内容を、この
内容のタスクに対応するセーブエリアに退避するととも
に、 上記残りのレジスタバンクを使用するタスクに対応する
セーブエリアから、ここに退避してある内容を上記残り
のレジスタバンクに復帰するようにしたマルチタスク処
理の処理装置。 - 【請求項2】 請求項1に記載のマルチタスク処理の処
理装置において、 上記残りのレジスタバンクを使用するタスクに処理が移
行するとき、上記残りのレジスタバンクを前回使用した
タスクと、上記残りのレジスタバンクを今回使用するタ
スクとが異なるときのみ、上記内容の退避及び復帰を実
行するようにしたマルチタスク処理の処理装置。 - 【請求項3】 請求項1あるいは請求項2に記載のマル
チタスク処理の処理装置において、 p=m+1となるようにしたマルチタスク処理の処理装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6019894A JPH07210400A (ja) | 1994-01-20 | 1994-01-20 | マルチタスク処理の処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6019894A JPH07210400A (ja) | 1994-01-20 | 1994-01-20 | マルチタスク処理の処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07210400A true JPH07210400A (ja) | 1995-08-11 |
Family
ID=12011909
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6019894A Pending JPH07210400A (ja) | 1994-01-20 | 1994-01-20 | マルチタスク処理の処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07210400A (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003512671A (ja) * | 1999-10-20 | 2003-04-02 | ソニー エレクトロニクス インク | 並列コンテキスト切換を用いてアイソクロノス処理をサポートする方法 |
| US7386707B2 (en) | 2002-01-09 | 2008-06-10 | Matsushita Electric Industrial Co., Ltd. | Processor and program execution method capable of efficient program execution |
| JP2010118023A (ja) * | 2008-11-14 | 2010-05-27 | Fujitsu Microelectronics Ltd | メモリアクセス制御回路及び画像処理装置 |
| US7735087B2 (en) | 2003-03-13 | 2010-06-08 | Panasonic Corporation | Task switching apparatus, method and program |
| JP2010284277A (ja) * | 2009-06-10 | 2010-12-24 | Daito Giken:Kk | 遊技台 |
| JP2019197545A (ja) * | 2018-05-08 | 2019-11-14 | ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh | オペレーティングシステムでタスクを起動するための方法及び装置 |
-
1994
- 1994-01-20 JP JP6019894A patent/JPH07210400A/ja active Pending
Cited By (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003512671A (ja) * | 1999-10-20 | 2003-04-02 | ソニー エレクトロニクス インク | 並列コンテキスト切換を用いてアイソクロノス処理をサポートする方法 |
| US8006076B2 (en) | 2002-01-09 | 2011-08-23 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
| US7386707B2 (en) | 2002-01-09 | 2008-06-10 | Matsushita Electric Industrial Co., Ltd. | Processor and program execution method capable of efficient program execution |
| US9823946B2 (en) | 2002-01-09 | 2017-11-21 | Socionext Inc. | Processor and program execution method capable of efficient program execution |
| US8719827B2 (en) | 2002-01-09 | 2014-05-06 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
| US7921281B2 (en) | 2002-01-09 | 2011-04-05 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
| US7930520B2 (en) | 2002-01-09 | 2011-04-19 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
| US7735087B2 (en) | 2003-03-13 | 2010-06-08 | Panasonic Corporation | Task switching apparatus, method and program |
| US7950016B2 (en) | 2003-03-13 | 2011-05-24 | Panasonic Corporation | Apparatus for switching the task to be completed in a processor by switching to the task assigned time slot |
| US8276156B2 (en) | 2003-03-13 | 2012-09-25 | Panasonic Corporation | Task switching based on assigned time slot |
| JP2010118023A (ja) * | 2008-11-14 | 2010-05-27 | Fujitsu Microelectronics Ltd | メモリアクセス制御回路及び画像処理装置 |
| JP2010284277A (ja) * | 2009-06-10 | 2010-12-24 | Daito Giken:Kk | 遊技台 |
| JP2019197545A (ja) * | 2018-05-08 | 2019-11-14 | ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh | オペレーティングシステムでタスクを起動するための方法及び装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4387427A (en) | Hardware scheduler/dispatcher for data processing system | |
| EP0087978B1 (en) | Information processing unit | |
| US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
| US5872963A (en) | Resumption of preempted non-privileged threads with no kernel intervention | |
| US5452452A (en) | System having integrated dispatcher for self scheduling processors to execute multiple types of processes | |
| US5485626A (en) | Architectural enhancements for parallel computer systems utilizing encapsulation of queuing allowing small grain processing | |
| CN101702134B (zh) | 无操作系统干预情况下调度os隔离定序器上的线程的机制 | |
| US6418460B1 (en) | System and method for finding preempted threads in a multi-threaded application | |
| US5469571A (en) | Operating system architecture using multiple priority light weight kernel task based interrupt handling | |
| US4914570A (en) | Process distribution and sharing system for multiple processor computer system | |
| EP0059810B1 (en) | Microprogrammed digital data processing system employing multiphase subroutine control for concurrently executing tasks | |
| US5010482A (en) | Multi-event mechanism for queuing happened events for a large data processing system | |
| US8079035B2 (en) | Data structure and management techniques for local user-level thread data | |
| JP2005284749A (ja) | 並列処理コンピュータ | |
| US5438680A (en) | Method and apparatus for enhancing concurrency in a parallel digital computer | |
| US7412590B2 (en) | Information processing apparatus and context switching method | |
| WO2005048009A2 (en) | Method and system for multithreaded processing using errands | |
| US4851992A (en) | Register/saving/restoring system for saving and restoring data in a register of a slave processor | |
| US20040107337A1 (en) | Data processor | |
| JPH07210400A (ja) | マルチタスク処理の処理装置 | |
| US20080134187A1 (en) | Hardware scheduled smp architectures | |
| EP0052713B1 (en) | A process management system for scheduling work requests in a data processing system | |
| JP3644042B2 (ja) | マルチタスク処理装置 | |
| WO2007076190A2 (en) | Efficient task scheduling by assigning fixed registers to scheduler | |
| US20210208928A1 (en) | Interrupt servicing in userspace |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040218 |