JP4618647B2 - リアルタイムosシステム - Google Patents
リアルタイムosシステム Download PDFInfo
- Publication number
- JP4618647B2 JP4618647B2 JP2006015275A JP2006015275A JP4618647B2 JP 4618647 B2 JP4618647 B2 JP 4618647B2 JP 2006015275 A JP2006015275 A JP 2006015275A JP 2006015275 A JP2006015275 A JP 2006015275A JP 4618647 B2 JP4618647 B2 JP 4618647B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- event
- subroutine
- priority
- executed
- 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
- 238000000034 method Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 18
- 238000012790 confirmation Methods 0.000 description 8
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000004568 cement Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
上記製品に搭載される従来のリアルタイムOSとしては、μITRON(登録商標)やVxWorks(登録商標)、Linux(登録商標)等がある。これらのOSは一般に大きなメモリ容量を必要とするが、これはタスク制御ブロック(以下、TCBと称す。)やスタック領域のためのメモリであり、タスク数が増加すると使用するメモリ容量も増加する。一般にプログラムの複雑化・大規模化によってタスク数も増加するので、メモリ容量は増加傾向にある。
しかしながら、内蔵するメモリ容量に制約がある小規模システムの場合は、このようなリアルタイムOSを使用することが困難な場合が多い。小規模システムのようなメモリ容量の少ない環境下で、多くのタスクの制御を可能とするリアルタイムOSが必要となっている。
これに対して、複数の同時に実行されないタスクをグループ化し、このグループ化したタスク群でTCBとスタック領域を共有し、リアルタイムOSがこのタスク群を管理するようにしているものもある(たとえば、特許文献1を参照)。図5は、特許文献1のリアルタイムOSを適用したソフトウエアの構成を示す図である。図5において、リアルタイムOSは、OS部1、API部2で構成される。ここでは、タスクは、同時に実行されないタスク群10とシーケンス制御が可能なタスク群20とに分けられており、前者用としてTCB37aおよびスタック領域38aを、また後者用としてTCB37bとスタック領域38bを備える。シーケンス制御が可能なタスク群20では、タスク毎にTCBとスタック領域が必要であるが、同時に実行されないタスク群10では、通常TCBとスタック領域が各々1個で良い。このように、同時に実行されないタスク群10については、TCBとスタック領域が少なくて良いので、従来のリアルタイムOSよりもメモリ使用量を削減できる。
本発明はこのような問題点に鑑みてなされたものであり、使用できるタスク数を維持しつつ少ないメモリ使用量で実行でき、ソフトウエア資産の再利用が容易なリアルタイムOSシステムを提供することを目的とする。
請求項1に記載の発明では、特定のOSに依存するタスク群と、同時に実行されずに、且つ、該OSで実行されないサブルーチンで構成されたタスク群について、これら各タスク間のイベントを管理するイベント管理部を備え、前記イベント管理部は、該OSとは独立した構成であって、その内部に、前記サブルーチンで構成された各タスクに対応する実行優先度を予め登録するタスク優先度テーブルと、同時に実行されないタスク群の各タスクに対応したイベントバッファと、前記実行優先度に従って前記サブルーチンで構成されたタスクを格納するレディーキューと、を記録する領域が確保され、前記イベントバッファに記録されたイベントに対応する前記実行優先度を前記タスク優先度テーブルから参照して、その実行優先度に対応する前記サブルーチンで構成されたタスクを前記レディーキューに登録し、前記レディーキューから前記実行優先度に応じて前記サブルーチンで構成されたタスクを読みだして実行するように制御するとともに、前記OSに依存するタスクが、前記サブルーチンで構成されたいずれかのタスクに対してイベントを通知したときには、該OSのAPIから、そのイベントを受けて、これを前記イベントバッファに登録し、前記サブルーチンで構成されたいずれかのタスクが、前記OSに依存するいずれかのタスクに対してイベントを通知したときには、該サブルーチンから、そのイベントを受けて、これを該OSのAPIに対して転送し、前記サブルーチンで構成されたいずれかのタスクが、前記サブルーチンで構成された他のタスクに対してイベントを通知したときには、該サブルーチンから、そのイベントを受けて、これを前記イベントバッファに登録することを特徴とするものである。
請求項2に記載の発明では、前記イベント管理部は、その内部に、前記サブルーチンで構成されたタスクの状態を管理するタスク状態情報を記録する領域がさらに確保され、前記イベントバッファに記録されたイベントに対応する前記実行優先度を前記タスク優先度テーブルから参照して、あわせて該タスクに対応する前記タスク状態情報を参照して該タスクが待機状態と判断された場合には、その実行優先度に対応する前記サブルーチンで構成されたタスクを前記レディーキューに登録し、前記レディーキューから前記実行優先度に応じて前記サブルーチンで構成されたタスクを読みだして実行するときに、その実行と合わせて該タスクの状態を前記タスク状態情報に記録するように制御することを特徴とするものである。
また、イベント管理部において、優先度テーブル、タスク状態情報、メッセージプール領域を、同時に実行されないタスク群で共有するので、少ないメモリ使用量で多くのタスクを処理できる。
図において、1はOS部、2はAPI部(Application Program Interface)、3はイベント管理部、10は同時に実行されないタスク群、20はシーケンス制御が可能なタスク群である。
OS部1においては、シーケンス制御が可能なタスク群20に対応したTCB37bとスタック領域38bを複数備えている。
イベント管理部3において、31はイベントバッファ、32はレディーキュー、33はタスク優先度テーブル、34はタスク状態情報、35はイベント獲得関数テーブル、36はメイン処理関数テーブル、39はメッセージプール領域である。
本発明の特徴とするところは、上記のように2種類のタスク群に区分し、同時に実行されないタスク群10をイベント管理部3でタスクスケジューリングさせるところである。
リアルタイムOSシステムは、OS部1、API部2、イベント管理部3で構成しており、OS部1には従来のリアルタイムOSであるμITRON(登録商標)やLinux(登録商標)などが使用される。
シーケンス制御が可能なタスク群20は、OSで実行されるタスク群であり、待ち状態でOSによりタスクチェンジされるタスクである。
同時に実行されないタスク群10は、OSで実行されないタスク群であり、複数のタスク101〜105から構成される。このタスク101〜105は機能ごとに分割したサブルーティンであり、待ち状態はなく一度で処理が完了するタスクである。この例ではタスク数を16個としている。
イベント管理部3は、OS部1の下に配置され、サブOS的な役目を果たすものであるが、タスク制御のために、タスク優先度テーブル33、タスク状態情報34およびメッセージプール領域39を各1個使用する。ここでは、このタスク優先度テーブル33、タスク状態情報34は、従来のTCBと類似の機能を有する。一方、メッセージプール領域39は、従来のスタック領域の機能の一部であるメッセージ格納機能を備える。
シーケンス制御が可能なタスク20から同時に実行されないタスク10へのイベント通知は、API部2を介して実行され、API関数のパラメータで送信先タスク番号を指定することで、特定のタスクへのイベント通知が可能となっている。なお、イベント通知された後のタスクへの振り分けはイベント管理部3が行う。
また、同時に実行されないタスク10内のタスクからシーケンス制御が可能なタスク20へのイベント通知は、API部2にてAPI関数の送信先タスク番号による判定をした後、OS部1を介してイベント通知が可能となっている。
また、タスク間のイベント送受信はイベント管理部3で処理される。
以下、図に従ってイベント管理部3の動作を説明する。
イベント処理は、タスク毎に、イベント発行処理、イベント確認登録処理、イベント獲得処理、獲得イベント毎のメイン処理を実行する。
以下に各ステップの動作を説明する。
イベント発行処理では、発生したイベントをイベントバッファ31にセットする。(ステップ1)
次に、発生イベントの確認登録処理では、発生したイベントに対応したタスクを、タスクの優先度に従ってレディーキューに登録する。本ステップの詳細は後述の図3で説明する。(ステップ2)
イベントの獲得処理では、優先度の高いタスク番号を取得する。本ステップの詳細は後述の図4で説明する。(ステップ3)
次の獲得イベントのメイン処理では、イベントの獲得処理で獲得したタスクの実行処理を行う。本ステップの詳細は後述の図4で説明する。(ステップ4)
ここで、タスク優先度テーブル33には、事前にタスク番号毎に優先度を登録しておく。
本図では優先度レベルは4段階としている。
レディーキュー32では、イベントで発生したタスクを優先度順に登録するが、各優先度レベルに登録可能なタスク数は、管理されるタスク数と同一としており、ここでは16個としている。
タスク状態情報34は、管理されているタスクの状態を設定表示する。1が稼動状態で、0が待機状態である。
以下に各ステップの動作を説明する。
最初に、タスク宛てのイベントをすべて確認したかを判断する。
イベントの確認を完了した場合は、[1]ENDに進み、発生イベントの確認登録処理を終了する。確認を完了していない場合は、ステップ2に進む。(ステップ1)
次に、タスク状態情報34を参照し、発生したイベントに対応したタスクが待機状態であることを確認する。タスク状態情報34の該当タスクのビットが0であれば待機状態と判断しステップ3に進む。該当タスクのビットが1であれば稼動状態と判断しステップ5に進む。(ステップ2)
レディーキューにタスク番号を登録する処理は、発生したイベントに対応するタスクの優先度をタスク優先度テーブル33から取得し、レディーキュー32において該当する優先度のタスク番号登録バッファの最後尾に、そのタスク番号を追加する。(ステップ3)
次に、そのタスクを稼動状態に移行させるため、タスク状態情報34の該当タスクのビットに1をセットする。(ステップ4)
上記の処理の後、次のイベントの処理に遷移する。(ステップ5)
以上の処理を、発生したすべてのイベントについて実行する。
事前に、タスク毎にイベント獲得関数をイベント獲得関数テーブル35に、各タスクのメイン処理関数をメイン処理関数テーブル36に登録しておく。
以下に各ステップの動作を説明する。
先ず、レディーキュー32において優先度の高いタスクから順にタスクを確認する。登録された先頭のタスク番号を獲得する。(ステップ1)
獲得したタスク番号をレディーキュー32から削除する。(ステップ2)
獲得したタスク番号に相当するイベントを、イベント獲得関数テーブル35から取得する。(ステップ3)
獲得したタスク番号に相当するメイン処理関数をメイン処理関数テーブル36から取得し、取得したメイン処理関数のメイン処理を行なう。(ステップ4)
上記でメイン処理を行ったタスクを待機状態に移行させる。(ステップ5)
上記の処理後、レディーキュー32の内容をすべて確認したかを判断する。確認が終了している場合は、[2]ENDに進みイベントの獲得処理とメイン処理を終了する。確認が終了していない場合はステップ1に戻り、次のタスクを確認する。(ステップ6)
OS部1の下にイベント管理部3を配置した構成としているので、異なるOSで使用する場合でもOS部の変更が必要でないので、既存のソフトウエアを異なるリアルタイムOS上での使用を容易に実現できる。これにより、ソフトウエアの生産性の向上が可能となる。
また、本発明のリアルタイムOSシステムを利用することで、メモリ容量が小さくリアルタイムOSを実装出来ないシステムにおいては、OS部1をなくしたものを適用することで、リアルタイム処理が可能となる。
2 API部
3 イベント管理部
10 同時に実行されないタスク群
20 シーケンス制御が可能なタスク群
31 イベントバッファ
32 レディーキュー
33 タスク優先度テーブル
34 タスク状態情報
35 イベント獲得関数テーブル
36 メイン処理関数テーブル
37 TCB
38 スタック領域
39 メッセージプール領域
Claims (2)
- 特定のOSに依存するタスク群と、同時に実行されずに、且つ、該OSで実行されないサブルーチンで構成されたタスク群について、これら各タスク間のイベントを管理するイベント管理部を備え、
前記イベント管理部は、該OSとは独立した構成であって、
その内部に、前記サブルーチンで構成された各タスクに対応する実行優先度を予め登録するタスク優先度テーブルと、
同時に実行されないタスク群の各タスクに対応したイベントバッファと、
前記実行優先度に従って前記サブルーチンで構成されたタスクを格納するレディーキューと、
を記録する領域が確保され、
前記イベントバッファに記録されたイベントに対応する前記実行優先度を前記タスク優先度テーブルから参照して、
その実行優先度に対応する前記サブルーチンで構成されたタスクを前記レディーキューに登録し、
前記レディーキューから前記実行優先度に応じて前記サブルーチンで構成されたタスクを読みだして実行するように制御するとともに、
前記OSに依存するタスクが、前記サブルーチンで構成されたいずれかのタスクに対してイベントを通知したときには、該OSのAPIから、そのイベントを受けて、これを前記イベントバッファに登録し、
前記サブルーチンで構成されたいずれかのタスクが、前記OSに依存するいずれかのタスクに対してイベントを通知したときには、該サブルーチンから、そのイベントを受けて、これを該OSのAPIに対して転送し、
前記サブルーチンで構成されたいずれかのタスクが、前記サブルーチンで構成された他のタスクに対してイベントを通知したときには、該サブルーチンから、そのイベントを受けて、これを前記イベントバッファに登録する
ことを特徴とするリアルタイムOSシステム。 - 前記イベント管理部は、その内部に、前記サブルーチンで構成されたタスクの状態を管理するタスク状態情報を記録する領域がさらに確保され、
前記イベントバッファに記録されたイベントに対応する前記実行優先度を前記タスク優先度テーブルから参照して、
あわせて該タスクに対応する前記タスク状態情報を参照して該タスクが待機状態と判断された場合には、その実行優先度に対応する前記サブルーチンで構成されたタスクを前記レディーキューに登録し、
前記レディーキューから前記実行優先度に応じて前記サブルーチンで構成されたタスクを読みだして実行するときに、その実行と合わせて該タスクの状態を前記タスク状態情報に記録するように制御する
ことを特徴とする請求項1に記載のリアルタイムOSシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006015275A JP4618647B2 (ja) | 2006-01-24 | 2006-01-24 | リアルタイムosシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006015275A JP4618647B2 (ja) | 2006-01-24 | 2006-01-24 | リアルタイムosシステム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2007199848A JP2007199848A (ja) | 2007-08-09 |
JP2007199848A5 JP2007199848A5 (ja) | 2009-02-19 |
JP4618647B2 true JP4618647B2 (ja) | 2011-01-26 |
Family
ID=38454434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006015275A Expired - Fee Related JP4618647B2 (ja) | 2006-01-24 | 2006-01-24 | リアルタイムosシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4618647B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5262329B2 (ja) * | 2008-06-12 | 2013-08-14 | 富士通株式会社 | スケジューリングプログラム,スケジューリング方法及びスケジューリング装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05173810A (ja) * | 1991-12-26 | 1993-07-13 | Matsushita Electric Ind Co Ltd | タスク管理方法 |
JPH10289114A (ja) * | 1997-04-14 | 1998-10-27 | Sony Corp | マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器 |
JPH11353193A (ja) * | 1998-06-11 | 1999-12-24 | Kdk Corp | マルチプログラミング実行制御方法 |
JP2000132409A (ja) * | 1998-10-22 | 2000-05-12 | Erg Co Ltd | 待ち状態のないタスクのスタック共有方式 |
JP2004326486A (ja) * | 2003-04-25 | 2004-11-18 | Matsushita Electric Ind Co Ltd | タスク管理装置 |
-
2006
- 2006-01-24 JP JP2006015275A patent/JP4618647B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05173810A (ja) * | 1991-12-26 | 1993-07-13 | Matsushita Electric Ind Co Ltd | タスク管理方法 |
JPH10289114A (ja) * | 1997-04-14 | 1998-10-27 | Sony Corp | マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器 |
JPH11353193A (ja) * | 1998-06-11 | 1999-12-24 | Kdk Corp | マルチプログラミング実行制御方法 |
JP2000132409A (ja) * | 1998-10-22 | 2000-05-12 | Erg Co Ltd | 待ち状態のないタスクのスタック共有方式 |
JP2004326486A (ja) * | 2003-04-25 | 2004-11-18 | Matsushita Electric Ind Co Ltd | タスク管理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2007199848A (ja) | 2007-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
US8789058B2 (en) | System and method for supporting batch job management in a distributed transaction system | |
CN101529383B (zh) | 任务处理装置 | |
US20080201561A1 (en) | Multi-threaded parallel processor methods and apparatus | |
JP2009265963A (ja) | 情報処理システム及びタスクの実行制御方法 | |
US20070033384A1 (en) | Real-time embedded simple monitor method and computer product | |
US20050283673A1 (en) | Information processing apparatus, information processing method, and program | |
US8695001B2 (en) | Loading services based on a request and setting permission level to enable execution of commands or services exposed based on a role of requester | |
JP5250955B2 (ja) | データ処理システムのバックアップ制御装置及びシステム | |
JP2008295027A (ja) | 画像形成装置、情報処理方法、及び情報処理プログラム | |
CN102047217A (zh) | 重新获取对执行外部执行上下文的处理资源的控制 | |
JP4618647B2 (ja) | リアルタイムosシステム | |
JP2009176146A (ja) | マルチプロセッサシステム、障害検出方法および障害検出プログラム | |
CN113419835A (zh) | 作业调度方法、装置、设备及介质 | |
JP4591178B2 (ja) | 電源制御装置及び電源制御方法並びにプログラム | |
JP4523910B2 (ja) | 並列処理装置及び並列処理方法及び並列処理プログラム | |
US7493620B2 (en) | Transfer of waiting interrupts | |
CN113641480A (zh) | 一种基于Kubernetes集群组的任务调度系统及方法 | |
JP2022079764A (ja) | 同期制御システムおよび同期制御方法 | |
JP4325466B2 (ja) | タスク実行システム | |
JP6166758B2 (ja) | 情報処理システム、情報処理方法、および情報処理プログラム | |
JP5844134B2 (ja) | マルチプロセッサ装置及びマルチプロセッサ装置の制御方法 | |
JP4017005B2 (ja) | 演算装置 | |
JP2011257973A (ja) | メモリ管理方法及びメモリ管理装置 | |
JP3797274B2 (ja) | ファームウェアディスパッチ方式,方法,およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081225 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100817 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100929 |
|
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: 20101020 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101020 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |