Realzeitarchitekturen Flashcards

1
Q

Wie verarbeitet eine Realzeitsteuerung Rechenzeitanforderungen?

A

Die Realzeitsteuerung verarbeitet Rechenzeitanforderungen fast immer zweistufig:

  1. Eine Primärreaktion und
  2. Eine Sekundärreaktion
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie wird eine Primärreaktion realisiert?

A
  • Die Primärreaktion ist in Form einer Interrupt-Service-Routine ausgeprägt, die aufgrund einer Rechenzeitanforderung aufgerufen wird. Dadurch hat sie eine kurze Latenzzeit.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie wird eine Sekundärreaktion realisiert?

A
  • Die Sekundärreaktion ist typischerweise als Task ausgeprägt, je nach Realzeitarchitektur manchmal auch als Tasklet.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist ein Tasklet?

A

Tasklets sind spezielle Funktionen, die zur Ausführung im Interrupt-Kontext an einem vom System bestimmten sicheren Zeitpunkt vorgemerkt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was bringt die Erledigung von Aufgaben in der Primärreaktion mit sich?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Grundstrukturen gibt die Systemsoftware für den Aufbau moderner Realzeisysteme vor?

A
  • 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).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche Unterschiede ergeben sich bei der Entwicklung eines Realzeitsystems verglichen mit dem Entwurf eines Systems ohne zeitliche Anforderungen?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Anforderungen müssen beim Entwurf eines modernen Realzeitsystems berücksichtigigt werden?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Entwurfschritte müssen beim Entwuf eines moderenen Realzeitsystems berücksichtigt werden?

A
  1. Entwurf der Hardware und der Software
  2. Entwurf der Realzeitarchitektur
  3. Realzeitnachweis durchführen
  4. Realisierung
  5. Test und Dokumentation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was muss bei der Realisierung der funktionalen und zeitlichen Anforderungen eines moderenen Realzeitsystems beachtet werden?

A

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:

  1. Trennung von Oberfläche und Abläufen
  2. Trennung der zeitkritischen von den nicht zeitkritischen Abläufen.
  3. Berücksichtigung von Sicherheitsaspekten, z.B.
    das Prinzip, einzelnen Codesequenzen nur die Privilegien zuzuordnen, die sie auch benötigen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was muss beim Entwurf der Hardware eines moderenen Realzeitsystems beachtet werden?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was muss beim Entwurf der Software eines moderenen Realzeitsystems beachtet werden?

A

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:
  1. Welche Daten werden wann zwischen welchen Einheiten wie ausgetauscht?
  2. Dem Schutz der sich dabei ergebenden kritischen Abschnitte ist besondere Aufmerksamkeit zu schenken.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was muss beim Entwurf der Architektur eines moderenen Realzeitsystems beachtet werden?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welche Auswirkungen hat der Realzeitnachweis auf den Entwurf eines moderen Realzeitsystems?

A

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:

  1. Eventuell führen andere Algorithmen zu einer kürzeren Laufzeit.
  2. Das Umverteilen der Jobs zwischen den Rechnerkernen bei einem Multicore-Ansatz könnte ebenso Abhilfe bringen.
  3. Einsatz einer leistungsstärkeren Hardware.

Das Anpassen ist so lange durchzuführen, bis alle funktionalen und alle zeitlichen Anforderungen erfüllt werden können:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist beim Testen und Dokumentieren eines moderenen Realzeitsystems zu beachten?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Warum ist das Debugging bei einem modernen Realzeitsystem problematisch?

A
  • Das Debugging ist problematisch, da dies Einfluss auf das Zeitverhalten des Systems hat.
  • Bei einigen Realzeitarchitekturen befinden sich Teile der Realzeitanwendung im Kernel, wofür ein Kernel-
    Debugger notwendig ist.
17
Q

Was versteht man unter Tracing?

A

Als Tracing wird in der Programmierung eine Funktion zur Analyse von Programmen oder zur Fehlersuche in ihnen bezeichnet.

18
Q

Warum ist Tracing zur Fehlersuche in Realzeitsystemen so wichtig?

A

Tracing stellt manchmal die einzige Möglichkeit dar, zeitrelevante Fehler zu finden. Hierfür kann z.B. strace verwendet werden, oder das Tracing wird selbst implementiert.

19
Q

Wofür benötigt man einen Post-Mortem Debugger?

A

Mit Hilfe eines Post-Mortem Debuggers wird im Fall eines Programmabsturzes, ein Speicherabzug der von der Task verwendeten Speichersegmente erstellt. Die maximale Größe der Speicherabzugsdatei kann mittels ulimit-Kommandos festgelegt werden.

20
Q

Wofür benötigt man hardwaregestützte Debugging-Verfahren?

A

Mit hardwaregestützten Debugging-Verfahren können integrierte Schaltungen auf ihre Funktion getestet werden (z.B. mittels JTAG).

21
Q

Was versteht man unter Profiling?

A

Unter Profiling versteht man das Ausmessen des
Zeitverhaltens einer Applikation. Dabei wird gemessen, wie häufig eine Funktion aufgerufen wird und wie lang die Abarbeitung einer Funktion dauert. Das Profiling kann z.B. mittels Callgrind erfolgen.

22
Q

Welcher Nachteil ergibt sich beim Einsatz von Profiling?

A

Das Profiling hat einen geringen Einfluss auf das

Zeitverhalten.

23
Q

Was wird mittels eines abschließenden Systemtest sichergestellt?

A

Der abschließende Systemtest soll sicherstellen, dass sowohl die funktionalen als auch die zeitlichen Anforderungen eingehalten werden.

24
Q

Wie läuft ein Systemtest bei einem modernen Realzeitsystem ab?

A

Es werden die Testfälle, die bereits beim Entwurf
festgelegt wurden, abgearbeitet. Um die zeitlichen Anforderungen zu überprüfen, wird das
Realzeitsystem unter verschiedenen Lastsituationen,
insbesondere unter hoher Last, getestet.

25
Q

Auf welche zwei Arten lassen sich Lastsituationen in einem System erzeugen?

A

Last kann auf zweierlei Arten erzeugt werden:

  1. Verarbeitet das Realzeitsystem Signale aus einem
    technischen Prozess, so wird versucht, eine Situation
    herbeizuführen, bei der möglichst sämtliche Signale
    gleichzeitig mit höchster Frequenz auftreten.
  2. Das Realzeitsystem wird mit einem (nutzlosen)
    Hintergrundprozess belastet. Hierbei ist zu differenzieren, ob eine CPU-Last, eine Netzwerklast, eine Last des Dateisystems oder alles zusammen erzeugt werden soll.
26
Q

Welche Funktionalitäten bietet ein Realzeitbetriebssystemkern typischerweise an?

A
  1. prioritätengesteuertes Scheduling
  2. Threads als kleinste Scheduling-Einheit
  3. kleinen Footprint, d.h. das der Realzeitbetriebsystemkern auch auf Hardware ablauffähig ist, die nur wenig Speicher und geringe Prozessorleistung zur Verfügung stellt.
  4. Im Idealfall ist die Interrupt-Latenzzeit allein durch die Hardware bestimmt.
27
Q

Welche Aufgabenteile werden in der Primärreaktion abgewickelt?

A
  1. Der Interrupt wird von der ISR quittiert und die Sekundärreaktion aktiviert.
  2. Zeitkritische Aufgabenteile werden ebenfalls in der Primärreaktion abgewickelt.
28
Q

Welche Aufgabenteile werden in der Sekundärreaktion abgewickelt?

A

In der Sekundärreaktion werden die zeitlich weniger kritischen Aufgaben abgearbeitet.