リアルタイムOS(RTOS)とは
リアルタイムOS(Real-Time Operating System)は、特定の処理を指定された「時間制限(デッドライン)」内に確実に完了させることを最優先に設計されたオペレーティングシステム(OS)です。パソコンやスマホのOS(WindowsやiOSなど)が「多くのアプリを同時に、そこそこの速さで動かすこと」を目指すのに対し、リアルタイムOSは「決められたミリ秒やマイクロ秒という極めて短い制限時間内に、特定の処理を絶対に狂いなく実行すること」を保証します。主に家電製品、自動車、医療機器などの組み込みシステムで用いられます。
具体例
自動車の「自動ブレーキシステム」や「エアバッグ」が代表的です。これらは衝突を検知した瞬間、コンマ数秒という時間制限内にブレーキをかけたりエアバッグを膨らませたりする処理を絶対に完了させる必要があります。もしOSの処理が遅れて制限時間を過ぎてしまえば人命に関わります。リアルタイムOSはこのような極めて時間管理がシビアな制御に使用されています。
【一般的なOSとリアルタイムOSの違い】\n・汎用OS (Windows/macOS等): \n 同時に音楽再生やブラウザ起動などを行う。画面が時々一瞬カクついても問題はない。\n・リアルタイムOS (RTOS): \n 「衝突センサー作動」から「エアバッグ点火」までを必ず0.01秒以内に実行することを最優先にする。もう少し詳しく
リアルタイムOS(RTOS)の最大の特徴は、「リアルタイム性(応答の即時性と時間的決定論)」です。これは単に「処理速度が速い」という意味ではなく、「どのような状況下であっても、特定のイベントが発生してからその処理が完了するまでの時間(応答時間)が常に予測可能(決定論的)であり、最悪値(ワーストケース)でも制限時間(デッドライン)を超えないこと」を指します。RTOSでは、タスクの実行制御に「プリエンプティブ(横取り可能)な優先度ベースのスケジューリング」が用いられます。これにより、低優先度のタスクを実行していても、より高優先度の割り込み(例:異常検知センサーからの信号)が発生した瞬間に、CPUの実行権限をミリ秒〜マイクロ秒単位で強制的に高優先度タスクへと切り替える(コンテキストスイッチ)ことができます。RTOSはさらに、デッドラインを1ミリ秒でも過ぎるとシステム全体が破綻し深刻な事故に繋がる「ハードリアルタイムシステム(例:自動車のブレーキ、航空機制御)」と、多少の遅延(フレームドロップ等)は許容されるが平均的な応答性が求められる「ソフトリアルタイムシステム(例:動画再生機器、家庭用ゲーム機)」に分類されます。
試験でのポイント
応用情報技術者試験におけるリアルタイムOSの出題ポイントは、「汎用OS(WindowsやLinux等)との設計思想の違い」および「タスクスケジューリングの仕組み」です。「時間内に処理を完了する応答性を保証する」「優先度の高いタスクが実行可能になったとき、即座に現在のタスクを中断して切り替える(プリエンプション)」といった特徴が選択肢でよく問われます。また、複数のタスクが互いの共有資源の解放を待ち合って動作を停止してしまう「デッドロック」や、低優先度のタスクが高優先度タスクの実行を妨げてしまう「優先度逆転(Priority Inversion)」といったマルチタスク制御特有のバグ・問題についても出題されやすいです。「優先度継承(優先度インヘリタンス)」や「優先度上限(優先度シーリング)」など、これらの問題を解決するためのRTOSの機能についても概要を理解しておくと、組み込みシステム開発分野の午後問題(記述式)で大きな強みとなります。
関連する用語
RTOSにおける時間的制約を示すデッドライン、現在実行中のタスクを強制中断してより緊急度の高いタスクに切り替えるプリエンプティブスケジューリング、および共有資源の競合による処理停止状態を指すデッドロックがあります。これらを併せて整理することで、組み込み制御の基本構造が理解できます。