Da hier in einem anderen
Thread einige Fragen zu Echtzeit(systemen) auftauchten, und auch einiges an Blödsinn geschrieben wurde, hier mal etwas Licht in diesem Dunkel.
Zuerst einmal zu einer häufig anzutreffenden und falschen Annahme, Echtzeit hat nichts mit Geschwindigkeit zu tun, und sagt auch nichts darüber aus. (Die meisten Echtzeitsysteme sind mit Microcontrollern realisiert, die nur ein Bruchteil der Leistung heutiger Gigahertz-Bolliden haben.)
Echtzeit bedeutet lediglich rechtzeitig, nicht mehr. Wenn jeden Freitag 16:00Uhr ein Wochenabschlussbericht an den Geschäftsführer geschickt werden muss, und das mit einem popeligen 386er mit DOS realisiert wird, ist das auch ein Echtzeitsystem.
Für die Steuerung eine Kernkraftwerks sieht das schon wieder ganz anders aus. Wenn da die Neutronenanzahl ansteigt, muss dass innerhalb von x mSec registriert und die Steuerstäbe eingefahren werden. Der Rechner, der das realisiert, ist auch ein Echtzeitsystem, aber hier mit ganz anderen Anforderungen.
Bei Echtzeitsystemen wird nun auch noch zwischen harter und weicher Echtzeit unterschieden. Für harte Echzeit muss ein Job bis spätestens zu einem bestimmten Datum abgearbeitet sein. Liegt das Ergebnis auch nur einen Tick später vor, ist es nutzlos. Ein Beispiel dafür wäre das oben genannte Kernkraftwerk. Wenn nicht innerhalb einer fest vorgegebenen Zeit der Neutronenanstieg erkannt und darauf reagiert wird, kommt es zur Katastrophe. Dann ist es sinnlos die Regelstäbe noch 2cm einzufahren, weil das die Kernreaktion nicht mehr ausreichend bremsen würde.
Weiche Echtzeit heißt, dass ein Ergebniss zu einem vorgegebenen Datum vorhanden sein muss. Wenn das nicht der Fall ist, sinkt der Nutzen des Ergebniss mit der Zeit, die es später eintrifft. Häufig sinkt der Nutzen exponentiell mit der Verzögerungszeit. Ein Beispiel hierfür wäre die Videobearbeitung oder Videostreaming. Ein Bild muss zu einem bestimmten Zeitpunkt vorhanden (dekodiert) sein. Kommt es später, so laufen Ton und Bild nicht mehr synchron. Je später das Bild vorhanden ist, desto mehr läuft die Synchronität auseinander. Bis zu einem gewissen Punkt es das tolerierbar, weil der Mensch das eh nicht mitbekommt, wenn Audio und Video nicht 100%ig synchron laufen. Irgendwann fällt es aber auf. Dann kann man immer noch einzelne Frames wegschmeißen. Im Gegensatz zur harten Echtzeit ist ein Ergebnis also nicht sofort mit überschreiten der Zeitschranke nutzlos, es verliert erstmal "nur" an Wert.
Hier erkennt man schon, dass Echtzeit einen sehr weiten Bereich umfasst, und immer an das Einsatzgebiet gekoppelt ist. Aus diesem Einsatzgebiet leiten sich immer die Hard- und Softwareanforderungen ab. Für die Kraftwerkssteuerung wird ein spezielles System benötigt, welches die Anforderungen dort erfüllt. Das lässt sich mit einem PC nicht mehr realisieren. Hingegen bei einem Videoserver ist das mit Standardhardware absolut zu machen. Schon der Standard-Linuxkernel ermöglicht weiche Echtzeit. Für harte Echtzeit ist er hingegen nicht ausgelegt. Das läuft dem Einsatz auf Servern und Desktops/Workstations vollkommen entgegen, weil es sie sehr träge machen würde.
Ich hoffe, ich konnte den Echtzeit-Begriff hier etwas verständlicher machen.