Unterschiede zwischen harter Echtzeit, weicher Echtzeit und fester Echtzeit?


101

Ich habe die Definitionen für die verschiedenen Begriffe von Echtzeit gelesen , und die Beispiele für harte und weiche Echtzeitsysteme sind für mich sinnvoll. Es gibt jedoch keine wirkliche Erklärung oder ein Beispiel für ein festes Echtzeitsystem. Laut obigem Link:

Fest : Seltene Terminüberschreitungen sind tolerierbar, können jedoch die Servicequalität des Systems beeinträchtigen. Der Nutzen eines Ergebnisses ist nach Ablauf seiner Frist Null.

Gibt es eine klare Unterscheidung zwischen fester Echtzeit und harter oder weicher Echtzeit, und gibt es ein gutes Beispiel, das diese Unterscheidung veranschaulicht?

In Kommentaren bat Charles mich, Tag-Wikis für die neuen Tags einzureichen. Das Beispiel eines "festen Echtzeitsystems" habe ich für das bereitgestelltTag war ein Milchportionssystem. Wenn das System nach Ablauf der Zeit Milch liefert, wird die Milch als "nicht nützlich" angesehen. Man kann es tolerieren, Müsli ohne Milch zu essen, aber die Qualität der Erfahrung ist beeinträchtigt.

Dies ist nur die Idee, die ich in meinem Kopf hatte, als ich die Definition zum ersten Mal las. Ich suche ein viel besseres Beispiel und vielleicht eine bessere Definition von fester Echtzeit , die meine Vorstellung davon verbessern wird.


11
Grundsätzlich sind die Definitionen nicht wirklich fest.
Hot Licks

Ich habe die ursprünglichen Tags wiederhergestellt. Ich denke, es ist nützlich, eine Frage in Bezug auf harte oder weiche Echtzeit mit einem spezifischeren Tag versehen zu können. Es ändert die Art und Weise, wie die Frage beantwortet wird. Die Tags werden ohnehin automatisch entfernt, wenn die Tags nach 6 Monaten nicht mehr verwendet werden.
jxh

Wenn Sie auf drei neuen Tags für diese Frage und nur für diese Frage bestehen möchten, fügen Sie mindestens Wikis hinzu und versuchen Sie, andere Fragen zu finden, für die sie gelten würden.
Charles

Antworten:


114

Harte Echtzeit bedeutet, dass Sie unbedingt jede Frist einhalten müssen. Nur sehr wenige Systeme haben diese Anforderung. Einige Beispiele sind nukleare Systeme, einige medizinische Anwendungen wie Herzschrittmacher, eine große Anzahl von Verteidigungsanwendungen, Avionik usw.

Feste / weiche Echtzeitsysteme können einige Fristen verpassen, aber die Leistung wird sich möglicherweise verschlechtern, wenn zu viele verpasst werden. Ein gutes Beispiel ist das Soundsystem in Ihrem Computer. Wenn Sie ein paar Kleinigkeiten verpassen, keine große Sache, aber zu viele, und Sie werden das System schließlich verschlechtern. Ähnlich wären seismische Sensoren. Wenn Sie ein paar Datenpunkte verpassen, ist das keine große Sache, aber Sie müssen die meisten abfangen, um die Daten zu verstehen. Noch wichtiger ist, dass niemand sterben wird, wenn er nicht richtig funktioniert.

Die Linie ist unscharf, weil sogar ein Herzschrittmacher um einen kleinen Betrag ausfallen kann, ohne den Patienten zu töten, aber das ist der allgemeine Kern.

Es ist wie der Unterschied zwischen heiß und warm. Es gibt keine wirkliche Kluft, aber Sie wissen es, wenn Sie es fühlen.


2
Ihr "festes" Beispiel erscheint mir "weich".
Jxh

Wie bereits erwähnt, sind die Trennlinien ziemlich unscharf. Das eine weiche Echtzeitsystem, an dem ich gearbeitet habe, hatte Toleranzen von einigen Sekunden, also ziehe ich hier die Grenze.
Joel

1
Denken Sie daran, dass es ein Kontinuum ist. Praktisch jedes Computersystem ist auf einer bestimmten Zeitskala "Echtzeit". Das Abrechnungssystem eines Unternehmens muss die Rechnungen so schnell herausholen, dass der Cashflow in das Unternehmen erhalten bleibt. Andernfalls stirbt das Unternehmen, genau wie ein Patient, wenn ein Herzschrittmacher die Schläge um einige hundert Millisekunden verfehlt.
Hot Licks

Ich verstehe, dass versäumte Fristen für einige Systeme tolerierbar sein können, aber das ist mein Verständnis eines weichen Echtzeitsystems. Ich suche ein praktisches Beispiel für die Kriterien: Der Nutzen eines Ergebnisses ist nach Ablauf seiner Frist Null. Ich denke für Ihr Soundbeispiel: Wenn der Sound mit einem Videostream synchronisiert ist, haben einige spät ankommende Audiopakete keinen Nutzen. Es gibt jedoch einige Filmwiedergabesysteme, die das Audio beschleunigen, um das Video aufzunehmen.
jxh

Die Echtzeitanforderungen stehen im Kontext eines bestimmten Systems und sind dem Problem nicht inhärent. In dem Beispiel, das Sie geben, ist der Ton immer noch beschädigt (er ist beschleunigt) und es gibt eine vorübergehende Nichtübereinstimmung von Ton und Video.
Joel

112

Harte Echtzeit

Die harte Echtzeitdefinition betrachtet jede versäumte Frist als Systemfehler. Diese Planung wird häufig in unternehmenskritischen Systemen verwendet, bei denen die Nichteinhaltung von Zeiteinschränkungen zum Verlust von Leben oder Eigentum führt.

Beispiele:

  • Air France Flug 447 stürzte in den Ozean, nachdem eine Fehlfunktion des Sensors eine Reihe von Systemfehlern verursachte. Die Piloten blockierten das Flugzeug, während sie auf veraltete Instrumentenwerte reagierten. Alle 12 Besatzungsmitglieder und 216 Passagiere wurden getötet.

  • Das Raumschiff Mars Pathfinder ging fast verloren, als eine Prioritätsinversion einen Neustart des Systems verursachte. Eine Aufgabe mit höherer Priorität wurde nicht rechtzeitig abgeschlossen, da sie durch eine Aufgabe mit niedrigerer Priorität blockiert wurde. Das Problem wurde behoben und das Raumschiff landete erfolgreich.

  • Ein Tintenstrahldrucker verfügt über einen Druckkopf mit Steuerungssoftware zum Einbringen der richtigen Tintenmenge auf einen bestimmten Teil des Papiers. Wenn eine Frist nicht eingehalten wird, ist der Druckauftrag ruiniert.


Feste Echtzeit

Die feste Echtzeitdefinition ermöglicht selten versäumte Termine. In diesen Anwendungen kann das System Aufgabenfehler überleben, solange sie einen angemessenen Abstand haben. Der Wert für die Fertigstellung der Aufgabe fällt jedoch auf Null oder wird unmöglich.

Beispiele:

  • Fertigungssysteme mit Robotermontagelinien, bei denen eine Frist nicht eingehalten wird, führen zu einer unsachgemäßen Montage eines Teils. Solange zerstörte Teile selten genug sind, um von der Qualitätskontrolle erfasst zu werden, und nicht zu teuer sind, wird die Produktion fortgesetzt.

  • Eine Set-Top-Box für digitale Kabel dekodiert Zeitstempel, wenn Frames auf dem Bildschirm angezeigt werden müssen. Da die Frames zeitauftragsabhängig sind, verursacht eine versäumte Frist Jitter und verringert die Servicequalität. Wenn der verpasste Frame später verfügbar wird, wird nur mehr Jitter angezeigt, sodass er unbrauchbar ist. Der Betrachter kann das Programm trotzdem genießen, wenn Jitter nicht zu oft auftritt.


Weiche Echtzeit

Die weiche Echtzeitdefinition ermöglicht häufig versäumte Termine. Solange Aufgaben rechtzeitig ausgeführt werden, sind ihre Ergebnisse weiterhin wertvoll. Abgeschlossene Aufgaben können bis zum Stichtag an Wert zunehmen und nach Ablauf der Frist abnehmen.

Beispiele:

  • Wetterstationen verfügen über viele Sensoren zum Ablesen von Temperatur, Luftfeuchtigkeit, Windgeschwindigkeit usw. Die Ablesungen sollten in regelmäßigen Abständen vorgenommen und übertragen werden, die Sensoren sind jedoch nicht synchronisiert. Auch wenn ein Sensorwert im Vergleich zu den anderen früh oder spät sein kann, kann er dennoch relevant sein, solange er nahe genug ist.

  • Auf einer Videospielkonsole wird Software für eine Spiel-Engine ausgeführt. Es gibt viele Ressourcen, die zwischen den Aufgaben geteilt werden müssen. Gleichzeitig müssen die Aufgaben gemäß dem Zeitplan erledigt werden, damit das Spiel korrekt gespielt werden kann. Solange die Aufgaben relativ pünktlich sind, wird das Spiel Spaß machen, und wenn nicht, kann es nur ein wenig zurückbleiben.


Siewert: Eingebettete Echtzeitsysteme und -komponenten.
Liu & Layland: Planungsalgorithmen für die Multiprogrammierung in einer harten Echtzeitumgebung.
Marchand & Silly-Chetto: Dynamische Planung von weichen aperiodischen Aufgaben und periodischen Aufgaben mit Sprüngen.


10
Was für eine erfreuliche Liste von Beispielen!
Erik Kaplun

Eines der besten Beispiele
Vishnu NK

Wurden beim 447-Absturz nicht viele Fristen verpasst, bevor das Flugzeug ins Stocken geriet? Es scheint, dass alle Systeme in diesem Sinne fest sind.
Josiah Yoder

3
Sehr gute Liste, jedoch ist das Beispiel für einen Tintenstrahldrucker nicht für harte Echtzeit qualifiziert. Bestenfalls ist es fest und höchstwahrscheinlich nur weich.
Ab Irato

tysm für die Beispiele
himanshuxd

43

Nach dem Lesen der Wikipedia-Seite und anderer Seiten zum Echtzeit-Computing. Ich habe folgende Schlussfolgerungen gezogen:

1> Bei einem harten Echtzeitsystem , wenn das System die Frist nicht einhält, selbst wenn das System als ausgefallen gilt.

2> Bei einem festen Echtzeitsystem gilt das System nicht als ausgefallen, selbst wenn das System die Frist nicht einhält, möglicherweise mehr als einmal (dh bei mehreren Anforderungen). Außerdem sind die Antworten auf die Anforderungen (Antworten auf eine Anfrage, Ergebnis einer Aufgabe usw.) wertlos, sobald die Frist für diese bestimmte Anforderung abgelaufen ist ( die Nützlichkeit eines Ergebnisses ist nach Ablauf der Frist Null ). Ein hypothetisches Beispiel kann ein Sturmvorhersagesystem sein (wenn ein Sturm vor der Ankunft vorhergesagt wird, hat das System seine Arbeit erledigt, die Vorhersage, nachdem das Ereignis bereits eingetreten ist oder wann es eintritt, ist wertlos).

3> Bei einem Soft-Echtzeitsystem gilt das System nicht als ausgefallen, selbst wenn das System die Frist nicht einhält, möglicherweise mehr als einmal (dh bei mehreren Anforderungen). In diesem Fall sind die Ergebnisse der Anforderungen jedoch kein wertloser Wert für ein Ergebnis nach Ablauf der Frist, sondern nicht Null , sondern verschlechtern sich im Laufe der Zeit nach Ablauf der Frist. Beispiel: Audio-Video-Streaming.

Hier ist ein Link zu einer Ressource, die sehr hilfreich war.


4
Das Sturmvorhersagesystem ist kein gutes Beispiel, da Sie eine Frist basierend auf der Zeit festlegen müssen. Wenn Sie bereits wussten, wann ein Sturm zum frühesten Zeitpunkt eintreten könnte, ist das Sturmvorhersagesystem überflüssig.
20.

12

Es ist beliebt, eine große Katastrophe mit der Definition von harter Echtzeit in Verbindung zu bringen, aber dies ist nicht relevant. Jedes Versäumnis, eine harte Echtzeitbeschränkung zu erfüllen, bedeutet einfach, dass das System kaputt ist. Die Schwere des Ergebnisses, wenn etwas als "kaputt" gekennzeichnet ist, ist für die Definition nicht wesentlich.

Fest und weich werden einfach nicht automatisch für gebrochen erklärt, wenn eine einzige Frist nicht eingehalten wird.

Ein gutes Beispiel für harte Echtzeit finden Sie auf der von Ihnen verlinkten Seite:

Frühe Videospielsysteme wie die Vektorgrafiken Atari 2600 und Cinematronics stellten aufgrund der Art der Grafik und der Timing-Hardware hohe Echtzeitanforderungen.

Wenn etwas in der Videoerzeugungsschleife nur eine einzige Frist verpasste, würde die gesamte Anzeige fehlerhaft sein, was unerträglich wäre, selbst wenn es selten wäre. Das wäre ein kaputtes System und Sie würden es für eine Rückerstattung zurück in den Laden bringen. Es ist also schwer in Echtzeit.

Offensichtlich kann jedes System Situationen ausgesetzt sein, die es nicht bewältigen kann. Daher muss die Definition auf die erwarteten Betriebsbedingungen beschränkt werden. Dabei ist zu beachten, dass bei sicherheitskritischen Anwendungen die Menschen schreckliche Bedingungen einplanen müssen ("das Kühlmittel ist verdampft"). die Bremsen sind ausgefallen ", aber selten" die Sonne ist explodiert ").

Und vergessen wir nicht, dass es manchmal einen impliziten Betriebszustand gibt, während jemand zuschaut. Wenn niemand sieht, dass Sie gegen die Regeln verstoßen (oder wenn sie es getan haben, aber sie das Feuer sterben, bevor sie es jemandem erzählen) und niemand beweisen kann, dass Sie die Regeln nachträglich gebrochen haben, dann ist es so, als hätten Sie nie gegen die Regeln verstoßen!


4
If nobody sees you break the rules (or if they did but they die the fire before telling anyone), and nobody can prove that you broke the rules after the fact, then it's kind of the same as if you never broke the rules!... Ok, HAL. Können Sie bitte die Türen der Pod-Bucht öffnen?
Basic

11

Der einfachste Weg, zwischen den verschiedenen Arten von Echtzeitsystemtypen zu unterscheiden, ist die Beantwortung der Frage:

Ist eine verzögerte Systemantwort (nach Ablauf der Frist) noch sinnvoll oder nicht?

Abhängig von der Antwort, die Sie auf diese Frage erhalten, kann Ihr System als eine der folgenden Kategorien eingestuft werden:

  1. Schwer : Nein, und verspätete Antworten gelten als Systemfehler

Dies ist der Fall, wenn das Fehlen der Frist das System unbrauchbar macht. Zum Beispiel sollte das System, das das Auto-Airbag-System steuert, den Crash erkennen und den Beutel schnell aufblasen. Der gesamte Vorgang dauert mehr oder weniger eine Fünfundzwanzigstelsekunde. Wenn das System beispielsweise mit einer Verzögerung von 1 Sekunde reagiert, können die Folgen tödlich sein, und es ist nicht vorteilhaft, wenn die Tasche aufgeblasen wird, sobald das Auto bereits abgestürzt ist.

  1. Firma : Nein, aber verzögerte Antworten sind bei einem Systemausfall nicht erforderlich

Dies ist der Fall, wenn die Einhaltung der Frist tolerierbar ist, die Qualität des Dienstes jedoch beeinträchtigt wird. Betrachten Sie als einfaches Beispiel ein Video-Verschlüsselungssystem. Normalerweise wird das Kennwort für die Verschlüsselung auf dem Server (Video-Head-End) generiert und an die Set-Top-Box des Kunden gesendet. Dieser Vorgang sollte synchronisiert werden, damit die Set-Top-Box normalerweise das Kennwort erhältbevor der Empfang der verschlüsselten Videobilder beginnt. In diesem Fall kann eine Verzögerung zu Videostörungen führen, da die Set-Top-Box die Frames nicht dekodieren kann, da sie das Kennwort noch nicht erhalten hat. In diesem Fall kann der Dienst (Film, ein interessantes Fußballspiel usw.) beeinträchtigt werden, wenn die Frist nicht eingehalten wird. Das verzögerte Empfangen des Passworts ist in diesem Fall nicht sinnvoll, da die damit verschlüsselten Frames bereits Störungen verursacht haben.

  1. Soft : Ja, aber der Systemdienst ist beeinträchtigt

Wie aus der Wikipedia-Beschreibung hervorgeht, verschlechtert sich die Nützlichkeit eines Ergebnisses nach Ablauf seiner Frist . Das bedeutet, dass es für den Endbenutzer immer noch nützlich ist, eine Antwort vom System außerhalb der Frist zu erhalten, aber seine Nützlichkeit verschlechtert sich nach Erreichen der Frist. Ein einfaches Beispiel für diesen Fall ist eine Software, die automatisch die Temperatur eines Raums (oder eines Gebäudes) regelt. In diesem Fall reagiert das System bei Verzögerungen beim Lesen der Temperatursensoren etwas langsam auf brüske Temperaturänderungen. Am Ende reagiert es jedoch auf die Änderung und passt die Temperatur entsprechend an, um sie beispielsweise konstant zu halten. In diesem Fall ist die verzögerte Reaktion nützlich, verschlechtert jedoch die Servicequalität des Systems.


6

Eine weiche Echtzeit ist am einfachsten zu verstehen. Selbst wenn das Ergebnis nach Ablauf der Frist erhalten wird, gelten die Ergebnisse weiterhin als gültig.

Beispiel: Webbrowser - Wir fordern eine bestimmte URL an. Das Laden der Seite dauert einige Zeit. Wenn das System mehr als die erwartete Zeit benötigt, um uns die Seite zur Verfügung zu stellen, wird die erhaltene Seite nicht als ungültig angesehen. Wir sagen nur, dass die Leistung des Systems nicht den Anforderungen entsprach (das System hat eine geringe Leistung erbracht!).

In hartem Echtzeit - System, wenn das Ergebnis nach Ablauf der Frist erhalten wird, wird das System als völlig gescheitert.

Beispiel: Wenn ein Roboter eine Aufgabe wie Linienverfolgung usw. ausführt. Wenn ein Hindernis auf seinem Weg auftritt und der Roboter diese Informationen nicht innerhalb einer programmierten Frist (fast augenblicklich!) Verarbeitet, gilt der Roboter als ausgefallen in seiner Aufgabe (das Robotersystem kann auch vollständig zerstört werden!).

Wenn in einem festen Echtzeitsystem das Ergebnis der Prozessausführung nach Ablauf der Frist eintrifft, verwerfen wir dieses Ergebnis, aber das System wird nicht als fehlerhaft bezeichnet.

Beispiel: Satellitenkommunikation zur Überwachung der feindlichen Position oder einer anderen Aufgabe. Wenn die Bodencomputerstation, an die die Satelliten die Frames regelmäßig senden, überlastet ist und der aktuelle Frame (Paket) nicht rechtzeitig verarbeitet wird und der nächste Frame eingeht, spielt das aktuelle Paket (das die Frist verpasst hat) keine Rolle ob die Verarbeitung abgeschlossen wurde (oder zur Hälfte oder fast abgeschlossen), wird gelöscht / verworfen. Der Bodencomputer wird jedoch nicht als vollständig ausgefallen bezeichnet.


Das Browserbeispiel ist falsch. Zeit ist keine Ressource in einem Webbrowser: Dies ist überhaupt kein Echtzeitsystem.
Bart Friederichs

6

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.


"Die erste Revolution ist, wenn Sie Ihre Meinung darüber ändern, wie Sie Dinge betrachten und sehen, dass es eine andere Sichtweise geben könnte, die Ihnen nicht gezeigt wurde." - Gil Scott-Heron, "Die Revolution wird nicht im Fernsehen übertragen"
E. Douglas Jensen

2

Echtzeit - Bezieht sich auf ein System oder einen Betriebsmodus, in dem die Berechnung während der tatsächlichen Zeit durchgeführt wird, in der ein externer Prozess stattfindet, damit die Berechnungsergebnisse verwendet werden können, um den externen Prozess rechtzeitig zu steuern, zu überwachen oder darauf zu reagieren Weise. [IEEE Standard 610.12.1990]

Ich weiß, dass diese Definition alt ist, sehr alt. Ich kann jedoch keine neuere Definition des IEEE (Institute of Electrical and Electronics Engineers) finden.


2
Eigentlich ist 1990 überhaupt nicht alt. Ich hatte diese Diskussion in den 70ern und die Definition war ungefähr dieselbe.
Hot Licks

2

Stellen Sie sich eine Aufgabe vor, die Daten von der seriellen Schnittstelle eingibt. Wenn neue Daten eintreffen, löst die serielle Schnittstelle ein Ereignis aus. Wenn die Software dieses Ereignis bedient, liest und verarbeitet sie die neuen Daten. Die serielle Schnittstelle verfügt über eine Hardware zum Speichern eingehender Daten (2 beim MSP432, 16 beim TM4C123), sodass die neuen Daten verloren gehen, wenn der Puffer voll ist und mehr Daten eintreffen. Ist dieses System in Echtzeit hart, fest oder weich?

Es ist schwierig in Echtzeit, da bei verspäteter Antwort Daten verloren gehen können.


Stellen Sie sich ein Hörgerät vor, das Töne von einem Mikrofon eingibt, die Tondaten bearbeitet und die Daten dann an einen Lautsprecher ausgibt. Das System hat normalerweise einen kleinen und begrenzten Jitter, aber gelegentlich führen andere Aufgaben im Hörgerät dazu, dass einige Daten zu spät kommen und ein Rauschimpuls am Lautsprecher verursacht wird. Ist dieses System in Echtzeit hart, fest oder weich?

Es ist in Echtzeit fest, da es einen Fehler verursacht, der wahrgenommen werden kann, aber der Effekt harmlos ist und die Qualität der Erfahrung nicht wesentlich verändert.


Stellen Sie sich eine Aufgabe vor, die Daten an einen Drucker ausgibt. Wenn der Drucker inaktiv ist, löst der Drucker ein Ereignis aus. Wenn die Software dieses Ereignis bedient, sendet sie mehr Daten an den Drucker. Ist dieses System in Echtzeit hart, fest oder weich?

Es ist eine weiche Echtzeit, denn je schneller es reagiert, desto besser, aber der Wert des Systems (Bandbreite ist die pro Sekunde gedruckte Datenmenge) nimmt mit der Latenz ab.

UTAustinX: UT.RTBN.12.01x Echtzeit-Bluetooth-Netzwerke


1

Vielleicht ist die Definition schuld.

Aus meiner Erfahrung würde ich die beiden als hard- und softwareabhängig trennen.

Wenn Sie 200 ms Zeit haben, um einen hardwaregesteuerten Interrupt zu warten, haben Sie genau das. Sie stecken 300 ms Code hinein und das System ist nicht kaputt, es wurde nicht entwickelt. Sie werden ausgeschaltet, bevor Sie fertig sind. Ihr Code funktioniert nicht oder ist nicht für den Zweck geeignet. Viele Systeme haben fest definierte Verarbeitungszeiten. Video, Telekommunikation usw.

Wenn Sie eine Anwendung in Echtzeit schreiben , kann dies als weich angesehen werden . Wenn Ihnen die Zeit ausgeht, können Sie beim nächsten Mal auf weniger Last hoffen. Sie können das Betriebssystem optimieren, Speicher hinzufügen oder sogar die Hardware aktualisieren. Sie haben Optionen.

Es ist nicht hilfreich, es aus einer UX-Perspektive zu betrachten. Ein Skoda ist vielleicht nicht kaputt, wenn er Pannen hat, aber ein BMW wird es sicher sein.


Was hast du gegen Škodas?
Erik Kaplun

1

Die Definition wurde im Laufe der Jahre zum Nachteil des Begriffs erweitert. Was jetzt als "harte" Echtzeit bezeichnet wird, wurde früher einfach als Echtzeit bezeichnet. Systeme, in denen fehlende Zeitfenster (anstelle einseitiger Zeitfristen) zu falschen Daten oder falschem Verhalten führen würden, sollten daher in Echtzeit berücksichtigt werden. Systeme ohne diese Eigenschaft würden als nicht in Echtzeit betrachtet.

Das heißt nicht, dass Zeit in Nicht-Echtzeitsystemen nicht von Interesse ist, sondern nur, dass Timing-Anforderungen in solchen Systemen nicht zu grundlegend falschen Ergebnissen führen.


1

Harte Echtzeitsysteme verwenden eine präemptive Version der Prioritätsplanung, sodass kritische Aufgaben sofort geplant werden, während weiche Echtzeitsysteme eine nicht präemptive Version der Prioritätsplanung verwenden, mit der die aktuelle Aufgabe beendet werden kann, bevor die Steuerung auf die höhere Priorität übertragen wird Aufgabe, die zusätzliche Verzögerungen verursacht. Daher werden die Aufgabenfristen in harten Echtzeitsystemen kritisch eingehalten, während sie in weichen Echtzeitsystemen nicht so ernst genommen werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.