EBS1.2 Flashcards
Kapitel 4-6
Wie beschreibt die DIN 44300 den Begriff “Echtzeit”?
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.
Was sind die wesentlichen Merkmale eines Echtzeitsystems?
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.
Was unterscheidet harte Echtzeitsysteme von weichen Echtzeitsystemen?
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).
Was ist der Unterschied zwischen ereignisgesteuerten und zeitgesteuerten Echtzeitsystemen?
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.
Welche Aufgaben und Anforderungen müssen Echtzeitbetriebssysteme erfüllen?
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.
Was ist ein Echtzeitbetriebssystem (RTOS) und welche Hauptfunktionen erfüllt es?
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.
Welche Scheduling-Strategien werden in Echtzeitbetriebssystemen verwendet und was ist das Ziel?
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.
Warum ist die Speicherverwaltung in Echtzeitbetriebssystemen kritisch und wie wird sie üblicherweise gehandhabt?
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.
Was ist ein Echtzeitsystem?
Echtzeitsysteme sind Systeme, die korrekte Reaktionen innerhalb einer definierten
Zeitspanne produzieren müssen.
Was ist eine harte und was eine weiche Echtzeitbedingung?
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.
Was verwaltet ein Betriebssystem?
Ein Betriebssystem verwaltet: Prozessor(en), Prozesse, Speicher, Dateien
und Geräte sowie andere Betriebsmittel.
Welches sind die besonderen Anforderungen, die man an ein Echtzeitbetriebssystem
stellt?
- 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.
Was ist ein eingebettetes System und warum ist dessen Software-Entwicklung komplex?
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.
Welche Phasen umfasst der Entwicklungsprozess für Software in eingebetteten Systemen?
Der Entwicklungsprozess umfasst die Phasen Anforderungserfassung, Systemanalyse, Entwurf, Validierung, Verifikation, Prototypengenerierung, Simulation und Implementierung.
Warum ist die Spezifikation bei der Entwicklung eingebetteter Systeme besonders kritisch?
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.
Was versteht man unter einer Spezifikation in der Software-Entwicklung?
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.
Was sind typische Gründe für falsches oder unerwartetes Verhalten eines eingebetteten Systems?
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.
Warum wird C/C++ häufig zur Programmierung eingebetteter Systeme verwendet?
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.
Welche Nachteile hat die Verwendung von Standard-Java in eingebetteten Systemen?
Nachteile sind u.a. keine Unterstützung für begrenzte Ressourcen, hoher Speicherplatzverbrauch, kaum mögliche Hardware-Zugriffe, und es ist nicht echtzeitfähig.
Was sind synchrone Sprachen und wofür werden sie verwendet?
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.
Welche Modellierungssprachen werden zur Analyse und Simulation eingebetteter Systeme verwendet?
Verwendete Sprachen sind u.a. Statecharts, Hybrid Statecharts, ROOM, VHDL-A, MSC, UML, SDL, OMT, Timed Automata, und Hybrid Automata.
Was ist Hardware/Software-Codesign?
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.
Was sind die Herausforderungen bei der Entwicklung verteilter eingebetteter Systeme?
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.
Warum sind formale Methoden in der Entwicklung eingebetteter Systeme wichtig?
Formale Methoden sind wichtig, weil sie zur Spezifikation, Verifikation und Codeerzeugung beitragen und dadurch die Qualitätssicherung sicherstellen, insbesondere in sicherheitskritischen Bereichen.