リアルタイムOS(RTOS)は、要求される時間内に処理が実行できるシステムを構築するためのOSです。産業ロボットや輸送機械など、主に組込み機器で使用されます。
リアルタイムOS(RTOS)とは
RTOSはその名の通り、リアルタイム性(=要求される期限までに処理を実行できる性質)を求めるシステムで利用されるOSです。
例えば、ロボット掃除機、洗濯機、ゲーム機、インターホンといった家電機器から、医療機器、自動改札機、発電機器、監視カメラなどの産業機器で使用されています。
期限内に処理を行う
組込み分野では処理の完了に期限が設定されますが、この期限内に処理できるよう設計されたOSがRTOSです。
例えば、自動車に使用されている組込みシステムを具体例として考えみましょう。自動車には、自動車を制御するためのCPUが多く使用されています。そしてこれらのCPUは、エンジンの回転や、噴出するガソリンの量をコントロールします。
この時、仮に自動車のエンジン制御が期限内に処理されなければ、エンジンが停止して事故に繋がるリスクがあります。
このように、多くの組込み機器ではリアルタイム性が要求されます。しかし、要求される期限は機器によって異なるため、処理時間を機能仕様ごとに厳密に定義することが重要です。
RTOSの処理については【開発者から学ぶウェビナー】RTOS基礎編 として動画と資料で分かりやすく公開しています。ぜひご覧ください。
ハードタイムとソフトリアルタイム
リアルタイム性は、「ハードリアルタイム」と「ソフトリアルタイム」の2種類に大別されます。
ハードリアルタイムとソフトリアルタイムは、具体的な時間を境に分けられるものではありません。ハードかソフトかは、もしもその期限内に処理を行えなかった場合に許容されるかどうかで決まります。
リアルタイム性については、下記の記事で紹介しています。詳しく知りたい方はこちらもご覧ください。
カーネルとドライバの構成
RTOSは、カーネルとドライバによって構成されます。
- カーネル:タスクをスケジューリングするプログラム
- ドライバ:各種入出力の制御、ファイルシステム、ネットワークプロトコル
RTOSを含むリアルタイムシステムの構成は以下のイメージです。
カーネルとドライバについて
RTOSの中心機能を果たしているプログラムがカーネルです。組込みシステム開発においてカーネルはタスクを管理し、優先度の低いタスクを実行待ちに変化させ、処理の順番を制御します。
RTOSの中心部分がカーネルであるのに対し、ドライバはその周辺機能を果たします。ドライバは、入出力制御、ファイルシステム、ネットワークプロトコルなどを含み、主にハードウェアへのアクセス機能を提供します。
カーネルの機能
- 割り込み管理・処理
- 同期制御
- 通信制御
- 排他制御
- タスクスケジューリング
ドライバの機能
- ハードウェア制御
下記が、カーネルのタスクスケジューリングのイメージです。
出典:独立行政法人情報処理推進機構『OSSモデルカリキュラムV2(2011年5月公開)8-1-基 組み込みシステム開発に関する知識p.8-1-基 – 7』
カーネルのマルチタスク機能
カーネルには、複数のタスクを並列して処理するために、CPUを仮想化・多重化する機能があります。
シングルプロセッサシステムでは1つのCPUにつき1つのタスクしか実行できませんが、 RTOSは時分割で制御して複数のタスクを疑似的に並行実行させる機能を持つため、複数のタスクを並列処理できます。
マルチタスクについては、下記の記事でも紹介しています。
カーネルの割り込み管理・処理機能
カーネルには、 実行中ではない優先度や緊急度の高い処理を実行するよう要求する割り込み管理・処理機能があります。
割り込みが発生した際、割り込み管理機能により実行されるプログラムが管理され、プログラムの生成・削除、状態参照、割り込みの禁止・許可などが行われます。
リアルタイムOS(RTOS)の特徴
リアルタイムOS(RTOS)のメリット
RTOSには複数のメリットがあります。
【特長1】高い信頼性と安全性
RTOSの持つマルチタスク機能により複数のタスクを並列処理でき、 割り込み管理・処理機能によって優先度の高いタスクから実行できます。リアルタイム性を確保できることで、高い信頼性や安全性が求められるシステムで利用できます。
【特長2】大規模な開発が可能
RTOSのタスク機能により、プログラムをタスクに分割することができます。これにより、機能のモジュール化が行いやすくなるため、シンプルなプログラム構成を維持できます。このため、ソフトウェアの開発規模が大きくなった場合も対応しやすくなります。
【特長3】保守性の向上
前述の通り、RTOSのタスク機能により、プログラムをタスクに分割し、機能のモジュール化が可能になります。これにより可読性が向上し、メンテナンス性(保守性)も向上します。
リアルタイムOS(RTOS)の留意点
一方で、留意点も存在します。
【留意点1】ハードウェア資源の消費
1つ目の留意点はCPUメモリを消費することです。
RTOSは、プログラムによって記述されています。その結果、RTOSを搭載すると、短い時間CPUが占有され(オーバヘッド)、メモリも消費されます。
このため、限られたリソースの中で動作するよう設計されたコンパクトなRTOSを選択することが重要です。
【留意点2】習得コスト
2つ目の留意点は、RTOSは特有の作法を理解した上でプログラミングする必要があることです。
RTOSを扱う際は他のOSの時とは異なるスキルが必要です。そのため、RTOS未経験者は習得するための時間やコストがかかります。
汎用OSとの違い
ここまでRTOSを紹介してきましたが、汎用OSとはどのような違いがあるのでしょうか。
RTOSの中でも代表的なμITRONを例に、RTOSと汎用OSであるLinuxやWindowsを比較します。
μITRON(読み方:マイクロアイトロン)とは
μITRONとは、RTOSの仕様の一つ。トロン協会が仕様を定めており、API仕様はオープンになっている。
μITRON・Linux・Windowsの違い・比較表
μITRON | Linux | Windows | |
---|---|---|---|
メモリ使用量 | 数Kバイト~1Mバイト | 数Mバイト~数十Mバイト | 数Mバイト~数十Mバイト |
利用できるCPU | 16bit〜64bit | 32bit以上 | 32bit以上 |
ライブラリ | 少ない | 豊富 | 豊富 |
リアルタイム性能 | 高い | 低い | 低い |
利用目的 | 機械を制御 | 人が機械を制御 | データを処理 |
メモリ使用量
μITRON・Linux・Windowsは、それぞれメモリ使用量容量が異なります。
μITRONのメモリ使用量は数Kバイト~1Mバイトで、小さなメモリで動作します。
一方、汎用OSであるLinuxやWindowsは、数Mバイト~数十Mバイトの容量を必要とするため、小規模な組込みシステムへの搭載には不向きです。
利用できるCPU
利用できるCPUのbit数も異なります。μITRONは16bit〜64bit、Linux・Windowsは32bit以上です。
ライブラリ
用意されているライブラリの量も異なります。
μITRONを含むRTOSは、限られたリソースの中で動作するよう、必要な機能に絞って設計されているため、 LinuxやWindowsと比較するとライブラリの数は少ないです。
このため、TCP/IPなどのミドルウェアを別途搭載する必要があります。言い換えれば、必要な機能だけを選択し、システムを最適化できるということです。
リアルタイム性能
μITRONはRTOSであるため組込みシステム向けに設計されているため、LinuxやWindowsと比較するとリアルタイム性能が高いです。
一方、LinuxやWindowsは元々PC向けに開発されているため、μITRONほどのリアルタイム性能はありません。
高いリアルタイム性能が必要な場合はRTOSを採用するほうがよいでしょう。
利用目的
μITRONは機械を制御するOS、Windowsは人が機械を制御(man machine)するOS、Linux(Unix)はデータを処理するOSとして利用されます。
組込みシステムにおけるOS
以下は、トロンフォーラムが行った「2019年度組み込みシステムにおけるリアルタイムOSの利用動向に関するアンケート調査報告書」の結果です。
出典:組み込みOSのAPIはTRON系OSがシェア60%、24年連続トップ
μITRONを含むITRON仕様のRTOSが1位で、45%のシェアを占めています。
ITRONは下記の特長があり、採用しやすいOSといえます。
- OSの仕様が特定の会社の利益や特定の国の政策に縛られない
- 仕様がオープンになっているため利用者が手を加えられる
- サポートベンダ数もNo.1
- 幅広い用途での採用実績がある(産業機器、医療機器、IoT、通信、自動車、OA等)
弊社製品「μC3(マイクロ・シー・キューブ)」のご紹介
イー・フォースで提供しているμC3(マイクロ・シー・キューブ)はITRON仕様のRTOSです。
高性能リアルタイム処理向けRTOS「μC3(マイクロ・シー・キューブ)/Standard」
μC3/StandardはμITRON4.0のスタンダードプロファイルをベースに、32/64ビットプロセッサが搭載された組込みシステム向けのRTOS。
マルチコアAMP拡張版RTOS「μC3(マイクロ・シー・キューブ)/Standard+M」
μC3/Standard+MはμC3/StandardにAMP型のマルチコア拡張を追加したマルチコアプロセッサ向けのRTOS。
マイコン向け超軽量カーネルを採用したRTOS「μC3(マイクロ・シー・キューブ)/Compact」
μC3/Compactはマイコン内蔵の小さなメモリだけで動作するように最適化された、コンパクトなμITRON4.0仕様のRTOS。コンフィグレータが付属。
製品にご興味がある方は、お気軽にお問い合わせください。