コンピュータプログラマコーディングのクローズアップ

様々な領域で使用されているリアルタイムOS。本記事では、リアルタイムOS入門者向けに下記の内容を中心に分かりやすく解説いたします。

・リアルタイムOSとは何か
・組み込みリアルタイムOSとは何か
・リアルタイムOSの機能
・リアルタイムOSの特徴(メリット)
・リアルタイムOSの種類

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

リアルタイムOS (Real-Time Operating System, RTOS) とは、主に組み込みシステムに使用されており、システムの要求に対してリアルタイム性能を満足する事に重点を置いたOSのことです。

リアルタイム性能を要求される組み込みシステムには、自動車、医療機器、産業制御システム、航空宇宙システム、軍事システムなどがあり、リアルタイムOSはある特定の目的を果たすための機器に多く使用されます。

こういった特定の機器は人間による操作だけではなく、センサーが検知した内容などをタスクとして受け取ります。それらのタスクには厳格な処理優先度が決められており、その優先度にしたがって処理を実行します。

タスクの優先度にしたがって、リアルタイム性能を向上・担保する事。それがリアルタイムOSに求められる性能と言えます。

OS オペレーティングシステム

リアルタイム性能とは

リアルタイム性能とは、組み込みシステム側の要求に対する即時応答性能の事を指します。

組み込みシステムではリアルタイム性能が重要視されていますが、その要求の優先度は汎用OSとは大きく異なります。

例えば、パソコンでデータを整理する際にマクロを使用する要求があったとしましょう。この処理時間が多少遅くなったとしても、多少人間が感じる不快感が増すだけであり、重大な事故につながるものではないため、あまり重要ではないと言えます。

しかし、製造現場などのロボットアームが動く軌道上に人間がいる状況を想定した場合、人間の存在を感知しても、ロボットアームの停止処理が遅くなってしまえば、重大な事故に繋がります。

つまり、リアルタイム性能が人命にかかわるため、非常に重要だと言えます。

主にリアルタイムOSは後者のような事例で活用されているため、優先度の高い処理を実行するリアルタイム性能は非常に重要な性能です。

組み込みリアルタイムOSとは

組み込みリアルタイムOSとは、その名前の通り、組み込みシステムに使用されるリアルタイムOSの事です。

汎用OSとは異なり、組み込む機器専用のOSにカスタマイズされており、限られた資源の中でリアルタイム性能を発揮するように設計されています。

組み込みリアルタイムOSの使用例

リアルタイム性能を要求される組み込みリアルタイムOSの実例は、下記のようなものがあります。

・製造現場などの各種製造ロボット
・自動で掃除をしてくれるロボット掃除機
・自動車のエンジン制御やABS等のブレーキ制御
・医療分野の手術ロボット
・エレベータなどのビル管理
・鉄道システムや自動改札機

これら以外にも多くの機器に搭載されており、今もその対象は増え続けています。

リアルタイムOSの機能

リアルタイムOSの中心機能は、定められた優先度に則り、実行タスクを選択するスケジューリング機能です。この機能をタスクスケジューラーと呼びます。

まずリアルタイムOSに限らず、OSの基本的な構造はハードウェアからの操作をデバイスドライバが受けもった後、カーネルが目的に合わせて操作を制御。そのままミドルウェアが処理を実行し、最終的に機器のアプリケーションプログラムとして動作します。

タスクスケジューラーは、上記のOS構造の中でカーネルが優先度の高いタスクを選択し、実行を判断する機能になっています。

リアルタイムOSと汎用OSとの違いを比較

リアルタイムOSとパソコン等に用いられる汎用OSでは、カーネルによる制御が大きく異なります。

汎用OSでは複数のアプリケーションソフトのタスクを要求された順番通りに、並列して処理するように動作します。例えば、パソコンを操作している際にエクセルでマクロを実行しながら、パワーポイントで資料を並行して作業するようなケースです。

汎用OSはタスクの優先度が無く、平均処理速度を優先して設計されています。

一方で組み込みシステム用に設計されたリアルタイムOSは、要求されたタスクを順番通りに動作させるのではなく、実行に必要な要件が整ったタスクから実行していきます。加えてそれぞれのタスクに決められている優先度にしたがって、別の処理中に割り込んでタスクを中断、実行する順番を入れ替えることがあります。

分かりやすい例で言えば、自動ブレーキなどが挙げられます。車を運転中に飛び出してきた人とぶつかりそうなった際に、人間はアクセルを踏むタスクを要求していても、センサーが人を感知した段階でブレーキをかけるというタスクが割り込み実行します。

組み込みシステムにリアルタイム性能が求められる理由がよくわかるケースでしょう。

汎用OS表
リアルタイムOS表

リアルタイムOSの特徴・メリット

リアルタイムOSの特徴には下記の4つの点が挙げられます。

●マルチタスクを実行する事が可能
●優先度に則り、タスクをスケジューリングする事が可能
●複数人で開発しやすく、大規模・中規模の開発が容易
●プログラムサイズが小さく、資源が小さくてすむ

ノート パソコンと近代的な概念

これらについて詳しく解説していきましょう。

マルチタスクを実行することが可能

リアルタイムOSでは、論理的にはマルチタスクを実行することが可能です。

実際にはタスクを実行するMPUがひとつの場合、実行している処理は物理的にひとつのみです。しかし、複数のタスクを持っている場合、実行されていないタスクはプログラミング上では実行していることになっています。これをマルチプログラミングと呼びます。

この並行動作の環境を作ることができるのが、リアルタイムOSの特徴のひとつです。

優先度にしたがって、タスクをスケジューリングする事が可能

イベントドリブン・ブリエンプション方式を採用するリアルタイムOSは、優先度にしたがってタスクをスケジューリングする事が可能です。

リアルタイムOSが使用される環境は、優先度が高いタスクがいつ発生するか予測することが困難です。自動ブレーキの例で挙げると、いつ人が飛び出してくるか予測できないといったケースです。

そのため、リアルタイムOSは現在実行中のタスクに優先度が高いタスクを割り込ませて実行するスケジューリングが可能になっています。

複数人で開発しやすく、大規模・中規模の開発が容易

リアルタイムOSは、タスクごとにプログラムが独立しているため、複数人で開発しやすいメリットがあります。

大規模な開発になると、必然的に多くのエンジニアが開発に携わることになります。開発を行う上で必ずネックになるのが、誰がどこまで分担するのかということです。

プログラムが独立していない開発の場合、その業務の切り分けは非常に難しいのですが、タスクごとにプログラムが独立しているリアルタイムOSにその問題はありません。

プログラムサイズが小さく、資源が小さくてすむ

リアルタイムOSは、タスクの幅が限定されるため、使用するメモリなどの資源が小さくてすむメリットがあります。

これが汎用OSであれば、プロセスモデル(プロセス管理やプロセス間通信・ファイル管理など)をサポートする構成やGUI(ネットワークやウィンドウなど)を管理する構成が必要になります。

また小規模な資源内でのリアルタイム性能を求められるOS開発では、プロセスモデルをサポートすることにより、リアルタイム性能が損なわれるデメリットがあります。

リアルタイムOS開発では、そんな開発目的にそぐわないデメリットが多い不要な構成を取捨選択することが可能なため、汎用OSと比較して資源が小さくてすみます。

リアルタイムOSの種類とそれぞれの特徴

リアルタイムOSには様々な種類や製品が存在します。

大きく分類すると無償で利用できるオープンソースなリアルタイムOSと有償で提供されるリアルタイムOSがあります。弊社が代理店をつとめる「BlackBerry QNX」は有償のリアルタイムOSに該当します。

まず初期費用が抑えられる無料で利用できるオープンソースは一見魅力的に見えます。しかし、実は多くの企業がリアルタイムOS開発に失敗してしまうケースは、オープンソースを利用した時に発生しがちです。

無料ということはサポートをしてくれる専任の外部プロフェッショナルがいないため、全て自社で開発を行う必要があります。リアルタイムOSには高度な技術だけではなく、開発プロセスの管理も非常に重要な要素になるため、開発が大幅に難しくなるというデメリットが存在します。

また有償のリアルタイムOSには出来て、オープンソースのリアルタイムOSでは出来ない、という機能不足にも注意しなければなりません。

一方で有償のリアルタイムOSは費用こそ発生しますが、外部プロフェッショナルから専任のサポートを受けることができるため、オープンソースよりも目的に沿ったリアルタイムOSを開発することが容易になります。

リアルタイムOSの種類や製品は様々ですが、この費用と開発難易度は自社の状況と目的をよく整理し、採用するリアルタイムOSを判断する必要があります。

弊社取り扱いの「BlackBerry QNX」の強みのご紹介

これまでリアルタイムOSについて解説してきましたが、最後に弊社が国内代理店を請け負っているリアルタイムOSBlackBerry QNX」とその強みを簡単にご説明いたします。

ぜひリアルタイムOSを選ぶ際の候補としてご活用ください。

「BlackBerry QNX」とは

1980年にカナダで設立されたQNXは商用として業界初のリアルタイムマイクロカーネルOSを発表して以来、組み込み市場へ特化したリアルタイムOSです。

高い信頼性、スケーラブルなアーキテクチャ、少ないメモリ要件などの特徴により、ネットワークキング、自動車用システム、産業用オートメーション制御などの市場で大きな実績を作り続けています。

1億台以上の組み込みデバイスの運用に活用されており、また45以上の自動車ブランドが採用している市場実績の多い製品になります。

簡単な紹介はここまでにいたします。さらに「BlackBerry QNX」について、詳細が知りたい方は下記リンク先の弊社HPに記載しております。ウェビナーでの紹介動画もありますので、ぜひご視聴いただけますと幸いです。

お問い合わせ

本記事の内容に関して、ご質問やご不明点などございましたら、以下よりお気軽にお問い合わせ下さい。