Realzeitarchitekturen Flashcards
Wie verarbeitet eine Realzeitsteuerung Rechenzeitanforderungen?
Die Realzeitsteuerung verarbeitet Rechenzeitanforderungen fast immer zweistufig:
- Eine Primärreaktion und
- Eine Sekundärreaktion
Wie wird eine Primärreaktion realisiert?
- Die Primärreaktion ist in Form einer Interrupt-Service-Routine ausgeprägt, die aufgrund einer Rechenzeitanforderung aufgerufen wird. Dadurch hat sie eine kurze Latenzzeit.
Wie wird eine Sekundärreaktion realisiert?
- Die Sekundärreaktion ist typischerweise als Task ausgeprägt, je nach Realzeitarchitektur manchmal auch als Tasklet.
Was ist ein Tasklet?
Tasklets sind spezielle Funktionen, die zur Ausführung im Interrupt-Kontext an einem vom System bestimmten sicheren Zeitpunkt vorgemerkt werden.
Was bringt die Erledigung von Aufgaben in der Primärreaktion mit sich?
- Die Erledigung von Aufgaben in der Primärreaktion (ISR) führt zu einer kurzen Reaktionszeit. Allerdings werden dadurch die allgemeinen Latenzzeiten schlechter.
- Daher wird versucht die Primärreaktion auf das absolute Minimum zu beschränken und die eigentlichen Arbeiten in der Sekundärreaktion durchzuführen
Welche Grundstrukturen gibt die Systemsoftware für den Aufbau moderner Realzeisysteme vor?
- Realzeitsystem ohne spezielle Systemsoftware
- Realzeitsystem basierend auf Standard-Systemsoftware
- Realzeitsystem, das dedizierte eingebaute Realzeiteigenschaften nutzt (Threaded Interrupts)
- Realzeitsystem, bei dem Teile der Applikation in den Kernel verlagert werden (Userland-to-Kernel)
- Realzeitsystem mit Realzeitkernel auf Singlecore-Basis
- Realzeitsystem auf Multicore-Basis (Multikern-Ansatz)
- Realzeitsystem, das auf die Kombination von Realzeit-Betriebssystem und Standardbetriebssystem setzt (Multikernel-Ansatz).
Welche Unterschiede ergeben sich bei der Entwicklung eines Realzeitsystems verglichen mit dem Entwurf eines Systems ohne zeitliche Anforderungen?
- Realzeit
- Betriebssicherheit (Safety)
- Angriffssicherheit (Security)
- Zuverlässigkeit (Reliability)
- oftmals ist es notwendig Hard- und Software parallel zu entwickeln (Hardware/Software Codesign).
- Es treten Erschwernisse beim Debuggen und Testen der eingebetteten, zeitkritischen Software auf.
Welche Anforderungen müssen beim Entwurf eines modernen Realzeitsystems berücksichtigigt werden?
- Die funktionalen Anforderungen
- Die zeitlichen Anforderungen für jede Rechenzeitanforderung. D.h.:
1. Die minimal und die maximal zulässige Reaktionszeit (t_Dmin und t_Dmax)
2. Die maximale Auftrittshäufigkeit (minimale Prozesszeit t_Pmin)
3. Die zeitlichen Abhängigkeiten untereinander (t_A)
4. Safetyanforderungen
5. Securityanforderungen
Welche Entwurfschritte müssen beim Entwuf eines moderenen Realzeitsystems berücksichtigt werden?
- Entwurf der Hardware und der Software
- Entwurf der Realzeitarchitektur
- Realzeitnachweis durchführen
- Realisierung
- Test und Dokumentation
Was muss bei der Realisierung der funktionalen und zeitlichen Anforderungen eines moderenen Realzeitsystems beachtet werden?
Zur Realisierung der funktionalen und zeitlichen
Anforderungen sind die benötigten Hard- und Software-Komponenten auszuwählen beziehungsweise zu entwerfen.
Hierzu ist es sinnvoll, zunächst Funktionsblöcke zu
definieren, die mit den funktionalen Anforderungen
korrespondieren und denen dann zeitliche Anforderungen zugeordnet werden. Dabei sind einige Entwurfsprinzipien zu beachten:
- Trennung von Oberfläche und Abläufen
- Trennung der zeitkritischen von den nicht zeitkritischen Abläufen.
- Berücksichtigung von Sicherheitsaspekten, z.B.
das Prinzip, einzelnen Codesequenzen nur die Privilegien zuzuordnen, die sie auch benötigen.
Was muss beim Entwurf der Hardware eines moderenen Realzeitsystems beachtet werden?
Anhand der definierten Funktionsblöcke kann die Hardware ausgewählt werden:
- Dabei schätzt der Entwickler bereits grob ab, ob die Funktionsblöcke in Realzeit verarbeitet werden können oder nicht.
- Ist das für einzelne Blöcke beispielsweise nicht möglich, kann über eine Realisierung des Blocks in Form von Hardware, beispielsweise von Field Programmable Gate Arrays (FPGA),
nachgedacht werden. - Alternativ muss eine generell leistungsfähigere Hardware in Betracht gezogen werden.
- Für die Auswahl der Hardware ist darüber hinaus die
Ankopplung von Peripherie relevant. Gerade im Bereich der eingebetteten Systeme werden
häufig Feldbusse eingesetzt.
Was muss beim Entwurf der Software eines moderenen Realzeitsystems beachtet werden?
Die Systemsoftware wird aufgrund der ausgewählten Hardware bestimmt:
- Unter Umständen ist zudem eine Portierung der
Systemsoftware einzuplanen. - Je nach Plattform sind ein Bootloader und das
Betriebssystem auszuwählen. - Da Moderne Realzeitsysteme auf Multithreading setzen, werden die bereits identifizierten Funktionsblöcke demnach auf möglichst jeweils einzelne Threads abgebildet. Dadurch ergibt sich Inter-Thread-Kommunikation, die zu planen ist:
- Welche Daten werden wann zwischen welchen Einheiten wie ausgetauscht?
- Dem Schutz der sich dabei ergebenden kritischen Abschnitte ist besondere Aufmerksamkeit zu schenken.
Was muss beim Entwurf der Architektur eines moderenen Realzeitsystems beachtet werden?
Auf Basis der entworfenen Hard- und Software ist die Realzeitarchitektur zu entwerfen:
- Dabei muss nicht zwangsläufig eine der erwähnten
Architekturen in Reinform vorkommen, sondern es sind
durchaus Kombinationen denkbar (z.B. Multicore-Ansatz kombiniert mit Threaded Interrupts). - Im nächsten Schritt werden die Threads auf Prozessorkerne verteilt und systemweit Prioritäten vergeben.
- Anschließend können die Verarbeitungszeiten abgeschätzt bzw. ausgemessen werden.
- Idealerweise werden die Thread-Gruppen so auf die Kerne verteilt, dass sie untereinander keine gemeinsamen Ressourcen haben. Dadurch treten keine Blockierzeiten zwischen Prozessorkernen auf.
Welche Auswirkungen hat der Realzeitnachweis auf den Entwurf eines moderen Realzeitsystems?
Mit Kenntnis der ursprünglichen Zeitanforderungen und der Verarbeitungszeiten ist der Realzeitnachweis für jede Rechenzeitanforderung und für jeden Prozessorkern getrennt durchzuführen. Können dabei einzelne Realzeitanforderungen nicht eingehalten werden, ist der Entwurf des Realzeitsystems anzupassen:
- Eventuell führen andere Algorithmen zu einer kürzeren Laufzeit.
- Das Umverteilen der Jobs zwischen den Rechnerkernen bei einem Multicore-Ansatz könnte ebenso Abhilfe bringen.
- Einsatz einer leistungsstärkeren Hardware.
Das Anpassen ist so lange durchzuführen, bis alle funktionalen und alle zeitlichen Anforderungen erfüllt werden können:
Was ist beim Testen und Dokumentieren eines moderenen Realzeitsystems zu beachten?
Testen:
- In der Testphase sind für jedes Modul Testpattern inklusive der erwarteten Ergebnisse aufzustellen.
- Für das Gesamtsystem ist ein Testplan zu entwerfen.
- Es sind Komponententest zu entwerfen.
- Eventuell muss der Entwickler sich eine Testumgebung programmieren, die Funktionsblöcke mit den notwendigen Parametern aufruft und die Ergebnisse verifiziert.
Dokumentation:
- Zur Dokumentation des Entwurfes des Realzeitsystems können beispielsweise
Datenflussdiagramme eingesetzt werden, die einen Überblick über das Gesamtsystem geben. - Die Abläufe innerhalb der einzelnen Funktionsblöcke werden per Struktogramme beschrieben.
- Die Nebenläufigkeit des Systems kann mit Hilfe eines
Petrinetzes modelliert werden. - In vielen Fällen hat sich auch UML zur Dokumentation des Systems etabliert.