JP2007199848A - 軽量化リアルタイムos - Google Patents
軽量化リアルタイムos Download PDFInfo
- Publication number
- JP2007199848A JP2007199848A JP2006015275A JP2006015275A JP2007199848A JP 2007199848 A JP2007199848 A JP 2007199848A JP 2006015275 A JP2006015275 A JP 2006015275A JP 2006015275 A JP2006015275 A JP 2006015275A JP 2007199848 A JP2007199848 A JP 2007199848A
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- time
- real
- event
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【解決手段】複数のタスクを制御するリアルタイムOSにおいて、前記タスクを同時に実行されないタスク群10と、シーケンス制御が可能なタスク群20とにグループ化し、前記同時に実行されないタスク群10を制御するイベント管理部3を備え、前記イベント管理部3が、タスク優先度テーブル33と、レディーキュー32と、タスク状態情報34と、メッセージプール領域39とを備え、レディーキュー32から実行優先度の高いタスクを読み出して実行するように制御する。
【選択図】図1
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において、前記タスクを、同時に実行されないタスク群と、シーケンス制御が可能なタスク群とにグループ化し、前記同時に実行されないタスク群の実行を制御するイベント管理部を備えることを特徴とするものである。
請求項2に記載の発明では、前記イベント管理部が、前記同時に実行されないタスクの実行優先度を予め登録するタスク優先度テーブルと、前記実行優先度に従って優先度順に前記タスクを格納するレディーキューと、前記タスクの状態を管理するタスク状態情報と、前記タスクのメッセージ情報を格納するメッセージプール領域とを備え、前記レディーキューから実行優先度の高い先頭のタスクを読み出して実行するように制御することを特徴とするものである。
請求項3に記載の発明では、請求項1に記載の軽量化リアルタイムOSを適用した信号処理装置を特徴とするものである。
また、イベント管理部において、優先度テーブル、タスク状態情報、メッセージプール領域を、同時に実行されないタスク群で共有するので、少ないメモリ使用量で多くのタスクを処理できる。
図において、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 (3)
- 複数のタスクの実行を制御するリアルタイムOSにおいて、
前記タスクを、同時に実行されないタスク群と、シーケンス制御が可能なタスク群とに
グループ化し、前記同時に実行されないタスク群の実行を制御するイベント管理部を備えることを特徴とする軽量化リアルタイムOS。 - 前記イベント管理部が、
前記同時に実行されないタスクの実行優先度を予め登録するタスク優先度テーブルと、
前記実行優先度に従って前記タスクを格納するレディーキューと、
前記タスクの状態を管理するタスク状態情報と、
前記タスクのメッセージ情報を格納するメッセージプール領域とを備え、
前記レディーキューから実行優先度の高いタスクを読み出して実行するように制御することを特徴とする請求項1に記載の軽量化リアルタイム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 true JP2007199848A (ja) | 2007-08-09 |
JP2007199848A5 JP2007199848A5 (ja) | 2009-02-19 |
JP4618647B2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009301277A (ja) * | 2008-06-12 | 2009-12-24 | Fujitsu Ltd | スケジューリングプログラム,スケジューリング方法及びスケジューリング装置 |
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 | タスク管理装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009301277A (ja) * | 2008-06-12 | 2009-12-24 | Fujitsu Ltd | スケジューリングプログラム,スケジューリング方法及びスケジューリング装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4618647B2 (ja) | 2011-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5018480B2 (ja) | 情報処理装置 | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
US9870252B2 (en) | Multi-threaded processing with reduced context switching | |
US20070130446A1 (en) | Processor apparatus including specific signal processor core capable of dynamically scheduling tasks and its task control method | |
US9858115B2 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium | |
US8789058B2 (en) | System and method for supporting batch job management in a distributed transaction system | |
US7853743B2 (en) | Processor and interrupt controlling method | |
JP2009265963A (ja) | 情報処理システム及びタスクの実行制御方法 | |
CN102541661B (zh) | 实现等待地址同步接口的方法和设备 | |
US10248456B2 (en) | Method and system for providing stack memory management in real-time operating systems | |
TW202102952A (zh) | 機器人資源任務週期管控方法及裝置 | |
JP2010272076A (ja) | マルチプロセッサシステム | |
CN101414270A (zh) | 硬件辅助的辅核任务动态优先级调度的实现方法 | |
CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
JP2006243864A (ja) | プロセッサおよび情報処理方法 | |
JP2007164421A (ja) | 並列処理装置及び並列処理方法及び並列処理プログラム | |
JP4618647B2 (ja) | リアルタイムosシステム | |
US7900205B2 (en) | System and method for executing selected task based on task management table having at least one task and at least two associated processors | |
CN113419835A (zh) | 作业调度方法、装置、设备及介质 | |
JP2005327007A (ja) | 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム | |
JP2007122337A (ja) | 演算装置 | |
JP5844134B2 (ja) | マルチプロセッサ装置及びマルチプロセッサ装置の制御方法 | |
JP3797274B2 (ja) | ファームウェアディスパッチ方式,方法,およびプログラム | |
CN111767120A (zh) | 基于消息与事件的多任务处理单元的调度方法与装置 | |
CN113641480A (zh) | 一种基于Kubernetes集群组的任务调度系统及方法 |
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 (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
R150 | Certificate of patent (=grant) 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 |