JP3644042B2 - マルチタスク処理装置 - Google Patents

マルチタスク処理装置 Download PDF

Info

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
Application number
JP30864093A
Other languages
English (en)
Other versions
JPH07141208A (ja
Inventor
俊彦 藤代
純二 大岩
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP30864093A priority Critical patent/JP3644042B2/ja
Publication of JPH07141208A publication Critical patent/JPH07141208A/ja
Application granted granted Critical
Publication of JP3644042B2 publication Critical patent/JP3644042B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【産業上の利用分野】
この発明は、リアルタイムオペレーティングシステムを用いたマルチタスク処理装置に関する。
【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)にこのレジスタバンクBを割り当てる。更にその後、レジスタバンク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)

  1. 複数のタスクが並列的に実行されるマルチタスク処理を行うマルチタスク処理装置において、
    各タスクに対応して占有される複数のレジスタバンクと、
    上記複数のレジスタバンクのうちで空きレジスタバンクがない場合に、タスクが待機するための空き待ち行列手段と、
    上記複数のレジスタバンクを管理する管理手段と
    を有し、
    上記管理手段は、タスクが実行された際に、上記空きレジスタバンクがある場合は、該空きレジスタバンクの何れかに実行された該タスクを動的に割り当て
    上記レジスタバンクを占有しているタスクの処理が終了した際に、該タスクが占有していた上記レジスタバンクを解放し、解放した該レジスタバンクに上記空き待ち行列手段に待機しているタスクを割り当てるようにしたマルチタスク処理装置
JP30864093A 1993-11-15 1993-11-15 マルチタスク処理装置 Expired - Fee Related JP3644042B2 (ja)

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)

* Cited by examiner, † Cited by third party
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

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