Um "weiche Echtzeit" zu definieren, ist es am einfachsten, sie mit "harter Echtzeit" zu vergleichen. Im Folgenden sehen wir, dass der Begriff "feste Echtzeit" ein Missverständnis über "weiche Echtzeit" darstellt.
Lässig gesprochen haben die meisten Menschen implizit ein informelles mentales Modell, das Informationen oder ein Ereignis als "Echtzeit" betrachtet.
• wenn oder soweit es sich für sie mit einer Verzögerung (Latenz) manifestiert, die sich auf die wahrgenommene Währung beziehen kann
• dh in einem Zeitraum, in dem die Informationen oder Ereignisse für sie einen annehmbar zufriedenstellenden Wert haben.
Es gibt zahlreiche verschiedene Ad-hoc-Definitionen von "harter Echtzeit", aber in diesem mentalen Modell wird harte Echtzeit durch den Begriff "wenn" dargestellt. Unter der Annahme, dass Echtzeitaktionen (z. B. Aufgaben) Abschlussfristen haben, ist der akzeptabel zufriedenstellende Wert des Ereignisses, dass alle Aufgaben abgeschlossen sind, auf den Sonderfall beschränkt, dass alle Aufgaben ihre Fristen einhalten.
Harte Echtzeitsysteme gehen sehr stark davon aus, dass alles an der Anwendung, dem System und der Umgebung statisch und a priori bekannt ist - z. B. welche Aufgaben, welche periodisch sind, welche Ankunftszeiten, welche Perioden, welche Fristen sie gewonnen haben Es gibt keine Ressourcenkonflikte und insgesamt die zeitliche Entwicklung des Systems. In einem Flugzeugflugsteuerungssystem oder einem Fahrzeugbremssystem und in vielen anderen Fällen können diese Annahmen normalerweise erfüllt werden, so dass alle Fristen eingehalten werden.
Dieses mentale Modell ist absichtlich und sehr nützlich genug, um sowohl harte als auch weiche Echtzeit zu erfassen - weich wird durch die Phrase "in dem Maße, wie" berücksichtigt. Angenommen, das Ereignis "Aufgabenabschluss" hat einen suboptimalen, aber akzeptablen Wert, wenn
- Nicht mehr als 10% der Aufgaben verpassen ihre Fristen
- oder keine Aufgabe ist mehr als 20% verspätet
- oder die durchschnittliche Verspätung aller Aufgaben beträgt nicht mehr als 15%
- oder die maximale Verspätung unter allen Aufgaben beträgt weniger als 10%
Dies sind alles gängige Beispiele für weiche Echtzeitfälle in sehr vielen Anwendungen.
Betrachten Sie die Einzelaufgabe, Ihr Kind nach der Schule abzuholen. Das hat wahrscheinlich keine tatsächliche Frist, stattdessen haben Sie und Ihr Kind einen gewissen Wert, der davon abhängt, wann dieses Ereignis stattfindet. Zu früh verschwendet Ressourcen (wie Ihre Zeit) und zu spät hat einen negativen Wert, da Ihr Kind möglicherweise allein gelassen wird und möglicherweise Schaden nimmt (oder zumindest unangenehm ist).
Im Gegensatz zum statischen Sonderfall "Harte Echtzeit" werden bei "Weiche Echtzeit" nur die minimal erforderlichen anwendungsspezifischen Annahmen über die Aufgaben und das System getroffen, und es werden Unsicherheiten erwartet. Um Ihr Kind abzuholen, müssen Sie zur Schule fahren, und die Zeit dafür ist abhängig von Wetter, Verkehrsbedingungen usw. dynamisch. Sie könnten versucht sein, Ihr System übermäßig bereitzustellen (dh zuzulassen, was Sie hoffen, ist das Worst-Case-Fahrzeit), aber auch dies verschwendet Ressourcen (Ihre Zeit und das Besetzen des Familienfahrzeugs, wodurch möglicherweise die Nutzung durch andere Familienmitglieder verweigert wird).
Dieses Beispiel scheint in Bezug auf verschwendete Ressourcen nicht kostspielig zu sein, berücksichtigt jedoch andere Beispiele. Alle militärischen Kampfsysteme sind in Echtzeit weich. Sie können beispielsweise einen Flugzeugangriff auf ein feindliches Bodenfahrzeug mit einer Rakete durchführen, die mit Aktualisierungen als Zielmanöver geführt wird. Die maximale Zufriedenheit bei der Erledigung der Kursaktualisierungsaufgaben wird durch einen direkten zerstörerischen Schlag auf das Ziel erreicht. Ein Versuch, Ressourcen zu stark bereitzustellen, um dieses Ergebnis sicherzustellen, ist jedoch in der Regel viel zu teuer und möglicherweise sogar unmöglich. In diesem Fall sind Sie möglicherweise weniger zufrieden, wenn die Rakete nahe genug am Ziel anschlägt, um es zu deaktivieren.
Offensichtlich weisen Kampfszenarien sehr viele mögliche dynamische Unsicherheiten auf, die vom Ressourcenmanagement berücksichtigt werden müssen. Weiche Echtzeitsysteme sind auch in vielen zivilen Systemen wie der industriellen Automatisierung sehr verbreitet, obwohl offensichtlich militärische Systeme die gefährlichsten und dringendsten sind, um einen akzeptabel zufriedenstellenden Wert zu erzielen.
Der Grundpfeiler von Echtzeitsystemen ist die "Vorhersagbarkeit". Der harte Echtzeitfall interessiert sich nur für einen speziellen Fall der Vorhersagbarkeit - dh, dass alle Aufgaben ihre Fristen einhalten und der maximal mögliche Wert durch dieses Ereignis erreicht wird. Dieser Sonderfall wird als "deterministisch" bezeichnet.
Es gibt ein Spektrum an Vorhersagbarkeit. Deterministisch (Determinismus) ist ein Endpunkt (maximale Vorhersagbarkeit) im Vorhersagbarkeitsspektrum; Der andere Endpunkt ist die minimale Vorhersagbarkeit (maximaler Nichtdeterminismus). Die Metrik und die Endpunkte des Spektrums müssen anhand eines ausgewählten Vorhersagbarkeitsmodells interpretiert werden. Alles zwischen diesen beiden Endpunkten ist ein Grad an Unvorhersehbarkeit (= Grad an Nichtdeterminismus).
Die meisten Echtzeitsysteme (nämlich weiche) haben eine nicht deterministische Vorhersagbarkeit, beispielsweise der Fertigstellungszeiten der Aufgaben und damit der aus diesen Ereignissen gewonnenen Werte.
Im Allgemeinen (theoretisch) kann die Vorhersagbarkeit und damit der annehmbar zufriedenstellende Wert so nahe wie möglich am deterministischen Endpunkt liegen - jedoch zu einem Preis, der physikalisch unmöglich oder übermäßig teuer sein kann (wie im Kampf oder vielleicht sogar in) Abholung Ihres Kindes von der Schule).
Weiche Echtzeit erfordert eine anwendungsspezifische Auswahl eines Wahrscheinlichkeitsmodells (nicht des gängigen Frequentist-Modells) und damit eines Vorhersagbarkeitsmodells, um über Ereignislatenzen und resultierende Werte nachzudenken.
Unter erneuter Bezugnahme auf die obige Liste von Ereignissen, die einen akzeptablen Wert liefern, können wir jetzt nicht deterministische Fälle hinzufügen, wie z
- Die Wahrscheinlichkeit, dass keine Aufgabe ihre Frist um mehr als 5% verfehlt, ist größer als 0,87. (Beachten Sie die Anzahl der dort angegebenen Planungskriterien.)
In einer Raketenabwehranwendung würden Sie angesichts der Tatsache, dass die Offensive im Kampf immer den Vorteil gegenüber der Verteidigung hat, welches dieser beiden Echtzeit-Computerszenarien bevorzugen:
Da die perfekte Zerstörung aller feindlichen Raketen sehr unwahrscheinlich oder unmöglich ist, weisen Sie Ihre Verteidigungsressourcen zu, um die Wahrscheinlichkeit zu maximieren, dass möglichst viele der bedrohlichsten (z. B. basierend auf ihren Zielen) feindlichen Raketen erfolgreich abgefangen werden (ein enges Abfangen zählt, weil dies der Fall ist kann die feindliche Rakete vom Kurs abbringen);
Beschweren Sie sich, dass dies kein Echtzeit-Computerproblem ist, da es dynamisch statt statisch ist und herkömmliche Echtzeitkonzepte und -techniken nicht angewendet werden. Es klingt schwieriger als statisch in Echtzeit, sodass Sie nicht daran interessiert sind .
Trotz der verschiedenen Missverständnisse über weiche Echtzeit in der Echtzeit-Computer-Community ist weiche Echtzeit sehr allgemein und leistungsfähig, wenn auch potenziell komplex im Vergleich zu harter Echtzeit. Die hier zusammengefassten weichen Echtzeitsysteme haben eine lange Erfolgsgeschichte außerhalb der Echtzeit- Computergemeinschaft .
So beantworten Sie die OP-Frage direkt:
Ein hartes Echtzeitsystem kann deterministische Garantien bieten - am häufigsten, dass alle Aufgaben ihre Fristen einhalten, die Antwortzeit für Unterbrechungen oder Systemanrufe immer kleiner als x usw. ist -, WENN UND NUR WENN sehr starke Annahmen getroffen werden und dies korrekt ist Alles, was zählt, ist statisch und von vornherein bekannt (im Allgemeinen sind solche Garantien für harte Echtzeitsysteme ein offenes Forschungsproblem, mit Ausnahme relativ einfacher Fälle).
Ein weiches Echtzeitsystem gibt keine deterministischen Garantien ab, sondern soll die bestmögliche analytisch spezifizierte und durchgeführte probabilistische Aktualität und Vorhersagbarkeit der Aktualität bieten, die unter den aktuellen dynamischen Umständen nach anwendungsspezifischen Kriterien möglich sind.
Offensichtlich ist harte Echtzeit ein einfacher Spezialfall von weicher Echtzeit. Offensichtlich können die analytischen nicht deterministischen Zusicherungen von Soft Real-Time sehr komplex sein, sind jedoch in den häufigsten Echtzeitfällen (einschließlich der gefährlichsten sicherheitskritischen Fälle wie dem Kampf) obligatorisch, da die meisten Echtzeitfälle nicht dynamisch sind statisch.
"Feste Echtzeit" ist ein schlecht definierter Sonderfall von "weicher Echtzeit". Dieser Begriff ist nicht erforderlich, wenn der Begriff "weiche Echtzeit" richtig verstanden und verwendet wird.
Ich habe auf meiner Website real-time.org eine detailliertere, viel präzisere Diskussion über Echtzeit, harte Echtzeit, weiche Echtzeit, Vorhersagbarkeit, Determinismus und verwandte Themen.