リアルタイム処理とは、データや命令に対して即応性をもって行う処理です。つまり、データの入力が発生する度にその都度処理を行います。リアルタイム処理では期限がプログラムされており、その期限までに特定の処理が実行されていなければなりません。
また、リアルタイム処理と混同しやすい単語としてバッチ処理があり、バッチ処理は即時的に処理をせず、間隔を制御して定期的に処理する方式です。
リアルタイム処理はストリームデータ処理とも呼ばれ、バッチ処理よりも高速で正確といわれています。
リアルタイムシステムは、処理の厳密性によって区別されています。次の2種類に大別されます。
ハードリアルタイム処理
ハードリアルタイム処理とは、期限内に実行されなければならない処理のことを指します。
期限内に処理が実行されなかった場合、タスクを失敗と見なします。この種の処理は、障害が発生してはいけないシステムで使用されます。
例としては、飛行機制御システム、車の自動運転システム、ペースメーカー、重症患者の健康状態を監視する医療機器、などがあります。
ソフトリアルタイム処理
ソフトリアルタイム処理とは、期限内に処理が実行されなかったとしてもシステムがダウンすることなく、そして処理が間に合わなかったとしても許される余地のある処理のことを指します。
しかしその結果、ソフトリアルタイム処理を用いているシステムの品質が低下したり、機能の効果が低下したりする可能性があります。
これらの処理はオーディオや映像関連にて使われています。
たとえば動画において、録画された映像のフレームの一部に遅延が起こったり映像が乱れることはありますが、それが原因で録画自体が止まることはありません。しかし仕上がりにおいて、フレームが欠落したり映像が鮮明に映らなかったりする可能性があるため、映像の質は低下してしまいます。
リアルタイム処理の利点
データ処理の遅延は極めて少なく、処理に使われる情報は最新です。
また、処理できた・できなかったの判別をリアルタイムで行っているため、問題を特定しやすいです。
リアルタイム処理の欠点
高性能のハードウェアが必要なため高価になり、単純なシステムで実装するのは難しいです。
また、システム障害が発生した場合には過負荷がかかってしまいます。
参考記事
・APIとは何か?いまさら聞けない基本的な意味を解説
・今さら聞けないアプリケーションの基礎知識。アプリ開発のメリットやASO対策ってなに?
・インターフェースとはどういう意味だろうか?様々な場面で使われる意味を解説!