【あーるてぃーおーえす】

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

最終更新:
💡 必要な期限を守る、システム設計を支えるOS

決められた時間内に処理するシステムを支えるOS。速さとの違い、スケジューリング、OSだけで期限を保証できない理由を解説します。

📌 このページのポイント
RTOS:速さだけでなく期限が重要架空例:開始から10ms以内に完了間に合う例:0ms → 7msで完了遅れる例:0ms → 12msで完了0ms5ms10ms縦線は期限。同じ時間の尺度で比較RTOS:タスク実行を制御優先度・割込み・共有資源などアプリ・機器・負荷を含めシステムで検証
7msと12msは上下に並べた架空例でRTOSの性能値ではありません。OSを採用するだけで全処理の期限保証や安全認証にはならず、用途ごとの時間条件を確かめます。
ひよこ ひよこ
RTOSなら、どの処理も絶対に間に合う?
ペンギン先生 ペンギン先生
RTOSは、時間の条件を満たすシステムを作るためのOSだ。採用だけで、どんなアプリや負荷でも期限を保証するわけではない。処理にかかる時間、割込み、待ち合わせ、機器の条件なども含めて考える。
ひよこ ひよこ
リアルタイムは、最速という意味?
ペンギン先生 ペンギン先生
速さだけではない。決めた期限に間に合うことが大切だ。平均では速くても、ときどき大きく遅れると困る用途がある。逆に、期限内であればもっと速くしても目的に影響しない処理もあるよ。
ひよこ ひよこ
OSは、どうやって支える?
ペンギン先生 ペンギン先生
動けるタスクの中から、優先度などの規則で実行するものを選ぶ。高い優先度のタスクが実行可能になったとき、動いている処理を中断するプリエンプションなども使う。ただし方式と設定で動作が違い、RTOSがすべて同じ規則ではない。
ひよこ ひよこ
優先度を高くすれば、解決?
ペンギン先生 ペンギン先生
必要な処理が動きやすくなるが、CPUで実行する時間や、別のタスクが持つ共有資源を待つ時間もある。高い優先度の処理ばかり走れば、ほかの処理が進みにくくなる。期限と全体の負荷、待つ条件を確かめよう。
ひよこ ひよこ
Linuxは、リアルタイムには使えない?
ペンギン先生 ペンギン先生
LinuxにもリアルタイムのスケジューリングとPREEMPT_RTがある。PREEMPT_RTは、ロックや割込みの扱いを変え、高い優先度のタスクが動くまでの遅れを減らす。「Linuxは全部無理、RTOSなら全部保証」と分けず、構成と要求を検証する。
ひよこ ひよこ
どういう場所で使うの?
ペンギン先生 ペンギン先生
組込みの制御や機器など、応答の期限が重要な場面で使われる。FreeRTOSやZephyrなどが例だ。RTOSの採用は、安全性の認証や完成品の保証と同じではない。必要な時間条件と障害時の扱いを設計し、想定する負荷で確かめるんだ。
もっと詳しく知りたい人へ

ハードリアルタイムとソフトリアルタイムとは?

ハードリアルタイムは、期限を破ることを許容できない条件を指します。ソフトリアルタイムでは、期限の遅れがサービスの質などに影響しても、システム全体が直ちに使えなくなるとは限りません。製品名だけで分類せず、どの処理にどんな条件があるかを明らかにします。

期限を設定するAPIなら、期限を保証する?

例えばZephyrのk_thread_deadline_set()は、同じ静的優先度のスレッドを期限の順に選ぶための指定です。公式資料は、その期限内での実行を保証せず、必要な実行時間や周期を使った実行可能性の検証もしないと明記しています。API名とシステムの保証を混同しないようにします。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「RTOS」って出てきたら「決めた期限内に処理するシステムを支えるOS」と思えばだいたいOK!
📖 おまけ:英語の意味
「Real-Time Operating System」 = リアルタイムのオペレーティングシステム
💬 Real-Timeは「いつでも今すぐ」という意味ではなく、現実の出来事に対して必要な期限で応答する条件に注目した言葉です。期限の長さは、対象の処理と用途で異なります。

参考資料

← 用語集にもどる