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