「ソフトリアルタイム」を定義するには、「ハードリアルタイム」と比較するのが最も簡単です。
何気なく話すと、ほとんどの人は暗黙のうちに、情報やイベントを「リアルタイム」と見なす非公式のメンタルモデルを持っています。
•認識された通貨に関連する可能性のある遅延(レイテンシー)が明らかになる場合、またはその程度まで
•すなわち、情報またはイベントが満足のいく満足のいく価値を持っている時間枠内。
「ハードリアルタイム」にはさまざまなアドホックな定義がありますが、そのメンタルモデルでは、ハードリアルタイムは「if」という用語で表されます。具体的には、リアルタイムアクション(タスクなど)に完了期限があると仮定すると、すべてのタスクが完了するイベントの満足できる満足できる値は、すべてのタスクが期限を満たす特別な場合に限定されます。
ハードリアルタイムシステムは、アプリケーションとシステムおよび環境に関するすべてが静的であり、アプリオリに知られているという非常に強い仮定を立てます。たとえば、どのタスク、定期的であるか、到着時間、期間、期限、獲得したリソースの競合や全体的なシステムの時間的進化はありません。航空機の飛行制御システムまたは自動車のブレーキシステムおよびその他の多くの場合、これらの仮定は通常満たされ、すべての期限が満たされます。
このメンタルモデルは、ハードリアルタイムとソフトリアルタイムの両方を網羅するのに十分な程度に意図的かつ非常に有用であり、ソフトは「その程度まで」というフレーズで対応されています。たとえば、次の場合、タスク完了イベントの値は準最適ですが許容できると仮定します
- 締め切りに間に合わないタスクは10%以下
- または20%を超えるタスクはありません
- または、すべてのタスクの平均遅延が15%を超えない
- または、すべてのタスクの最大遅延が10%未満
これらはすべて、非常に多くのアプリケーションでのソフトリアルタイムの一般的な例です。
放課後に子供を迎えに行くシングルタスクアプリケーションを検討してください。おそらく実際の締め切りはありませんが、代わりにそのイベントがいつ発生するかに基づいて、あなたとあなたの子供にとって何らかの価値があります。早すぎるとリソース(時間など)が無駄になり、遅すぎると、子供が一人で放置され、潜在的に害を及ぼす(または少なくとも不便になる)ため、マイナスの価値があります。
静的なハードリアルタイムの特殊なケースとは異なり、ソフトリアルタイムは、タスクとシステムに関する最小限の必要なアプリケーション固有の仮定のみを行い、不確実性が予想されます。子供を迎えに行くには、学校まで車で行く必要があり、その時間は天候や交通状況などに応じて動的に変化します。システムを過剰にプロビジョニングしたくなるかもしれません。最悪の場合は運転時間)ですが、これもリソースを浪費しています(あなたの時間、家族の車を占有し、他の家族による使用を拒否する可能性があります)。
この例は、リソースの浪費という点ではコストがかかるようには見えませんが、他の例を検討してください。すべての軍事戦闘システムはソフトリアルタイムです。たとえば、目標の機動として更新されたミサイルを使用して敵の地上車両に航空機攻撃を実行することを検討してください。コース更新タスクを完了するための最大の満足度は、ターゲットに対する直接的な破壊的な攻撃によって達成されます。しかし、この結果を確実にするためにリソースを過剰に提供しようとする試みは、通常非常に高価であり、不可能な場合もあります。この場合、ミサイルがターゲットに接近して無効化できるほど十分に満足しているとは限りません。
明らかに、戦闘シナリオには、リソース管理で対処しなければならない非常に多くの可能性のある動的な不確実性があります。ソフトリアルタイムシステムは、産業オートメーションなどの多くの民間システムでも非常に一般的ですが、明らかに軍事システムは、満足できる満足のいく値を達成するための最も危険で緊急のシステムです。
リアルタイムシステムの要は「予測可能性」です。ハードリアルタイムの場合は、予測可能性の1つの特別な場合にのみ関心があります。つまり、タスクがすべて期限を満たし、そのイベントによって最大の価値が達成されるということです。その特別なケースは「決定論的」という名前です。
さまざまな予測可能性があります。ほとんどのリアルタイムシステム(つまり、ソフトシステム)には、たとえばタスクの完了時間、したがってそれらのイベントから得られる値の非決定的な予測可能性があります。一般的に、予測可能性、したがって価値は、必要に応じて決定論的エンドポイントに近づけることができますが、価格は物理的に不可能または過度に高価な場合があります(戦闘中またはおそらく子供を学校から連れて行く場合でも)。
ソフトリアルタイムでは、アプリケーション固有の確率モデル(一般的な頻度モデルではなく)の選択が必要であるため、イベントレイテンシと結果値について推論するための予測可能性モデルが必要です。
上記の許容可能な値を提供するイベントのリストに戻って、次のような非決定的なケースを追加できます。
- どのタスクも期限を5%以上見逃さない確率は0.87を超えています。
ミサイル防衛アプリケーションでは、戦闘では攻撃が常に防衛よりも有利であるという事実を考えると、これらの2つのリアルタイムコンピューティングシナリオのどちらを好むでしょうか。
すべての敵対的ミサイルの完全な破壊は非常にありそうにないか不可能であるため、防御リソースを割り当てて、最も脅威となる(例:ターゲットに基づいて)敵対的ミサイルが正常に傍受される確率を最大化します(傍受カウントが近いため)敵対ミサイルをコース外に移動できます);
これは静的ではなく動的であり、従来のリアルタイムの概念や手法は適用されないため、これはリアルタイムコンピューティングの問題ではないことを訴えます。したがって、ソフトリアルタイムのR&Dには興味がありません。
リアルタイムコンピューティングコミュニティにおけるソフトリアルタイムに関するさまざまな誤解にもかかわらず(ただし、他の非コンピューティング分野ではそうではありませんが)、ソフトリアルタイムは非常に一般的かつ強力であり、ハードリアルタイムと比較して非常に複雑になる可能性があります。
OPの質問に直接回答するには:
ハードリアルタイムシステムは、確定的な保証を提供できます。最も一般的には、すべてのタスクが期限を満たし、割り込みまたはシステムコールの応答時間が常にx未満になるなどです。非常に強い仮定が行われ、重要なことはすべて静的であり、事前に知られています(一般に、ハードリアルタイムシステムに対するこのような保証は、かなり単純な場合を除き、未解決の研究問題です)
ソフトリアルタイムシステムは決定論的な保証を行いません。アプリケーション固有の基準に従って、現在の動的な状況下で実行可能な、可能な限り分析的に指定された確率的適時性と適時性の予測可能性を提供することを目的としています。明らかにハードリアルタイムは、ソフトリアルタイムの単純で特殊なケースです。明らかに、ソフトリアルタイムの分析的非決定性保証は提供するのが非常に複雑な場合がありますが、ほとんどの場合は静的ではなく動的であるため、最も一般的なリアルタイムの場合(戦闘などの最も危険で安全性が重要なものを含む)に必須です。
私のWebサイトreal-time.orgで、リアルタイム、ハードリアルタイム、ソフトリアルタイム、予測可能性、決定論、および関連トピックの詳細な議論を行っています。