組み込みOSが必要とされる機器とその理由

2010年8月10日(火)
松岡 正人

組み込みOSの必要性は割り込み処理の複雑さによって決まる

さて、ではより複雑な携帯電話で考えてみると分かりやすいと思います。

いまどきの携帯電話は、常に以下のことを処理できることを想定して設計される必要があります。

  • 基地局との通信(音声通話の着発信、メールやSMSの送受信)
  • Bluetoothでの接続(PCやカーナビなど)
  • キーボードからの割り込み(メニューの呼び出しなど、ユーザーの処理)
  • 現在動作しているアプリケーションが必要とする処理
  • その他の割り込み(SDカードの抜き差し、バッテリーの状態変化、USBケーブルの抜き差しなど)

これらは並列で割り込み処理が行われる必要がありますが、OSを使わないと、割り込み処理をすべてプログラミングする必要があります。

つまり、OSが必要かどうかは、どの程度複雑な割り込み処理が発生するかによって決まるといってもよいでしょう。

図2:携帯電話のソフトウエア構成(クリックで拡大)

カーナビに求められる高度なグラフィックス処理

もうひとつOSを必要としている家電の代表としてカーナビを例にとります。ここでは別の要素が見えてきます。

携帯電話と同じように複雑な割り込みを扱うことが求められますが、もうひとつ大事なのは「2次元や3次元のグラフィックス」を扱うということです。カーナビですから、地図をグラフィックスとして画面に表示させる必要がありますが、このとき、OSとグラフィックスを表示するためのミドルウエア(WindowsではDirect Xなどいくつか存在する)の組み合わせなしではプログラマーはハードウエアが分かる言語で、いちいち描画させなくてはなりません。

例えば、GPU(グラフィックスを描画する専用の半導体)のコマンドを使ってこれらのアプリケーションを開発するとしたら大変な量のソースコードが必要になります。これを楽にしてくれるのもOSの仕事です(厳密にはOSとグラフィックス描画用のミドルウエア・ライブラリの組み合わせ)。

例えば、DirectShowなどのグラフィックスライブラリを使ってC++で実装するのと、Windows Presentation Foundation を使ってC#で実装するのとでは、同じアプリケーションを開発するのに、場合によっては100倍ものコード量の違いになります。

コード量の増大はすなわちバグ率の増加となりますので、いかにコードを書かずに作り上げるかというのは、ITの世界だけでなく、組み込みの世界ではもっと重要なのです。ただし、基となるOSやこれらのミドルウエアの性能や品質をどのように保証していくのかは非常に難しい問題ではあります。そのため、マイクロソフトでは,Windows Embedded CEのソースコードの多くがアクセス可能となっており、OSのカーネル部分に関しては100%ソースコードが開示されています。

マイクロソフト株式会社

OEM統括本部 OEMエンベデッド本部 シニアマーケティングマネージャ

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています