JP3644042B2 - マルチタスク処理装置 - Google Patents
マルチタスク処理装置 Download PDFInfo
- Publication number
- JP3644042B2 JP3644042B2 JP30864093A JP30864093A JP3644042B2 JP 3644042 B2 JP3644042 B2 JP 3644042B2 JP 30864093 A JP30864093 A JP 30864093A JP 30864093 A JP30864093 A JP 30864093A JP 3644042 B2 JP3644042 B2 JP 3644042B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- register
- tasks
- bank
- 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.)
- Expired - Fee Related
Links
- 230000006870 function Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Description
【産業上の利用分野】
この発明は、リアルタイムオペレーティングシステムを用いたマルチタスク処理装置に関する。
【0002】
【従来の技術】
リアルタイムオペレーティングシステムは、例えば組み込み機器用のオペレーティングシステムとして用いられる。リアルタイムオペレーティングシステムは、一定時間以内での応答を保証するようなオペレーティングシステムであり、複数のタスクを並列的に実行させるためのマルチタスク機能が不可欠である。
【0003】
リアルタイムオペレーティングシステムは、タスク管理機能、タスク付属同期機能、同期・通信機能、メモリプール管理機能、割り込み管理機能、時間管理機能、システム管理機能を有している。
【0004】
タスク管理機能は、タスクの状態を直接操作したり、参照したりする機能である。タスク付属同期機能は、タスクをサスペンド状態にして一時的に実行を停止する機能とそれを解除する機能等を含むタスクに予め付加されている同期機能である。同期・通信機能は、セマフォ、イベントフラグ、メールボックスを用いたタスクとは独立した同期機能及び通信機能である。メモリプール管理機能は、カーネルによってメモリブロックの割当及びメモリプールの管理を行う機能である。割り込み管理機能は、外部割り込みの禁止/許可及び外部割り込みに対するハンドラの定義を行う機能である。時間管理機能は、システムクロックの設定や参照する機能、タスクを遅延させる機能及び指定した時刻に起動されるハンドラの定義を行う機能である。システム管理機能は、カーネルのバージョンを参照する機能である。
【0005】
オペレーティングシステムがタスクを管理するための制御領域は、TCB(Task Control Block)と呼ばれている。TCBは、各タスクを管理するために、タスク毎に必要になる。TCBには、タスクに割当られたID番号であるタスクID、タスクの状態を示すタスクステータス、タスク起動時のタスクの優先度を示すタスク優先度、タスクに割り当てられたスタックポインタを示すスタックポインタ、レジスタ、プログラムステータスワードを示すコンテキスト、個別情報等が格納される。
【0006】
マルチタスク処理を行うためのタスクの状態としては、実行状態(RUN)、実行可能状態(READY)、待ち状態(WAIT)、休止状態(DORMANT)の4状態がある。実行状態は、カーネルによって実行権が渡されたタスクの状態である。待ち状態は、カーネルから実行権が渡されれば実行状態になれるタスクの状態である。待ち状態は、タスクが何らかの条件が満たされるのを待っている状態であり、実行条件が整えば実行可能となる。休止状態は、タスクが起動されていない状態又は終了後の状態である。
【0007】
従来のリアルタイムオペレーティングシステムでは、アプリケーションのタスクから処理要求があると、タスクから処理要求を行い、リアルタイムオペレーティングシステムの該当する処理要求の中でコテキスト等の退避を行い、処理要求の処理を行い、実行可能状態のタスクから次に実行するタスクをサーチし(スケジューリング)、実際に実行するためにコンテキスト等を復帰させ実行権を与える(ディスパッチ)ような処理が行われる。スケジューリングを行う場合には、タスクが持っているタスク優先度が考慮される。つまり、2つのタスクA、Bが実行可能状態で、先にタスクBの方が実行可能状態になったとしても、タスクAの方が高い優先度が与えられていたなら、タスクAに実行権が与えられる。
【0008】
【発明が解決しようとする課題】
リアルタイムオペレーティングシステムでは、システムコールに対する応答時間を短縮することが重要である。システムコールに対する応答時間は、アプリケーションからシステムコールを発行して、次のアプリケーションに制御が戻ってくる時間であり、これはディスパッチ時間と呼ばれる。つまり、数々の事象に対して最適なのは実時間に応答することであるが、システムコールには、オーバーヘッドすなわちディスパッチ時間がある。したがって、この時間が如何に短縮されているかにより、リアルタイムオペレーティングシステムの性能を評価することができる。
【0009】
そこで、各タスクに対応してレジスタバンクを用意することで、ディスパッチ時間を短縮することが考えられる。すなわち、従来では、システムコールが発行されると、コンテキストの退避/復帰の処理が行われる。このため、ディスパッチ時間が長くかかる。これに対して、各レジスタバンクを各タスクに対応して用意しておけば、コンテキスト等の退避/復帰がレジスタバンクを切り替えることにより行なえる。
【0010】
しかしながら、レジスタバンクの数は有限である。このため、各タスクを各レジスタバンクに1対1に対応させると、並行して動作するタスクの数は、レジスタバンクの数に制限され、レジスタバンクの空きがなければ、処理を実行することができないことになる。このことは、アプリケーションを作成する上で制限事項となる。
【0011】
したがって、この発明の目的は、並行して実行できるタスクの数が制限されず、ディスパッチ時間を短縮できるマルチタスク処理装置を提供することにある。
【0012】
【課題を解決するための手段】
この発明は、複数のタスクが並列的に実行されるマルチタスク処理を行うマルチタスク処理装置において、各タスクに対応して占有される複数のレジスタバンクと、複数のレジスタバンクのうちで空きレジスタバンクがない場合に、タスクが待機するための空き待ち行列手段と、複数のレジスタバンクを管理する管理手段とを有し、管理手段は、タスクが実行された際に、空きレジスタバンクがある場合は、空きレジスタバンクの何れかに実行されたタスクを動的に割り当て、レジスタバンクを占有しているタスクの処理が終了した際に、タスクが占有していたレジスタバンクを解放し、解放したレジスタバンクに空き待ち行列手段に待機しているタスクを割り当てるようにしたマルチタスク処理装置である。
【0013】
この発明では、更に、バンクの空き待ち行列手段を有し、各レジスタバンクは、そのレジスタバンクのタスクの処理が終了した時点でそのタスクを解放し、タスクを解放したバンクに空き待ち行列手段に待機されているタスクを割り当てるようにしている。
【0014】
【作用】
複数のタスクに対応してレジスタバンクが用意される。このため、コンテキスト等の退避/復帰がレジスタバンクを切り替えることにより行なえる。そして、複数あるレジスタバンクが個々にオペレーティングシステムにより管理され、起動時に空いているレジスタバンクにタスクが動的に割り当てられ、タスクが終了されると、占有されていたレジスタバンクが解放される。オペレーティングシステムが管理しているレジスタバンクに空きが無ければ、起動したタスクはレジスタバンクの空き待ちの状態となり、タスクが占有しているレジスタバンクを解放するまで、待機される。このため、実行されるタスクの数がレジスタバンクの数に制限されなくなる。
【0015】
【実施例】
以下、この発明の一実施例について図面を参照して説明する。図1は、この発明を実現するためのハードウェアの構成を示すものである。図1に示すように、この発明が適用された中央処理装置1は、CPUコア部2と、ROM3と、RAM4と、レジスタバンク5−1〜5−nと、割り込みコントローラ6と、I/Oポート7とを含んでいる。レジスタバンク5−1〜5−nは、例えばバンク数が15(n=15)であり、これらのレジスタバンクは各タスクに占有される。このレジスタバンク5−1〜5−nを利用することで、ディスパッチ時間が短縮できる。
【0016】
すなわち、従来では、システムコールが発行されると、コンテキストの退避/復帰の処理が行われる。このため、ディスパッチ時間が長くかかる。これに対して、各レジスタバンク5−1〜5−nを各タスクに対応して用意しておけば、コンテキスト等の退避/復帰がレジスタバンク5−1〜5−nを切り替えることにより行なえる。
【0017】
しかしながら、レジスタバンク5−1〜5−nの数は有限(例えば15)である。このため、各タスクを各レジスタバンク5−1〜5−nに1対1に対応させると、並行して動作するタスクの数は、レジスタバンク5−1〜5−nの数に制限され、レジスタバンク5−1〜5−nの空きがなければ、処理を実行することができないことになる。
【0018】
そこで、このようなレジスタバンク5−1〜5−nの数によるタスクの数の制限を無くすために、複数あるレジスタバンク5−1〜5−nが個々にオペレーティングシステムにより管理され、起動時に空いているレジスタバンク5−1〜5−nにタスクが動的に割り当てられる。割り当てられたレジスタバンク5−1〜5−nがそのタスク用の資源として占有される。タスクが終了されると、占有されていたレジスタバンク5−1〜5−nが解放される。オペレーティングシステムが管理しているレジスタバンク5−1〜5−nに空きが無ければ、起動したタスクはレジスタバンクの空き待ちの状態となり、タスクが占有しているレジスタバンク5−1〜5−nを解放するまで、待機される。
【0019】
以下、具体例について説明する。図2において、B1〜B4は、レジスタバンクである。これらのレジスタバンクB1〜B4は、図1におけるレジスタバンク5−1〜5−nに対応している。レジスタバンク5−1〜5−nのバンク数は例えば15であるが、ここでは説明を簡単とするため、バンク数を4としている。これらレジスタバンクB1〜B4のうち、レジスタバンクB1〜B3は実行される各タスクに割り当てられ、レジスタバンクB4はオペレーティングシステムOS用に割り当てられる。T1〜T4はタスクであり、これらのタスクT1〜T4は、同じ優先度のものである。Q1は、実行されるタスクが待機される実行可能タスク行列である。Q2は、レジスタバンク待ちのタスクが待機されるバンク空き待ち行列である。
【0020】
4つのタスクT1〜T4は、先ず、実行可能タスク行列Q1に待機される。これらのタスクのうち、先ず、タスクT1、T2の順に起動されるとすると、タスクT1にはレジスタバンクB1が資源として割り当てられ、タスクT2にはレジスタバンクB2が資源として割り当てられる。各レジスタバンクB1、B2は、処理が終了するまで、これらの各タスクT1、T2に占有される。
【0021】
次に、タスクT3、T4が起動されるとする。この時、レジスタバンクB3は空いている。このため、タスクT3にレジスタバンクB3が資源として割り当てられる。これで、全てのレジスタバンクB1〜B4が使われたことになり、タスクT4に割り当てるべきレジスタバンクがなくなる。そこで、タスクT4は、バンク空き待ち行列Q2に待機される。
【0022】
その後、レジスタバンクB1〜B3に割り当てられたいずれかのタスクの処理が終了して休止状態になったとすると、オペレーティングシステムOSは、バンク待ち行列Q2に待機されていたタスクT4を、処理の終了したタスクのレジスタバンクに割り当てる。
【0023】
図3及び図4は、第2の例である。この例では、5つのタスクT11、T12、T13、T14、T15が実行可能タスク行列Q1に待機される。図3に示すように、これらのタスクのうち、タスクT13、T14、T15の順に起動されるとすると、タスクT13にはレジスタバンクB1が資源として割り当てられ、タスクT14にはレジスタバンクB2が資源として割り当てられ、タスクT15にはレジスタバンクB3が資源として割り当てられる。各レジスタバンクB1〜B3は、処理が終了するまで、これらの各タスクT13、T14、T15に占有される。
【0024】
次に、タスクT11、T12が起動されるとする。この時、レジスタバンクB1、B2、B3は、タスクT13、T14、T15に占有されているため、タスクT11、T12に割り当てるべきレジスタバンクがない。このため、タスクT11、T12は、バンク空き待ち行列Q2に待機される。
【0025】
その後、タスクT4が処理を終了して休止状態になったとすると、図4で破線で示すように、オペレーティングシステムOSは、タスクT14に占有されていたレジスタバンクB2を解放し、バンク待ち行列Q2で待機されていたタスク(この場合にはタスクT11)にこのレジスタバンクB2を割り当てる。更にその後、レジスタバンクB1〜B3に割り当てられたいずれかのタスクの処理が終了して休止状態となったときに、オペレーティングシステムOSは、バンク待ち行列Q2に待機されていたタスクT12を、処理の終了したタスクのレジスタバンクに割り当てる。
【0026】
【発明の効果】
この発明によれば、複数のタスクに対応してレジスタバンクが用意される。このため、コンテキスト等の退避/復帰がレジスタバンクの切り替えることにより行なえ、ディスパッチ時間が短縮できる。そして、複数あるレジスタバンクが個々にオペレーティングシステムにより管理され、起動時に空いているレジスタバンクにタスクが動的に割り当てられ、タスクが終了されると、占有されていたレジスタバンクが解放される。オペレーティングシステムが管理しているレジスタバンクに空きが無ければ、起動したタスクはレジスタバンクの空き待ちの状態となり、タスクが占有しているレジスタバンクを解放するまで、他のタスクが待機される。このため、実行されるタスクの数がレジスタバンクの数に制限されなくなる。
【図面の簡単な説明】
【図1】この発明が適用できる中央処理装置の一例のブロック図である。
【図2】この発明の一実施例の動作説明図である。
【図3】この発明の一実施例の動作説明図である。
【図4】この発明の一実施例の動作説明図である。
【符号の説明】
5−1〜5−n,B1〜B4 レジスタバンク
T1〜T4,T1〜T15 タスク
OS オペレーティングシステム
Q1 実行可能タスク行列
Q2 バンク空き待ち行列
Claims (1)
- 複数のタスクが並列的に実行されるマルチタスク処理を行うマルチタスク処理装置において、
各タスクに対応して占有される複数のレジスタバンクと、
上記複数のレジスタバンクのうちで空きレジスタバンクがない場合に、タスクが待機するための空き待ち行列手段と、
上記複数のレジスタバンクを管理する管理手段と
を有し、
上記管理手段は、タスクが実行された際に、上記空きレジスタバンクがある場合は、該空きレジスタバンクの何れかに実行された該タスクを動的に割り当て、
上記レジスタバンクを占有しているタスクの処理が終了した際に、該タスクが占有していた上記レジスタバンクを解放し、解放した該レジスタバンクに上記空き待ち行列手段に待機しているタスクを割り当てるようにしたマルチタスク処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30864093A JP3644042B2 (ja) | 1993-11-15 | 1993-11-15 | マルチタスク処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30864093A JP3644042B2 (ja) | 1993-11-15 | 1993-11-15 | マルチタスク処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07141208A JPH07141208A (ja) | 1995-06-02 |
JP3644042B2 true JP3644042B2 (ja) | 2005-04-27 |
Family
ID=17983494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30864093A Expired - Fee Related JP3644042B2 (ja) | 1993-11-15 | 1993-11-15 | マルチタスク処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3644042B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6948009B2 (en) * | 2002-06-04 | 2005-09-20 | International Business Machines Corporation | Method, system, and article of manufacture for increasing processor utilization |
JP2004220070A (ja) | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
JP2006092042A (ja) | 2004-09-21 | 2006-04-06 | Sanyo Electric Co Ltd | 情報処理装置及びコンテキスト切り替え方法 |
US7568628B2 (en) | 2005-03-11 | 2009-08-04 | Hand Held Products, Inc. | Bar code reading device with global electronic shutter control |
US7770799B2 (en) | 2005-06-03 | 2010-08-10 | Hand Held Products, Inc. | Optical reader having reduced specular reflection read failures |
WO2009063536A1 (ja) * | 2007-11-16 | 2009-05-22 | Netcleus Systems Corporation | タスク処理装置 |
JP4871948B2 (ja) | 2008-12-02 | 2012-02-08 | 株式会社日立製作所 | 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法 |
JP5711889B2 (ja) * | 2010-01-27 | 2015-05-07 | スパンション エルエルシー | リコンフィギュラブル回路および半導体集積回路 |
US20140095847A1 (en) * | 2012-09-28 | 2014-04-03 | Doron Orenstein | Instruction and highly efficient micro-architecture to enable instant context switch for user-level threading |
-
1993
- 1993-11-15 JP JP30864093A patent/JP3644042B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07141208A (ja) | 1995-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6715016B1 (en) | Multiple operating system control method | |
JP3557947B2 (ja) | 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体 | |
US5390329A (en) | Responding to service requests using minimal system-side context in a multiprocessor environment | |
US7925869B2 (en) | Instruction-level multithreading according to a predetermined fixed schedule in an embedded processor using zero-time context switching | |
JP2866241B2 (ja) | コンピュータシステムおよびスケジューリング方法 | |
TWI454933B (zh) | 管理一虛擬機器監視器中超級呼叫的裝置與方法以及虛擬機器監視器 | |
JPH031698B2 (ja) | ||
US5666523A (en) | Method and system for distributing asynchronous input from a system input queue to reduce context switches | |
JP4345630B2 (ja) | 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム | |
US20050015768A1 (en) | System and method for providing hardware-assisted task scheduling | |
KR970016979A (ko) | 다중 처리 시스템에서 타스크의 큐잉 시스템 및 방법 | |
EP1162536A1 (en) | Multiple operating system control method | |
KR20150114444A (ko) | 실시간 운영 체제에서 스택 메모리 관리를 제공하는 방법 및 시스템 | |
JP3644042B2 (ja) | マルチタスク処理装置 | |
EP0052713B1 (en) | A process management system for scheduling work requests in a data processing system | |
US11301304B2 (en) | Method and apparatus for managing kernel services in multi-core system | |
JPH05108380A (ja) | データ処理システム | |
JP2693916B2 (ja) | タスクスケジュール方法 | |
Saranya et al. | An implementation of partitioned scheduling scheme for hard real-time tasks in multicore linux with fair share for linux tasks | |
Rothberg | Interrupt handling in Linux | |
US11461134B2 (en) | Apparatus and method for deferral scheduling of tasks for operating system on multi-core processor | |
JPH07210400A (ja) | マルチタスク処理の処理装置 | |
JP2579008B2 (ja) | 時分割マルチタスク実行装置 | |
JP2594557B2 (ja) | マルチタスク処理装置 | |
WO1992003783A1 (en) | Method of implementing kernel functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040629 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040826 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050124 |
|
LAPS | Cancellation because of no payment of annual fees |