Systemsoftware Flashcards
Was versteht man unter einer Firmware?
Als Firmware bezeichnet man sowohl die Betriebssoftware diverser Geräte als auch die Software die notwendig ist, um den Betriebssystemkern des eigentlichen Betriebssystems laden und betreiben zu können.
Welche Aufgaben hat die Firmware?
- Grundinitialisierung der Hard- und Software:
- CPU
- MMU
- Timer/Uhr - Diagnose, Funktionstest wichtiger HW-Baugsteine
- Betriebsinitialisierung der Hard- und Software:
- Interrupt
- MMU
- Timer/Uhr
- Watchdog
- Serielle Schnittstelle - Laden und Aktivieren von Code
Was sind Deeply-Embedded-Systems?
Welche Vor- und Nachteile bieten diese?
- Systeme bei denen Firmware und Applikation eine Einheit bilden:
[Firmware | Applikation]
- Vorteil: kurze Bootzeiten
- Nachteil: Unflexibel, beispielsweise bei notwendigen Updates
Was sind einfache eingebettete Systeme?
Welche Vor- und Nachteile bieten diese?
- Systeme bei denen die Firmware mit einem Bootloader kombiniert wird:
[Firmware | Bootloader]
[Applikation]
- Vorteil: Die Funktionalität kann an die Bedürfnisse angepasst werden.
- Nachteil: Längere Bootzeit durch den Lademechanismus des Bootloaders
Was sind multifunktionale eingebettete Systeme?
Welche Vor- und Nachteile bieten diese?
- Systeme bei denen die Firmware bzw. der Bootloader ein Realzeitbetriebssystem (z.B. Linux) laden. Das geladene Betriebssystem führt dann die eigentliche Applikation aus:
[Firmware | Bootloader]
[Linux Rootfilesystem]
[Applikation]
- Vorteil: Sehr flexibel.
- Nachteil: Hoher Ressourcenverbrauch
Was ist ein PC-basiertes Realzeitsystem?
Welche Vor- und Nachteile bietet dieses?
Ein System bei dem die Firmware bzw. der Bootloader einen weiternen flexiblen Bootloader lädt. Dieser lädt dann ein (Realzeit-)Betriebssystem.
[Firmware | Bootloader]
[Bootloader]
[Linux Rootfilesystem]
[Applikation]
- Vorteil: Der Einsatz standardisierter Hardware wird ermöglicht
- Nachteile: Hoher Ressourcenverbrauch, Lange Bootzeiten
Was gehört alles zur Systemsoftware?
- Firmware
- Bootloader
- Monitor-Software
- Betriebssystem
Welche Anforderungen werden an Realzeitbetriebssysteme gestellt?
(7)
- Zeitverhalten:
- Das Zeitverhalten muss deterministisch sein.
- Das Betriebssystem muss möglichst kurze Reaktionszeiten ermöglichen
- Ressourcenverbrauch:
- Anforderungen an Speicher oder auch Rechenleistung sollten möglichst gering sein. - Zuverlässigkeit und Stabilität:
- Programmfehler dürfen das Betriebssystem und andere Programme nicht beeinflussen. - Sicherheit:
- Das Betriebssystem muss Möglichkeiten zum Zugangsschutz und Dateischutz bieten. - Flexibilität und Kompatibilität:
- Unterstüzung von einheitlichen Standards (z.B. POSIX).
- Das System sollte erweiterbar sein.
- Portabilität:
- Das System selbst muss sich leicht auf unterschiedliche Hardware portieren lassen. - Skalierbarkeit:
- Durch das Weglassen oder Hinzufügen von Komponenten sollte das System skalierbar sein, sodass es auf unterschiedlich leistungsfähiger Hardware eingesetzt werden kann.
Wofür werden Systemcalls verwendet?
- Mittels Systemcalls können Applikationen Dienste des Betriebssystems in Anspruch nehmen.
- Systemcalls werden über sogenannte Software-Interrupts getriggert.
- Bibliotheksfunktionen kapseln Systemcalls für die Anwendung.
Was versteht man unter einem Kontextwechsel (Context Swicht)?
- Durch Interrupts werden Codesequenzen unterbrochen. Sie werden dann zu einem späteren Zeitpunkt fortgesetzt.
- Hierzu ist es erforderlich, den genauen Zustand zum Zeitpunkt der Unterbrechung zu speichern. Die hierfür verwendete Datenstruktur nennt sich „Task Control Block“ (TCB). Für jede unabhängige Task wird ein eigener TCB benötigt.
- Der Teil der ISR, die den Austausch der Rücksprungadresse vornimmt, wird „Context Switch“ genannt.
Was ist ein Scheduler?
Der Teil der ISR, die aus den vorliegenden (rechenbereiten) Tasks, diejenige auswählt, die als nächestes abgearbeitet werden soll, wird als Scheduler bezeichnet.
Nach welchen Kriterien wählt ein Schueduler die nächste Task aus, die abgearbeitet werden soll?
- Priorität
2. Bereits verwendete Verarbeitungszeit
Was versteht man unter einem Scheduling-Plan?
Ein Scheduling-Plan legt die genaue zeitliche Zuordnung der Tasks zu den Prozessoren und Ressourcen fest.
Wann besitzt ein System einen korrekten Scheduling-Plan?
Wenn von den Tasks alle maximalen Deadlines eingehalten werden, besitz ein System einen korrekten Scheduling-Plan.
Wie kann man herausfinden, ob für eine Menge von Tasks ein korrekter Scheduling-Plan existiert?
Ob für eine Menge von Tasks ein korrekter Schedulingplan existiert, wird mit einem Einplanbarkeitstest untersucht.
Was muss gelten, damit Tasks korrekt gescheduled werden können?
- Damit Tasks korrekt geschedult werden können, darf die Auslastung auf jedem CPU-Kern nicht über 100% sein (1. Realzeitbedingung).
- In einem überlasteten System existiert kein korrekter Schedulingplan.
Was ist die Hyperperiode?
Unter der Hyperperiode versteht man die Zeitspanne nach der sich das Scheduling der einzelnen Tasks (gemäß Schedulingplan) wiederholt.
Wann wird ein Scheduling-Verfahren als optimal bezeichnet?
Welche Konsequenzen ergeben sich somit für einen Scheduler der “nicht-optimal” arbeitet?
Ein Scheduling-Verfahren wird als optimal bezeichnet, wenn es in jeder Situation einen korrekten Scheduling-Plan findet.
Bei einem Scheduler, der nicht optimal arbeitet, ergibt sich die Konsequenz das er nicht alle Deadlines einhalten kann.
Wann wird ein Scheduling-Verfahren als nicht-optimal bezeichnet?
Ein Scheduling-Verfahren ist nicht-optimal, wenn es keinen korrekten Schedulingplan findet, obwohl mindestens einer existiert.
Wie funktioniert das statische Scheduling?
Zu welcher Art von Systemen führt der Einsatz des statischen Schedulings?
- Beim statischen Scheduling wird der komplette Scheduling-Plan im Vorhinein berechnet. Notwendig hierfür ist die Kenntnis der Prozesszeit, der Ausführungs-zeit, der minimalen und maximalen Deadline und die von der Task benötigten Ressourcen zu jeder Zeit.
- Im System selbst ist lediglich ein Dispatcher implementiert, der entsprechend zu den Zeitpunkten des Scheduling-Plans die Tasks ausführt.
- Läuft zum Zeitpunkt der Aktivierung einer Tasks noch eine andere Task, so wird diese unterbrochen.
- Statisches Scheduling führt zu deterministischen Systemen
Wie funktioniert das dynamische Scheduling?
Welche Vor- bzw Nachteile hat das dynamische Scheduling gegenüber dem statischen Scheduling?
- Beim dynamischen Scheduling wird beim Aufruf des Schedulers die nächste Task bestimmt, die ausgeführt werden soll. Der Scheduling-Plan wird nicht im Vorhinein erstellt, sondern entsteht zur Laufzeit anhand der aktuellen Lastsituation.
- Vorteil: Ist viel felxibler als das statische Scheduling.
- Nachteil: Arbeitet nicht immer optimal
In welchen Systemen wird statisches Singlecore-Scheduling eingesetzt?
Für welche Art (hart oder weich) von Realzeitsystemen ist das statisches Singlecore-Scheduling geeignet?
Was ist der Vorteil des statischen Singlecore-Schedulings?
- Wird eingesetzt in Systemen mit harten Realzeitanforderungen und einem einfachen Laufzeitsystem.
- Ist für harte Realzeitsysteme geeignet.
- Vorteil: Der Realzeitnachweis ist vergleichsweiße einfach zu berechnen:
- Schedulingplan wird offline berechnet
- Keine Interruptverarbeitung in den Zeitslots
Welche zwei Arten von Scheduling-Plänen werden beim statischen Singelcore-Scheduling eingesetzt und welches Ziel wird dabei verfolgt? Welche Nachteile ergeben sich gegebenenfalls?
- Zeitgesteuerter Schedulingplan:
Führt die Tasks entsprechend des Schedulingsplans nacheinander aus.
==> Ziel: Tasks ohne Unterbrechungen ausführen
Nachteil: nach jedem Taskende muss der Timer neu programmiert werden, was relativ aufwendig ist.
- Zeitgesteuerter Schedulingplan mit konstanten Zeitslots:
Ein periodisch auftretender Interrupt stößt im System die Abarbeitung der Tasks an.
==> Ziel: Neuprogrammierung des Timers vermeiden.
Nachteil: Die konstante Framesize bzw. Slotlänge muss korrekt bestimmt werden
Wie nennt man Systeme die statisches Scheduling verwenden?
Solche Systeme werden zeitgesteurete Systeme genannt.
Wie bestimmt man bei einem zeitgesteuertem Schedulingplan mit konstanten Zeitslots die Framesize bzw. Slotlänge?
- Hyperperiode (H) bestimmen:
- Dafür muss ein kompletter Schedulingplan erstellt werden. - Untere und obere Framegrenze bestimmen:
- Min. Framlänge entspricht größter Ausführungszeit des Tasksets
- Max. Framelänge entspricht der kleinsten maximalen Deadline des Tasksets
- Schedulingtabellengröße optimieren:
- Die Framelänge muss ein ganzahliger Teiler der Hyperperiode sein. Das ist dann der Fall, wenn die Framelänge ein ganzzahliger Teiler der minimalen Prozesszeit einer der beteiligten Tasks ist. - Überprüfung der möglichen Framegröße für jede Task:
- Zwischen Releasetime und maximaler Deadline JEDER Task muss mindestens 1 Frame liegen