GrumpyCat schrieb:Selbst wenn so eine Technik Interrupts zeitig durchgereicht bekäme, gibt es dann noch keine Garantie, dass dem Guest CPU, RAM und I/O wie benötigt bereitstehen, also innerhalb von Mikrosekunden (andere Definitionen von "Echtzeit" sind meiner Meinung nach witzlos, jedes halbwegs vernünftig konfigurierte Linux bekommt "Echtzeit mit Latenzen kleiner 1 Sekunde" hin).
Das entspricht nicht dem Sinn und der Bedeutung von Echtzeit in der Informationstechnik!
Geringe Latenzen bekommst du auch mit einem normalen OS, bei dem du die Prozessprioritäten entsprechend eingestellt hast.
Um Latenzen gehts bei Echtzeit aber im Grunde auch nicht.
Echtzeit, bezogen auf die Informationstechnik, meint die garantierte Erfassung von Ereignissen, innerhalb eines definierten Zeitrasters.
Hast du z.B. einen Sensor, der in der Lage ist im 3kHz-Takt Signaländerungen zu erfassen und dein Anwendungsfall hat die Notwendigkeit im schlimmsten Fall diese Signaländerungen auch genau in diesem Takt (Zeitraster) erfassen zu müssen, dann willst du am Ende auch, dass der Sensor garantiert genau in diesem Takt ausgelesen wird, damit kein Signalzustand verloren geht.
Ein RTOS ist so ausgelegt, im Bezug hierauf, erhöhte Anstrengungen zu unternehmen, sodass die Wahrscheinlichkeit eines Verlorengehens, ungeachtet dem restlichen, anstehenden Workloads (der z.B. auch die Verarbeitung der Ereignisse/Signale sein kann), minimiert wird oder (so gut wie) ganz ausgeschlossen werden kann.
Ein normales OS bietet diese Möglichkeit nicht, da das natürlich Resourcen für anderen Workload wegnehmen würde.
Und ob jetzt eine 1kHz Gaming-Maus beim Zocken tatsächlich im Schnitt 1000 (oder 999,9999999) Mal die Sekunde ausgelesen wird, oder aber halt nur ~998 Mal, bekommt man zum einen gar nicht mit und zum anderen sind einem beim Zocken dann die FPS wichtiger (wie viel auch immer das ausmachen würde).
GrumpyCat schrieb:Bzw. WENN man das garantieren kann, hat man keine VM mehr, weil man einen Teil des Rechners hart reserviert hat.
Eine VM ist aus der Sicht ja nichts anderes als ein laufender Prozess.
Und wenn Prozesse Last generieren, wollen die halt auch entsprechende Rechenzeit.
Ob das jetzt aber Echtzeit-Anwednungen sind oder nicht, spielt da keine Rolle.
Wenn du mit nem normalen OS zwei Videos parallel rendern können willst, brauchst du darunter halt entsprechende Hardware, die das auch vernünftig stemmen kann, sodass es nicht länger dauert als es sequentiell zu machen.
Das ist mit Echtzeit nicht anders.
Die Virtualisierbarkeit eines RTOS ist aber schön und nützlich, wenn du ein Rechenzentrum hast und On-Demand Betriebssysteminstanzen anbietest, mit gemixtem, bzw. dir unbekanntem Workload.
Oder du hast deinen (Arbeits-) Rechner, der für einen Gewissen Anwednungsfall oder eine Bandbreite an Anwendungsfällen ausgelegt ist, die kein Echtzeit erfordern und damit auch langsamer wären, aber manchmal musst du Sensordaten o.ä. verlässlich auslesen können.