ポストPC時代のキーワード「エンベデッド」のすべて ――転換点はカー・ナビゲーション・システム

今村義幸

tag: 組み込み

技術解説 2001年5月17日

●タスクを分割して優先順位をつける

 どのようにアプリケーションをマルチタスクに分割するかは,職人的なセンスが要求される部分でもあるが,各タスクの役割・性質がどのようなものかを考えて分割し,優先度付けを行う.カーナビの処理を分析してみると,つねに行っている処理,ときどき行う処理,必要なときに行う処理とさまざまである(表3)

 なお,結果の情報を提供する相手は人間であり,モニタをつねに凝視していることができないドライバである.これは情報を提供する間隔が秒単位でよいことを意味している.それ以外の処理は刻々と変わってくる入力情報に対して数十μsで応答し,次に出力情報を更新するまでの間に情報の修正を行わなければならない.

 こうした処理を一定時間内に確実に終わらせるためには,マルチタスク化というプログラムの構成方法に加えて,リアルタイム性が求められる.

〔表3〕カーナビが行っている処理

つねに行っている出力 地図表示
位置表示
ルート表示
頻繁に入ってくる入力 車速情報
ジャイロスコープからの位置補正情報
GPSからの位置情報
頻繁に引き出してくる情報
CD-ROMあるいはDVD-ROMからの地図データ
ときどき入ってくる入力 VICSからの渋滞情報
必要なときに実行する演算
目的地までの最適ルートの算出
必要なときに行う出力 方向指示の音声出力

●リアルタイムOSの役割

 リアルタイムOSはマルチタスク・プログラミング手法を提供するだけでなく,確実により高い優先度のタスクを実行することを保証し,次に実行されるタスクへの切り替え時間(タスク・スイッチング時間)と割り込みへの応答時間(割り込み応答時)を保証しているものが多い.このプリエンプティブなスケジューリング方式は,冒頭で飛行機の自動操縦装置の例に触れたとおり,感覚的に速い処理を実行させるのではなく,明示的に確実な実時間処理を行うために必要なものである.

 また,こうした細やかなタスク・スケジューリングを実現するために,タスクの状態が規定されている.タスクは,実行状態,実行条件がそろって実行を待っている実行待ち状態,一定の条件がそろうのを待っている待ち状態,いまのところ実行する予定のない休止状態などで管理される.ITRONでは,図4のような状態でタスクを管理するように仕様が規定されている.

 こうしたタスクのスケジューリングや分割に関しては,奥が深い世界なので,諸先輩方に教えを乞うか,そのような文献を参照されることをお奨めする.とはいえ,非常に地味であるうえにあまりポピュラな話題ではないため,文献を探すのにも一苦労するであろうから,つぎの参考文献を紹介しておく.

参考・引用*文献  (1) 山崎 傑,「オペレーティング・システムの基礎」,CQ出版社.  (2) 多賀 直久,「FAパソコンとリアルタイムOS」,工学社.

f04_01.gif
〔図4〕μITRON4.0のタスク状態遷移図
ITRONでは,「実行状態」,「実行可能状態」,「待ち状態」,「二重待ち状態」,「強制待ち状態」,「休止状態」,「未登録状態」でタスクを管理する使用になっている.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日