組込みOSとは、特定の機能や用途に特化した電子機器――たとえば家電製品、車載機器、産業用ロボット、医療機器などの内部で動作するオペレーティングシステム(OS)のことを指します。
パソコンやスマートフォンに搭載される汎用OSとは異なり、組込みOSは限られたリソース(CPU性能、メモリ容量、電力など)の中で、特定の処理を効率的かつ安定的に実行することが求められます。
汎用OS | 組込みOS(リアルタイムOS含む) | |
主な用途 | PC、スマートフォン、サーバなど | 家電、車載機器、産業機器、IoTデバイスなど |
リソース要件 | 高い(CPU・メモリを多く使用) | 少ない(数KB~数MB程度でも動作可能) |
機能の豊富さ | 多機能 | 必要最小限 |
リアルタイム性 | 高くない | 非常に高い |
カスタイマイズ性 | 低い(汎用のまま使用) | 高い |
組込みOSの主な役割は、ハードウェア資源の管理、複数の処理(タスク)の切り替え、入力や通信の制御などであり、これによりシステム全体が意図どおりに動作するようになります。
特に近年では、ネットワーク対応やソフトウェアの複雑化に伴い、タスクの管理機能やリアルタイム性を備えた組込みOSの重要性が高まっています。
このような背景の中で登場するのが、組込みOSの一種である「リアルタイムOS(RTOS)」です。
RTOSは、組込みシステムにおいて“決められた時間内に処理を完了する”ことが求められる場面で活躍します。
リアルタイムOS(RTOS)とは、リアルタイム性に特化した組込みOSです。
組込みシステムにおいて「決められた時間内に処理を完了する」ことが求められる場面として、たとえば、自動車のブレーキ制御や医療機器の動作制御、産業用ロボットのタイミング制御など、処理の遅延が安全性や品質に直結するケースです。
このような厳密な時間制約のあるシステムを実現するために用いられるのが、RTOSです。
RTOSは、複数のタスクを効率よく同時に実行するマルチタスク機能に加え、タスクの優先順位やタイミングに基づいて瞬時に切り替えを行うスケジューリング機能を備えています。
これにより、外部からの入力やイベントに対して、あらかじめ決められた時間内で安定した応答を実現することができます。
RTOSにはさまざまな種類があり、代表的なものとして国産の「T-Kernel」や、国際的に広く使われている「FreeRTOS」などが挙げられます。
それぞれのRTOSには、対応するハードウェア、機能、ライセンス形態、開発コミュニティなどに違いがあり、用途や要件に応じて最適なものを選択することが重要です。
▼関連の詳しい解説はこちら
近年の組込みシステムでは、リアルタイム性が求められる処理(制御系)と、リアルタイム性は不要だが高機能が求められる処理(UIなど)が1つのデバイス内で同時に求められるようになってきました。
これらを1つのシステムにまとめるには「RTOSと汎用OSを同時に動かす」必要があります。
ここで必要になるのが、ハイパーバイザという仮想化技術です。
ハイパーバイザは、1つのCPU上で複数のOSを同時に実行させることができる仮想化技術です。
▼関連の詳しい解説はこちら
その最大の役割は、RTOSや汎用OSといった異なる性質を持つOS同士を、安全かつ独立して動作させる環境を提供することにあります。
各OSはハイパーバイザによって分離されており、一方のOSに不具合やセキュリティ上の問題が発生しても、他方に影響が及ばないように制御されています。
こうしたハイパーバイザの機能は、たとえば車載システムのようにリアルタイム性と多機能性が両立される場面で活用されています。
車載システムの例:RTOSが担う機能 | 汎用OSが担う機能 | ハイパーバイザの役割 |
---|---|---|
エアバッグ制御、ABS、エンジン制御 | ナビ、音声認識、音楽再生 | 両者を同時に動かし、互いを隔離・管理 |
近年ではハイパーバイザを活用して複数のOSを同時に動かすシステムも増えていますが、その中でもRTOSは、リアルタイム性や安定性が求められる制御処理を担う中核として、組込みOSの中でも重要な役割を果たしています。
限られたリソースの中で確実に動作することが求められる組込みシステムにおいて、RTOSの理解は開発の基盤となる知識と言えるでしょう。