リアルタイムシステムとは
リアルタイムシステム(英: Real-time system)とは、与えられたタスクを指定された期限内に実行することが求められるシステムのことを指します。このシステムが果たすべき数値計算や制御の処理は「タスク」と呼ばれ、成功裏に実行されることが必要です。そのため、これらのタスクには通常、期限(デッドライン)が設けられています。
例えば、自動車に搭載された
エアバッグシステムは、衝突事故の際に迅速に展開されなければ、乗員の安全が脅かされるため、特定の時間以内に
エアバッグを作動させることが求められます。このように、時間的制約のもとで任務を果たすことが求められるシステムが、リアルタイムシステムと呼ばれています。
リアルタイムシステムの分類
リアルタイムシステムは、タスクの期限を守る重要性に応じていくつかの種類に分類されます。主な分類は以下の通りです。
ハードリアルタイムシステム
このタイプのシステムでは、タスクがデッドラインに間に合わないと、システムが故障する恐れがあります。そのため、設計時から厳格な時間的制約が課せられ、デッドラインミスを避けることが最も重要な要素となります。具体例として、
エアバッグシステムやフライ・バイ・ワイヤシステム、さらにはミサイル迎撃システムが挙げられます。
ソフトリアルタイムシステム
こちらのシステムでは、デッドラインを過ぎても直ちにシステムがダメージを受けることはありませんが、処理の価値は時間が経つにつれて減少します。ATMや
オンラインゲーム、気象観測システムなどがこれに該当します。
ファームリアルタイムシステム
ファームリアルタイムシステムでは、デッドラインミスが発生しても即時にシステムにダメージを与えることはありませんが、処理の価値が失われることから、複数回のデッドラインミスが致命的な結果をもたらすことがあります。生産ラインやガイガーカウンター、
株価予測システムなどが代表的な例です。
タスクのスケジューリング
リアルタイム性を最大限に高めるためには、タスクをどのような順序で処理するかという「スケジューリング」が重要な役割を果たします。特にハードリアルタイムシステムにおいては、スケジューリング
アルゴリズムの選定が重要です。スケジューリングでは、各タスクの優先順位が大きな役割を果たします。この優先順位は、時間の経過に伴って変動する動的スケジューリング(Earliest Deadline FirstやLeast Laxity Firstなど)と、変わらない静的スケジューリング(レートモノトニックスケジューリングなど)に分類されます。
脚注と参考文献
この分野に関するさらなる知識を得るために、以下の参考文献もお勧めします。1. Laplante, Philip A. (2004).
Real-Time Systems Design and Analysis (3 ed.). IEEE Press. 2. Stankovic, J.A. (1988). “Misconceptions About Real-Time Computing: A Serious Problem For Next-Generation Systems”. Computer (IEEE) 21 (10): 10-19.
関連項目
- - 応答時間
- - 最悪実行時間
- - シーケンス制御
- - フィードバック制御
- - 組み込みシステム
- - リアルタイムクロック
- - リアルタイムオペレーティングシステム