需要が拡大する自動車制御OSを知る ――機能向上に対応するには開発効率向上が必須

服部博行,森川聡久

tag: 組み込み

技術解説 2005年3月 8日

●○● Column ●○●
待ち状態のタスクの起動順序

 TOPPERS/OSEKカーネルは,厳密に言うとOSEK-OS仕様と異なる実装が1項目だけあります.それは,OSEK/VDXが規定する仕様に一致させると要求メモリ空間が非常に大きくなり,処理が複雑になって高効率を維持できないと判断した部分です.ユーザ調査などを行った結果,仕様として求められる機能は提供しているので,このような実装で問題ないと判断しました.以下にその詳細を示します.

 OSEK-OS仕様では,基本タスクの多重起動時において,起動要求順に起動するように規定しています(図B-1).これに対して,TOPPERS/OSEKカーネルでは,要求順序のFIFO(first in first out)キュー・バッファを用意していないため,多重起動順序が起動要求順に起動されません(起動要求は正しく処理される).

 この仕様に対応するには,複数回起動要求されたタスクは複数回キュー・バッファに格納する必要があります.つまり,最大多重起動要求回数分のバッファを用意する必要があるのです.要求リソース増加量を考慮すると自動車制御分野では受け入れがたい仕様であると判断し,TOPPERS/OSEKカーネルではFIFO管理を行わない仕様として実装しました.

f11_01.gif
図B-1 タスクの多重起動の順番
例えば,タスクのキュー・バッファにタスク1とタスク2が待っている時点で「タスク1,タスク1,タスク2」という起動要求を出した場合,OSEK-OS仕様では要求と同じ順番で(タスク1,タスク2,タスク1,タスク1,タスク2)タスクを起動するよう規定している.TOPPERS/OSEKカーネルでは,キュー・バッファにはタスク1とタスク2を1個ずつ格納し,それぞれに再起動回数を指定する実装とした.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日