組み込みソフト開発のしきいを下げる"リアルタイムOS"のすべて
Columm リアルタイムOSが重要視される背景
昨今では,ビデオ・オン・デマンド,MEPG-2,MPEG-4のCODEC注を含んだセットトップ・ボックスなど,リアルタイム処理の性能が要求されるシステムが増えてきました.限られた面積のなかに組み込まれるチップの処理性能が格段に上がったため,実現できるようになったわけです.技術が進歩すれば,それを利用した製品が数多く出現するのは自然なことでしょう.今後しばらくはLSIの集積度は上がる一方で,さらに高機能で高性能なCPUも登場してくるはずです.
リアルタイム・システムを開発する観点からいえば,処理速度の向上は大歓迎です.リアルタイム性能を極限まで引き上げるために,日夜苦労している開発担当者にとっては,これ以上の福音はありません.まさに「時は金なり」を地でいくようなシステムがリアルタイム・システムであると言えるでしょう.
一方で,ハードウェアを熟知したソフトウェア技術者の不足も,開発担当者の悩みの種となっています.以前ならば自社でじっくり教育できたことも,製品の開発周期の短縮や長引く不況の影響などが原因で,現場では十分な時間がかけられないのが現状のようです.また,以前ならばアセンブリ言語で直接プログラムできたような組み込みシステムも,CPUの複雑化,多機能化,処理の並列化,ミッション・クリティカルな処理の増加にともなって,アセンブリ言語で書けるような単純さはなくなりつつあります.システム仕様の制約上,OSを利用しないほうがいい場合もありますが,システムの性能や予算に余裕があればリアルタイムOSを使って開発効率を上げたいと思う開発担当者も相当数いることでしょう.製品を市場投入するための開発期間をできる限り短縮しなければならず,さらにプログラマはアプリケーション・プログラムの経験はあるもののシステム・プログラムの経験はあまりない人が多いという事情も,リアルタイムOSの重要性が増した遠因であると筆者はみています.
このような背景事情によって,組み込みシステムの世界でもリアルタイムOSを利用することが重要になってきたのであれば,まず,技術者はOSやリアルタイムOSの仕組みを知ることが重要であると考えます.
もちろん細かいシステム・レベルあるいはハードウェア・レベルの動作のことは知らなくても,とりあえずプログラムは書けるでしょう.しかしOSを熟知していれば,より早い段階でプログラムを最適化できますし,処理性能を向上させる上で問題になるボトルネックも,いち早く見極めることができます.問題点がアプリケーション・レベルの問題なのか,システム・レベルの問題なのか,それともハードウェアの問題なのかが分かるだけでも,問題解決がしやすくなるものです.
あるいは自分でシステム・レベルのソース・コードを書かないぶん,OSの動きを十分に把握していないと,とんでもない処理結果がでてくる可能性もあります.提供するシステムの安全性を高めるためには,絶対にOSの基礎的な知識は必要です.それがより強力に必要になるのが組み込みシステム開発の世界とも言えるでしょう.