リアルタイムOSとは?汎用OSとの違いや特徴を紹介!
2024.08.08更新
機電系エンジニア必見!!貴重なフリーランス案件はこちら ▶時間内に処理を行わなければならないシステムに導入されるリアルタイムOS。今回はそんなリアルタイムOSについて、汎用OSとの違いや特徴を解説します。しっかりと特徴を把握できるように解説しますので、ぜひ最後まで読んでみてください。
リアルタイムOSと汎用OSの違い
まずは、リアルタイムOSが汎用OSとどのような違いを持っているか解説しましょう。汎用OSはWindowsやiOS、Linux、Androidなどの種類があり、誰でも扱えるユーザーフレンドリーなUI、様々なアプリケーションとの互換性を持つのが特徴です。
一方、リアルタイムOSは、汎用OSのような使いやすさや柔軟性を持たない代わりに、処理に時間制限を設け、最悪条件時でも一定時間内に処理を行うことに特化したOSです。その特性上、処理に遅延が発生してはならないシステムに使われることが多く、特に遅延が事故に直結する工場機械や家電、自動車などの組み込み系機器に数多く採用されています。
リアルタイムOSの特徴
それでは、リアルタイムOSが持つ特徴を詳しく紹介します。
最悪応答時間の保証
まず、リアルタイムOSには最悪応答時間(デッドライン)という概念があり、タスク(スレッド)を定められた期間内に処理することが保証されています。このデッドラインの設定により、処理にかかる時間を明確に定義できるため、安全性などを担保できるようになります。
低容量で小型
リアルタイムOSは組み込みシステムで使われるため、コンピュータのスペックが低くても正常に動作することが求められます。そのため、汎用OSと異なり機能は最低限に絞られており、低容量になるような設計が行われています。
タスクを並行処理できる
通常、コンピュータは一度に1つのタスクしか処理できませんが、それでは厳しいリアルタイム性を実現するのが難しいという問題があります。そのため、リアルタイムOSではCPUを仮想化・多重化することで複数のタスクを並行処理できるようになっています。
仮想メモリは使用できない
汎用OSでは、メモリが不足した際に一時的にハードディスクのデータを移す「仮想メモリ」を使い、メモリ以上のデータ処理を可能としています。しかし、リアルタイムOSではリアルタイム性を阻害してしまうことから、仮想メモリは使用できません。仮想メモリがないと、メモリ以上のデータ量を処理した際に正常な動作が行われなくなるため、データ量を抑える工夫が重要となります。
リアルタイムOSの機能
リアルタイムOSは「リアルタイム性」を重視するOSであることをお伝えしましたが、リアルタイム性を確保するために取り入れられている主な機能について解説します。
ハードリアルタイムとソフトリアルタイム
タスクにはデッドラインが設けられますが、タスク量が多いと全てのタスクを期限内に処理するのが難しくなります。そんな場合に大きな問題を発生させないため、必ず期限を守らなければならないものと、最悪守らなくともよいものに重要度を分ける手法が用いられるのが一般的です。
ここで、期限を過ぎると致命的な問題が発生する場合は「ハードリアルタイム」、致命的ではないが価値が下がっていく場合は「ソフトリアルタイム」と呼ばれます。ハードリアルタイムシステムの方がリアルタイム性への要求が厳しいため「リアルタイム性が高い」といった表現がされます。
タスクスケジューリング
汎用OSでは、タスクの処理を順番に行う「ラウンドロビン」という手法が取られています。しかし、この手法はタスク量が多く、コンピュータのスペックが処理に追いつかない場合、重要なタスクを処理できず致命的な問題が発生する可能性があります。
そこで、リアルタイムOSでは、安全面を確保するための緊急停止など、重要なタスクほど優先して処理する「タスクスケジューリング」が行われています。また、何らかの故障により重要度が高いタスクが完了できない場合でもデッドラインを守る「タイムアウト」機能も同時に有していることが多いです。
セマフォを用いたアクセス制御
複数のタスクが同時に処理された際、メモリやハードウェアに同時にアクセスを行ってしまうと、処理の競合が発生して不具合の原因となります。そこで、競合の問題が発生しうる処理に対して「セマフォ」を導入し、アクセスできるタスクの数を制限するのが一般的です。
セマフォの中では、1つのタスクのみにアクセスを許可するバイナリセマフォが最も多用されています。また、優先順位を考慮したアクセス制御のできるミューテックスや、2以上のタスクにアクセスを許可するカウンティングセマフォなどの方式も利用されます。
リアルタイムOSのセキュリティ課題
最後に、リアルタイムOSの利用において重要となる、セキュリティの課題点についても紹介しておきましょう。これまで、汎用OSが複数のデバイス同士で通信することが多いのに対し、リアルタイムOSは特定の機器内だけで動作することから、セキュリティ上の脅威にさらされにくいと判断されてきました。
しかし、IoTの進化に伴い、リアルタイムOSが搭載された機器も他のデバイスと通信する機器が増えたため、最近は汎用OSと同じようなセキュリティ対策を考える必要が発生しています。現在はセキュリティの脆弱性に対する分析や、セキュリティ対策が確立されていない状況ですが、ハード側・ソフト側でそれぞれ行える対策もあるため、セキュリティを意識した設計がこれから重要になってくるでしょう。
まとめ
今回は、組み込みシステムに良く用いられるリアルタイムOSについて、特徴や機能などをお伝えしました。リアルタイムOSはタスクに最悪応答時間(デッドライン)を設定し、一定時間内にタスクを必ず実行することが特徴のOSです。
タスクの処理を円滑に行うため様々な機能が搭載されており、産業機器や自動車など、処理の遅延が致命的な問題を引き起こす用途において数多く使われています。設計には独自の知識が必要になるので、より詳しい情報を知りたい方はリアルタイムOSの仕様を調べてみてください。
フリーランス×機電系エンジニア!高単価求人はこちら ▶機電系求人はこちら
-
設計技術者(樹脂、金属部品)
-
- 単価
-
40~50万円
-
- 職種
- 機械設計
-
詳細を見る
-
-
FPGAの設計開発:電気電子設計
-
- 単価
-
70~80万円
-
- 職種
- 電気電子設計
- スキル
- ・FPGA論理設計、RTLコーディング、論理検証環境構築、論理検証・RTLコード:VHDL・論理検証ツール:Siemens製Questa/ModelSIM
- 地域
- 東京
- ポイント
- #高単価
-
詳細を見る
-
-
UI画面の設計業務:電気電子設計
-
- 単価
-
64〜万円
-
- 職種
- 開発
- 電気電子設計
- スキル
- 必要スキル: ・電源回路は複数回経験し、設計動作確認など、一人でもある程度やるべきことが分かる。 ・数十頁のデータシートを読み、要求仕様(タイミング/電圧など)が理解できる ・その他左記の回路の種類の中で、回路設計の実務経験が1回以上ある。 ・回路修正ができる(半田付け、ジャンパー処理)
- 地域
- 関西
- ポイント
- #業務委託#駅近
-
詳細を見る
-
-
【急募】工作機械メーカーにおける自社製品の制御設計
-
- 単価
-
40~50万円
-
- 職種
- 電気電子設計
- スキル
- 基本的なPCスキル産業用機械・装置の電気設計経験
- 地域
- 山梨県
- ポイント
- #業務委託
-
詳細を見る
-