2019 年 10 月 23 日
組込みOS最前線 #2 RTOS の実際、課題と回答
組込みOS最前線 #2「OSS的製品開発」セミナーに参加した記者による各セッションのレポートをお届けします。
RTOS の実際、課題と回答
サイバートラストでは、IoTや組込みLinuxの最新動向を紹介するセミナーを開催しています。組込み機器におけるLinux OSの利用を推進するために、組込みOSや関連技術、コミュニティの動向などを共有することを目的にしたものです。
ここでは、セミナーシリーズ「組込みOS最前線」の第2回として開催された「OSS的製品開発セミナー」から、鈴木保是氏によるセッション「RTOSの実際、課題と回答」の模様をレポートします。
鈴木氏のセッションでは、改めて組込みプログラミングにおけるRTOS(Real-time Operating System)の意義をおさらいしたうえで、RTOSの課題と、そこに組込みLinuxを加えるメリットが語られました。
鈴木氏は冒頭で「RTOSはけっこういけている」としながら、「課題は、不得意な所が出てきたこと。言いたいのは『不得意なところに組み込みLinuxはいかがでしょうか』」と結論を最初に述べました。
組込みシステムでRTOSを使う意義
まず組込みシステムが使われる状況として、決まった時間内に反応することを求められることが多い点について鈴木氏は挙げます。例としては、多くの人が使う自動改札機や、トラブルを検出したら止めなければならないMFP(複合機)などがあります。このように、外界とのインタラクションと、機械とのインタラクションが求められる状況です。
こうした機器は、時間制約を常に意識したプログラムが求められると同時に、人がいないようなところでも動くという信頼性の確保も大事です。
組込みシステムでは、RTOS以前は、割込ハンドラを直接扱うプログラミングが必要でした。割込ハンドラが1つであれば簡単なのですが、センサーやデバイスが増えるとハンドラも増えますし、規模が大きくなっても増えます。そのため、割込禁止期間をできるだけ短くする工夫や、割込禁止をトランザクションのように扱う工夫などがなされていて、「スケジューリングやコンテキストスイッチの処理を毎回書くのは嫌だ」という状況でした。
RTOSを使えば、そうした処理が任せられます。リアルタイム・マルチタスクにより、優先度に応じたスケジューリングとそのディスパッチが管理されます。タスク同期などもAPIで利用できます。「これでずいぶん楽になる」と鈴木氏は言います。
また、保守性や再利用性も高まります。ハードウェアやミドルウェアのある程度の抽象化も利用できます。
一方、RTOSのオーバーヘッドについては、半導体の高集積化により気にならなくなっているそうです。
こうしたことから、RTOSを使うことにより、組込みシステム開発では、タスク設計・分析に集中できることが利点だと鈴木氏は説明しました。
RTOSの課題はグラフィックスやネットワーク
そんなRTOSにも課題があります。主に、グラフィックスやネットワークまわりです。
たとえば、お客様から「リッチなHMI(Human Machine Interface)で誤操作を防ぎたい」「音声ガイダンスを使いたい」といった声を受ける場合があります。製造ラインの組込みシステムで誤操作が低減すれば、価格競争力の向上にもつながります。
同時に、サービスの高度化とIoT化の波も来ています。ネットワークによる機器間の通信で、処理に最適化されたノードが連携して機能を提供でき、結果的にコストの低減と価格競争力向上につながります。また、ネットワーク経由でローカルのデータを収集することで、たとえばニーズの分析や、的確な予測ができ、やはり結果的にコストの低減と価格競争力向上につながります。
「しかし、RTOSにおいてはグラフィックスやネットワークのサポートは手薄かもしれない」と鈴木氏は説明しました。
RTOS+組込みLinuxで解決
そこで鈴木氏は、「RTOS+α」を実現するために、RTOSに組込みLinuxを組み合わせるという方法を提案しました。
まず、α=リッチUIの場合です。Linuxを使うことにより、チップベンダーによるグラフィックドライバのサポートが得られ、作成のための各種フレームワークやミドルウェアが充実します。タッチや音声などのマルチモーダル化への対応もしやすく、内部や外部の開発リソース利用や連携も容易になります。
「RTOSとLinuxを組み合わせるためにマルチチップになるのが嫌という意見もあるかもしれないが、マルチコア統合で価格的な追い風もある。最近の組込みシステムではマルチコアが15%という調査結果もある」と鈴木氏は語りました。
α=ネットワークの場合も同じようなことがいえます。チップベンダーによるネットワークドライバのサポートが得られ、クラウド連携やM2Mなどに使える多様なスタックが存在し、内部や外部の開発リソース利用や連携も容易になります。
さらに、特にインシデント対応を重ねてきた実績による安全性や、不具合が見つかったときの対応スピードで、Linuxにメリットがあると鈴木氏は述べました。
このようにRTOSとLinuxを組み合わせる技術としては、MCAの「OpenAMP」や、Toppersの「MDCOM」がある。「くっつけやすくなってきたということは自信をもって言える」と鈴木氏。
さて、このようにLinux採用を検討するにあたり、心配ごととしては、GPLなどのOSSライセンスや、ネットワークセキュリティなどがあります。「その部分は、われわれサイバートラストの経験がある分野なので、ご相談ください」と鈴木氏は締め括りました。