Die meisten Betriebssysteme sind für Multitasking ausgelegt. Dies bedeutet, dass mehrere Prozesse gleichzeitig ausgeführt werden. Die Realität ist jedoch, dass jeder Prozessor jeweils nur eine Aktivität oder einen Befehl ausführt oder ausführt. Jedes Betriebssystem verfügt über einen Scheduler. Dies ist eine programmierte Kommandozentrale, die Priorität einräumt, indem Aktionen abhängig von den erwarteten Ergebnissen umgeschaltet werden.
Die Definition einer Echtzeitsoftware ist eine, die mit einem Scheduler geliefert wird, der entscheidet, welche Aktivität zu einem bestimmten Zeitpunkt stattfinden soll. Tatsächlich verfügen alle Computergeräte über Scheduler, deren Ausführung jedoch nicht fortgeschritten ist. Komplexe Anlagen wie Produktionsanlagen erfordern mehr Präzision, Geschwindigkeit und Anpassung.
Warum Echtzeit-Software wählen?
In einer Produktionsumgebung finden mehrere Aufgaben gleichzeitig statt. Sie benötigen einen Scheduler, um zu bestimmen, welche Aktion Priorität hat und welche warten muss. Das Design von Echtzeit-Software (RTS) muss Determinismus garantieren. Dies kann auch als Vorhersagbarkeit angesehen werden. Dies ist die Programmierung, die die Aufgabe bestimmt, die bevorzugt wird. Das Versäumnis, eine vernünftige Reihenfolge zu haben, führt zu negativen Ergebnissen.
Jedes RTS hat ein Deadline-Element. Während der Programmierung muss das System innerhalb eines festgelegten Zeitrahmens auf einen Befehl reagieren. Das Versäumnis dieser Frist kann katastrophal sein, wie im Fall eines sich entfaltenden Airbags, oder einfach unerwünschte Ergebnisse bringen, wie in der Produktion, wo die Qualität eines Produkts reduziert wird.
Was macht hochwertige Echtzeitsoftware aus?
Die Programmierung hat zahlreiche Anwendungen hervorgebracht, die für Automatisierungszwecke verwendet werden können. Im Allgemeinen ist Echtzeitsoftware eine Anwendung, deren Leistung vom Benutzer als aktuell oder unmittelbar angesehen wird. Einige Faktoren bestimmen jedoch, ob es sich um RTS handelt oder nicht.
- Worst Case Execution Time (WCET): Dies ist das Extrem, bis zu dem eine Anwendung den Benutzer enttäuscht. Es sollte so wenig wie möglich sein.
- Zeitaufwand für die Ausführung einer Aufgabe: Technologie und Automatisierung sollen die Zeit für die Ausführung bestimmter Aufgaben verkürzen. Die Zeit sollte mit anderen verwandten Aufgaben synchronisiert oder ausgerichtet werden. Hier ist Geschwindigkeit nicht so wichtig wie die Synchronisierung von Aktivitäten.
- Anzahl der Aufgaben auf einer Hardwareplattform: Die Software sollte so viele Aufgaben wie möglich mit begrenzter Hardware ausführen. Dies entspricht den Computerzielen und ist das Prinzip hinter Multitasking.