超速解説 RTOS
「RTOSとは何か」を理解できる7つの特徴
組み込み機器をどう動かすかを考える際、選択肢として浮上するのが「RTOS(Real Time Operating System)」である。このRTOSとは何であり、なぜ必要か、どのような特長を持つのか、組み込み向けLinuxとはどう違うのか、解説する。
RTOSの存在意義
組み込み機器と一口で言ってもどのあたりをターゲットにするのかで議論は変わるが、8bit~32bit程度のマイコンを利用した比較的スタンドアロンに近い組み込みシステムを議論の対象とした際、頻出する言葉が、「RTOS(Real Time Operating System)」である。
それぞれのマイコンベンダーが開発環境に合わせ、最低限のデバイス用ライブラリや標準的なランタイム(文字列操作など)を提供してくれるのが通例であり、これだけでもシステムは構築できる。であるからして、こうしたシステムでは必ずしもOSが必要とは限らないのだが、OSなしで全く問題ないかと言われれば、そうとはいえない。ざっと挙げてみるだけでも、
- マルチタスク処理はライブラリレベルでサポートされる事はないので、必要なら自分で作り込む必要がある
- 用途によっては通信が必要で、各種シリアルのみならずイーサネットやCANなどを使い、さらにはプロトコル実装まで要求される場合がある
- 同じCortex-Mベースのマイコンであっても、ベンダー別にハードウェア構成などが違うから、プログラムの可搬性は低い。なので、複数機種への実装が要求されるようなケースでは、メーカー毎のライブラリをそのまま使うのはコストが増える
といった問題がある。こうした用途に向けて、マイコンベンダーのみならず複数のOSベンダーがRTOSをリリースしているのである。
RTOS、7つの特徴
RTOSは、上に挙げたような問題を解決するための手段であり、具体的には以下のような特長を持つ。
- 複数スレッド(タスク)の並行動作が可能
RTOSはOperating Systemであり、複数スレッド(RTOS業界ではタスクと称することが多いが、実質的には同じものである)を並行して動作させることが可能だ。また、この際にそれぞれのスレッドをどう管理して、動かすかを選択できる(一般的なOSによくあるタイムシェアリングの他にプライオリティベース、イベントドリブンなど細かく選ぶことが可能なものが多い。
- 最悪応答時間が決まっている
“Real Time”の意味は「最悪応答時間が決まっている」である。具体的には、割り込みが入ってから、ISR(Interuppt Service Routine)経由で当該ルーティン(を実施しているタスク)が実行可能状態になり、処理を開始するまでの所要時間の最悪値が保証されている。これにより、実時間処理が必要な作業を実装することが可能である。
- 最悪応答時間を保証する設計となっている
この最悪応答時間を保証するために、OSあるいはスケジューラで提供される機能は最低限に絞られており、なるべく軽く動くように設計されている。
- 仮想メモリは原則的にサポートされない
RTOSにおいて仮想メモリは原則として非サポートである。これはリアルタイム性を損なうためである(例えばリアルタイム処理が必要なタスクがスワップアウトされたりすると、最悪応答時間を守る事ができなくなる。またページングそのものが決して軽い処理ではないので、このオーバーヘッドは無視できない)。また、メモリアロケーションの仕組みも、リアルタイム性の確保のために動的な仕組みが提供されるケースは少なく、大抵は固定サイズのメモリブロックを割り当てる方式である。メモリ保護そのものはMMUベースのものが提供される。
- 複数のタスク間通信が用意される
タスク間通信に関しては、イベントベース(割り込みなど)のものやポーリングベース(セマフォなど)、メッセージベース(共有メモリなど)のもの、あるいは複数を合体させたもの(Mailboxなど)、さらにはRPCベースのものなど、複数用意されるのが一般的だ。クリティカルセクションなども用意される場合もある。ただこれらの機能は、マイコンがハードウェア的にどこまでそれぞれの機能を実装しているかで性能差があるため、一概に「これが最速」とは言いにくい部分もある。
- マルチプロセッサ対応は必須ではない
マルチプロセッサについては、対応しているものもある。ただしこうした構成では、対称型のマルチプロセッサというケースは珍しく、例えばCortex-M0とCortex-M4といった、異なるマイコンの場合もあり、こうしたケースでは両方のマイコンにそれぞれ別のRTOSが載る(もしくは、片方にはRTOSが載らない)なんてケースもあるため、必ずしもマルチプロセッサ対応は必須では無い。
- 機能の取捨選択が可能
カーネルと一部のコア機能は固定であるが、それ以外の機能は利用する/しないに応じてカスタマイズできるようになっているのが一般的である。例えばTCP/IPのスタックは非常に重いので、IPのみとかIP+UDPとか、IP+TCP(ただし一部)、あるいはそもそも搭載しないといった選択が可能だ。これにより、不要な機能をロードしないことでメモリ利用量を最小に抑えることができる。
左の図1が一般的なOSのイメージであるが、基本的にハードウェアは全てOSの管理下にあり、そのハードウェアを利用するためのドライバが提供され、さらにミドルウェア(Windows OSで言うなら.NET Frameworkとか)がきちんと用意され、その上で複数のアプリケーションとユーザーインタフェースが動作する。
ではRTOS(右の図2)は?というと、まずHALやOSは必要最小限のハードウェアしかカバーしないし、その機能もここまで説明した通り最小限である。ドライバは一応OS管理下のハードウェアに関しては存在するが、こちらも最小限である。その上のミドルウェアやネットワークスタックはオプション扱いになっており、後は全部アプリケーションでカバーする、という感じだと考えればいい。
主なRTOS、組み込み向けLinuxとの違い
国内で言えばμITRONやその延長でTOPPERSが広く使われているが、海外ではAVIX(AVIX-RT)、LynxOS(LynuxWorks)、Micrium OS(Micrium)、Nucleus RTOS(Mentor Graphics)、QNX(BlackBerry)、Thread X(expresslogic)、VxWorks(WindRiver)などが利用されている。フリーのRTOS(eCosやFreeRTOSなど)も存在している。
ちなみに同種のものとして、Linuxをベースにリアルタイム性を付加したRealtime Linux(RTLinuxなど)と、組み込み向けのLinuxであるEmbedded Linuxがある。前者はLinuxのタイマー管理部を利用し、リアルタイムスケジューラを動かすことで特定アプリケーションだけをリアルタイムで動かせるようにしただけのもの。全体としてはLinuxそのものなので、要求されるハードウェア資源はマイコンというよりはPCのレベルに近い。
後者のEmbedded Linuxは、携帯電話や情報機器向けにLinuxを流用しようという目的で開発されたもので、必要とする機能以外を省けるあたりはRTOSに近く、機器の価格を下げるためもあって、なるべく省メモリで動作するように工夫されている(とはいえRTOSより必要なメモリ量は多い)。しかし、リアルタイム性などでは著しく劣っている。
このため、Linuxカーネルのみをリアルタイム性の高いマイクロカーネルに置き換えたものも幾つかある。ただそうなると、LinuxのAPIだけを提供すれば良く、Linuxそのものである必要はないという議論も成立するわけで、実際LynxOSやNucleus RTOS、QNXなどはいずれもPOSIX互換のAPIを提供している。そんな訳でEmbedded LinuxとRTOSの境界はやや曖昧になっているのが現状である。
Copyright © ITmedia, Inc. All Rights Reserved.
超速解説
製造業に携わる方ならば知っておきたい「トレンドキーワード」や「技術用語」について、用語辞典よりも少しだけ詳しく、かといって重たくなりすぎない程度に気軽に読める基礎解説シリーズです。
この記事の著者
新着ホワイトペーパー PR
-
製品資料
[株式会社 Green AI] AIで脱炭素計画を最適化、初年度からエネルギーコストとCO2を削減する方法 -
市場調査・トレンド
[スマートジャパン編集部] 「ペロブスカイト太陽電池」の普及戦略が公表 政府が目指すコスト・導入量のロードマップを解説 -
市場調査・トレンド
[スマートジャパン編集部] 導入が加速する再エネ・系統向け蓄電システム コスト・収益性の現状分析 -
技術文書・技術解説
[スマートジャパン編集部] いまさら聞けない「ペロブスカイト太陽電池」の基礎知識と政策動向 -
技術文書・技術解説
[スマートジャパン編集部] 「ペロブスカイト太陽電池」の開発動向、日本の投資戦略やコスト目標の見通しは?
関連記事
こんなメディアも見られています
TechFactoryに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
特集
- マテリアルズ・インフォマティクスの動向調査
- 研究・開発職のデジタル活用調査
- 設計・解析業務におけるAI活用
- 3Dプリンタ利用動向調査
- CAD利用動向調査
- つながる工場の現状と課題
- 製造業におけるAI開発および活用の実態
- 設計・製造現場における品質管理
ホワイトペーパーランキング PR
-
1
EE Times Japan×EDN Japan 統合電子版:フィジカルAIが生み出す新たな「設計思想」――電子版2026年8月号
-
2
半導体装置メーカー 業績まとめ【2027年3月期第1四半期】
-
3
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part4)
-
4
一時は時価総額トヨタ超え キオクシア2026年度の動向
-
5
微細配線間の絶縁劣化をどう捉える? 先端パッケージ評価の最前線
-
6
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part1)
-
7
EE Times Japan×EDN Japan 統合電子版:2026年上半期の半導体業界を振り返る――電子版2026年7月号
-
8
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part3)
-
9
CADツールの見直しは本当に必要? 切り替えの理由と効果を7つの質問で検証
-
10
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part2)
TechFactory SNS
インフォメーション
注目情報をチェック
TechFactoryをフォロー