EBS1.2 Flashcards

Kapitel 4-6

1
Q

Wie beschreibt die DIN 44300 den Begriff “Echtzeit”?

A

Unter Echtzeit versteht man den Betrieb eines Rechensystems, bei dem Programme zur Verarbeitung anfallender Daten ständig betriebsbereit sind, sodass die Verarbeitungsergebnisse innerhalb einer vorgegebenen Zeitspanne verfügbar sind. Die Daten können zufällig oder zu vorherbestimmten Zeitpunkten anfallen.

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

Was sind die wesentlichen Merkmale eines Echtzeitsystems?

A

Ein Echtzeitsystem muss korrekte Reaktionen innerhalb einer definierten Zeitspanne liefern. Die korrekte Funktion hängt nicht nur von der logischen Korrektheit der Ergebnisse, sondern auch vom Zeitpunkt der Ergebnislieferung ab. Echtzeitsysteme können in harte (strikte Deadline-Einhaltung notwendig) und weiche Echtzeitsysteme (gelegentliche Deadline-Verletzungen tolerierbar) unterteilt werden.

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

Was unterscheidet harte Echtzeitsysteme von weichen Echtzeitsystemen?

A

In harten Echtzeitsystemen führt das Verpassen einer Deadline zu katastrophalen Folgen und muss zwingend vermieden werden (z. B. Flugsteuersysteme). In weichen Echtzeitsystemen sind Deadline-Verletzungen tolerierbar und führen lediglich zu Leistungseinbußen (z. B. Multimediasysteme mit gelegentlichem Bildflackern).

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

Was ist der Unterschied zwischen ereignisgesteuerten und zeitgesteuerten Echtzeitsystemen?

A

Ereignisgesteuerte Systeme reagieren auf Unterbrechungen durch externe Ereignisse, was zu kurzen Reaktionszeiten führt, aber bei vielen gleichzeitigen Ereignissen anfällig ist. Zeitgesteuerte Systeme reagieren auf periodische Zeitgeber und haben planbare zeitliche Abläufe, was die Planung und Verlässlichkeit im Echtzeiteinsatz verbessert.

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

Welche Aufgaben und Anforderungen müssen Echtzeitbetriebssysteme erfüllen?

A

Echtzeitbetriebssysteme müssen ein deterministisches zeitliches Verhalten aufweisen, externe Ereignisse schnell bearbeiten, definierte Antwortzeiten auf Unterbrechungen garantieren, Multitasking ermöglichen, prioritätsgesteuerte Prozessverwaltung bieten, effiziente Interprozesskommunikation unterstützen, skalierbar sein, und Last-Unabhängigkeit garantieren.

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

Was ist ein Echtzeitbetriebssystem (RTOS) und welche Hauptfunktionen erfüllt es?

A

Ein Echtzeitbetriebssystem (RTOS) ist eine Software, die Echtzeitanforderungen durch planbare und schnelle Reaktionen auf Ereignisse ermöglicht. Hauptfunktionen umfassen Prozessverwaltung, Speicherverwaltung, Prozessorverwaltung, Geräteverwaltung und Datei-Verwaltung. Es ermöglicht die Ausführung mehrerer Tasks mit garantierten Zeitbedingungen.

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

Welche Scheduling-Strategien werden in Echtzeitbetriebssystemen verwendet und was ist das Ziel?

A

Echtzeitbetriebssysteme nutzen oft präemptives Scheduling, bei dem Tasks mit höherer Priorität die CPU sofort übernehmen können. Beliebte Strategien sind Earliest Deadline First (EDF) und Rate-Monotonic Scheduling (RMS). Ziel ist es, alle Zeitbedingungen zu erfüllen und eine effiziente Ressourcennutzung zu gewährleisten.

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

Warum ist die Speicherverwaltung in Echtzeitbetriebssystemen kritisch und wie wird sie üblicherweise gehandhabt?

A

In Echtzeitbetriebssystemen müssen alle zeitkritischen Daten und Programmcodes im Hauptspeicher verfügbar sein, um lange Ladezeiten zu vermeiden. Standardverfahren wie Swapping oder Demand-Paging sind oft ungeeignet. Echtzeitbetriebssysteme nutzen daher spezialisierte Speicherverwaltung, um diese Anforderungen zu erfüllen.

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

Was ist ein Echtzeitsystem?

A

Echtzeitsysteme sind Systeme, die korrekte Reaktionen innerhalb einer definierten
Zeitspanne produzieren müssen.

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

Was ist eine harte und was eine weiche Echtzeitbedingung?

A

Unter einer harten Echtzeitbedingung versteht man eine zeitliche Bedingung,
die vom System stets erfüllt werden s muss, da eine auch nur gelegentliche
Verletzung erhebliche Folgen nach sich ziehen würde. In weichen
Echtzeitsystemen ist die Einhaltung solcher Bedingungen zwar wichtig, sie
funktionieren jedoch weiterhin korrekt, wenn diese gelegentlich verletzt
wird.

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

Was verwaltet ein Betriebssystem?

A

Ein Betriebssystem verwaltet: Prozessor(en), Prozesse, Speicher, Dateien
und Geräte sowie andere Betriebsmittel.

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

Welches sind die besonderen Anforderungen, die man an ein Echtzeitbetriebssystem
stellt?

A
  • deterministisches zeitliches Verhalten
  • sie erlauben die Bearbeitung von viele externen Ereignissen mit hilfe eines Unterbrechungskonzeptes
  • die Antwortzeit auf eine Unterbrechung ist definiert
  • geringer Overhead bei direktem Zugriff auf physikalische Hardware-Adressen und bei Kontextwechseln
  • Multitakingfähigkeit muss gegeben sein, welche den Prozessor an andere Lauffähige Programme abgibt bei interrupt etc.
  • lauffähige Programme müssen prioritätsgesteuert anlaufen
  • Lastunabhängigkeit muss garantiert sein
  • einsatzfähig in Systemen mit begrenzten Ressourcen durch skaliebarkeit.
  • Standardschnittstellen
    -spezielle Entwicklungswerkzeuge, die für Echtzeitanwendungen optimiert sind.
    -können auch mit nicht Echtzeitfähigen Systemen kommunizieren.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist ein eingebettetes System und warum ist dessen Software-Entwicklung komplex?

A

Ein eingebettetes System ist ein spezialisiertes Computersystem, das Teil eines größeren Systems ist und spezifische Aufgaben erfüllt. Die Software-Entwicklung ist komplex, weil die Anforderungen hoch sind, die Software exakt auf Verbraucherwünsche und -anforderungen abgestimmt sein muss und Beta-Tests im realen Betrieb oft nicht möglich sind.

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

Welche Phasen umfasst der Entwicklungsprozess für Software in eingebetteten Systemen?

A

Der Entwicklungsprozess umfasst die Phasen Anforderungserfassung, Systemanalyse, Entwurf, Validierung, Verifikation, Prototypengenerierung, Simulation und Implementierung.

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

Warum ist die Spezifikation bei der Entwicklung eingebetteter Systeme besonders kritisch?

A

Die Spezifikation ist kritisch, weil mehr als 50% der Fehler in ausgelieferten Systemen konzeptionelle Fehler in den Anforderungen sind. Eine präzise und sorgfältige Anforderungsanalyse ist daher unerlässlich, insbesondere bei sicherheitskritischen Systemen.

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

Was versteht man unter einer Spezifikation in der Software-Entwicklung?

A

Eine Spezifikation legt formal fest, was das System können muss. Sie umfasst das gewünschte Verhalten, die Schnittstellen sowie Vorgaben bezüglich Geschwindigkeit, Kosten, Fläche und Leistungsverbrauch.

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

Was sind typische Gründe für falsches oder unerwartetes Verhalten eines eingebetteten Systems?

A

Typische Gründe sind: falsche Annahmen über das Verhalten der Regelstrecke, die Kontrolleinheit sendet nicht die richtigen Signale oder sendet sie nicht rechtzeitig, und die Benutzerschnittstelle übermittelt nicht die richtige Information zwischen Benutzer und Kontrolleinheit.

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

Warum wird C/C++ häufig zur Programmierung eingebetteter Systeme verwendet?

A

C/C++ wird wegen der maschinennahen Programmierung, kürzeren Entwicklungszyklen, steigender Komplexität der Systeme und sicherheitskritischen Aufgaben verwendet. Assemblersprache wird für echtzeitkritische Anforderungen genutzt, und C wird nach Assembler übersetzt und optimiert.

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

Welche Nachteile hat die Verwendung von Standard-Java in eingebetteten Systemen?

A

Nachteile sind u.a. keine Unterstützung für begrenzte Ressourcen, hoher Speicherplatzverbrauch, kaum mögliche Hardware-Zugriffe, und es ist nicht echtzeitfähig.

20
Q

Was sind synchrone Sprachen und wofür werden sie verwendet?

A

Synchrone Sprachen beschreiben Ein-/Ausgabeverhalten unabhängig von Ausführungszeiten und -reihenfolgen. Sie werden verwendet, um reaktive Systeme, die sicherheitskritische Steuerungsaufgaben übernehmen, auf einer höheren Abstraktionsebene zu modellieren.

21
Q

Welche Modellierungssprachen werden zur Analyse und Simulation eingebetteter Systeme verwendet?

A

Verwendete Sprachen sind u.a. Statecharts, Hybrid Statecharts, ROOM, VHDL-A, MSC, UML, SDL, OMT, Timed Automata, und Hybrid Automata.

22
Q

Was ist Hardware/Software-Codesign?

A

Hardware/Software-Codesign ist der gemeinsame Entwurf von Hardware- und Software-Komponenten eines Systems. Es umfasst die Auswahl von Komponenten, die Partitionierung einer Spezifikation in Hard- und Software, die automatische Synthese von Interface- und Kommunikationsstrukturen sowie Verifikation und Co-Simulation.

23
Q

Was sind die Herausforderungen bei der Entwicklung verteilter eingebetteter Systeme?

A

Herausforderungen sind die hohe Komplexität der Systeme, die notwendige Auflösung zyklischer Abhängigkeiten zwischen Hardware- und Software-Komponenten, und das Fehlen einer durchgängigen Werkzeugkette.

24
Q

Warum sind formale Methoden in der Entwicklung eingebetteter Systeme wichtig?

A

Formale Methoden sind wichtig, weil sie zur Spezifikation, Verifikation und Codeerzeugung beitragen und dadurch die Qualitätssicherung sicherstellen, insbesondere in sicherheitskritischen Bereichen.

25
Q

Was ist der Unterschied zwischen Verifikation und Validierung?

A

Verifikation: Bauen wir das Produkt richtig (d. h. der Spezifikation entsprechend)?
Validierung: Bauen wir das richtige (d. h. vom Auftraggeber
gewünschte) Produkt, d. h. ist in der Spezifikation all das enthalten, was
der Auftraggeber sich vorstellt?

26
Q

Was kommt bei der Entwicklung eingebetteter Systeme zuerst:
die Spezifikation oder die Implementierung?

A

Bei der Entwicklung eingebetteter Systeme folgt die Implementierung der
Spezifikation.

27
Q

Erklären Sie den Begriff der „perfekten Synchronie“!

A

Perfekte Synchronie ist die Hypothese, dass Signalaustausch und elementare
Berechnungen keine Zeit benötigen, so dass Systemausgaben mit ihren
Eingaben (perfekt) synchron ablaufen (also in Nullzeit).

28
Q

Warum eignet sich Standard-Java nicht zur Programmierung eingebetteter
Systeme?

A
29
Q

Ist Esterel eine Ereignis oder Zeit gesteuerte Sprache?

A

Esterel ist eine Ereignis gesteuerte, (perfekt) synchrone Sprache.

30
Q

Um welche Sprachmittel sind Statecharts in Vergleich zu Mealy-Automaten
im Wesentlichen angereichert?

A

Statecharts enthalten als Basiskonstrukt Mealy-Automaten (viele Statechartsvarianten
auch Moore-Automaten); Möglichkeiten zur Komposition
sind die hierarchische Dekomposition sowie die Parallelkomposition.
Weiterhin gibt es einen Kommunikationsmechanismus, der je nach Statechartsvariante
deutlich variieren kann.

31
Q

Nennen Sie einige Diagrammarten, die in der UML vorkommen

A

Einige Diagrammarten der UML sind: Use Cases, Collaboration Diagramme,
Sequenzdiagramme, Activity Diagramme, Statecharts, Objektdiagramme,
Komponentendiagramme, Klassendiagramme und Deploymentdiagramme.

32
Q

Was versteht man unter Zuverlässigkeit (reliability) und Sicherheit (safety) in eingebetteten Systemen?

A
  • Zuverlässigkeit: Wahrscheinlichkeit, dass ein System seine definierte Funktion innerhalb eines vorgegebenen Zeitraums und unter den erwarteten Arbeitsbedingungen vollständig erfüllt.
  • Sicherheit: Zustand, in dem das Risiko von Schaden oder Verletzung auf ein akzeptables Maß begrenzt ist.
33
Q

Welche nicht-funktionale Eigenschaft gilt neben der Echtzeitfähigkeit als die wichtigste bei eingebetteten Systemen?

A

Die Verlässlichkeit (Zuverlässigkeit oder Fehlertoleranz).

34
Q

Wie unterscheiden sich Zuverlässigkeit und Verfügbarkeit eines Systems?

A
  • Zuverlässigkeit: Wahrscheinlichkeit, dass ein System über einen bestimmten Zeitraum und unter bestimmten Bedingungen funktioniert.
  • Verfügbarkeit: Anteil der Gesamtbetriebszeit, in dem das System für den beabsichtigten Zweck genutzt werden kann.
35
Q

Was versteht man unter einem Systemausfall und wie sieht die Ausfallrate über die Zeit aus (Badewannenkurve)?

A
  • Systemausfall: Zustand, in dem ein System seine geforderte Funktion nicht mehr erfüllt.
  • Badewannenkurve: Die Ausfallrate ist am Anfang hoch (Frühausfallphase), fällt dann ab (Konsolidierungsphase) und steigt gegen Ende der Nutzungsdauer wieder an (Spätausfallphase).
36
Q

Wie definiert man Risiko und Grenzrisiko?

A
  • Risiko: Produkt der Eintrittswahrscheinlichkeit eines schädigenden Ereignisses und des Schadensausmaßes.
  • Grenzrisiko: Das größte noch vertretbare Risiko, schwer quantifizierbar.
37
Q

Welche zwei Haupttechniken umfasst das Reliability Engineering?

A
  • Konstruktive Maßnahmen: Einbau von Zuverlässigkeit in das System (z.B. durch Redundanz).
  • Analyse-Methoden: Ermittlung der Zuverlässigkeit eines Systems aus der Zuverlässigkeit seiner Komponenten.
38
Q

Was bedeutet Fehlertoleranz und welche Formen von Redundanz gibt es?

A
  • Fehlertoleranz: Fähigkeit eines Systems, trotz Fehlern zu funktionieren.
  • Redundanzformen: Zusätzliche Hardware, Software oder Information (z.B. Paritätsbits, Prüfsummen).
39
Q

Was ist der Unterschied zwischen statischer und dynamischer Redundanz?

A
  • Statische Redundanz: Identische Hardwarekomponenten arbeiten parallel, Ergebnisvergleich durch Voting.
  • Dynamische Redundanz: Fehlererkennung und Umschaltung auf Reservekomponenten.
40
Q

Warum ist das einfache Replizieren von Software nicht zielführend und welche Ansätze gibt es zur Software-Redundanz?

A
  • Warum nicht zielführend: Identische Software produziert identische Fehler.
  • Ansätze: N-Version Programming (unabhängige Implementierungen) und Recovery Blocks (Fehlererkennung und Umschaltung).
41
Q

Wie kann man die Zuverlässigkeit eines Gesamtsystems aus der Zuverlässigkeit seiner Komponenten berechnen?

A
  • Serielle Kopplung: R(t)=R1(t)×…×Rn(t)R(t)=R1​(t)×…×Rn​(t)
  • Parallele Kopplung: R(t)=1−[(1−R1(t))×…×(1−Rn(t))]R(t)=1−[(1−R1​(t))×…×(1−Rn​(t))]
42
Q

Was ist eine Gefahrenanalyse und welche analytischen Suchverfahren gibt es?

A
  • Gefahrenanalyse: Analyse der Zuverlässigkeit durch systematische Suchverfahren.
  • Suchverfahren: Ereignisbaumanalyse (Vorwärtsanalyse), Fehlerbaumanalyse (Rückwärtsanalyse), Failure Mode and Effect Analysis (FMEA).
43
Q

Was ist der Unterschied zwischen Verifikation und Validierung?

A
  • Verifikation: Überprüfung, ob das implementierte System der Spezifikation entspricht.
  • Validierung: Nachweis, ob das spezifizierte System den Anforderungen des Auftraggebers entspricht.
44
Q

Warum stürzte die Ariane 5 ab?

A

Die Ariane 5 musste ferngelenkt zerstört werden, weil sie die vorgeschriebene
Flugbahn aufgrund eines Rechenfehlers in der Software verlassen hatte.
Dieser Rechenfehler war bedingt durch einen Overflow in einem Softwaremodul,
das von der Ariane 4 übernommen wurde.

45
Q

Die Kurssteuerungssoftware der Ariane 5 war doppelt vorhanden. Warum
war die „Redundanz“ in diesem Fall dennoch nutzlos?

A

Redundante Software ist nur dann nützlich (d. h. führt zu einer Erhöhung
der Zuverlässigkeit des Systems) wenn sie durch N-Version Programming
oder Recovery Blocks implementiert ist. Das bloße „Verdoppeln“ identischer
Softwarekomponenten hat keinen Einfluss.

46
Q

Gegeben seien drei identische Hardware-Komponenten mit einer Zuverlässigkeit
von jeweils 95 %. Errechnen Sie die Zuverlässigkeit des Gesamtsystems,
falls die Komponenten (a) in Serie und (b) parallel gekoppelt sind!
Warum ist es stochastisch korrekt, wenn man bei diesen Berechnungen die
Einzelwerte einfach multipliziert?

A

Drei identische Hardware-Komponenten mit einer Zuverlässigkeit von jeweils
95 % ergeben bei (a) einer Serienkopplung eine Gesamtzuverlässigkeit
von 85,7375 % und bei (b) einer Parallelkopplung 99,9875 %. Die
Zuverlässigkeitswerte der Einzelkomponenten können hier einfach multipliziert
werden, weil angenommen wird, dass der Ausfall einer Komponente
stochastisch unabhängig vom Ausfall einer anderen ist.

47
Q

Was ist der Unterschied zwischen Zuverlässigkeit und Verfügbarkeit?

A

Ein System ist entweder verfügbar oder nicht. Ein Systemausfall führt zur
Nicht-Verfügbarkeit. Folglich handelt es sich bei der Verfügbarkeit um einen
dualen Begriff, wohingegen die Zuverlässigkeit die Wahrscheinlichkeit
angibt, dass ein System seine definierte Funktion innerhalb eines vorgegebenen
Zeitraums und unter den erwarteten Arbeitsbedingungen voll erfüllt,
d. h. intakt ist und es zu keinem Systemausfall kommt.