組込みで使用するリアルタイムOS(RTOS)とは?入門者向けに意味、種類、特徴を解説

リアルタイムOS(RTOS)は、要求される時間内に処理が実行できるシステムを構築するためのOSです。産業ロボットや輸送機械など、主に組込み機器で使用されます。

リアルタイムOS(RTOS)とは

RTOSはその名の通り、リアルタイム性(=要求される期限までに処理を実行できる性質)を求めるシステムで利用されるOSです。

例えば、ロボット掃除機、洗濯機、ゲーム機、インターホンといった家電機器から、医療機器、自動改札機、発電機器、監視カメラなどの産業機器で使用されています。

リアルタイム性の保証

組込み分野では処理の完了に期限が設定されますが、この期限内に処理できるよう設計されたOSがRTOSです。

例えば、自動車に使用されている組込みシステムを具体例として考えみましょう。自動車には、自動車を制御するためのCPUが多く使用されています。そしてこれらのCPUは、エンジンの回転や、噴出するガソリンの量をコントロールします。

この時、仮に自動車のエンジン制御が期限内に処理されなければ、エンジンが停止して事故に繋がるリスクがあります。

このように、多くの組込み機器ではリアルタイム性が要求されます。しかし、要求される期限は機器によって異なるため、処理時間を機能仕様ごとに厳密に定義することが重要です。

リアルタイム性の種類

リアルタイム性は、「ハードリアルタイム」と「ソフトリアルタイム」の2種類に大別されます。

ハードリアルタイムとソフトリアルタイムは、具体的な時間を境に分けられるものではありません。ハードかソフトかは、もしもその期限内に処理を行えなかった場合に許容されるかどうかで決まります。

ハードリアルタイムの特徴

「ハードリアルタイム」は、定められた期限内に確実に処理を完了しなければならないものを指します。

もしもその期限内に処理が完了しなかった場合、致命的な事故が発生したり、壊滅的な結果となるリスクがあります。また、ハードリアルタイムは、その即時性が守られなかった瞬間に、その処理やシステム、機器の価値がゼロになってしまいます。

例えば、先程紹介した自動車のエンジンの事例は、ハードリアルタイム性を必要とします。このほか、自動車のエアバッグ機能や、航空機の航法システムなどもハードリアルタイムと言えます。

ソフトリアルタイムの特徴

ハードリアルタイムに対し、比較的期限の制約が緩く、利用者が許容できる範囲で処理が完了すれば良いものや、やり直すことで機能を修復できるものを「ソフトリアルタイム」と言います。

ハードリアルタイムでは、即時性が守られなかった瞬間に機器やシステムの価値がゼロになったのに対し、ソフトリアルタイムは、遅れた時間によって徐々に価値が減少していく性質があります。

例えば、銀行のATMはソフトリアルタイムです。期限内に処理が完了しなかった場合、時間がかかるにつれてシステムや機能の価値は低下しますが、ゼロになるわけではありません。

ただし、 ソフトリアルタイムであっても、 基本的には期限内で処理が完了できるように設計する必要があります。

リアルタイム性については、下記の記事でも紹介しています。詳しく知りたい方はこちらもご覧ください。

リアルタイムOS(RTOS)の構成

カーネルとドライバで構成

RTOSは、カーネルとドライバによって構成されます。

  • カーネル:タスクをスケジューリングするプログラム
  • ドライバ:各種入出力の制御、ファイルシステム、ネットワークプロトコル

RTOSを含むリアルタイムシステムの構成は以下のイメージです。

カーネルとドライバについて

RTOSの中心機能を果たしているプログラムがカーネルです。組込みシステム開発においてカーネルはタスクを管理し、優先度の低いタスクを実行待ちに変化させ、処理の順番を制御します。

RTOSの中心部分がカーネルであるのに対し、ドライバはその周辺機能を果たします。ドライバは、入出力制御、ファイルシステム、ネットワークプロトコルなどを含み、主にハードウェアへのアクセス機能を提供します。

カーネルの機能
  • 割り込み管理・処理
  • 同期制御
  • 通信制御
  • 排他制御
  • タスクスケジューリング
ドライバの機能
  • ハードウェア制御

下記が、カーネルのタスクスケジューリングのイメージです。

出典:独立行政法人情報処理推進機構『OSSモデルカリキュラムV2(2011年5月公開)8-1-基 組み込みシステム開発に関する知識p.8-1-基 – 7』

カーネルのマルチタスク機能

カーネルには、複数のタスクを並列して処理するために、CPUを仮想化・多重化する機能があります。

シングルプロセッサシステムでは1つのCPUにつき1つのタスクしか実行できませんが、 RTOSは時分割で制御して複数のタスクを疑似的に並行実行させる機能を持つため、複数のタスクを並列処理できます。

カーネルの割り込み管理・処理機能

カーネルには、 実行中ではない優先度や緊急度の高い処理を実行するよう要求する割り込み管理・処理機能があります。

割り込みが発生した際、割り込み管理機能により実行されるプログラムが管理され、プログラムの生成・削除、状態参照、割り込みの禁止・許可などが行われます。

マルチタスクや割り込みについて

弊社では【開発者から学ぶウェビナー】RTOS基礎編 として動画と資料を公開しています。

マルチタスク機能や割り込みについても分かりやすく解説しているので、RTOSやμITRONの基礎について学んでみたい方や開発予定がある方などは、ぜひご覧ください。

リアルタイムOS(RTOS)のメリット

RTOSには複数のメリットがあります。

【メリット1】高い信頼性と安全性

RTOSの持つマルチタスク機能により複数のタスクを並列処理でき、 割り込み管理・処理機能によって優先度の高いタスクから実行できます。リアルタイム性を確保できることで、高い信頼性や安全性が求められるシステムで利用できます。

【メリット2】大規模な開発が可能

RTOSのタスク機能により、プログラムをタスクに分割することができます。これにより、機能のモジュール化が行いやすくなるため、シンプルなプログラム構成を維持できます。このため、ソフトウェアの開発規模が大きくなった場合も対応しやすくなります。

【メリット3】保守性の向上

前述の通り、RTOSのタスク機能により、プログラムをタスクに分割し、機能のモジュール化が可能になります。これにより可読性が向上し、メンテナンス性(保守性)も向上します。

リアルタイムOS(RTOS)の留意点

ここまでRTOSのメリットを挙げてきましたが、留意点も存在します。

【留意点1】ハードウェア資源の消費

1つ目の留意点はCPUメモリを消費することです。

RTOSは、プログラムによって記述されています。その結果、RTOSを搭載すると、短い時間CPUが占有され(オーバヘッド)、メモリも消費されます。

このため、限られたリソースの中で動作するよう設計されたコンパクトなRTOSを選択することが重要です。

【留意点2】習得コスト

2つ目の留意点は、RTOSは特有の作法を理解した上でプログラミングする必要があることです。

RTOSを扱う際は他のOSの時とは異なるスキルが必要です。そのため、RTOS未経験者は習得するための時間やコストがかかります。

リアルタイムOS(RTOS)と汎用OS(Linux・Windows)の違い

ここまでRTOSを紹介してきましたが、汎用OSとはどのような違いがあるのでしょうか。

RTOSの中でも代表的なμITRONを例に、RTOSと汎用OSであるLinuxやWindowsを比較します。

μITRON(読み方:マイクロアイトロン)とは

μITRONとは、RTOSの仕様の一つ。トロン協会が仕様を定めており、API仕様はオープンになっている。

μITRON・Linux・Windowsの違い・比較表

μITRONLinuxWindows
メモリ使用量数Kバイト~1Mバイト数Mバイト~数十Mバイト数Mバイト~数十Mバイト
利用できるCPU16bit〜64bit32bit以上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(RTOS)のシェア

以下は、トロンフォーラムが行った「2019年度組み込みシステムにおけるリアルタイムOSの利用動向に関するアンケート調査報告書」の結果です。

出典:組み込みOSのAPIはTRON系OSがシェア60%、24年連続トップ

μITRONを含むITRON仕様のRTOSが1位で、45%のシェアを占めています。

ITRONは下記の特長があり、採用しやすいOSといえます。

  • OSの仕様が特定の会社の利益や特定の国の政策に縛られない
  • 仕様がオープンになっているため利用者が手を加えられる
  • サポートベンダ数もNo.1
  • 幅広い用途での採用実績がある(産業機器、医療機器、IoT、通信、自動車、OA等)

リアルタイムOS(RTOS)の種類

主なRTOSの種類として、以下が挙げられます。

  • FreeRTOS
  • TOPPERS
  • eT-Kernel
  • embOS
  • ThreadX
  • μC3(マイクロ・シー・キューブ)/Compact(弊社製品)
  • μC3(マイクロ・シー・キューブ)/Standard(弊社製品)
  • μC3(マイクロ・シー・キューブ)/Standard+M(弊社製品)
  • μC3(マイクロ・シー・キューブ)+Linux(弊社製品)

弊社製品「μC3(マイクロ・シー・キューブ)」のご紹介

マイコン向け超軽量カーネルを採用したRTOS「μC3(マイクロ・シー・キューブ)/Compact」

μC3(マイクロ・シー・キューブ)/Compactは、マイコン内蔵の小さなメモリだけで動作するように最適化された、コンパクトなμITRON4.0仕様のRTOSです。

μC3/Compactは、ソースコードに直接コンフィグレーションを行うのではなく、付属のコンフィグレータによりGUIベースでRTOS、TCP/IP、デバイスのコンフィグレーションからベースコードの自動生成まで行います。

小さいフットプリント
マイコンの小さなROM/RAMのみで動作するように最適化された最小2.4Kbyteのコンパクトなカーネル。メモリ容量が小さい安価なデバイスを使用する事ができます。
μC3/Configurator付属
選択・設定するだけでベースコードが生成できるコンフィギュレーションツール。開発時間の大幅な短縮や、コーディングミスの減少が可能。RTOSの初心者でも簡単に開発をスタートすることができます。
豊富なCPUサポート
業界随一のCPUサポート実績があり、技術サポートも充実しています。CPUの選択肢を広げ、機会費用を抑える事ができます。業界随一のCPUサポート実績があり、技術サポートも充実しています。ご使用予定のデバイスで直ぐに開発着手が可能で、ご質問に対して24時間以内の1次回答を徹底しています。
省電力対応
デフォルトで省電力機能がついているため、システム全体の省電力に貢献します。

詳しい資料をご希望の方は、下記より製品ガイドをダウンロードしてください。

資料ダウンロード(無料)

高性能リアルタイム処理向けRTOS「μC3(マイクロ・シー・キューブ)/Standard」

μC3(マイクロ・シー・キューブ)/Standardは、μITRON4.0のスタンダードプロファイルをベースに、32/64ビットプロセッサが搭載された組込みシステム向けのRTOSです。

μC3/Standardは、高性能プロセッサがより高度なリアルタイム制御に耐えられるよう、割込み禁止時間を極力なくし、割込み応答性を最重要課題として設計したRTOSです。

ARM Cortex-Aシリーズ、ARM Cortex-Rシリーズだけでなく、高性能な ARM Cortex-MやRenesas RXシリーズにも対応しています。

32/64bitの高性能プロセッサに最適化
割り込み応答性を高め、32/64bitの高性能プロセッサ向けに最適化されたμITRON4.0仕様のカーネル。
豊富なプロセッサ・サポート
業界随一のプロセッササポート実績があり、技術サポートも充実しています。CPUの選択肢を広げ、機会費用を抑える事ができます。業界随一のCPUサポート実績があり、技術サポートも充実しています。ご使用予定のデバイスで直ぐに開発着手が可能で、ご質問に対して24時間以内の1次回答を徹底しています。
マルチコア対応
組込み機器向けに最適なAMP型カーネル。マルチコアによって、リアルタイム性能を強化します。
豊富なデバイスドライバを用意
I2C, SPI, GPIO, SDなどのデバイスドライバをオプションで用意。(UART, Timer, INTCはμC3に、EthernetドライバはμNet3に付属しています。)

詳しい資料をご希望の方は、下記より製品ガイドをダウンロードしてください。

資料ダウンロード(無料)

マルチコアAMP拡張版RTOS「μC3(マイクロ・シー・キューブ)/Standard+M」

μC3/Standard+Mは、μC3/StandardにAMP型のマルチコア拡張を追加したマルチコアプロセッサ向けのリアルタイムOSです。

μITRON4.0のスタンダード・プロファイルをベースに、AMP型の特徴を活かしたコア毎の処理・リソースの割り当て、コア間連携のためのAPIを追加しています。

ARM Cortex-Aシリーズを中心にマルチコアのMPUをサポートしています。

リアルタイム処理に最適なAMP型カーネル
自由にタスクや資源を各CPUに割り当てることで、システムの負荷分散が容易に実現できます。
  
μITRON APIによるCPU間通信機能
タスク間通信などの機能をCPU間通信でも実現ができ、シングルコアと同様にプログラミングができます。
  
一括リンクによるコード効率の向上
コア別のプログラムを一括リンクすることで、より効率の良いプラグラミングができます。
  
多彩なミドルウェアや豊富なデバイスドライバを用意
μC3/Standard対応のミドルウェアやデバイスドライバを利用できます。

詳しい資料をご希望の方は、下記より製品ガイドをダウンロードしてください。

資料ダウンロード(無料)

LinuxとRTOSの共存ソリューション「μC3(マイクロ・シー・キューブ)+Linux」

μC3+LinuxはマルチコアCPUにLinuxとRTOSを共存させ、OS間の通信を可能にするソリューションです。

種類の異なった2つのOSを共存させることで、RTOSのリアルタイム性能とLinuxが持つ豊富なソフトウェア資産を有効に活用することができます。

異なったタイプのマルチコアCPUに対応
ホモジニアス(同一プロセッサ・コアによる構成)ヘテロジニアス(異なるプロセッサ・コアによる構成)の両方に対応しています。
メーカー提供のLinuxディストリビューションに対応
CPUベンダーが標準でサポートするLinuxに対応し、アプリケーションの開発が迅速にできます。
OS間通信をサポート
メッセージ形式のAPI(RPMsg)を使って、OS間の通信を容易に実現できます。
OpenAMP仕様を採用
Multicore Associationによって標準化されたOpenAMPの仕様に対応しています。
RTOSによる高速ブート
μC3を先に起動することで高速起動ができます。

詳しい資料をご希望の方は、下記より製品ガイドをダウンロードしてください。

資料ダウンロード(無料)

μC3のライセンスの種類・詳細

ライセンスの種類

ライセンスの種類は3つあります。

  • 開発量産用プロジェクトライセンス
  • プラットフォームライセンス
  • 研究開発用プロジェクトライセンス

開発量産用プロジェクトライセンス

開発量産用プロジェクトライセンスは、研究開発から量産販売までが可能な標準的なライセンスとなります。開発量産用プロジェクトライセンスの対象製品の範囲には、1種類の製品型番だけでなく、その製品ファミリ(派生機種)が含まれます。

有償の保守契約に加入中の場合、プラットフォームライセンスのライセンス費用との差額でアップグレードが可能です。

プラットフォームライセンス

プラットフォームライセンスは、プロジェクトライセンスの対象範囲を広げたライセンスです。プラットフォームライセンスの対象製品は、1種類の製品ファミリだけでなく、複数の製品ファミリが範囲となります。サイトライセンスではございません。

研究開発用プロジェクトライセンス

研究開発用プロジェクトライセンスは、研究開発のみ可能なライセンスです。ライセンス購入時の段階で、製品化まで見えていない場合や、フィジビリティスタディの場合にお勧めです。

ライセンス費用は、開発量産用プロジェクトライセンスの60%の価格です。

有償の保守契約に加入中の場合、開発量産用プロジェクトライセンスのライセンス費用の40%オフの価格でアップグレードが可能です。

ポイント
  • 開発量産用プロジェクトライセンス:研究開発から量産販売までが可能な標準的なライセンス
  • プラットフォームライセンス   :1種類の製品ファミリだけでなく、複数の製品ファミリを範囲とするライセンス
  • 研究開発用プロジェクトライセンス:製品化まで見えていない場合や、フィジビリティスタディの場合にお勧めなライセンス

※弊社のライセンスはプロジェクトライセンスの形式を採っております。ご購入時に該当プロジェクトの名称をご登録いただく必要があり、その際、「計測機器」などの抽象的な名称ではなく、具体的な名称を頂戴しております。

お客様のご要望にあわせて適切な範囲で設定させていただきますので、まずは、担当営業にご相談下さい。

ライセンスの詳細

    • ライセンス費用の金額・計算方法:ライセンス購入時の固定の一括払いのみでご使用いただけます
    • 開発人数制限 :無(ただし同プロジェクト内)
    • 提供形態 :ソースコード
    • 使用範囲 :定義されたプロジェクト内
    • 使用CPU :型番固定ではなくCPUシリーズ(例:STM32F4シリーズ)
    • μC3/ConfiguratorはCPUシリーズ毎に用意されています

    ライセンスの価格などの詳細については、下記よりプロダクトガイドをダウンロードしてご覧ください。

    資料ダウンロード(無料)

    保守について

    製品定価には契約日の翌月1日から6ヶ月分の無償保守が含まれています。

    無償保守サービス終了後は有償での保守サービスとなります。そのまま継続でのご利用の場合、製品価格(研究開発用プロジェクトライセンスはプロジェクトライセンス価格)の20%、非継続の後に再加入をされたい場合は研究開発用プロジェクトライセンスはプロジェクトライセンス価格)の40%となります。

    プロジェクトライセンスと1年間の保守サービスを同時にご購入いただいた場合は、初回に限り15%とさせていただきます。

    保守サービスには以下が含まれています。

    • 製品の無償バージョンアップ対応
    • コンパイラのバージョンアップ対応
    • メールによる技術サポートサービス(1営業日以内に1次回答)