JP2007199848A - 軽量化リアルタイムos - Google Patents

軽量化リアルタイムos Download PDF

Info

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
Application number
JP2006015275A
Other languages
English (en)
Other versions
JP2007199848A5 (ja
JP4618647B2 (ja
Inventor
Nobuo Yui
信緒 由井
Ikuo Shigemitsu
郁男 重光
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
YE Digital Co Ltd
Original Assignee
Yaskawa Electric Corp
Yaskawa Information Systems Co Ltd
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, Yaskawa Information Systems Co Ltd 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)

Abstract

【課題】使用できるタスク数を維持しつつ少ないメモリ使用量で実行でき、ソフトウエア資産の再利用が容易なリアルタイムOSを提供する。
【解決手段】複数のタスクを制御するリアルタイムOSにおいて、前記タスクを同時に実行されないタスク群10と、シーケンス制御が可能なタスク群20とにグループ化し、前記同時に実行されないタスク群10を制御するイベント管理部3を備え、前記イベント管理部3が、タスク優先度テーブル33と、レディーキュー32と、タスク状態情報34と、メッセージプール領域39とを備え、レディーキュー32から実行優先度の高いタスクを読み出して実行するように制御する。
【選択図】図1

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において、前記タスクを、同時に実行されないタスク群と、シーケンス制御が可能なタスク群とにグループ化し、前記同時に実行されないタスク群の実行を制御するイベント管理部を備えることを特徴とするものである。
請求項2に記載の発明では、前記イベント管理部が、前記同時に実行されないタスクの実行優先度を予め登録するタスク優先度テーブルと、前記実行優先度に従って優先度順に前記タスクを格納するレディーキューと、前記タスクの状態を管理するタスク状態情報と、前記タスクのメッセージ情報を格納するメッセージプール領域とを備え、前記レディーキューから実行優先度の高い先頭のタスクを読み出して実行するように制御することを特徴とするものである。
請求項3に記載の発明では、請求項1に記載の軽量化リアルタイムOSを適用した信号処理装置を特徴とするものである。
本発明によると、従来のリアルタイム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 (3)

  1. 複数のタスクの実行を制御するリアルタイムOSにおいて、
    前記タスクを、同時に実行されないタスク群と、シーケンス制御が可能なタスク群とに
    グループ化し、前記同時に実行されないタスク群の実行を制御するイベント管理部を備えることを特徴とする軽量化リアルタイムOS。
  2. 前記イベント管理部が、
    前記同時に実行されないタスクの実行優先度を予め登録するタスク優先度テーブルと、
    前記実行優先度に従って前記タスクを格納するレディーキューと、
    前記タスクの状態を管理するタスク状態情報と、
    前記タスクのメッセージ情報を格納するメッセージプール領域とを備え、
    前記レディーキューから実行優先度の高いタスクを読み出して実行するように制御することを特徴とする請求項1に記載の軽量化リアルタイムOS。
  3. 請求項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 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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009301277A (ja) * 2008-06-12 2009-12-24 Fujitsu Ltd スケジューリングプログラム,スケジューリング方法及びスケジューリング装置

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 タスク管理装置

Cited By (1)

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