リアルタイムOS
(RTOS)入門

組込みシステム開発向けRTOS導入ガイド

 

リアルタイムOS(RTOS)の概要と機能

リアルタイムOS(RTOS)とは、「予測可能性」と「ディターミニズム(決定論性)」という2大特長をもつオペレーティングシステムです。汎用OSとは異なり、RTOS上では常に厳格な時間制約のもとで反復タスクが実行されます。タスクごとに所要時間を予測できる「予測可能性」と、毎回同じ結果を得られるという「ディターミニズム」は表裏一体的な重要な要素となります。

RTOSには、「ソフトリアルタイムシステム」と「ハードリアルタイムシステム」が存在します。ハードリアルタイムのRTOSは、数十ミリ秒以内の予測可能な幅で応答します。 人間の脳の処理速度はおよそ30ミリ秒と言われています。そこから処理を実行するのに、100ミリ秒以上を要します。ソフトリアルタイムでは、人間の反射神経と同等の数百ミリ秒以内で応答します。ハードリアルタイムの世界では、モーター、ロボット、航空機などでは最低でも数10ミリ秒以内、場合によってはマイクロ秒単位の予測可能な幅で応答しなければなりません。

OSの分類

RTOSと汎用OSの違い

RTOSはOSの一種ですが、利用者に馴染み深い情報系のOSとは大きく異なります。通信端末やパソコン上の汎用OSには数々のアプリや機能が満載されているため、ユーザーがその場で実行するあらゆる操作をサポートしなければなりません。しかしRTOSはタスクを迅速かつ効果的に実行できるよう、合理的に設計されています。汎用OSが20ギガバイト以上であるのに対してRTOSのメモリサイズは圧倒的に小さく、単純なグラフィックインタフェースのみを搭載している場合は、わずか数メガバイトというケースもあります。さらに、RTOSはWebブラウザをはじめとする一般的な機能の多くを備えていません。

リアルタイムOS(RTOS)の特徴

5つの特徴
組込みシステムとRTOSとの違いと類似点

組込みシステムとは、たとえばロボットアームのマイクロコントローラなど、それ自体よりも大きなマシンに内蔵されたコンピュータを指します。処理時間に余裕のある非クリティカルなシステムは、Linuxなどのオープンソースの汎用OS(GPOS – General Purpose Operating System)を使って開発できます。Linuxは、機能が充実していて柔軟性に優れたOSの代表格です。一方、重要度の高いシステム(セーフティクリティカル/ミッションクリティカルシステム)の場合は、RTOSを使った開発が好まれます。重要度の高いシステムは、開発の成功にRTOSならではの特徴が不可欠なためです。たとえば、製造現場でのロボットアームには予測可能性や信頼性、作業エリアに人が立ち入った際の自動停止機能も必要です。動作にばらつきがあるとリソースの無駄や品質管理上の問題、負傷につながる恐れがあるためです。

人を感知すると自動停止するロボットアーム

RTOSを使った組込みシステム開発

RTOSは、その利点から組込みシステム(より大規模な動作環境を裏側で支えるシステム)で活用されています。RTOSは通常、グラフィックインタフェースを備えていません。グラフィックインタフェースを備える汎用OSの使い勝手と運用性を両立するためには、複数のOSを統合した開発が行われることもあります。

RTOSは、デバイスから生成されたデータに基づき動作するインテリジェントエッジデバイス(別名:電気機械装置、サイバーフィジカルシステム)によく搭載されています。周囲を監視し、状況を判断して瞬時に反応する車載デバイスなどが例です。こうしたデバイスでは通常、基盤となる構造の機能を向上させるために、人工知能(AI)や機械学習機能とリアルタイムコンポーネントが併用されています。

周囲を監視し、瞬時に反応する自動運転車

RTOSの特長とメリット

RTOSは、スモールフットプリント、高速性、即応性、ディターミニズムをあわせ持つため、タスクを迅速かつ効率的に実行し、常に予測どおりの応答結果を得られます。また、重要度の高いホストデバイスの動作基盤であるため、セキュリティが厳格で、動作不良や障害への耐性も強化されています。さらに、更新版が継続的にリリースされるため、効果的なコード開発を促進する開発者指向のOSであると言えます。

商用RTOSと内製RTOSの利点とリスク

商用RTOSパッケージを購入せず、自社プロジェクトに特化したRTOSを内製する企業もあります。ユースケースに合わせたOSを設計できる、仕組みや内部構造を把握できる、などのメリットはあるものの、総体的には高コストで時間のかかるアプローチです。また、OS開発に不慣れなエンジニアの場合、完成までに長い時間を要します。一方、商用版を使うとスピーディーかつ簡単に導入できるほか、経験豊富な技術サポート部門に不明点を問い合わせたり、サポートを依頼できます。OSはハンマーやドリルと同様、何かをするための「ツール」です。自社プロジェクトに適したOSを社内開発することもできますが、時間がかかるだけでなく、パフォーマンスや機能の保証もありません。

RTOSの利用目的

信頼性や再現性の高いアクションが必要なアプリケーションでは、汎用OSよりもRTOSが好まれます。信頼性や高速処理が必須の組込みシステムやミッションクリティカルシステムではとくに、リアルタイムOSが不可欠です。

リアルタイムOS開発に影響を与えるもの

RTOS業界は、コンピュータハードウェア業界の動向に大きく影響されます。マルチコアなどの最新技術が普及すると、それに合わせてOSも更新されます。また、OS開発者は人工知能(AI)や機械学習、5Gなどの最新技術の動向にも注視し、新技術から生まれる新たなユースケースにも対応しなければなりません。OSを設計する際は、ハードウェアだけでなく、ソフトウェア開発のトレンドも考慮する必要があります。開発のフィールドや、開発者の資質が大きく変わる中、新たな言語や技術、デプロイ形態をサポートできるよう、OSも進化させていく必要があります。

機械学習や5Gなどの新興技術を取り入れたOS開発

RTOSのアーキテクチャ

RTOSのアーキテクチャには、「マイクロカーネル」と「モノリシックカーネル」という2つの設計思想があります。各種コンポーネントが独立した空間に分割されているOSはマイクロカーネルシステム、それぞれシステム構造が異なり、単一空間で動作するOSはモノリシックシステムと呼ばれます。

マイクロカーネルシステム

マイクロカーネル型アーキテクチャでは、同じ空間を共有するそれぞれのコンポーネントに独立した「部屋」が割り当てられるため、隣接するコンポーネントを邪魔することなく、個々の部屋を改装できます。しかし、相互通信を行うには、部屋のドアを開けて廊下に行かなければならないため、時間がムダになります。アクションの実行結果は、まずカーネルに戻してから、参照先のコンポーネントに移動させることになります。つまり、操作内容によっては必要以上に時間がかかってしまいます。

モノリシックシステム

モノリシックシステムでは、部屋と部屋の間に「壁」がありません。そのため、互いの部屋を素早く行き来できます。小規模カーネルを実装する代わりに、他のエリアの制御も含めたすべてのサービスを一体的に提供します。操作は基本的にカーネル空間で実行されるため、カーネルに実行結果を何度も戻すことなく、速度とパフォーマンスを向上できます。ただし、一部を変更すると、OS全体に影響が出る可能性もあります。

マイクロカーネルシステム モノリシックシステム
カーネルと実行空間は分離しているため、カーネル自体は非常に極小(ベア状態)である。ユーザー空間同士での実行はお互いにアクセスできず、一旦カーネルに戻してから行われる。 カーネルと実行プロセスは、同じ空間を共有するため実行速度は速く、高パフォーマンスを実現できるが、システムの更新時は関連する箇所の更新量が大きくなることもある。

リアルタイムシステムの例

RTOSは世界各地で無数の製品に搭載されており、VxWorksだけでも20億台以上のデバイスの動作を支えています。自動車エンジンから、宇宙の深部を観測する望遠鏡、ヘリコプター誘導システム、火星探査機にいたるまで様々なシステムに、リアルタイムOSベースの組込みシステムが採用されています。

航空宇宙・防衛 通信 運輸システム 医療機器 製造機器
  • フライトディスプレイ制御装置
  • エンジンタービン
  • ドローン
  • 宇宙探査機
  • 5G通信用モデム
  • 衛星通信モデム
  • 基地局
  • 機能安全システム
  • 緊急ブレーキシステム
  • エンジン警告システム
  • MRI(磁気共鳴画像)診断装置
  • 手術機器
  • 人工呼吸器
  • 産業用ロボットシステム
  • 安全システム
  • 石油・ガスプラントの振動モニタ
  

組込みシステムとリアルタイムOSを取り巻く世界の変化

新たな開発手法への対応

組込みシステムに求められる機能は、それらを動かすOSにも要求されます。リアルタイムOSは、常に最新イノベーションに対応し、最新の開発手法を取り入れる必要があります。つまり、次世代の組込みシステム開発者が採用するフレームワーク、言語、開発手法との互換性を実現すると同時に、セキュリティ、安全性、パフォーマンス、信頼性の面で妥協することは許されません。

レガシーシステムのサポート

技術革新によってパフォーマンスや接続性が改善し、開発サイクルが短縮すると、新製品でさえもあっという間に陳腐化してしまいます。このため、「レガシーシステムをどう扱うか」という問題が生じます。組込みアプリケーションのコーディングを延々と修正することは予算的に困難です。しかしシステムメーカーがソフトウェアの認証を取得している場合はとくに、投資を無駄にしないためにも既存のコードを最大限活用したいというニーズもあります。

新たなハードウェアと仮想化技術

マルチコア対応ハードウェアプラットフォームの進化により、組込みシステムやアプリケーションを単一プラットフォームで統合可能になりました。1つのチップに2~64コアのCPUを搭載できるため、最終製品の低コスト化、小型化・軽量化を実現できるようになりました。

仮想化技術も組込みシステムの開発を加速する大事な要素です。仮想化することにより、単一のハードウェアのハイパーバイザー上で複数の組込みシステムを同時に実行することができます。既存IPへの投資効果を最大化しつつ、レガシーアプリケーションと新プラットフォームを連携させたい製造業者にとって、仮想化は不可欠な技術です。

商用RTOS選定時のポイント

オープンソースか、RTOSか

開発者がRTOSを内製することもできますが、オープンソースまたはコミュニティで開発されたOSを使うこともできます。その場合、リアルタイムOS機能の一部は実現できますが、課題もあります。大規模デプロイでは通常、数百~数千ドル、場合によっては数百万ドルのボードを活用しながら開発を進めるため、ハードウェアへの投資がかさばります。また、オープンソースOS導入時に問題が発生すると、納期や予算が一気に厳しくなります。さらにサポート体制も万全ではないため、ドキュメントの不足やバグなどの問題も想定されます。一方、商用RTOSは技術サポート体制が充実しているため、問題発生時や不明点の確認時に専門家による支援を受けることができます。

技術サポート体制が充実した商用RTOS

商用RTOS採用の判断材料となるビジネス課題

  • IoTがもたらす莫大な成長機会を最短で実現したい
  • 最先端の機能と性能で製品を差別化したい
  • 現場で稼働中のデバイスへのリスクを最小限に抑え、コアOSへの投資を活かしつつ市場ニーズの進化に合わせた機能を製品に追加したい
  • プラットフォームを低コストで運用したい
  • リアルタイムシステムを迅速にデプロイして市場投入までの時間を短縮し、開発リスクを低減したい
  • 現行製品の保守と新製品の開発人材リソースを効率よく配分したい
  • リアルタイムの安全性とセキュリティ機能(中~高レベルの安全認証)が必要なプラットフォームのリスクを低減したい
  • 複数のテクノロジーやプロダクトラインが混在し、多拠点・多部門にまたがり複雑化する開発体制を効果的に管理したい

安全認証の必要性

安全認証が必要なシステムの開発の場合、商用RTOSを活用すると、スケジュール遅延リスクを抑えつつ、簡単かつコスト効率よく認証を取得することができます。安全認証の評価では、取得対象の認証に必要なエビデンス(該当する文書のページまたは安全性プロファイル)を提供可能な商用RTOSが必要です。

ハードウェアのサポート

商用RTOSでは、基板の立ち上げや設計を支援するボードサポートパッケージ(BSP)が豊富に揃っています。ソフトウェア開発キットを使うことで、ハードウェアの種類に合わせて迅速かつ容易にRTOSを利用できます。ウインドリバーは、組込みソフトウェア業界随一の豊富なBSPを提供しています。テスト/バリデーション(検証)によってシームレスな相互運用性が実証されている当社のBSPを、開発プロセス迅速化や設計イノベーションにお役立ていただけます。

ビジネスニーズ、コスト構造、予算を反映した導入判断

商用RTOSのコスト

商用RTOS導入の大きなハードルは「予算」かもしれませんが、競合優位性、市場投入スピード、コストやリスクの低減、安心感など、トータルでの利点を考慮したうえで導入可否を判断すべきです。ビジネスケースを作成・検証して事業価値を評価し、コストと利点の両面から判断することが重要です。

商用RTOSのロイヤリティ形態

商用RTOSの購入は、プロダクションライセンス(PL)モデルによるロイヤリティ形態がその特色となりますす。PLモデルは、製品の出荷数に応じて課金されるリスク共有モデルです。 初期一括払いも選択できますので、RTOSを購入する際は、ビジネスニーズやコスト構造、予算を総合的に考えて、どちらがよいか判断する必要があります。

互換性と新バージョンへの対応

パフォーマンス、セキュリティ、機能追加などの長期的なサポートも、商用RTOS選定時に考慮すべき要素です。たとえば、APIとの互換性やPOSIX®準拠が継続的にサポートされるか、などの項目をチェックする必要があります。OSの中核機能(カーネル)に対する数か月先までの更改予定を把握できれば、バージョンアップやロールバックに必要な工数を見積もりやすく、ネットワーク機器やBSPの移行準備にも役立ちます。また、選択したオプションに関するドキュメントや、スムーズな展開に必要な技術サポート体制が整備されていることも、きわめて重要な判断材料です。

ウインドリバーのRTOS製品

組込みシステムで実績No.1のRTOS「VxWorks

VxWorks は、セキュリティと安全性が不可欠なミッションクリティカルな組込みシステム向けRTOSとして、組込み業界で最も信頼され、幅広く採用されています。モダンな開発アプローチを取り入れた、リアルタイムかつディターミニスティックな実証済みランタイムを提供します。セキュリティ、安全性、高パフォーマンス、高信頼性における実績を積み重ねたVxWorksは、業界やデバイスの種類にかかわらず様々な企業から、信頼の基盤として活用されています。

VxWorksの概要と利点
  • 30年以上にわたる信頼の実績
  • 日本国内でのテクニカル/セールスサポート体制
  • モダン開発言語(C/C++およびBoost、Rust、Python)のサポート
  • アプリケーションをITサービスのようにデプロイ可能なOCI準拠コンテナをサポートする唯一のRTOS
  • POSIX® PSE52規格に準拠
  • 幅広いボードサポートパッケージ(BSP)および継続的な最適化により、最先端のプロセッサやSoC(システムオンチップ)に対応
  • 各業界の最も厳格な安全規格に準拠した、600件以上の幅広い認証プログラムを含む安全認証取得実績
  • ソースコードすべてにアクセスできるため、製品を柔軟にカスタマイズ可能

組込みシステム設計を補完するソリューション

ウインドリバーでは、商用RTOSソリューションの「VxWorks」以外にも組込みシステム向け製品群を取り揃えています。VxWorksは、主に認証取得が必要なプロジェクトやIPを保護すべきプロジェクト、GPL系ライセンスのコード使用不可のプロジェクト、当社IP Servicesによるカスタム対応サポートが必要な案件などに適しています。 また開発環境にサポート対象外のアーキテクチャがある場合は、Wind River Linuxもご利用いただけます。受賞歴をもつグローバルカスタマーサポート部門およびIP Services担当部門が当社製品すべてをバックアップし、お客様のビジネスやプログラムの目標達成を支援します。

IP Services Support and Maintenance Development Tools
VxWorks
Kernal
User Space
Networking
File Systems
Connectivity
Security
Frameworks/Languages
Linux
Yocto Project
ISO 9001:2015
BSPs
Upstream Model
Native
Multi-core Hardware

ウインドリバーの製品・サービスがシステム設計を支援

RTOSの導入をご検討中ですか?

RTOSの導入は、当社の専門家にご相談ください。貴社のビジネスニーズにあわせたご提案をさせていただきます。

お問い合わせ

リアルタイムOSに関するFAQ(よくある質問)

RTOSの機能には、タスクスケジューリング、割り込み処理、タスク間通信と同期、メモリ管理、デバイスドライバ管理などがあります。RTOSは、タスクを期限内に完了できるように、ディタ―ミニスティックで予測可能な動作を提供する必要があります。
RTOS(リアルタイム・オペレーティング・システム)は、タスクの期限に厳しい制約があるリアルタイムシステムにおいて、タスクを管理し、優先順位をつけるために設計された特殊なソフトウェアシステムです。従来のOSとは異なり、イベントやタスクに対するタイムリーなレスポンスを保証することができるため、ミッションクリティカルなアプリケーションに適しています。
RTOSは、医療機器、産業用制御システム、航空宇宙・防衛システム、自動車搭載電子機器、家電製品など、時間的な制約が厳しく要求される様々なアプリケーションで使用されています。また、信頼性、安全性、性能が重要視される組込みシステムでもよく使われています。
RTOSのタスクスケジューリングは、一般的にプライオリティベースであり、タスクは緊急度と重要性に基づいて優先順位が付けられます。スケジューラはプリエンプティブアルゴリズムを使用して、実行可能な最も優先度の高いタスクを選択し、重要なタスクが時間通りに実行されるようにします。
予測可能ででディターミニステックな動作により、重要なタスクが時間通りに完了することが保証されます。また、リソース管理の改善、応答性の向上、システムオーバーヘッドの削減を実現し、システムの性能の向上をもたらします。
システムを構成し最適化するための専門知識と経験が必要であることが挙げられます。また、リアルタイム動作は開発プロセスに複雑さをもたらし、システムの信頼性と安全性を維持するために、予期せぬイベントやエラーを処理できるように設計する必要があります。さらに、RTOSのコストは、従来のオペレーティングシステムよりも高くなる可能性があります。
どれが「ベスト」ということはありません。他のOSと同様、リアルタイムOSもそれぞれ一長一短で、用途によって最適な選択肢が異なります。
日本国内で組込み技術の課程を開講している大学が少数ですがあるほか、公開されているオンラインリソースや無料の開発ツール(VxWorks SDKなど)をRTOSの実装練習にお役立ていただけます。ウインドリバーでは、インテリジェントシステムにおける課題対処スキルを学べる各種オンラインコースも提供しています。トレーニングを受講することで、個人の能力向上や、全体目標を迅速かつ効率的に達成するためのチーム力の底上げを図ることが可能です。【無料オンライン講座】VxWorksを試そう!Linux開発者のためのリアルタイムOS - 入門編もどうかご覧ください
RTOSではアプリケーションのリフレッシュやバッファ機能を使わず、入力データをただちに処理するため、入力環境の変化に合わせてシステム応答を迅速化・精緻化できます。これを実現するために、OS機能と切り離された、非侵入型の小規模カーネルを使います。
カーネルは、交響曲の指揮者のような役割を果たします。カーネル自身は何も実行せず、他の機能の邪魔にならないようにそれらを統制・管理します。RTOSのカーネルの場合、操作が実行されていない間は完全な待機状態となります。
タスクの優先度はそれぞれ異なりますが、多くのRTOSでは、プリエンプティブな優先度ベースのスケジューリングシステム(優先度が一番高いアイテムから順番に実行する方式)が採用されています。他にも、RM (Rate Monotonic)やEDF(Earliest Deadline First)などのスケジューリング方式があります。
Raspberry Piは安価でインタフェースも使いやすいため、娯楽や趣味のプログラミングで人気ですが、他のボードと同様に幅広いOSに対応しており、リアルタイムOSも数多くサポートしています。当社では、Raspberry Pi 3B/3B+およびRaspberry Pi 4B向けのVxWorks SDKをGitHubで無償提供しています。大規模プロジェクトのPoC(概念実証)や試作用の開発環境としてだけでなく、リアルタイムOS習熟用の環境としてもご利用いただけます。
大半のOSは組込み環境でも使用できますが、組込みLinuxは汎用Linuxディストリビューションとはいくつかの点で異なります。組込みOSは、組込みシステムの動作を実行することが目的のため、汎用OSとは異なる設計になっています。サイズを極小化できる一方、グラフィックインタフェース機能はありません。また、デスクトップ画面ではなく端末で起動するため、アプリケーションやドライバは付属されていません(開発者が個別に追加することは可能)。
Wind River Linuxは、リアルタイムOSによるディターミニスティック性やセーフティクリティカルな機能を必要としない組込みシステム向けに設計された製品です。無償でダウンロード・インストールできる点が最大の魅力です。最適な組込みLinuxについては、eBook「組み込みLinux入門」もご覧ください。
応答における低レイテンシ・高速通信を実現するRTOSは、近年台頭する5G技術の分野で大きな役割を担っています。また、次々に流れてくるデータをリアルタイムで即時に処理できるため、機械学習ベースのデバイスにも活用されています。
ウインドリバーは、2019年12月に「ROS 2 for VxWorks」を公開しました。こちらはVxWorksのビルド環境でRobot Operating Systemをご利用いただけます。