自動車やロボットなどの組み込みシステムの中には、適切な時間内に必要な処理を完了できないと、大きな悪影響が出る製品がある。「時間内に処理を完了する」ために用いられているのが、RTOS(リアルタイムOS)だ。
この記事では、RTOSの概要や特徴、RTOSを活用することのメリット・デメリットに加え、RTOSの例を3つ紹介する。
RTOS(Real-time operating system)とは?
RTOSは組み込みシステムの中でも、決められた時間内に必要な処理を完了する必要がある製品に多く用いられている。自動車やロボットに搭載されている制御システムなど、処理が遅れると大きな事故に繋がってしまうおそれがある製品が代表的だ。
処理時間の制約を守るためには、それぞれの処理がどの程度の時間で完了するか予測する必要があり、この予測性能をリアルタイム性とよぶ。ここで、リアルタイム性が必要とされる理由とRTOSの基本的な機能について解説する。
リアルタイム性が必要とされる理由
パーソナルコンピュータやスマートフォンなどは、容量の大きいファイルや複数のアプリケーションを立ち上げていると、処理が重くなりフリーズしてしまうことがある。使い勝手は悪いが、ほとんどの場合で事故などは発生しないため、大きな問題にはならない。
一方で、リアルタイム性が追及される組み込みシステムの例として、産業用ロボットが挙げられる。産業用ロボットは特定の範囲内に作業者が近づいた場合、緊急停止する機能が搭載されている。もしロボットのOSがフリーズしてしまいこの機能が動かないと、ロボットが作業者に接触してしまい、大きな事故に繋がってしまう。
このように、あらかじめ設定された時間内に、決められた処理を完了しないと大きな問題に繋がる製品では、リアルタイム性の確保が重要となる。
RTOSの特徴
RTOSは、リアルタイム性を確保するために、以下のような特徴をもっている。
- 1.複数タスクの同時処理が可能
- 2.最悪応答時間が決まっている(保証する設計をしている)
- 3.リアルタイム性を損なう仮想メモリは原則サポートしていない
- 4.複数のタスク間通信を保有している
- 5.機能の取捨選択が可能
最悪応答時間が決まっていて、それを保証するような設計となっている点が、RTOSのもっとも大きな特徴である。この機能が搭載されていることで、実時間処理が必要な機能を実装できる。
RTOSのメリットとデメリット
RTOSは多くの組み込みシステムに搭載されている通り、導入することで大きなメリットがある。一方で、メリットを得るためには許容せざるを得ないデメリットもあるため、それぞれを簡単に紹介する。
RTOSを採用するメリット
RTOSを搭載するもっとも大きなメリットは、開発規模が大きく複雑な製品開発の難易度を下げてくれる点だ。技術的にはRTOSを利用しなくても開発できる可能性がある。
しかし、システムが複雑化すればするほど、多くの関数が必要になり、それらの優先順位付けや割り込みの調整などを行うのは困難だ。
また、RTOSはシステムが必要とするさまざまな機能を提供してくれるため、提供される機能を1から構築する必要がなくなる。準備したプログラムを他の製品に再利用しやすくなることも含め、開発を効率化でき、貴重な工数を他の製品との差別化になるような部分に集中させることができる。
RTOSを採用するデメリット
RTOSを採用するデメリットとしては、関数や変数などを大量に使用することで、メモリの消費量が大きくなる点が挙げられる。ただ、RTOSは汎用的に使われるOSに比べ小型に設計されており、昨今のマイコンは大容量化しているため、大きな問題にならない場合もある。
製品コストの低減など、マイコンの容量に制約がある場合には、関数や変数を減らすような工夫が必要である。また、RTOSはマイコンの違いの影響を受けやすいため、従来と異なるマイコンにRTOSを移植する際には、専門的なスキルを保有するエンジニアが必要となる。
RTOSの例
RTOSにはさまざまな種類があるが、ここでは3種類のRTOSについて、概要を紹介する。
VxWorks
現在流通しているRTOSの中でも、もっとも古くから使われているのが「VxWorks」だ。高い安全性が必要とされる航空宇宙や防衛の分野で広く使われており、NASA(アメリカ航空宇宙局)は探査機にVxWorksを利用してきた。
他にも、輸送機や自動車、各種産業機器、医療機器などさまざまな製品に採用されており、VxWorksの実績は十分である。新たにRTOSを利用するユーザーにとっては、採用する際の安心感に繋がる。また、対応しているプラットフォームが多い点も、VxWorksの特徴の1つだ。
Azure RTOS
マイクロソフトは、2019年に「ThreadX」というRTOSを提供していたExpress Logic社を買収し、ThreadXをAzure RTOSという名称に変更して提供している。ThreadXの特徴的な機能としては、優先度継承や高度なソフトウェアタイマー、コンパクトなサイズなどがある。
Azure RTOSになったことで、今後はマイクロソフトが提供するIoTソリューションであるAzure Sphereとの連携が期待される。しかし、現時点で十分な連携は実現しておらず、今後に期待が集まる。
ERIKA Enterprise
多くのRTOSが幅広い製品をカバーする中、「ERIKA Enterprise」は、車載向けのフリーなRTOSを狙った特徴的な戦略をとっている。
発表当時は、多くの自動車関連企業が自社で開発をせざるを得ない状況だったため、このRTOSを活用することで、自社の主たる分野に経営資源を専念できるような環境を狙っていた。
日本ではあまり知名度が高くないRTOSだが、欧州を中心に車載や産業機器分野では、大きなシェアをつかんでいる特徴的なRTOSである。
まとめ
RTOSは、複雑な処理を行う必要がある組み込みシステムには必要不可欠であり、特徴的な機能を持ったRTOSが数多く開発されている。生産性を向上するための産業用ロボットや生活を豊かにしてくれる自動運転も、RTOSなしには実現できない。
今後も、リアルタイム性が必要な製品開発が拡大していくことは想像されるため、新たなRTOSが生まれたり、既存のRTOSに機能が追加されたりするだろう。組み込みシステムに関わる場合には、RTOSの開発動向にも注目しておきたい。