リアルタイムシステム(英: Real-time system)は、数値計算や制御などを命令された際、その処理を設定された期限通りに遂行するシステムである。
概要 システムが想定された目的を達成するために行う数値計算や制御はタスクと呼ばれる。これらのタスクには多くの場合、処理を完了させなければならない期限(デッドライン)が想定されている。このタスクを期限内に遂行し、目的を達成する用途で設計またはそれに特化させたシステムがリアルタイムシステムである。例えば、自動車のエアバッグは、車両の激突時に即座に展開しなければ乗員の命が危険に晒される。この場合、激突時に「乗員がダッシュボードに衝突するまでの時間」という期限内に「エアバッグを発動する」というタスクを行うよう設計されているため、エアバッグはリアルタイムシステムといえる。
分類 リアルタイムシステムは次にあげるいくつかの種類に分けることができる。
ハードリアルタイムシステム システムに与えられたタスクがデッドラインまでに終了しなかったとき(デッドラインミス)、故障するか致命的な結果へ導かれるシステム。従って、この種類のシステムではデッドラインミスをなるべく起こさないよう設計の段階から時間的制約の厳守が努められる。 例: エアバッグ、フライ・バイ・ワイヤ、ミサイル迎撃システムなど
ソフトリアルタイムシステム デッドラインミスが起こっても、即座にシステムへダメージを与えることはなく、その処理自体の価値が終了時間によって徐々に落ちていくシステム。 例: ATM、オンラインゲーム、気象観測システムなど
ファームリアルタイムシステム デッドラインミスが起こったとき、即座にシステムへダメージを与えることはないが、その処理自体の価値は無となるシステム。または、複数のデッドラインミスが致命的な結果へ導かれるシステムのこと。 例: 生産ライン、ガイガーカウンター、株価予測システムなど
スケジューリング
リアルタイム性を高めるために、どのような順番でタスクを処理するか(スケジューリング)が重要となる。ハードリアルタイムシステムの場合、スケジューリングアルゴリズムの選定は特に重要である。これらのアルゴリズムには各タスクの優先順位がスケジューリングの基準になることが多く、順位が時間と共に変化する動的スケジューリング(Earliest Deadline FirstやLeast Laxity Firstなど)と、変化しない静的スケジューリング(レートモノトニックスケジューリングなど)に大別される。
脚注
参考文献
関連項目 応答時間 最悪実行時間 シーケンス制御 フィードバック制御 組み込みシステム リアルタイムクロック - この「リアルタイム」は経過実時間の意であり、当記事のそれではない。 リアルタイムオペレーティングシステム