リアルタイムシステム(英: Real-time system)は、数値計算や制御などを命令された際、その処理を設定された期限通りに遂行するシステムである。 システムが想定された目的を達成するために行う数値計算や制御はタスクと呼ばれる。これらのタスクには多くの場合、処理を完了させなければならない期限(デッドライン)が想定されている。このタスクを期限内に遂行し、目的を達成する用途で設計またはそれに特化させたシステムがリアルタイムシステムである。例えば、自動車のエアバッグは、車両の激突時に即座に展開しなければ乗員の命が危険に晒される。この場合、激突時に「乗員がダッシュボードに衝突するまでの時間」という期限内に「エアバッグを発動する」というタスクを行うよう設計されているため、エアバッグはリアルタイムシステムといえる。 リアルタイムシステムは次にあげるいくつかの種類に分けることができる。 リアルタイム性を高めるために、どのような順番でタスクを処理するか(スケジューリング)が重要となる。ハードリアルタイムシステムの場合、スケジューリングアルゴリズムの選定は特に重要である。これらのアルゴリズムには各タスクの優先順位がスケジューリングの基準になることが多く、順位が時間と共に変化する動的スケジューリング(Earliest Deadline FirstやLeast Laxity Firstなど)と、変化しない静的スケジューリング(レートモノトニックスケジューリングなど)に大別される。
概要
分類
ハードリアルタイムシステムシステムに与えられたタスクがデッドラインまでに終了しなかったとき(デッドラインミス)、故障するか致命的な結果へ導かれるシステム[1]。従って、この種類のシステムではデッドラインミスをなるべく起こさないよう設計の段階から時間的制約の厳守が努められる。
例: エアバッグ、フライ・バイ・ワイヤ、ミサイル迎撃システムなど
ソフトリアルタイムシステムデッドラインミスが起こっても、即座にシステムへダメージを与えることはなく、その処理自体の価値が終了時間によって徐々に落ちていくシステム[1]。
例: ATM、オンラインゲーム、気象観測システムなど
ファームリアルタイムシステムデッドラインミスが起こったとき、即座にシステムへダメージを与えることはないが、その処理自体の価値は無となるシステム。または、複数のデッドラインミスが致命的な結果へ導かれるシステムのこと[2]。
例: 生産ライン、ガイガーカウンター、株価予測システムなど
スケジューリング詳細は「スケジューリング」を参照
脚注[脚注の使い方]^ a b Laplante 2004, pp. 5?6.
^ Laplante 2004, p. 6.
参考文献
Laplante, Philip A. (2004). Real-Time Systems Design and Analysis (3 ed.). IEEE Press. .mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}ISBN 0-471-22855-9
Stankovic, J.A. (1988). “Misconceptions About Real-Time Computing: A Serious Problem For Next-Generation Systems”. Computer (IEEE) 21 (10): 10-19. doi:10.1109/2.7053
関連項目
応答時間
最悪実行時間
シーケンス制御
フィードバック制御
組み込みシステム
リアルタイムクロック
リアルタイムオペレーティングシステム
表
話