JP4618647B2 - リアルタイムosシステム - Google Patents

リアルタイムosシステム Download PDF

Info

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
Application number
JP2006015275A
Other languages
English (en)
Other versions
JP2007199848A (ja
JP2007199848A5 (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.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric 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 Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2006015275A priority Critical patent/JP4618647B2/ja
Publication of JP2007199848A publication Critical patent/JP2007199848A/ja
Publication of JP2007199848A5 publication Critical patent/JP2007199848A5/ja
Application granted granted Critical
Publication of JP4618647B2 publication Critical patent/JP4618647B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、リアルタイムOSシステムに関し、特にメモリ容量の少ない環境下で動作可能なリアルタイムOSシステムに関する。
マイクロコンピュータを使った製品は、ますます高機能化するに従ってアプリケーションプログラムも複雑化・大規模化している。これらのソフト開発においては生産性向上が課題となっている。ソフト開発の生産性向上にはソフトの再利用が重要であるが、これにはOSの搭載が必要となる。
上記製品に搭載される従来のリアルタイム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よりもメモリ使用量を削減できる。

特開平10-105415号公報
特許文献1のリアルタイムOSの場合は、タスク数を維持してメモリ容量(RAM)を低減することを可能としている。しかしながら、このリアルタイムOS上で開発されたソフトウエア資産を異なるリアルタイムOSで使用する場合、異なるリアルタイムOSの大幅改造が必要となるのでソフトウエア資産の再利用が困難であるという問題があった。
本発明はこのような問題点に鑑みてなされたものであり、使用できるタスク数を維持しつつ少ないメモリ使用量で実行でき、ソフトウエア資産の再利用が容易なリアルタイムOSシステムを提供することを目的とする。
上記問題を解決するため、本発明は、次のように構成したのである。
請求項1に記載の発明では、特定のOSに依存するタスク群と、同時に実行されずに、且つ、該OSで実行されないサブルーチンで構成されたタスク群について、これら各タスク間のイベントを管理するイベント管理部を備え、前記イベント管理部は、該OSとは独立した構成であって、その内部に、前記サブルーチンで構成された各タスクに対応する実行優先度を予め登録するタスク優先度テーブルと、同時に実行されないタスク群の各タスクに対応したイベントバッファと、前記実行優先度に従って前記サブルーチンで構成されたタスクを格納するレディーキューと、を記録する領域が確保され、前記イベントバッファに記録されたイベントに対応する前記実行優先度を前記タスク優先度テーブルから参照して、その実行優先度に対応する前記サブルーチンで構成されたタスクを前記レディーキューに登録し、前記レディーキューから前記実行優先度に応じて前記サブルーチンで構成されたタスクを読みだして実行するように制御するとともに、前記OSに依存するタスクが、前記サブルーチンで構成されたいずれかのタスクに対してイベントを通知したときには、該OSのAPIから、そのイベントを受けて、これを前記イベントバッファに登録し、前記サブルーチンで構成されたいずれかのタスクが、前記OSに依存するいずれかのタスクに対してイベントを通知したときには、該サブルーチンから、そのイベントを受けて、これを該OSのAPIに対して転送し、前記サブルーチンで構成されたいずれかのタスクが、前記サブルーチンで構成された他のタスクに対してイベントを通知したときには、該サブルーチンから、そのイベントを受けて、これを前記イベントバッファに登録することを特徴とするものである。
請求項2に記載の発明では、前記イベント管理部は、その内部に、前記サブルーチンで構成されたタスクの状態を管理するタスク状態情報を記録する領域がさらに確保され、前記イベントバッファに記録されたイベントに対応する前記実行優先度を前記タスク優先度テーブルから参照して、あわせて該タスクに対応する前記タスク状態情報を参照して該タスクが待機状態と判断された場合には、その実行優先度に対応する前記サブルーチンで構成されたタスクを前記レディーキューに登録し、前記レディーキューから前記実行優先度に応じて前記サブルーチンで構成されたタスクを読みだして実行するときに、その実行と合わせて該タスクの状態を前記タスク状態情報に記録するように制御することを特徴とするものである。
本発明によると、従来のリアルタイムOSの下にイベント管理部を設けて、このイベント管理部で同時に実行されないタスク群の実行を制御する構成としているので、異なるリアルタイムOSにおいても既存ソフトウエアの再利用が可能となるのである。
また、イベント管理部において、優先度テーブル、タスク状態情報、メッセージプール領域を、同時に実行されないタスク群で共有するので、少ないメモリ使用量で多くのタスクを処理できる。
以下、本発明の実施の形態について図を参照して説明する。
図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は、従来のスタック領域の機能の一部であるメッセージ格納機能を備える。
ここで、イベント通知の流れについては、図1にて太線矢印で示しているが、以下にその動作を説明する。
シーケンス制御が可能なタスク20から同時に実行されないタスク10へのイベント通知は、API部2を介して実行され、API関数のパラメータで送信先タスク番号を指定することで、特定のタスクへのイベント通知が可能となっている。なお、イベント通知された後のタスクへの振り分けはイベント管理部3が行う。
また、同時に実行されないタスク10内のタスクからシーケンス制御が可能なタスク20へのイベント通知は、API部2にてAPI関数の送信先タスク番号による判定をした後、OS部1を介してイベント通知が可能となっている。
また、タスク間のイベント送受信はイベント管理部3で処理される。
図2は、イベント管理部のメインループを示す概略フローチャートである。
以下、図に従ってイベント管理部3の動作を説明する。
イベント処理は、タスク毎に、イベント発行処理、イベント確認登録処理、イベント獲得処理、獲得イベント毎のメイン処理を実行する。
以下に各ステップの動作を説明する。
イベント発行処理では、発生したイベントをイベントバッファ31にセットする。(ステップ1)
次に、発生イベントの確認登録処理では、発生したイベントに対応したタスクを、タスクの優先度に従ってレディーキューに登録する。本ステップの詳細は後述の図3で説明する。(ステップ2)
イベントの獲得処理では、優先度の高いタスク番号を取得する。本ステップの詳細は後述の図4で説明する。(ステップ3)
次の獲得イベントのメイン処理では、イベントの獲得処理で獲得したタスクの実行処理を行う。本ステップの詳細は後述の図4で説明する。(ステップ4)
図3は、発生イベントの確認登録処理のフローチャートである。
ここで、タスク優先度テーブル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)
以上の処理を、発生したすべてのイベントについて実行する。
図4は、イベントの獲得処理とメイン処理のフローチャートである。
事前に、タスク毎にイベント獲得関数をイベント獲得関数テーブル35に、各タスクのメイン処理関数をメイン処理関数テーブル36に登録しておく。
以下に各ステップの動作を説明する。
先ず、レディーキュー32において優先度の高いタスクから順にタスクを確認する。登録された先頭のタスク番号を獲得する。(ステップ1)
獲得したタスク番号をレディーキュー32から削除する。(ステップ2)
獲得したタスク番号に相当するイベントを、イベント獲得関数テーブル35から取得する。(ステップ3)
獲得したタスク番号に相当するメイン処理関数をメイン処理関数テーブル36から取得し、取得したメイン処理関数のメイン処理を行なう。(ステップ4)
上記でメイン処理を行ったタスクを待機状態に移行させる。(ステップ5)
上記の処理後、レディーキュー32の内容をすべて確認したかを判断する。確認が終了している場合は、[2]ENDに進みイベントの獲得処理とメイン処理を終了する。確認が終了していない場合はステップ1に戻り、次のタスクを確認する。(ステップ6)
このように、本発明では、同時に実行されないタスク群10をイベント管理部3で優先度付きでタスクスケジューリングするようにして、タスク優先度テーブル33、タスク状態情報34、メッセージプール領域39をタスク群10で共有するので、従来のリアルタイムOSと同じ数のタスクを、少ないメモリ使用量で処理できる。
OS部1の下にイベント管理部3を配置した構成としているので、異なるOSで使用する場合でもOS部の変更が必要でないので、既存のソフトウエアを異なるリアルタイムOS上での使用を容易に実現できる。これにより、ソフトウエアの生産性の向上が可能となる。
また、本発明のリアルタイムOSシステムを利用することで、メモリ容量が小さくリアルタイムOSを実装出来ないシステムにおいては、OS部1をなくしたものを適用することで、リアルタイム処理が可能となる。
リアルタイム処理が必要で、特にメモリ容量の少ないマイクロコンピュータを搭載した製品に適用できる。
本発明のリアルタイムOSシステムを適用したソフトウエアの構成 本発明のイベント管理部のメインループを示す概略フローチャート 本発明の発生イベントの確認登録処理のフローチャート 本発明のイベントの獲得処理とメイン処理のフローチャート 特許文献1のリアルタイムOSを適用したソフトウエアの構成
符号の説明
1 OS部
2 API部
3 イベント管理部
10 同時に実行されないタスク群
20 シーケンス制御が可能なタスク群
31 イベントバッファ
32 レディーキュー
33 タスク優先度テーブル
34 タスク状態情報
35 イベント獲得関数テーブル
36 メイン処理関数テーブル
37 TCB
38 スタック領域
39 メッセージプール領域

Claims (2)

  1. 特定のOSに依存するタスク群と、同時に実行されずに、且つ、該OSで実行されないサブルーチンで構成されたタスク群について、これら各タスク間のイベントを管理するイベント管理部を備え、
    前記イベント管理部は、該OSとは独立した構成であって、
    その内部に、前記サブルーチンで構成された各タスクに対応する実行優先度を予め登録するタスク優先度テーブルと、
    同時に実行されないタスク群の各タスクに対応したイベントバッファと、
    前記実行優先度に従って前記サブルーチンで構成されたタスクを格納するレディーキューと、
    を記録する領域が確保され、
    前記イベントバッファに記録されたイベントに対応する前記実行優先度を前記タスク優先度テーブルから参照して、
    その実行優先度に対応する前記サブルーチンで構成されたタスクを前記レディーキューに登録し、
    前記レディーキューから前記実行優先度に応じて前記サブルーチンで構成されたタスクを読みだして実行するように制御するとともに、
    前記OSに依存するタスクが、前記サブルーチンで構成されたいずれかのタスクに対してイベントを通知したときには、該OSのAPIから、そのイベントを受けて、これを前記イベントバッファに登録し、
    前記サブルーチンで構成されたいずれかのタスクが、前記OSに依存するいずれかのタスクに対してイベントを通知したときには、該サブルーチンから、そのイベントを受けて、これを該OSのAPIに対して転送し、
    前記サブルーチンで構成されたいずれかのタスクが、前記サブルーチンで構成された他のタスクに対してイベントを通知したときには、該サブルーチンから、そのイベントを受けて、これを前記イベントバッファに登録する
    ことを特徴とするリアルタイムOSシステム。
  2. 前記イベント管理部は、その内部に、前記サブルーチンで構成されたタスクの状態を管理するタスク状態情報を記録する領域がさらに確保され、
    前記イベントバッファに記録されたイベントに対応する前記実行優先度を前記タスク優先度テーブルから参照して、
    あわせて該タスクに対応する前記タスク状態情報を参照して該タスクが待機状態と判断された場合には、その実行優先度に対応する前記サブルーチンで構成されたタスクを前記レディーキューに登録し、
    前記レディーキューから前記実行優先度に応じて前記サブルーチンで構成されたタスクを読みだして実行するときに、その実行と合わせて該タスクの状態を前記タスク状態情報に記録するように制御する
    ことを特徴とする請求項1に記載のリアルタイムOSシステム。
JP2006015275A 2006-01-24 2006-01-24 リアルタイムosシステム Expired - Fee Related JP4618647B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5262329B2 (ja) * 2008-06-12 2013-08-14 富士通株式会社 スケジューリングプログラム,スケジューリング方法及びスケジューリング装置

Citations (5)

* Cited by examiner, † Cited by third party
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 タスク管理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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
CN100533387C (zh) 执行作业步的系统和方法
US8789058B2 (en) System and method for supporting batch job management in a distributed transaction system
CN101901164B (zh) 时间计划调度模块和方法
WO2010001555A1 (ja) 実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置
EP2312441B1 (en) Scheduling of instructions groups for cell processors
US20080201561A1 (en) Multi-threaded parallel processor methods and apparatus
CN102541661B (zh) 实现等待地址同步接口的方法和设备
US20050283673A1 (en) Information processing apparatus, information processing method, and program
US7472214B2 (en) Real-time embedded simple monitor method and computer product
CN101310257A (zh) 多处理器系统和用于使计算机执行多处理器系统的控制方法的程序
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
JP2008295027A (ja) 画像形成装置、情報処理方法、及び情報処理プログラム
JP4591178B2 (ja) 電源制御装置及び電源制御方法並びにプログラム
JP4523910B2 (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
US20040098722A1 (en) System, method, and computer program product for operating-system task management
JP5250955B2 (ja) データ処理システムのバックアップ制御装置及びシステム
CN102047217A (zh) 重新获取对执行外部执行上下文的处理资源的控制
JP4618647B2 (ja) リアルタイムosシステム
JP2022079764A (ja) 同期制御システムおよび同期制御方法
CN113419835A (zh) 作业调度方法、装置、设备及介质
JP4325466B2 (ja) タスク実行システム
JP6166758B2 (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